Commit Graph
12 Commits
Author SHA1 Message Date
naeel c1df27d29d fix: DeepSeek audit — header injection + IAM limit + bump 0.5.22
- src/api/routes/entries.js: санитизация filename в /api/v1/entries/export
- ui/routes/export.js: санитизация filename в UI /export
- src/auth.js: лимит 100KB для IAM-ответов
- src/api/routes/entries.js: fallback для пустого allowedIds
2026-06-04 15:48:16 +03:00
naeel a8a07fe019 feat: IAM API интеграция + обновление ТЗ + тесты
- src/auth.js: fetchIamUser(), switchProfile(), userFromPayload(iamData)
- src/config.js: IAM_API_URL из env
- src/routes/oidc.js: обогащение сессии через IAM (с fallback на JWT)
- ui/routes/auth.js: обогащение при токен-логине
- ui/routes/entries.js: switchTo через POST /switch-profile
- src/api/routes/entries.js: resolveCompany через profiles[]
- views/index.ejs: переключатель компаний с названиями из profiles
- .env.example: IAM_API_URL
- docs: обновлены ТЗ-реализация.md, ТЗ-плюс.md, добавлен iam-integration.md
- tests: api-crud.sh (14 тестов CRUD + валидации)
- .gitignore: исключены .env.test, DEPLOY-TESTING.md
2026-06-04 13:53:44 +03:00
naeel 878e46287b v0.5.17: owner_email в companies + универсальный парсер токенов + jwt.decode fallback 2026-06-03 15:17:56 +03:00
naeel 0fd5b43a94 v0.5.12: доделки перед сдачей заказчику
§4.7: агрегация CIDR в публичном /export (aggregateCIDRs)
§5: клиентская JS-валидация (запрещённые диапазоны + нормализация)
§4.1: фильтр «показать удалённые» для admin (API + UI)
§5: уведомление о нормализации (уже работало, проверено)

Файлы:
- server.js: +aggregateCIDRs в /export
- views/index.ejs: JS-валидация + чек-бокс удалённых
- src/api/routes/entries.js: ?includeDeleted=true (admin only)
- ui/routes/entries.js: проброс includeDeleted
- docs/PLAN-predsdachey.md: план доделок
2026-06-02 19:04:24 +03:00
naeel 51a003e078 v0.5.10: /export — attachment default, ?view=1 inline, ?filename=custom 2026-06-02 14:49:50 +03:00
naeel 8ea10f1e37 v0.5.4: fix multi-company API — client_id validation, export isolation, 121 tests PASS 2026-06-02 11:20:51 +03:00
naeel 59ad0fa67e v0.5.5: fix export client_id + multi-company tests (section O) 2026-06-02 11:17:23 +03:00
naeel 1b1b3b6bd7 v0.5.3: fix multi-company API isolation (client_id param) 2026-06-02 10:57:52 +03:00
naeel 0413b44051 fix: P0/P1 fixes (auth+limit+schema) + project audit docs 2026-05-31 09:42:46 +03:00
naeel ed5b3c8367 feat: comprehensive API tests (104 pass) + fix: validation errors → 400, comment length limit 2026-05-30 19:44:37 +03:00
naeel c85a438ba2 feat: UI-слой через /api/v1/* (ui/, views/ui-login.ejs, views/error.ejs)
- ui/api-client.js: HTTP-клиент к /api/v1/* (token из session.token)
- ui/routes/auth.js: /login (mock-пресеты), /login-token (Bearer paste), /logout
- ui/routes/entries.js: /, /add, /edit/:id, /delete/:id через API
- ui/routes/admin.js: /admin, /admin/limit/:id, /audit через API
- ui/routes/export.js: /export → проксирует /api/v1/entries/export
- ui/index.js: createUiRouter() — requireToken + resolveUser middleware
- views/ui-login.ejs: страница входа (mock + token)
- views/error.ejs: шаблон для 403/404/500

API расширения:
- GET /api/v1/entries теперь возвращает limit и used
- GET /api/v1/entries?company=<id> (admin): записи другой компании
- POST/PATCH/DELETE /api/v1/entries?company=<id> (admin): мутации для другой компании
- GET /api/v1/entries/export: агрегированный CIDR (перенесён из монолита)
- GET /api/v1/audit?company=<id>: журнал (перенесён из монолита)

server.js: заменены src/routes/* на ui/createUiRouter(), убран CSRF
2026-05-30 19:02:51 +03:00
naeel 87216389e3 feat: REST API v1 (Bearer JWT, CRUD entries + admin companies) 2026-05-30 18:04:27 +03:00