diagnos
La libreria Python dietro il caveau: importala, tocca `vault.patients` e lo sblocco avviene da solo — cifrato nel tuo stesso processo, dall'inizio alla fine.
Dev Center
SDK in Python, CLI e un'API REST autenticata via mTLS — le chiavi nascono e vivono solo nella memoria del tuo processo, e il server non vede mai altro che testo cifrato.
Pacchetti open source
Offriamo un SDK in Python, una CLI compatibile con Windows, Mac e Linux, e un'API RESTful pronta per un ambiente container o Kubernetes — il tutto mantenendo la crittografia end-to-end (E2E), e il tutto open source con licenza Apache 2.0.
La libreria Python dietro il caveau: importala, tocca `vault.patients` e lo sblocco avviene da solo — cifrato nel tuo stesso processo, dall'inizio alla fine.
Tutto l'SDK, direttamente nel tuo terminale: `diagnos login` gestisce l'enrollment, e i comandi patients, exams e files proseguono da lì.
Una facciata REST sottile sullo stesso SDK, per i team che parlano HTTP invece di Python — autenticata solo tramite certificato mTLS.
La licenza concede uso commerciale, modifica e redistribuzione libere, con una concessione esplicita di brevetto — l'unica condizione è conservare l'avviso di copyright e segnalare le modifiche apportate. Non promettiamo supporto, una roadmap pubblica né un processo di accettazione delle contribuzioni: è open source, non un prodotto con un contratto di supporto.
Si comincia
Scegli il pacchetto e il metodo di installazione — i comandi qui sotto sono esattamente quelli verificati nei README del repository.
Ogni comando qui sotto richiede un DIAGNOS_API_TOKEN, emesso da un admin del workspace. Come ottenerlo
pip install diagnosfrom diagnos import Diagnos
with Diagnos() as vault:
for row in vault.patients.list():
patient = vault.patients.get(row.document_id)
print(patient.record.legal_name)pip install "diagnos @ git+https://github.com/diagnos-tech/integration@develop#subdirectory=apps/sdk"from diagnos import Diagnos
with Diagnos() as vault:
for row in vault.patients.list():
patient = vault.patients.get(row.document_id)
print(patient.record.legal_name)Compila l'enclave in Rust durante l'installazione — richiede cargo e rustup nel PATH.
git clone https://github.com/diagnos-tech/integration && cd integration
make sync
make checkCompila l'enclave in Rust durante l'installazione — richiede cargo e rustup nel PATH.
pipx install diagnos-clidiagnos logindiagnos --json patients list --group sg_oncology | jq '.items[].document_id'La sessione non viene mai scritta su disco: senza OpenBao configurato, ogni nuova invocazione rifà l'enrollment.
pipx install "diagnos-cli @ git+https://github.com/diagnos-tech/integration@develop#subdirectory=apps/cli" \
--preinstall "diagnos @ git+https://github.com/diagnos-tech/integration@develop#subdirectory=apps/sdk"diagnos logindiagnos --json patients list --group sg_oncology | jq '.items[].document_id'La sessione non viene mai scritta su disco: senza OpenBao configurato, ogni nuova invocazione rifà l'enrollment.
docker build -f apps/api/Dockerfile -t diagnos-api .docker run --rm -p 8443:8443 --cap-add=IPC_LOCK \
-e DIAGNOS_API_TOKEN=apikey-… \
-e DIAGNOS_API_MTLS_CA_FILE=/certs/clients-ca.pem \
-e DIAGNOS_API_TLS_CERT_FILE=/certs/server.pem \
-e DIAGNOS_API_TLS_KEY_FILE=/certs/server-key.pem \
-v $PWD/certs:/certs:ro diagnos-api--cap-add=IPC_LOCK consente all'enclave in Rust di bloccare le chiavi in RAM oltre i 64 KiB predefiniti; senza, il container parte in modalità best-effort.
cd apps/api/deploy/compose
cp .env.example .env
docker compose upAvvia OpenBao e l'API insieme, nello stesso compose.
kubectl apply -k apps/api/deploy/k8sUna sola replica: la sessione dell'SDK è per processo. Scalare richiede OpenBao e un service account per replica.
Controllo degli accessi
DIAGNOS_API_TOKEN identifica una service account e il suo workspace, ed è rilasciato da un amministratore del workspace. Da solo non sblocca nulla — a sbloccare è l'approvazione umana dei tre passaggi successivi.
Il riferimento completo è pubblico — accedi dal repository su GitHub o dalla documentazione qui sotto, senza chiedere approvazione a nessuno. Per autenticare le chiamate, crea un DIAGNOS_API_TOKEN in Impostazioni → Account di servizio, dentro il tuo workspace.
oppure scrivi a [email protected]
Zero trust
Nessun processo legge nulla da solo: l'enrollment scambia chiavi e aspetta che qualcuno approvi — al momento, o in anticipo.