Node.js-Schnellstart
Am Ende dieser Seite läuft ein Node.js-Skript, das einen Ende-zu-Ende-verschlüsselten Dokumentenspeicher anlegt, ein Todo schreibt und es wieder ausliest — alles in unter 5 Minuten.
1) Installieren
Lege ein neues Projekt an (oder nimm ein bestehendes) und installiere MindooDB. Node.js 20+ ist Voraussetzung.
npm init -y
npm install mindoodb 2) index.mjs anlegen
Füge Folgendes in index.mjs ein. Der Aufruf von createTenant erzeugt alle kryptografischen Schlüssel (Admin-Signaturschlüssel, Benutzer-Signaturschlüssel, Verschlüsselungsschlüssel, Tenant-Schlüssel) und registriert in einem Schritt den ersten Benutzer. Danach öffnen wir eine Datenbank und erstellen ein Dokument — jede Änderung wird automatisch signiert und verschlüsselt.
import {
BaseMindooTenantFactory,
InMemoryContentAddressedStoreFactory,
} from "mindoodb";
async function main() {
const storeFactory = new InMemoryContentAddressedStoreFactory();
const factory = new BaseMindooTenantFactory(storeFactory);
// One call creates admin + user keys, KeyBag, and directory
const { tenant, adminUser, appUser, keyBag } =
await factory.createTenant({
tenantId: "my-first-tenant",
adminName: "cn=admin/o=demo",
adminPassword: "admin-password",
userName: "cn=alice/o=demo",
userPassword: "user-password",
});
// Open a database and create a todo document
const db = await tenant.openDB("todos");
const todo = await db.createDocument();
await db.changeDoc(todo, async (d) => {
const data = d.getData();
data.title = "Buy milk";
data.done = false;
});
// Read it back
const ids = await db.getAllDocumentIds();
const loaded = await db.getDocument(ids[0]);
console.log("Loaded todo:", loaded.getData());
}
main(); 3) Ausführen
node index.mjs Erwartete Ausgabe:
Loaded todo: { title: 'Buy milk', done: false } Wie geht es weiter?
Bisher ist das ein Setup für einen einzelnen Benutzer. Die eigentliche Stärke von MindooDB ist die Zusammenarbeit mehrerer Benutzer mit Ende-zu-Ende-Verschlüsselung — bei der der Server nie Klartext sieht.