mirror of
https://github.com/zadam/trilium.git
synced 2025-02-23 22:44:44 +08:00
32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
|
#!/usr/bin/env node
|
||
|
|
||
|
const BUILTIN_ATTRIBUTES = require('../src/services/builtin_attributes');
|
||
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
|
||
|
// we want to delete all non-builtin attributes because they can contain sensitive names and values
|
||
|
// on the other hand builtin/system attrs should not contain any sensitive info
|
||
|
const builtinAttrNames = BUILTIN_ATTRIBUTES
|
||
|
.map(attr => "'" + attr.name + "'").join(', ');
|
||
|
|
||
|
const anonymizeScript = `
|
||
|
UPDATE etapi_tokens SET tokenHash = 'API token hash value';
|
||
|
UPDATE notes SET title = 'title';
|
||
|
UPDATE note_contents SET content = 'text' WHERE content IS NOT NULL;
|
||
|
UPDATE note_revisions SET title = 'title';
|
||
|
UPDATE note_revision_contents SET content = 'text' WHERE content IS NOT NULL;
|
||
|
|
||
|
UPDATE attributes SET name = 'name', value = 'value' WHERE type = 'label' AND name NOT IN(${builtinAttrNames});
|
||
|
UPDATE attributes SET name = 'name' WHERE type = 'relation' AND name NOT IN (${builtinAttrNames});
|
||
|
UPDATE branches SET prefix = 'prefix' WHERE prefix IS NOT NULL;
|
||
|
UPDATE options SET value = 'anonymized' WHERE
|
||
|
('documentId', 'documentSecret', 'encryptedDataKey',
|
||
|
'passwordVerificationHash', 'passwordVerificationSalt',
|
||
|
'passwordDerivedKeySalt', 'username', 'syncServerHost', 'syncProxy')
|
||
|
AND value != '';
|
||
|
|
||
|
VACUUM;
|
||
|
`;
|
||
|
|
||
|
fs.writeFileSync(path.resolve(__dirname, 'anonymize-database.sql'), anonymizeScript);
|