diff --git a/.github/AGENT-GUIDE.md b/.github/AGENT-GUIDE.md index aff21d8..b03725a 100644 --- a/.github/AGENT-GUIDE.md +++ b/.github/AGENT-GUIDE.md @@ -1,7 +1,7 @@ # IP Whitelist App — AI Agent Guide > For AI coding agents (Copilot, etc.) to understand and continue development. -> Last updated: 2026-06-03 | Version: 0.5.13 +> Last updated: 2026-06-03 | Version: 0.5.14 ## 1. Quick Overview @@ -206,17 +206,11 @@ node tests/tz-full-compliance.js node tests/stress.js ``` -All tests: 347+ PASS, 0 FAIL (v0.5.13) +All tests: 347+ PASS, 0 FAIL -## 11. Deployment (VM) +## 11. Deployment -```bash -# From local workspace: -rsync -az -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 ..." /home/naeel/ipwhitelist-app/ naeel@5.172.178.213:~/ipwhitelist/ --exclude node_modules --exclude .git --exclude .env - -# On VM: -cd ~/ipwhitelist && pm2 restart ipwhitelist --update-env -``` +Deploy the app on a VM with nginx as reverse proxy. See `docs/devops-deploy.md` for details. ## 12. Common Pitfalls @@ -253,6 +247,7 @@ See `docs/deploy-keycloak.md` for details. | Version | Date | Key Changes | |---------|------|-------------| +| 0.5.14 | 2026-06-03 | Token login, JWKS in mock mode, production deploy docs | | 0.5.13 | 2026-06-03 | OIDC routes prepared, .env.example, devops-deploy guide, repo cleanup | | 0.5.12 | 2026-06-02 | Fixed company switch bug, aggregation, validation, TZ compliance | | 0.5.11 | 2026-06-02 | Dead code cleanup, new integration tests, /export public | diff --git a/docs/deploy-keycloak.md b/docs/deploy-keycloak.md index b3f3d82..2a471ce 100644 --- a/docs/deploy-keycloak.md +++ b/docs/deploy-keycloak.md @@ -16,7 +16,7 @@ # ── Keycloak realm (прямой или через API Gateway) ── KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud # ИЛИ через API Gateway: -# KC_BASE_URL=https://lk-api-gateway-test.ngcloud.ru/api/v1/iam/auth +# KC_BASE_URL= # ── OAuth client (зарегистрированное приложение) ── KC_CLIENT_ID= @@ -63,6 +63,6 @@ pm2 logs ipwhitelist --lines 3 # Должно быть: "[auth] OIDC — Keycloak" # Если видно "[auth] MOCK" — значит KC_CLIENT_ID не задан -# 4. Перейти на https://white.nodejsk8s.dev.nubes.ru/login +# 4. Открыть https://<домен>/login # Должен редиректить на Keycloak вместо формы входа ``` diff --git a/docs/keycloak-auth-reference.md b/docs/keycloak-auth-reference.md index a34e1f7..15e0795 100644 --- a/docs/keycloak-auth-reference.md +++ b/docs/keycloak-auth-reference.md @@ -66,26 +66,18 @@ scope: openid token_type: Bearer ``` -Claims (массив): -- `""` -- `""` -- `wz03709-shturval-admin-iot-naeel` — namespace в k8s (Fission) -- `wz03709-shturval-admin-naeel-test-3` — ещё один namespace +> ⚠️ `ClientID` может отсутствовать — зависит от issuer'а. -> ⚠️ `ClientID` в этом токене **отсутствует** — это другой issuer (`auth.k8s.ngcloud.ru`), не Keycloak. - -### 5.2. Токен из HAR (deck-test) +### 5.2. Пример токена | Поле | Значение | |---|---| | `iss` | `auth-api` | | `ClientID` | `WZ01325` | -| `company_id` | `3e64aac6-dcfc-4082-88dc-da19c86555a5` | -| `company_name` | Тест | -| `login` | `tazet@narod.ru` | -| `firstname` | Наиль | -| `lastname` | Тазетдинов | -| `email` | `tazet@narod.ru` | +| `company_id` | `` | +| `company_name` | Название компании | +| `login` | `user@example.com` | +| `email` | `user@example.com` | ### 5.3. Целевой формат токена (из ТЗ)