mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
	
	
		
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const data_dir = require('./data_dir');
							 | 
						||
| 
								 | 
							
								const utils = require('./utils');
							 | 
						||
| 
								 | 
							
								const fs = require('fs-extra');
							 | 
						||
| 
								 | 
							
								const sqlite = require('sqlite');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								async function anonymize() {
							 | 
						||
| 
								 | 
							
								    if (!fs.existsSync(data_dir.ANONYMIZED_DB_DIR)) {
							 | 
						||
| 
								 | 
							
								        fs.mkdirSync(data_dir.ANONYMIZED_DB_DIR, 0o700);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const anonymizedFile = data_dir.ANONYMIZED_DB_DIR + "/" + "backup-" + utils.getDateTimeForFile() + ".db";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    fs.copySync(data_dir.DOCUMENT_PATH, anonymizedFile);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const db = await sqlite.open(anonymizedFile, {Promise});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    await db.run("UPDATE notes SET note_title = 'title', note_text = 'text'");
							 | 
						||
| 
								 | 
							
								    await db.run("UPDATE notes_history SET note_title = 'title', note_text = 'text'");
							 | 
						||
| 
								 | 
							
								    await db.run("UPDATE notes_tree SET prefix = 'prefix' WHERE prefix IS NOT NULL");
							 | 
						||
| 
								 | 
							
								    await db.run(`UPDATE options SET opt_value = 'anonymized' WHERE opt_name IN 
							 | 
						||
| 
								 | 
							
								                    ('document_secret', 'encrypted_data_key', 'password_verification_hash', 
							 | 
						||
| 
								 | 
							
								                     'password_verification_salt', 'password_derived_key_salt')`);
							 | 
						||
| 
								 | 
							
								    await db.run("VACUUM");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    await db.close();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								    anonymize
							 | 
						||
| 
								 | 
							
								};
							 |