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
|
# IP Whitelist App — AI Agent Guide
|
||||||
|
|
||||||
> For AI coding agents (Copilot, etc.) to understand and continue development.
|
> 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
|
## 1. Quick Overview
|
||||||
|
|
||||||
@@ -206,17 +206,11 @@ node tests/tz-full-compliance.js
|
|||||||
node tests/stress.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
|
Deploy the app on a VM with nginx as reverse proxy. See `docs/devops-deploy.md` for details.
|
||||||
# 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
|
|
||||||
```
|
|
||||||
|
|
||||||
## 12. Common Pitfalls
|
## 12. Common Pitfalls
|
||||||
|
|
||||||
@@ -253,6 +247,7 @@ See `docs/deploy-keycloak.md` for details.
|
|||||||
|
|
||||||
| Version | Date | Key Changes |
|
| 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.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.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 |
|
| 0.5.11 | 2026-06-02 | Dead code cleanup, new integration tests, /export public |
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
# ── Keycloak realm (прямой или через API Gateway) ──
|
# ── Keycloak realm (прямой или через API Gateway) ──
|
||||||
KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud
|
KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud
|
||||||
# ИЛИ через API Gateway:
|
# ИЛИ через API Gateway:
|
||||||
# KC_BASE_URL=https://lk-api-gateway-test.ngcloud.ru/api/v1/iam/auth
|
# KC_BASE_URL=<url API Gateway>
|
||||||
|
|
||||||
# ── OAuth client (зарегистрированное приложение) ──
|
# ── OAuth client (зарегистрированное приложение) ──
|
||||||
KC_CLIENT_ID=<ID клиента из Keycloak>
|
KC_CLIENT_ID=<ID клиента из Keycloak>
|
||||||
@@ -63,6 +63,6 @@ pm2 logs ipwhitelist --lines 3
|
|||||||
# Должно быть: "[auth] OIDC — Keycloak"
|
# Должно быть: "[auth] OIDC — Keycloak"
|
||||||
# Если видно "[auth] MOCK" — значит KC_CLIENT_ID не задан
|
# Если видно "[auth] MOCK" — значит KC_CLIENT_ID не задан
|
||||||
|
|
||||||
# 4. Перейти на https://white.nodejsk8s.dev.nubes.ru/login
|
# 4. Открыть https://<домен>/login
|
||||||
# Должен редиректить на Keycloak вместо формы входа
|
# Должен редиректить на Keycloak вместо формы входа
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -66,26 +66,18 @@ scope: openid
|
|||||||
token_type: Bearer
|
token_type: Bearer
|
||||||
```
|
```
|
||||||
|
|
||||||
Claims (массив):
|
> ⚠️ `ClientID` может отсутствовать — зависит от issuer'а.
|
||||||
- `""`
|
|
||||||
- `""`
|
|
||||||
- `wz03709-shturval-admin-iot-naeel` — namespace в k8s (Fission)
|
|
||||||
- `wz03709-shturval-admin-naeel-test-3` — ещё один namespace
|
|
||||||
|
|
||||||
> ⚠️ `ClientID` в этом токене **отсутствует** — это другой issuer (`auth.k8s.ngcloud.ru`), не Keycloak.
|
### 5.2. Пример токена
|
||||||
|
|
||||||
### 5.2. Токен из HAR (deck-test)
|
|
||||||
|
|
||||||
| Поле | Значение |
|
| Поле | Значение |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `iss` | `auth-api` |
|
| `iss` | `auth-api` |
|
||||||
| `ClientID` | `WZ01325` |
|
| `ClientID` | `WZ01325` |
|
||||||
| `company_id` | `3e64aac6-dcfc-4082-88dc-da19c86555a5` |
|
| `company_id` | `<uuid>` |
|
||||||
| `company_name` | Тест |
|
| `company_name` | Название компании |
|
||||||
| `login` | `tazet@narod.ru` |
|
| `login` | `user@example.com` |
|
||||||
| `firstname` | Наиль |
|
| `email` | `user@example.com` |
|
||||||
| `lastname` | Тазетдинов |
|
|
||||||
| `email` | `tazet@narod.ru` |
|
|
||||||
|
|
||||||
### 5.3. Целевой формат токена (из ТЗ)
|
### 5.3. Целевой формат токена (из ТЗ)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user