Showing 2 changed files with 17 additions and 10 deletions
+15 -10
.doc/host-manager.md
@@ -12,19 +12,24 @@ MVP-ul curent nu are dependențe CPAN externe.
12 12
 
13 13
 ## Rol
14 14
 
15
-`config/hosts.yaml` este registrul editabil și trebuie menținut în git. Aplicația îl expune read-only pentru servicii și, cu autentificare OTP, permite modificări controlate în working tree.
15
+`config/hosts.yaml` este registrul editabil și trebuie menținut în git. Aplicația este complet în spatele autentificării OTP pentru orice date de registru, exporturi sau modificări.
16 16
 
17 17
 Git rămâne mecanismul de audit, istoric și rollback. Aplicația nu înlocuiește repo-ul și nu devine o bază de date separată.
18 18
 
19
-Endpoint-uri publice read-only:
19
+Endpoint-uri publice:
20 20
 
21
-- `/download/hosts.yaml` — registrul complet
22
-- `/download/local-hosts.tsv` — manifest DNS local derivat
23
-- `/download/monitoring.json` — listă pentru monitorizare
24
-- `/api/hosts` — JSON cu hosturi și probleme detectate
21
+- `/` — pagina de login/aplicație, fără date de host până la autentificare
22
+- `/api/session` — status boolean al sesiunii
23
+- `/api/login`
24
+- `/api/logout`
25
+- `/healthz` — healthcheck minimal, fără path-uri sau date interne
25 26
 
26 27
 Endpoint-uri cu OTP:
27 28
 
29
+- `/api/hosts`
30
+- `/download/hosts.yaml`
31
+- `/download/local-hosts.tsv`
32
+- `/download/monitoring.json`
28 33
 - `POST /api/hosts/upsert`
29 34
 - `POST /api/hosts/delete`
30 35
 - `POST /api/render/local-hosts-tsv`
@@ -66,14 +71,14 @@ ssh is-vpn-gw 'cat /etc/xdev/host-manager.totp-uri'
66 71
 
67 72
 ## OTP
68 73
 
69
-`HOST_MANAGER_TOTP_SECRET` trebuie să fie un secret Base32 compatibil TOTP. Fără această variabilă, download-urile read-only funcționează, dar login-ul și scrierile nu.
74
+`HOST_MANAGER_TOTP_SECRET` trebuie să fie un secret Base32 compatibil TOTP. Fără această variabilă, healthcheck-ul și pagina de login funcționează, dar login-ul, API-ul, download-urile și scrierile nu.
70 75
 
71 76
 Secretul nu se comite în repo. Dacă avem nevoie de integrare cu un manager de secrete sau systemd environment file, se definește separat pe host.
72 77
 
73 78
 ## Flux
74 79
 
75 80
 1. Hosturile se editează în aplicație sau direct în `config/hosts.yaml`.
76
-2. Serviciile externe descarcă `/download/hosts.yaml`, `/download/local-hosts.tsv` sau `/download/monitoring.json`.
81
+2. Operatorii autentificați pot descărca `/download/hosts.yaml`, `/download/local-hosts.tsv` sau `/download/monitoring.json`.
77 82
 3. Pentru DNS local, butonul `Write local-hosts.tsv` regenerează `config/local-hosts.tsv`.
78 83
 4. Sincronizarea efectivă către is-vpn-gw și as01 rămâne:
79 84
 
@@ -83,7 +88,7 @@ Secretul nu se comite în repo. Dacă avem nevoie de integrare cu un manager de
83 88
 
84 89
 ## Git și managementul cheilor
85 90
 
86
-Varianta preferată pentru servicii automate este să citească `config/hosts.yaml` din git, nu să depindă direct de sesiunea web. Serviciile care sincronizează DNS, monitorizare sau inventare primesc chei dedicate, cu acces minim.
91
+Varianta obligatorie pentru servicii automate este să citească `config/hosts.yaml` din git, nu să depindă de HTTP neautentificat. Serviciile care sincronizează DNS, monitorizare sau inventare primesc chei dedicate, cu acces minim.
87 92
 
88 93
 Reguli:
89 94
 
@@ -106,7 +111,7 @@ jumper
106 111
   sync_local_hosts.sh      aplică DNS după review/verificare
107 112
 
108 113
 servicii consumatoare
109
-  git pull read-only       citesc hosts.yaml/monitoring.json/local-hosts.tsv
114
+  git pull read-only       citesc hosts.yaml/local-hosts.tsv
110 115
 ```
111 116
 
112 117
 Pentru etapa MVP, aplicația nu face commit/push automat. După o modificare, schimbarea rămâne vizibilă în working tree și se comite explicit după review. Automatizarea commit/push poate fi adăugată ulterior, dar numai cu cheie separată și reguli clare de semnare/audit.
+2 -0
README.md
@@ -18,3 +18,5 @@ Runtime path:
18 18
 ```
19 19
 
20 20
 Secrets live outside git in `/etc/xdev/host-manager.env`.
21
+
22
+The web UI is OTP-protected for all registry data, downloads, exports, and writes. Automation should consume this repository through git with dedicated read-only keys, not through unauthenticated HTTP.