
aquaman v0.15.0
đ± Le seul proxy d'identification indĂ©pendant pour les agents IA : isolement de type « apportez votre propre coffre » et politiques de requĂȘtes de moindre privilĂšge. Vos clĂ©s restent lĂ oĂč vous les conservez dĂ©jĂ , jamais dans la mĂ©moire de l'agent. Compatible avec 1Password, keychain, keepassxc et bien d'autres.
đ± Aquaman
đ± Le seul proxy d'identifiants indĂ©pendant pour agents IA : isolation bring-your-own-vault et politiques de requĂȘtes Ă moindre privilĂšge. Vos clĂ©s restent lĂ oĂč vous les conservez dĂ©jĂ , jamais dans la mĂ©moire de l'agent. Compatible avec 1Password, keychain, keepassxc et bien d'autres.
Vous avez configuré Claude Code, OpenClaw ou Hermes, et vous fixez maintenant vos fichiers .env avec vos précieuses clés API qui traßnent en clair. Vous avez lu les articles. Vous savez ce qui se passe quand un agent subit une injection de prompt. On comprend.
Aquaman résout ce problÚme avec trois couches de défense :
- Isolation des processus : les clĂ©s API vivent dans un processus proxy sĂ©parĂ© qui les injecte Ă la sortie. L'agent dĂ©tient un marqueur, jamais une clĂ©, donc mĂȘme une RCE dans l'agent ne peut pas en lire une. Les agents de codage ne reçoivent que les rĂ©fĂ©rences que vous dĂ©clarez, une commande Ă la fois.
- Politiques de requĂȘtes : des rĂšgles par service contrĂŽlent quels endpoints un agent peut appeler. Bloquez les API d'administration, empĂȘchez les suppressions, autorisez les brouillons mais refusez les envois. Les requĂȘtes refusĂ©es ne reçoivent jamais de vrais identifiants.
- Audit à l'épreuve de la falsification : chaque utilisation d'identifiant est journalisée avec des chaßnes de hachage SHA-256. Vous pouvez prouver ce qui a été accédé et détecter toute falsification aprÚs coup.
Choisissez votre parcours
Aquaman est livré sous forme de quatre paquets coordonnés, partageant un seul vault + un seul daemon. Installez uniquement ce dont vous avez besoin :
| Paquet | Ce qu'il fait | Quand l'installer |
|---|---|---|
aquaman-proxy | CĆur : vault, daemon, audit, politique, CLI. La piĂšce dont tout le monde a besoin. | Toujours. |
aquaman-plugin | Adaptateur OpenClaw Gateway. Lance le proxy au dĂ©marrage de la Gateway ; achemine le trafic modĂšle et Telegram Ă travers lui ; 25 services intĂ©grĂ©s rĂ©partis sur 5 modes d'authentification. | Si vous exĂ©cutez une OpenClaw Gateway. Ăgalement disponible sur https://clawhub.ai/plugins/aquaman-plugin |
aquaman-coder | Adaptateur d'agent de codage IA. Références aquaman://service/key à portée de projet résolues à chaque appel d'outil Bash. | Si vous utilisez Claude Code (aujourd'hui) - Codex / OpenCode / Cursor prévus. |
aquaman-hermes | Plugin d'hÎte d'agent Hermes (Python, sur PyPI). Pointe Hermes vers un listener loopback opt-in protégé par jeton via ses ANTHROPIC_BASE_URL/OPENAI_BASE_URL natifs ; ajoute une commande en session /aquaman-status, un outil et une sonde de santé. L'isolation est cÎté proxy ; le plugin ne détient aucun identifiant. | Si vous exécutez l'hÎte d'agent Hermes. pip install aquaman-hermes |
Une seule CLI aquaman expose les quatre : commandes de premier niveau pour le vault et l'audit, aquaman openclaw ... pour l'intégration OpenClaw, aquaman coder ... pour l'intégration d'agent de codage (délÚgue à aquaman-coder en interne) ainsi que aquaman hermes ... pour le paquet Python Hermes.
Démarrage rapide
aquaman help, aquaman doctor sont vos amis.
1. Vault uniquement (juste le proxy + vos secrets)```bash
npm install -g aquaman-proxy aquaman setup # backend wizard + store keys aquaman daemon & # start the proxy aquaman credentials list # verify
Le proxy Ă©coute sur `~/.aquaman/proxy.sock` (UDS, `chmod 0o600`). Pointez n'importe quel outil vers `http://aquaman.local/<service>/<path>` et le proxy injecte les en-tĂȘtes d'authentification pour ce service depuis le backend de coffre-fort que vous avez choisi.
### 2. OpenClaw Gateway```bash
openclaw plugins install aquaman-plugin # 1. install plugin + proxy
openclaw aquaman setup # 2. backend + keys + plugin wire-up
openclaw # 3. done - proxy starts automatically
Dépannage : openclaw aquaman doctor.
Utiliser npm directement ? npm install -g aquaman-proxy && aquaman openclaw setup fait la mĂȘme chose - installe le CLI proxy, stocke vos clĂ©s, installe le plugin dans ~/.openclaw/extensions/aquaman-plugin/, et configure les identifiants (rĂ©fĂ©rences SecretRef sur OpenClaw â„ 2026.6.5, l'espace rĂ©servĂ© auth-profiles.json sur les versions plus anciennes).
aquaman openclaw setup pointe models.providers.<svc>.baseUrl et channels.telegram.apiRoot vers l'écouteur loopback du proxy, car le transport de modÚle d'OpenClaw et ses canaux construisent chacun leur propre client HTTP et contournent l'intercepteur fetch. Les canaux autres que Telegram n'exposent aucune substitution de point de terminaison, donc leurs jetons sont stockés et migrés mais non injectés à la sortie (voir packages/plugin/README.md). Ajoutez des canaux sous la configuration du plugin dans openclaw.json ; les canaux pris en charge incluent Slack, Discord, Telegram, MS Teams, Matrix, LINE, Twitch, Twilio, BlueBubbles, Mattermost, Nostr, Tlon, Feishu, Google Chat, ElevenLabs, xAI, Cloudflare AI Gateway, Mistral, Hugging Face, et plus encore (25 au total).
3. Agents de codage IA (Claude Code aujourd'hui)```bash
npm install -g aquaman-proxy aquaman-coder # 1. install daemon + adapter aquaman setup # 2. vault wizard aquaman daemon & # 3. start the proxy
aquaman coder project add my-app --path ~/code/my-app
--env ANTHROPIC_API_KEY=aquaman://anthropic/api_key
--env GITHUB_TOKEN=aquaman://github/token # 4. declare a project
aquaman coder setup claude-code # 5. wire Claude Code hooks
aquaman doctor # 6. verify - should show both vault + coder green
**Voyez-le par vous-mĂȘme (le dĂ©clic en 30 secondes) :** redĂ©marrez Claude Code, ouvrez une nouvelle session dans `~/code/my-app`, et demandez Ă l'agent d'exĂ©cuter :```
printenv | grep ANTHROPIC_API_KEY
Vous verrez ceci dans la transcription :``` ANTHROPIC_API_KEY=[REDACTED:injected-value]
âș ANTHROPIC_API_KEY is set and available (injected via aquaman vault).
Le processus *enfant* voyait la vraie clé (vos tests, builds, serveurs MCP, scripts d'import - tout ce qui en a réellement besoin fonctionne). L'*agent* - la chose qui décide quel code exécuter sur votre machine - ne voit jamais la valeur, et donc l'historique de conversation ne la voit pas non plus, les logs du fournisseur du modÚle non plus, et personne qui prendra plus tard une capture d'écran de votre terminal non plus.
**Utilisez-le aussi depuis votre propre terminal.** Le mĂȘme wrapper fonctionne sans l'agent. Faites simplement `cd` dans un projet couvert et prĂ©fixez votre commande :```bash
cd ~/code/
aquaman-coder exec -- python app/scripts/import.py
MĂȘme injection d'environnement, mĂȘme masquage sur stdout/stderr. IntĂ©grez-le dans des cibles Makefile, des alias shell ou des runners CI - partout oĂč vous utiliseriez autrement un fichier .env.
Lorsque Claude Code exécute un outil Bash dans ~/code/my-app, le hook d'aquaman réécrit la commande via updatedInput.command pour l'encapsuler sous aquaman-coder exec. Ce wrapper :
- Résout chaque référence
aquaman://service/keyvia le broker (POST /broker/resolvesur UDS). Les identifiants sont matĂ©rialisĂ©s pour une seule commande, pas pour toute la durĂ©e de vie de l'agent. - Fait passer stdout/stderr par un masqueur qui prĂ©fixe un motif basĂ© sur la valeur pour chaque valeur rĂ©solue : quelle que soit la chaĂźne injectĂ©e, elle sera masquĂ©e, indĂ©pendamment de sa forme (jetons Atlassian, secrets Notion, clĂ©s d'API internes - aucun d'entre eux n'a besoin de correspondre Ă un format de fournisseur connu). Les motifs gĂ©nĂ©riques basĂ©s sur la forme (sk-ant-, ghp_, sk_live_, AKIAâŠ, JWT, blocs PEM, ATATT3xFâŠ) s'exĂ©cutent toujours ensuite en dĂ©fense en profondeur pour les secrets que le processus enfant expose et que nous n'avons PAS injectĂ©s.
- Nettoie Ă la sortie de la commande.
Bac Ă sable de Claude Code : il bloque les sockets Unix par dĂ©faut, donc aquaman coder setup claude-code ajoute le socket du proxy Ă la liste d'autorisation sur macOS (sandbox.network.allowUnixSockets). Linux et WSL2 ignorent cette liste, oĂč la seule option est sandbox.network.allowAllUnixSockets: true, ce qui ouvre tous les sockets Unix aux commandes sandboxĂ©es.
4. Hermes (hĂŽte d'agent)
Hermes est un hÎte étranger (Python) sans hook de transport pour l'injection, donc l'isolation est effectuée cÎté proxy : le proxy expose un listener loopback opt-in protégé par jeton, et Hermes y est pointé via ses propres variables d'environnement.```bash npm install -g aquaman-proxy # 1. install daemon aquaman setup # 2. vault wizard aquaman credentials add anthropic api_key sk-ant-... # 3. store a provider key
aquaman hermes setup # 4. enable loopback + write ~/.hermes/.env aquaman daemon & # 5. start the proxy (UDS + loopback) aquaman hermes doctor # 6. verify - listener + env + vault + Hermes
`aquaman hermes setup` active l'écouteur loopback, génÚre un jeton par installation et écrit un bloc géré par aquaman dans `~/.hermes/.env` (en respectant `HERMES_HOME`) : les variables natives `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL` plus une api_key fictive égale au jeton. Hermes envoie le jeton comme clé de son fournisseur ; le proxy le retire, injecte votre véritable identifiant du coffre-fort et transmet en amont. Fournisseurs LLM uniquement (Anthropic, OpenAI) pour l'instant.
**Sucre optionnel en session** - le plugin Python ajoute une commande `/aquaman-status`, un outil `aquaman_status` et une sonde de santé au démarrage de session dans Hermes (ne détient aucun identifiant) :```bash
pip install aquaman-hermes # or: uv tool install aquaman-hermes
aquaman-hermes install # drops the plugin into ~/.hermes/plugins/aquaman/
hermes plugins enable aquaman
Le plugin enregistre également une source de secrets aquaman (Hermes ℠0.18.1) pour les secrets de projet comme GITHUB_TOKEN. Liez-les sous secrets.aquaman.env dans le config.yaml de Hermes, puis déclarez chaque référence avec aquaman broker allow aquaman://github/token (requis depuis la v0.15.0 ; aquaman hermes doctor liste celles que vous avez manquées). Contrairement aux clés LLM ci-dessus, ces valeurs entrent dans l'environnement de Hermes. Voir packages/hermes/README.md.
Comment ça fonctionne```
Agent / OpenClaw / Coding Agent Aquaman Proxy ââââââââââââââââââââââââ ââââââââââââââââââââââââ â â â â â ANTHROPIC_BASE_URL ââââ UDS / HTTP ââââ>â Keychain / 1Pass / â â = aquaman.local â â Vault / Encrypted â â â<ââââââââââââââââââ â â â fetch() interceptor ââââ broker:resolve â + Policy enforced â â (channel APIs) â â + Auth injected: â â â â header / url-path â â No credentials. â ~/.aquaman/ â basic / oauth â â No open ports. â proxy.sock â â â No keys to read. â (chmod 0o600) â â ââââââââââââââââââââââââ ââââŹââââââââââŹââââââââââ â â â ⌠â ~/.aquaman/audit/ â (hash-chained) ⌠api.anthropic.com api.telegram.org slack.com/api âŠ
1. **Store** : Les identifiants résident dans le backend de coffre-fort que vous exécutez déjà - pas de coffre-fort maison (Keychain, 1Password, HashiCorp Vault, Bitwarden, KeePassXC, systemd-creds, fichier chiffré).
2. **Policy** : Le proxy vĂ©rifie la mĂ©thode + les rĂšgles de chemin *avant* de toucher aux identifiants. Les requĂȘtes refusĂ©es reçoivent un `403`, jamais de vrais en-tĂȘtes d'authentification.
3. **Inject** : Le proxy recherche l'identifiant et ajoute l'en-tĂȘte d'authentification avant de transmettre. 25 services intĂ©grĂ©s, 4 modes d'injection d'authentification (header, URL-path, HTTP Basic, OAuth) ; un 5Ăšme, `none`, est uniquement au repos (le proxy rejette le trafic).
4. **Broker (coder + source de secrets Hermes)** : `POST /broker/resolve` matérialise un identifiant par appel d'outil, limité à l'environnement d'une seule commande. Seul `aquaman daemon` le sert, et uniquement pour les refs que vous avez déclarées (`projects.yaml` ou `aquaman broker allow`). Le proxy du plugin OpenClaw ne le sert jamais (v0.15.0+).
5. **Audit** : Chaque utilisation d'identifiant est journalisée avec des chaßnes de hachage SHA-256.
Sur les chemins proxy, l'agent voit un endpoint local plus un marqueur : le placeholder `aquaman-proxy-managed`, ou le token loopback, qui ne fonctionne que contre votre proxy local. Jamais une vraie clé. Sur le chemin coder, la commande *enfant* reçoit les valeurs déclarées et l'agent voit une sortie expurgée.
## ModÚle de sécurité
| Couche | Ce qu'elle fait | Ce qu'elle bloque |
|---|---|---|
| **Isolation de processus** | Identifiants dans un processus séparé, atteint via un socket Unix (`chmod 0o600`) ou un listener loopback protégé par token | Un agent compromis ne peut pas lire les clés proxifiées : espace d'adressage différent |
| **Portée du broker** | Seul `aquaman daemon` distribue des valeurs, et uniquement pour les refs que vous avez déclarées ; les proxys hébergés par OpenClaw ne le font jamais (v0.15.0+) | Un agent ne peut pas extraire des entrées de coffre-fort arbitraires via le socket |
| **Liste blanche de services** | `proxiedServices` contrÎle les API que l'agent peut atteindre | L'agent ne peut pas parler à des services que vous n'avez pas autorisés |
| **Politiques de requĂȘte** | RĂšgles mĂ©thode + chemin par service, appliquĂ©es avant l'injection d'identifiants | L'agent peut atteindre Anthropic mais pas son API d'administration ; peut rĂ©diger des emails mais pas les envoyer |
| **Piste d'audit** | Journaux chaßnés par hachage SHA-256 de chaque utilisation d'identifiant | Forensique post-incident, détection d'altération, preuves de conformité |
| **Broker par appel d'outil (coder)** | `aquaman-coder exec` matérialise les identifiants pour une commande à la fois | Les identifiants ne se dispersent pas dans l'environnement shell de l'agent |
| **Expurgation de sortie (coder)** | `aquaman-coder exec` fait passer stdout/stderr par un expurgateur qui efface chaque valeur qu'il vient d'injecter verbatim - plus des motifs gĂ©nĂ©riques de fournisseurs en secours | MĂȘme des identifiants arbitraires et sans forme n'atteignent jamais la transcription de l'agent |
### Transports et contrĂŽle d'accĂšs
| Chemin | Transport | ContrĂŽle d'accĂšs |
|---|---|---|
| Agents de codage, tout client pouvant se connecter à un socket | Socket Unix `~/.aquaman/proxy.sock` | Permissions de fichier (`0600`) : uniquement les processus s'exécutant sous votre identité |
| Hermes (v0.13.0+), trafic modÚle et Telegram d'OpenClaw (v0.15.0+) | TCP loopback `127.0.0.1:<port>` | Token par installation, vérification à temps constant, bind loopback |
Hermes et OpenClaw construisent chacun leur propre client HTTP et ne peuvent pas se connecter Ă un socket, ils utilisent donc le listener. Tout le reste utilise le socket.
Le token est une capacitĂ© Ă atteindre le proxy local, pas un identifiant. GĂ©nĂ©rĂ© par installation, stockĂ© dans `~/.aquaman/config.yaml` (`0600`), envoyĂ© par l'hĂŽte comme sa clĂ© API de fournisseur. Le proxy le vĂ©rifie, le retire, injecte votre vraie clĂ©. Telegram n'a pas d'en-tĂȘte d'authentification, donc lĂ le token voyage dans le segment de chemin `/bot<TOKEN>` Ă la place.
Compromis : tout processus local peut atteindre un port loopback, y compris d'autres utilisateurs, lĂ oĂč le `0600` du socket les exclut. Le token est la barriĂšre ici, donc le listener reste dĂ©sactivĂ© jusqu'Ă ce que `aquaman hermes setup` ou `aquaman openclaw setup` l'active.
### Identifiants de canaux sur OpenClaw 2026.7.33+
| Canal | Sortie via le proxy |
|---|---|
| Telegram | Oui, depuis la v0.15.0 |
| Tout le reste | Non. Stockage en coffre-fort et migration uniquement |
Chaque canal construit son propre client HTTP par requĂȘte, donc l'intercepteur `fetch` du plugin ne voit plus le trafic des canaux sur ces versions. Router un canal nĂ©cessite une substitution d'endpoint de la part de l'hĂŽte, et Telegram est le seul Ă l'avoir : `aquaman openclaw setup` pointe `channels.telegram.apiRoot` vers le proxy et remplace le token du bot par le token loopback.
Pour le reste, votre token reste dans le coffre-fort mais OpenClaw l'utilise directement, donc le proxy n'est pas dans le chemin et ces appels ne sont pas audités. `aquaman openclaw doctor` liste lesquels de vos canaux configurés sont dans quel groupe. Les fournisseurs de modÚles ne sont pas affectés.
**Ce que l'isolation mĂȘme-utilisateur ne peut pas faire.** Le `0o600` du socket exclut les autres utilisateurs, pas les autres processus s'exĂ©cutant sous votre identitĂ©. Un tel processus peut envoyer des requĂȘtes via le proxy pendant son exĂ©cution (limitĂ© par la politique de requĂȘte, enregistrĂ© dans le journal d'audit) et peut rĂ©cupĂ©rer les refs que vous avez dĂ©clarĂ©es, ce qui est le sens de « dĂ©clarer ». Il ne peut pas lire les clĂ©s que le proxy injecte. Pour une frontiĂšre plus stricte, exĂ©cutez l'agent sous un autre utilisateur OS ou dans un bac Ă sable.
Le modÚle détaillé - spécificités par intégration (portée de l'intercepteur HTTP, profils d'authentification, résultats de scanner, note de l'éditeur ClawScan) - se trouve dans [`packages/plugin/README.md`](https://github.com/tech4242/aquaman/blob/main/packages/plugin/README.md) et [`packages/coder/README.md`](https://github.com/tech4242/aquaman/blob/main/packages/coder/README.md).
### Posture de conformité
Aquaman fournit des tests de conformité exécutables sous `test/compliance/` mappés à :
- **MITRE ATLAS** v5.4.0 : techniques AML.T0055, T0012, T0062, T0090, T0098 (`test/compliance/atlas/`)
- **NIST SP 800-53 Rev 5** : IA-5, AC-3, AC-6, AU-2/9/10, SC-12/28, SI-10 (`test/compliance/nist/`)
Plus des narratifs d'alignement pour CISA/Five-Eyes « Careful Adoption of Agentic AI Services » (avril 2026), CSA MAESTRO, et OWASP Top 10 for Agentic Applications. Les tests s'exécutent dans le cadre de `npm test`. Voir [`docs/compliance/`](https://github.com/tech4242/aquaman/blob/main/docs/compliance) pour les mappings.
## Politiques de requĂȘte
Les scopes OAuth ne peuvent pas distinguer entre « rĂ©diger un email » et « envoyer un email ». Les deux sont `gmail.send`. Les politiques de requĂȘte comblent ce vide.```yaml
# ~/.aquaman/config.yaml
policy:
anthropic:
defaultAction: allow
rules:
- method: "*"
path: "/v1/organizations/**"
action: deny # block admin/billing API
openai:
defaultAction: allow
rules:
- method: "*"
path: "/v1/organization/**"
action: deny
- method: DELETE
path: "/v1/**"
action: deny # no deletions
slack:
defaultAction: allow
rules:
- method: "*"
path: "/api/admin.*"
action: deny # Slack Web API admin methods
gmail:
defaultAction: allow
rules:
- method: POST
path: "/gmail/v1/users/*/messages/send"
action: deny # drafts ok, sending blocked
- Les chemins correspondent au chemin complet de l'API en amont aprÚs le préfixe de service : l'API Web de Slack est
/api/<method>, celle de Gmail est/gmail/v1/.... Les presets antérieurs à la v0.15.0 utilisaient/admin.*et/v1/users/*/messages/send, qui ne correspondaient jamais au trafic réel.aquaman doctorles signale s'ils sont encore dans votre configuration. - Pas de politique = tout autoriser (rétrocompatible)
- La premiĂšre correspondance l'emporte : les rĂšgles sont Ă©valuĂ©es de haut en bas, les requĂȘtes sans correspondance retombent sur
defaultAction - Refus avant authentification : les requĂȘtes bloquĂ©es ne reçoivent jamais de vrais identifiants
- Globs de chemin :
*correspond à l'intérieur d'un segment,**correspond à zéro ou plusieurs segments aquaman setupapplique des valeurs par défaut sûres pour les services stockés (anthropic,openai,slack,gmail).aquaman policy list/aquaman policy test <svc> <method> <path>pour l'inspection / les simulations.
Backends d'identifiants
Apportez votre propre coffre-fort - aquaman n'a pas de stockage interne. Choisissez le backend que vous utilisez déjà ; les secrets y restent, et le proxy les lit sur place.
| Backend | Idéal pour | Configuration |
|---|---|---|
keychain | Développement local sur macOS (par défaut) | Fonctionne immédiatement |
encrypted-file | Linux, WSL2, CI/CD | AES-256-GCM, protégé par mot de passe |
keepassxc | Utilisateurs existants de KeePass | npm i -g kdbxweb argon2 (pairs optionnels depuis la v0.14.1), puis définissez AQUAMAN_KEEPASS_PASSWORD ou un fichier de clé |
1password | Partage d'identifiants en équipe | brew install 1password-cli && op signin. Pour les agents non surveillés, utilisez un compte de service (OP_SERVICE_ACCOUNT_TOKEN) |
vault | Gestion de secrets en entreprise | Définissez VAULT_ADDR + VAULT_TOKEN |
systemd-creds | Linux avec systemd ℠256 | Adossé au TPM2, aucun accÚs root requis |
bitwarden | Utilisateurs de Bitwarden | bw login && export BW_SESSION=$(bw unlock --raw) |
aquaman setup dĂ©tecte automatiquement une valeur par dĂ©faut pertinente (macOS â keychain ; Linux â keychain si libsecret, sinon systemd-creds si systemd â„ 256, sinon encrypted-file).
encrypted-file est une solution de dernier recours pour les environnements Linux/CI sans interface graphique et sans trousseau natif. Pour une meilleure sécurité sous Linux, installez libsecret-1-dev (GNOME Keyring), utilisez systemd-creds (liaison TPM2), ou utilisez 1Password/Vault.
Mise en cache des identifiants (v0.13.1+)
Les backends ayant un coĂ»t par accĂšs, comme 1password (une invite biomĂ©trique par lecture en mode application de bureau), bitwarden (~1-2 s de lancement du CLI) et vault (un aller-retour HTTP), sont mis en cache dans la mĂ©moire du dĂ©mon pendant 15 minutes par dĂ©faut, de sorte qu'une session d'agent chargĂ©e ne dĂ©verrouille le coffre qu'une fois par fenĂȘtre au lieu d'une fois par requĂȘte. Les autres backends sont dĂ©jĂ rapides ou mettent en cache en interne, donc la mise en cache est dĂ©sactivĂ©e par dĂ©faut pour eux. Ajustez avec credentials.cacheTtlSeconds dans ~/.aquaman/config.yaml (ou AQUAMAN_CACHE_TTL) ; 0 dĂ©sactive.
Le compromis honnĂȘte : une invite biomĂ©trique par accĂšs est une vĂ©rification de prĂ©sence de l'utilisateur, et le cache supprime la prĂ©sence par accĂšs pendant la fenĂȘtre du TTL. Pour les agents non surveillĂ©s, cette invite n'obtient jamais de rĂ©ponse, donc le coffre est abandonnĂ© au profit d'un .env en clair, ce qui est strictement pire. Le cache ne dĂ©place pas la frontiĂšre d'isolation : les valeurs ne vivent que dans le processus du proxy (oĂč elles transitent dĂ©jĂ Ă chaque requĂȘte), ne sont jamais Ă©crites sur disque, et sont invalidĂ©es immĂ©diatement lorsque vous effectuez une rotation via aquaman credentials add. Les Ă©critures vont toujours dans votre coffre. TestĂ© de conformitĂ© dans test/compliance/cache-residency.test.ts. Pour zĂ©ro invite avec 1Password, utilisez un compte de service limitĂ© au coffre aquaman ; aquaman doctor vous y orientera.
Licence
MIT - voir LICENSE.