From 61042d7010f0cb995c85a2953a46d3aaafae3b33 Mon Sep 17 00:00:00 2001 From: u1 Date: Tue, 6 Jan 2026 13:08:34 +0100 Subject: [PATCH] docs: narrow auth scope to trade only --- migration.md | 16 ++++++++-------- steps.md | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/migration.md b/migration.md index 4d5a1fe..e8dc772 100644 --- a/migration.md +++ b/migration.md @@ -360,26 +360,26 @@ Wymaganie: - **admin** ma dostęp do wszystkich serwisów (np. Portainer, Argo CD, itp.) - pozostali użytkownicy logują się **wyłącznie** do `trade` (`trade.rv32i.pl`) -Rekomendowana metoda: **Traefik `basicAuth` na Ingress (Middleware)**. +Decyzja: na ten moment **wdrażamy logowanie tylko dla `trade`**. Pozostałe serwisy (Portainer/Argo/pgAdmin/Hasura) zostają ze swoimi, osobnymi loginami. + +Rekomendowana metoda dla `trade`: **Traefik `basicAuth` na Ingress (Middleware)**. ### Plan wdrożenia (staging → prod) 1) Inwentaryzacja publicznych endpointów: - - sprawdzić które serwisy mają Ingress (hosty) i które mają być dostępne wyłącznie dla admina. + - sprawdzić które serwisy mają Ingress (hosty), + - serwisy administracyjne traktować jako „admin-only” (docelowo: ukryte za port-forward/VPN/IP allowlist). 2) `trade` (multi-user): - przygotować `htpasswd` z wieloma wpisami (bcrypt), - utworzyć `Secret` w namespace `trade-staging` (np. `trade-basic-auth`) z plikiem `users`, - dodać `Middleware` `basicAuth` wskazujący na secret, - podpiąć middleware do `Ingress/trade-frontend`. -3) `portainer` (admin-only): - - analogicznie utworzyć admin-only `Secret`+`Middleware` i podpiąć do `Ingress/portainer`. -4) Wyłączyć/dopasować auth w aplikacji `trade-frontend`: +3) Wyłączyć/dopasować auth w aplikacji `trade-frontend`: - obecnie serwer frontendu ma wbudowany basic auth (plik `frontend.json`), - żeby nie było „podwójnego logowania”, dodać tryb `BASIC_AUTH_MODE=off` (albo podobny) i ustawić go w `trade-deploy`. -5) Testy: +4) Testy: - `https://trade.rv32i.pl` → 401 bez auth, 200/304 z auth dla każdego usera, - - `https://portainer.rv32i.pl` → 401 bez auth, dostęp tylko dla admin, - regresja: proxy `/api/*` w frontendzie nadal działa (token read jest dodawany po stronie serwera frontendu). -6) Utrzymanie: +5) Utrzymanie: - dodanie/usunięcie usera = update secreta (`htpasswd`) + rollout (bez zmian w kodzie), - docelowo przenieść sekrety do GitOps (np. SOPS/SealedSecrets/ExternalSecrets). diff --git a/steps.md b/steps.md index 1533772..587b318 100644 --- a/steps.md +++ b/steps.md @@ -231,5 +231,6 @@ Uwaga: **nie zapisuję sekretów** (hasła, tokeny, prywatne klucze) – jeśli ### Dostęp: admin vs użytkownicy (plan) - Wymaganie: admin ma dostęp do wszystkich serwisów; pozostali użytkownicy logują się tylko do `trade.rv32i.pl`. -- Wybrano metodę: Traefik `basicAuth` na Ingress (Middleware). +- Decyzja: logowanie wdrażamy tylko dla `trade`; pozostałe serwisy zostają z własnymi loginami. +- Wybrano metodę dla `trade`: Traefik `basicAuth` na Ingress (Middleware). - Plan wdrożenia opisany w `migration.md` (sekcja „Dostęp i logowanie”).