Mémoire : consentement prouvé obligatoire
Effectif dans le cerveau déployé : sans preuve, l'écriture est refusée. Le SDK l'exige aussi : sans preuve, rien n'est envoyé.
ELYSÉA n'écrit aucune mémoire sans une preuve de consentement fournie par vous, le constructeur. Le consentToken authentifie l'opération (P7) ; il ne vaut pas consentement.
Ce que vous devez montrer — un texte de consentement mémoire explicite et séparé (pas noyé dans des conditions générales), accepté par un geste positif de l'utilisateur.
Ce que vous devez conserver — le texte exact affiché, sa version, l'horodatage de l'accord et l'utilisateur concerné, pour pouvoir prouver l'accord.
Ce que vous devez envoyer — à chaque memory.write, une preuve MemoryConsentProof. Tous les champs sont obligatoires et non vides ; le SDK n'en remplit aucun à votre place.
| Champ | Contenu |
|---|
granted | true |
consent_text_version | version du texte affiché |
libelle_sha256 | libelleSha256(texte) — SHA-256 hexadécimal des octets UTF-8 du texte exact affiché, sans aucune normalisation |
consent_granted_at | horodatage ISO 8601 de l'accord, enregistré par vous |
constructor_legal_entity | votre entité juridique |
app_id | votre application |
typescriptimport { libelleSha256, ElyseaSDKError, ElyseaNetworkError, type MemoryConsentProof } from '@elysea/core';
// Votre enregistrement de l'accord (texte exact affiché, version, horodatage)
const preuve: MemoryConsentProof = {
granted: true,
consent_text_version: accord.version,
libelle_sha256: libelleSha256(accord.texteAffiche),
consent_granted_at: accord.accepteLe,
constructor_legal_entity: 'Votre Société SAS',
app_id: 'votre-app',
};
try {
await elysea.memory.write(
coreUserId,
{ type: 'preferences_communication', content: 'Réponses courtes.', expires_at: '2027-01-01T00:00:00Z' },
consentToken,
preuve,
);
} catch (e) {
if ((e instanceof ElyseaSDKError || e instanceof ElyseaNetworkError) && e.errorCode === 'CONSENT_PROOF_REQUIRED') {
// Mémoire désactivée pour cet utilisateur : ne pas réessayer sans preuve complète.
}
} Sans preuve, la mémoire reste désactivée
- preuve absente ou incomplète → ElyseaSDKError CONSENT_PROOF_REQUIRED, avant tout envoi ;
- refus du cerveau (HTTP 403 CONSENT_PROOF_REQUIRED) → ElyseaNetworkError avec errorCode 'CONSENT_PROOF_REQUIRED' — jamais silencieux, jamais confondu avec une erreur d'authentification.
Retrait — dès que l'utilisateur retire son accord, cessez d'envoyer la preuve (aucune nouvelle écriture n'est alors possible) et effacez les éléments déjà écrits avec memory.delete(coreUserId, itemId, consentToken). Le cerveau n'expose pas encore de route SDK pour retirer l'accord lui-même.