Komponenten
In der Datenbank werden für Komponenten die Namen, Beschreibungen und die (mit dem Hauptkennwort verschlüsselten) Werte, sowie der Bezug zwischen Komponenten und Geheimnissen (und anderen Komponenten) abgelegt.
Soll ein Geheimnis oder eine Komponente angezeigt werden, deren Inhalt syntaktisch eine Komplettierungsaufforderung enthält, z. B.
in_box{ a_partial_secret }
wird überprüft, ob es eine Komponente namens "a_partial_secret" gibt. In diesem Fall wird "{ a_partial_secret }" durch den Wert der Komponente ersetzt. Also z. B. (wenn der Wert von a_partial_secret "-added-content-" ist wird schließlich als Geheimnis angezeigt:
in_box-added-content-
Gibt es dagegen keine Komponente mit Namen "a_partial_secret" und auch kein Komplement dieses Namens, so erscheint einfach der nicht komplettierte Inhalt:
in_box{ a_partial_secret }
Woher weiß das JavaScript, welche Komponenten es gibt?
Beim Laden des Dokuments (Geheimnis oder Komponente) aus der Box wird dem JavaScript die ID des Dokuments mitgeteilt. Wird nun beim Parsing eine Komplettierungs-Syntax erkannt, fragt das JavaScript beim Server an, ob es für den erkannten Namen eine Komponente gibt. Der Server antwortet entweder mit "false" oder mit dem im Komponenten-Objekt gespeicherten Inhalt.
Warum werden Bezüge zwischen Komponenten und Geheimnissen gespeichert?
Zum Einen ist es wichtig festzustellen, welche Geheimnisse eine Komponente benutzen: Will der Benutzer den Inhalt einer Komponente ändern, so muss er wissen, welche Geheimnisse davon betroffen sind, d. h. welche Logins er entsprechend ändern muss.
Außerdem ist es bei übertragenen Geheimnissen nötig, Komponenten-Bezüge zu beachten: Bei übertragenen Geheimnissen werden solche Bezüge durch die entsprechenden Inhalte ersetzt.