Secrets dans les documents wiki
Utilisez des références de secrets pour remplacer un mot de passe ou un jeton connu
dans le corps actuel d'un souvenir ou d'une fiche de connaissances. Le document
conserve un marqueur tel que {{secret:API_KEY}}, et un identifiant chiffré du même
coffre contient la valeur. Les lectures actuelles, la recherche et MCP ne développent pas le marqueur.
Cette fonctionnalité nécessite une CLI/un démon ou une application mobile à jour. Mettez à jour tous les clients avant de synchroniser des documents contenant des références : les anciens clients ne peuvent pas décoder le nouveau champ de contenu. Voir les limites de sécurité et les résultats de validation.
Remplacer un secret
Démarrez le démon et déverrouillez la bibliothèque. Utilisez les identifiants courts du coffre et du document renvoyés par la liste ou la recherche. Exécutez sudo dans le même terminal avant le remplacement :
memories sudo
memories memory protect-secret VAULT_ID DOCUMENT_ID API_KEY
Pour une fiche de connaissances, utilisez :
memories card protect-secret VAULT_ID CARD_ID API_KEY
La CLI demande le secret exact sans l'afficher. Ne placez pas le secret dans les arguments ou le nom de référence. Le remplacement est littéral et sensible à la casse ; il n'utilise pas d'expression régulière. Toutes les occurrences sans chevauchement du corps actuel sont remplacées. Par exemple, un corps contenant deux fois le même jeton synthétique devient :
API_KEY={{secret:API_KEY}}
Authorization: Bearer {{secret:API_KEY}}
En cas de succès, la réponse JSON habituelle renvoie l'id du document, le nouvel
identifiant credential et le nombre de replacements. La création de l'identifiant
et le remplacement du document sont validés ensemble ; une opération rejetée n'enregistre aucun changement.
Dans l'application mobile, ouvrez le menu du souvenir/de la fiche, choisissez Protéger un secret dans le document, confirmez l'avertissement sur l'historique, saisissez un nom de référence puis le secret dans le champ masqué. Effectuez l'autorisation par mot de passe lorsque cela vous est demandé.
Les noms de référence contiennent 1-64 lettres ASCII, chiffres, traits de soulignement ou traits d'union et doivent être inutilisés dans ce document. Un document peut contenir au maximum 64 références. Le remplacement nécessite sudo local et la permission d'écriture sur le coffre. Il est rejeté si :
- Le secret est vide ou n'apparaît pas dans le corps actuel.
- Le nom est invalide, déjà associé, ou son marqueur apparaît déjà dans le corps.
- Le secret apparaît aussi dans les métadonnées, telles que le titre, les étiquettes ou la source, ou resterait dans le nouveau marqueur ou modifierait un marqueur de référence existant.
- Le document présente des versions conflictuelles non résolues, ou le contenu résultant dépasse ses limites de taille ou de références.
Retirez les valeurs exposées des métadonnées et résolvez les conflits avant de réessayer. Ces modifications conservent également les versions historiques signées.
Copier une valeur actuelle
La copie nécessite sudo local. Pour une référence de document, fournissez son libellé même s'il n'existe qu'une référence. Pour un identifiant ou une fiche protégée, utilisez son propre identifiant :
memories sudo
memories credential copy VAULT_ID DOCUMENT_ID --label API_KEY
memories credential copy VAULT_ID CREDENTIAL_ID
memories credential copy VAULT_ID PROTECTED_CARD_ID
La CLI écrit dans le presse-papiers du système et affiche uniquement l'état de la
copie ("copied": true). Le client local authentifié reçoit le texte en clair pour
effectuer la copie. Les lectures et exports génériques d'identifiants restent
indisponibles, et MCP ne peut effectuer ni remplacement ni copie, même avec une autorisation d'écriture.
Dans l'application mobile, choisissez Copier le secret dans le menu du document, de la fiche protégée ou de l'identifiant. Sélectionnez le nom de référence pour un document, confirmez l'avertissement du presse-papiers et effectuez l'autorisation lorsque demandé. L'application indique le succès sans afficher la valeur et ignore les réponses tardives après le passage en arrière-plan ou le verrouillage.
Les fiches protégées de compte et de jeton copient leur mot de passe ou jeton stocké. Une fiche env copie son texte dotenv stocké. Une fiche OTP copie sa graine Base32 ; utilisez l'action OTP distincte pour générer un code à usage unique actuel. La copie dans le presse-papiers accepte uniquement du texte UTF-8 et rejette les identifiants contenant des octets NUL.
| Plateforme | Exigence du presse-papiers |
|---|---|
| CLI Windows | Accès natif au presse-papiers Windows |
| CLI macOS | pbcopy disponible dans l'environnement de la CLI |
CLI Linux, avec WAYLAND_DISPLAY défini |
wl-copy et accès à la session Wayland |
| CLI Linux, sinon | xclip et accès au presse-papiers X11 |
| Mobile | Presse-papiers de la plateforme via Flutter |
Linux sélectionne l'utilitaire à partir de WAYLAND_DISPLAY ; il ne bascule pas
automatiquement de wl-copy à xclip. Un utilitaire absent ou un presse-papiers
inaccessible fait échouer la commande. Le service enregistre une intention de
livraison avant d'envoyer la valeur au client ; cette seule entrée d'audit ne prouve donc pas le succès de la copie.
Modification, synchronisation et limites
La table typée secrets du document associe les libellés aux ID des identifiants.
Saisir manuellement un marqueur ne crée pas d'identifiant et n'accorde aucun accès.
Les modifications ordinaires doivent conserver la table existante ; la CLI et
l'éditeur mobile la préservent. L'outil MCP actuel card_write ne transporte pas
cette table : la mise à jour par cet outil d'une fiche contenant des références de
secrets est donc rejetée. Utilisez la CLI ou l'éditeur mobile pour ces fiches.
Retirer un marqueur du corps ne supprime ni l'association ni l'identifiant.
Les références résolvent la valeur actuelle de l'identifiant. Pour la mettre à jour,
utilisez l'identifiant renvoyé avec une commande autorisée de remplacement, par
exemple memories credential add VAULT_ID API_KEY --id CREDENTIAL_ID, qui demande
une saisie masquée. Le marqueur du document reste inchangé. Cela modifie la valeur
stockée ; la rotation de clé côté fournisseur doit être effectuée séparément.
Le document et l'identifiant accompagnent leur coffre pendant la synchronisation chiffrée. La récupération indépendante de sauvegarde conserve les références des ressources non ambiguës ; les coffres limités à l'appareil restent exclus de la synchronisation et des sauvegardes. Supprimer un identifiant référencé ou le laisser en conflit empêche la copie via cette référence.
Le remplacement modifie uniquement le corps actuel. Les révisions signées antérieures, archives de récupération, sauvegardes existantes, autres documents et copies partagées peuvent conserver le secret d'origine. Révoquez ou faites tourner les clés déjà exposées auprès de leur émetteur.
Le contenu du presse-papiers peut subsister après le verrouillage et être lu ou conservé par d'autres applications, l'historique du presse-papiers ou la synchronisation du système. Effacez le presse-papiers après utilisation ; l'application ne garantit pas son effacement.