Andrey Epifancev
b1d0186c77
Зависимости под контур: PyJWT 2.8.0, cryptography 43.0.3; JwksVerifier без PyJWK в decode ( #43 )
...
- requirements: PyJWT[crypto]==2.8.0, cryptography==43.0.3 (dev согласован)
- JwksVerifier: в decode передаётся signing_key.key, алгоритм выводится из типа ключа
(_algorithms_for_key: RSA -> RS256, EC P-256 -> ES256), как для AUTH_PUBLIC_KEY
- DevHs256Verifier: TypeError/ValueError от PyJWT 2.8 (нечисловой exp) -> AuthError, не 500
- тест: RSA-ключ из JWKS + ES256-токен (и наоборот) -> AuthError
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-07 18:38:48 +04:00
Andrey Epifancev
df8a5285bb
feat(domain): ядро импорта справочников из выгрузки ЕЦП (§13.1–13.2)
...
- domain/directory_import.py: read_rows (xlsx первый лист / csv UTF-8 `;`/`,`,
заголовки по нормализованному тексту, MISSING_COLUMNS / UNSUPPORTED_FILE),
plan_import — чистая функция: операции плана и отчёт с кодами §13.2,
ASSUMPTION(OQ-87..91); ИНН — через domain/inn.py.
- openpyxl==3.1.5 (+ et_xmlfile==2.0.0) в requirements.txt,
types-openpyxl в requirements-dev.txt.
- Тесты без БД: нормализация, чтение csv/xlsx (Review Focus 1–3), каждый код
§13.2, skip/update, фикстура «Русский Бисквит» (ФЛ в строке 12 → UNSUPPORTED_TYPE).
- План фазы 2: Task 9 отмечена; tasks.md 3.1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-04 22:29:52 +04:00
Andrey Epifancev
d7469f31bc
chore: зафиксирована версия cryptography в requirements.txt (R-18c)
...
auth.py импортирует cryptography напрямую, а requirements.txt — полный freeze.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 22:01:33 +04:00
Andrey Epifancev
70b47a097d
feat: ядро аутентификации (Claims, TokenVerifier, DevHs256Verifier, JwksVerifier, build_verifier)
...
Dev HS256 включается только при AUTH_DEV_ISSUER и DEBUG одновременно; РАИСА — RS256/ES256 по
публичному ключу или JWKS с кэшем. PyJWT[crypto] добавлен в requirements.txt как прод-зависимость.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 21:51:51 +04:00
Andrey Epifancev
ba922225ab
chore: каркас из шаблона команды (DKB_ARMKA@ba172f8, доменный код удалён)
2026-10-02 23:15:37 +04:00