diagnos
La bibliothèque Python derrière le coffre : importez-la, touchez `vault.patients`, et le déverrouillage se fait tout seul — chiffré dans votre propre processus, du début à la fin.
Dev Center
SDK en Python, CLI et une API REST authentifiée par mTLS — les clés naissent et vivent uniquement dans la mémoire de votre processus, et le serveur ne voit jamais rien d'autre que du texte chiffré.
Paquets open source
Nous proposons un SDK Python, une CLI compatible Windows, Mac et Linux, et une API RESTful prête pour un environnement conteneurisé ou Kubernetes — tout en conservant le chiffrement de bout en bout (E2E), et le tout en open source sous licence Apache 2.0.
La bibliothèque Python derrière le coffre : importez-la, touchez `vault.patients`, et le déverrouillage se fait tout seul — chiffré dans votre propre processus, du début à la fin.
Tout le SDK, directement dans votre terminal : `diagnos login` s'occupe de l'enrollment, et les commandes patients, exams et files prennent le relais.
Une façade REST légère sur le même SDK, pour les équipes qui parlent HTTP plutôt que Python — authentifiée uniquement par certificat mTLS.
La licence autorise l'usage commercial, la modification et la redistribution libres, avec une concession expresse de brevet — la seule contrepartie est de conserver la mention de copyright et de signaler les modifications apportées. Nous ne promettons ni support, ni feuille de route publique, ni processus d'acceptation des contributions : c'est de l'open source, pas un produit sous contrat de support.
On s'y met
Choisissez le paquet et la méthode d'installation — les commandes ci-dessous sont exactement celles que vérifient les README du dépôt.
Chaque commande ci-dessous nécessite un DIAGNOS_API_TOKEN, délivré par un administrateur du workspace. Comment l'obtenir
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)Compile l'enclave Rust pendant l'installation — nécessite cargo et rustup dans le PATH.
git clone https://github.com/diagnos-tech/integration && cd integration
make sync
make checkCompile l'enclave Rust pendant l'installation — nécessite cargo et rustup dans le PATH.
pipx install diagnos-clidiagnos logindiagnos --json patients list --group sg_oncology | jq '.items[].document_id'La session n'est jamais écrite sur disque : sans OpenBao configuré, chaque nouvelle invocation refait 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 session n'est jamais écrite sur disque : sans OpenBao configuré, chaque nouvelle invocation refait 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 permet à l'enclave Rust de verrouiller les clés en RAM au-delà des 64 Kio par défaut ; sans lui, le conteneur démarre en mode best-effort.
cd apps/api/deploy/compose
cp .env.example .env
docker compose upDémarre OpenBao et l'API ensemble, dans le même compose.
kubectl apply -k apps/api/deploy/k8sUne seule réplique : la session du SDK est par processus. Pour scaler, il faut OpenBao et un compte de service par réplique.
Contrôle d'accès
DIAGNOS_API_TOKEN identifie une service account et son workspace, et il est émis par un administrateur du workspace. Seul, il ne débloque rien — c'est l'approbation humaine des trois étapes ci-dessous qui débloque.
La référence complète est publique — accédez-y depuis le dépôt GitHub ou la documentation ci-dessous, sans demander l'approbation de personne. Pour authentifier les appels, créez un DIAGNOS_API_TOKEN dans Paramètres → Comptes de service, dans votre workspace.
ou écrivez à [email protected]
Zero trust
Aucun processus ne lit rien tout seul : l'enrollment échange des clés et attend qu'une personne approuve — sur le moment, ou à l'avance.