diff --git a/package.json b/package.json index 0d7969c..1de4cad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "beanbagdb", - "version": "0.6.0", + "version": "0.6.1", "description": "A JS library to introduce a schema layer to a No-SQL local database", "main": "src/index.js", "module": "src/index.js", diff --git a/src/index.js b/src/index.js index 48cb76d..0f7250f 100644 --- a/src/index.js +++ b/src/index.js @@ -1043,13 +1043,16 @@ async _upgrade_schema_in_bulk(schemas,log_upgrade=false,log_message="Schema Upgr if (!schema_name) { throw new Error("Schema name not provided for the blank doc"); } + let dt = this.util_get_now_unix_timestamp() + let title = `${schema_name} document - ${dt}` let doc = { data: {}, meta: { - created_on: this.util_get_now_unix_timestamp(), + created_on: dt, tags: [], app: {}, link: this.util_generate_random_link(), // there is a link by default. overwrite this if user provided one but only before checking if it is unique + title: title }, schema: schema_name, }; @@ -1088,7 +1091,6 @@ async _upgrade_schema_in_bulk(schemas,log_upgrade=false,log_message="Schema Upgr console.log(error) throw new EncryptionError([{message:error.message}]) } - } /** diff --git a/src/system_schema.js b/src/system_schema.js index acc65c6..242ec90 100644 --- a/src/system_schema.js +++ b/src/system_schema.js @@ -363,6 +363,48 @@ export const default_app = { encrypted_fields: [], }, }, + { + name: "system_script", + system_generated: true, + title: "Executable script", + active: true, + version: 0.1, + description: "To create scripts that implement some logic. Can run both on browser and client.", + schema: { + type: "object", + additionalProperties: true, + required: ["script","type","version"], + properties: { + type: { + type: "string", + default:"JS" + }, + script: { + type: "string", + description:"The script", + default:"" + }, + usage:{ + type:"string", + description:"Documentation", + default:" " + }, + version :{ + type:"number", + default:0.1 + }, + log_execution:{ + type:"boolean", + default:false + } + }, + }, + settings: { + primary_keys: [], + non_editable_fields: [], + encrypted_fields: [], + }, + }, ], records: [], }; @@ -384,6 +426,10 @@ export const editable_metadata_schema = { maxLength: 2000, pattern: "^[a-zA-Z0-9-]+$", }, + title:{ + type:"string", + maxLength:10000 + } }, }; diff --git a/test/operations.test.js b/test/operations.test.js index 3040d6d..71fb1ee 100644 --- a/test/operations.test.js +++ b/test/operations.test.js @@ -1371,7 +1371,7 @@ describe("Doc search tests", async () => { it('all docs', async () => { try { let udata = await database3.search({selector:{}}) - assert(udata.docs.length==12) + assert(udata.docs.length==13) } catch (error) { //console.log(error) throw error @@ -1391,7 +1391,7 @@ describe("Doc search tests", async () => { it('read docs 2', async () => { try { let udata = await database3.search({selector:{"schema":"schema"}}) - assert(udata.docs.length==8) // schema,book,setting,key,edge,edge_constraints + assert(udata.docs.length==9) // schema,book,setting,key,edge,edge_constraints } catch (error) { //console.log(error) throw error