cleanup финал: AGENT-GUIDE SSH-команда, deploy-keycloak URL, keycloak-auth ФИО/namespaces
This commit is contained in:
+5
-10
@@ -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 |
|
||||
|
||||
@@ -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=<url API Gateway>
|
||||
|
||||
# ── OAuth client (зарегистрированное приложение) ──
|
||||
KC_CLIENT_ID=<ID клиента из Keycloak>
|
||||
@@ -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 вместо формы входа
|
||||
```
|
||||
|
||||
@@ -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` | `<uuid>` |
|
||||
| `company_name` | Название компании |
|
||||
| `login` | `user@example.com` |
|
||||
| `email` | `user@example.com` |
|
||||
|
||||
### 5.3. Целевой формат токена (из ТЗ)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user