shortening of noteIds to 12 characters

This commit is contained in:
azivner 2017-10-28 12:12:20 -04:00
parent a76e82e9a2
commit 966ac6f620
6 changed files with 16 additions and 14 deletions

View File

@ -0,0 +1,6 @@
UPDATE notes SET note_id = substr(note_id, 0, 13);
UPDATE notes_tree SET note_id = substr(note_id, 0, 13), note_pid = substr(note_pid, 0, 13);
UPDATE notes_history SET note_id = substr(note_id, 0, 13);
UPDATE audit_log SET note_id = substr(note_id, 0, 13);
UPDATE links SET note_id = substr(note_id, 0, 13);
UPDATE images SET note_id = substr(note_id, 0, 13);

View File

@ -90,7 +90,7 @@ function goToInternalNote(e, callback) {
} }
function getNoteIdFromLink(url) { function getNoteIdFromLink(url) {
const noteIdMatch = /app#([A-Za-z0-9]{22})/.exec(url); const noteIdMatch = /app#([A-Za-z0-9]{12})/.exec(url);
if (noteIdMatch === null) { if (noteIdMatch === null) {
return null; return null;
@ -101,7 +101,7 @@ function getNoteIdFromLink(url) {
} }
function getNodeIdFromLabel(label) { function getNodeIdFromLabel(label) {
const noteIdMatch = / \(([A-Za-z0-9]{22})\)/.exec(label); const noteIdMatch = / \(([A-Za-z0-9]{12})\)/.exec(label);
if (noteIdMatch !== null) { if (noteIdMatch !== null) {
return noteIdMatch[1]; return noteIdMatch[1];

View File

@ -51,7 +51,7 @@ router.get('/', auth.checkApiAuth, async (req, res, next) => {
'password_derived_key_salt': await sql.getOption('password_derived_key_salt'), 'password_derived_key_salt': await sql.getOption('password_derived_key_salt'),
'encrypted_data_key': await sql.getOption('encrypted_data_key'), 'encrypted_data_key': await sql.getOption('encrypted_data_key'),
'encryption_session_timeout': await sql.getOption('encryption_session_timeout'), 'encryption_session_timeout': await sql.getOption('encryption_session_timeout'),
'browser_id': utils.randomToken(8), 'browser_id': utils.randomString(12),
'full_load_time': utils.nowTimestamp() 'full_load_time': utils.nowTimestamp()
}); });
}); });

View File

@ -3,7 +3,7 @@ const sql = require('./sql');
const fs = require('fs-extra'); const fs = require('fs-extra');
const log = require('./log'); const log = require('./log');
const APP_DB_VERSION = 15; const APP_DB_VERSION = 16;
const MIGRATIONS_DIR = "./migrations"; const MIGRATIONS_DIR = "./migrations";
async function migrate() { async function migrate() {

View File

@ -82,7 +82,7 @@ async function addAudit(category, req=null, noteId=null, changeFrom=null, change
log.info("audit: " + category + ", browserId=" + browserId + ", noteId=" + noteId + ", from=" + changeFrom log.info("audit: " + category + ", browserId=" + browserId + ", noteId=" + noteId + ", from=" + changeFrom
+ ", to=" + changeTo + ", comment=" + comment); + ", to=" + changeTo + ", comment=" + comment);
const id = utils.randomToken(14); const id = utils.randomString(14);
await execute("INSERT INTO audit_log (id, date_modified, category, browser_id, note_id, change_from, change_to, comment)" await execute("INSERT INTO audit_log (id, date_modified, category, browser_id, note_id, change_from, change_to, comment)"
+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?)", [id, now, category, browserId, noteId, changeFrom, changeTo, comment]); + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)", [id, now, category, browserId, noteId, changeFrom, changeTo, comment]);

View File

@ -1,20 +1,16 @@
"use strict"; "use strict";
const crypto = require('crypto');
function randomToken(length) {
return crypto.randomBytes(length).toString('base64');
}
function newNoteId() { function newNoteId() {
return randomString(22, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); return randomString(12);
} }
const ALPHA_NUMERIC = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
function randomString(length, chars) { function randomString(length, chars) {
let result = ''; let result = '';
for (let i = length; i > 0; --i) { for (let i = length; i > 0; --i) {
result += chars[Math.floor(Math.random() * chars.length)]; result += ALPHA_NUMERIC[Math.floor(Math.random() * ALPHA_NUMERIC.length)];
} }
return result; return result;
@ -33,7 +29,7 @@ function fromBase64(encodedText) {
} }
module.exports = { module.exports = {
randomToken, randomString,
nowTimestamp, nowTimestamp,
newNoteId, newNoteId,
toBase64, toBase64,