71 lines
3.8 KiB
Markdown
71 lines
3.8 KiB
Markdown
# Enrollment client per DWH REST
|
|
|
|
La credenziale `dwh-auth` appartiene a una installazione ThothII, non a una persona. Serve solo se
|
|
il trasporto è `rest_api`; `postgres_direct` e `ssh_tunnel` non la usano.
|
|
|
|
| Trasporto | Chiave `dwh-auth` | Materiale locale |
|
|
| --- | --- | --- |
|
|
| `rest_api` | Sì, una per installazione. | URL HTTPS, `API_KEY_FILE`, eventuale `TLS_CA_FILE`. |
|
|
| `postgres_direct` | No. | Credenziali PostgreSQL e TLS PostgreSQL. |
|
|
| `ssh_tunnel` | No. | Credenziali PostgreSQL e materiali SSH; è diagnostico-only nel runtime corrente. |
|
|
|
|
Il ThothII server PSD resta `postgres_direct` read-only. Il Mac PSD e le installazioni remote
|
|
usano `rest_api`; non introdurre un tunnel SSH per aggirare REST.
|
|
|
|
## Prerequisiti
|
|
|
|
Ricevere chiave e CA, se necessaria, attraverso canali protetti separati. Confermare fuori banda il
|
|
fingerprint TLS prima dell'uso: [guida TLS](dwh-auth-tls.md). Conservare la chiave nel vault o in
|
|
un file protetto, mai Git, `.env` con il valore, argv, ambiente, log o evidenze. Annotare solo ID
|
|
pubblico.
|
|
|
|
## Percorso GUI: vault dell'installazione
|
|
|
|
1. In **Workspace management**, eseguire **Update workspace repository** se necessario e
|
|
selezionare il workspace.
|
|
2. Il trasporto `rest_api` è una precondizione amministrativa del binding locale, non una scelta della GUI. Controllare URL/trust locali e usare **Validate workspace source**.
|
|
3. Inserire la chiave nel campo write-only **Data warehouse API key**, poi **Save entered secrets**.
|
|
La GUI la conserva nel vault cifrato `workspace-secrets`, non la rileggere né la restituisce.
|
|
4. Eseguire **Test workspace connections**. Il controllo innocuo è `/rpc/ping`: atteso 2xx e
|
|
database/schema dichiarati.
|
|
5. Comunicare al server solo ID pubblico, timestamp e risultato. **Forget stored value** rimuove il valore e va
|
|
usato soltanto dopo conferma di sostituzione o revoca.
|
|
|
|
## Percorso headless: binding reale
|
|
|
|
`API_KEY_FILE` significa che il valore è nel file, non nella variabile. Questo è l'esempio Mac/local/remoto nel file PSD non tracciato `workspace-bindings.env`; non è il binding del server PSD Project A, che resta `postgres_direct`. I binding REST sono:
|
|
|
|
```dotenv
|
|
THT_WS_PSD_CLINICAL_DWH_TRANSPORT=rest_api
|
|
THT_WS_PSD_CLINICAL_DWH_BASE_URL=https://supabase-aritmolab.policlinicosandonato.it/dwh/
|
|
THT_WS_PSD_CLINICAL_DWH_API_KEY_FILE=/run/secrets/psd-clinical-dwh-api-key
|
|
THT_WS_PSD_CLINICAL_DWH_TLS_CA_FILE=/run/secrets/psd-clinical-dwh-ca.pem
|
|
```
|
|
|
|
Nel file `operator.env` non tracciato, ogni suffisso `_SOURCE` indica solo il percorso assoluto del
|
|
file protetto di origine. Il comando genera un override non tracciato che monta quei file nel
|
|
`core`; non installa né avvia `dwh-auth` con Compose:
|
|
|
|
```bash
|
|
bash scripts/generate-connector-secrets-override.sh \
|
|
--bindings-env /absolute/protected/workspace-bindings.env \
|
|
--operator-env /absolute/protected/operator.env \
|
|
--output /absolute/protected/connector-secrets.override.yaml \
|
|
--service core --role dwh
|
|
```
|
|
|
|
La chiave sorgente è un file regolare `0600` per il solo account autorizzato. Per altri workspace,
|
|
sostituire `PSD_CLINICAL` con ID immutabile maiuscolo (trattini in underscore). Vedere anche il
|
|
[protocollo diagnostico](../workspace-diagnostic-protocol.md).
|
|
|
|
## Ping, rotazione e revoca
|
|
|
|
Usare solo **Test workspace connections** su `/rpc/ping`: successo è 2xx con TLS verificato; il server
|
|
conferma l'ID con `key status`. Durante rotazione, ricevere nuova generazione, aggiornare vault o
|
|
file `API_KEY_FILE`, ripetere ping, attendere osservazione e far revocare la precedente. Dopo la
|
|
revoca: nuova positiva, precedente `401`.
|
|
|
|
`401` non distingue chiave assente, scaduta o revocata. `503` è un guasto fail-closed di servizio,
|
|
socket o registro: non usare connessione diretta e non ridurre TLS. Non riattivare una chiave
|
|
revocata. Il percorso PSD è nel [runbook](../operations/psd-dwh-auth-rollout.md).
|