- Spegnimento
- 19 agosto 2026 alle ore 18:38 UTC
- Autore
- Kamo
- Impegno
- e64cc8b
Ogni corpo di nota in produzione era illeggibile. NOTE MASTER ENCRYPTION KEY was mai impostato ovunque - non nella distribuzione, e il ConfigMap schierato non ha portato note: blocco a tutti - così note.master-crittografia-chiave risolto a vuoto e getUserEncryptionKey ha generato una chiave AES casuale nel mucchio sul primo utilizzo. Che cosa? la chiave ha vissuto esattamente fino a quando il baccello. Ogni schieramento, OOM o nodo si muovono orfano ogni nota scritta prima di esso: decrittografia lanciata, il contenuto è stato annullato, e da un contenuto salvare deliberatamente NULLs contentPlain non c'era nulla di leggibile lasciato. The nota ha mantenuto il suo titolo e il colore e ha perso il suo corpo. Una chiave assente ora ferma il servizio in costruzione. Inventare uno è il fallimento modalità, non un fallback: un servizio di note che non può leggere le note di ieri è peggio di uno che non arriva, perché il primo distrugge i dati tranquillamente. La chiave stessa proviene dal nuovo segreto di note-crittografia-chiave, collegato attraverso entrambi il ConfigMap e la distribuzione, e non deve essere ruotato senza ri-crittografia. Le chiavi per-membro vengono ora da HKDF-SHA256 piuttosto che XOR contro una ripetizione stringa "user-occuid>", che era reversibile - una chiave membro trapelata più un id noto ha recuperato la chiave principale e con esso le note di ogni altro membro. Le chiavi sono anche per l'adesione ora, che corrisponde a come le note stesse sono oggetto di scopo. Né cambiamento costi una migrazione: nessun testo cifrario esistente è stato letto per cominciare. decryptDTO smette di segnalare un fallimento come una nota vuota e imposta decryptionFailed, così un cliente può rifiutare di scrivere su ciò che non poteva leggere.