From d7e444a46c92ea1bbae46272128433df5dd4c5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Markovi=C4=87?= Date: Fri, 9 Jun 2023 20:26:26 +0400 Subject: [PATCH] Connect frontend and backend --- backend/package.json | 6 ++-- frontend/app/[slug]/page.js | 22 ++++++++++++ frontend/lib/directus.js | 5 +++ frontend/package.json | 1 + frontend/pnpm-lock.yaml | 67 +++++++++++++++++++++++++++++++++++++ schema/dump.sql | 54 ++++++++++++++++++++++++++---- 6 files changed, 145 insertions(+), 10 deletions(-) create mode 100644 frontend/app/[slug]/page.js create mode 100644 frontend/lib/directus.js diff --git a/backend/package.json b/backend/package.json index a4e87e5..25b437e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,10 +1,10 @@ { "private": true, "scripts": { + "db:dump": "sqlite3 ../data/data.db .dump > ../schema/dump.sql", + "db:import": "rm -f ../data/data.db && sqlite3 ../data/data.db < ../schema/dump.sql", "dev": "nodemon --exec directus start", - "start": "directus start", - "snapshot": "directus schema snapshot --yes ../schema/snapshot.yaml", - "dump": "sqlite3 ../data/data.db .dump > ../schema/dump.sql" + "start": "directus start" }, "dependencies": { "directus": "10.2.1", diff --git a/frontend/app/[slug]/page.js b/frontend/app/[slug]/page.js new file mode 100644 index 0000000..39dc59e --- /dev/null +++ b/frontend/app/[slug]/page.js @@ -0,0 +1,22 @@ +import { notFound } from 'next/navigation' +import directus from '~/lib/directus' + +async function getPage(slug) { + try { + const page = await directus.items('pages').readOne(slug) + return page + } catch (error) { + notFound() + } +} + +export default async function DynamicPage({ params }) { + const page = await getPage(params.slug) + + return ( +
+

{page.title}

+
+
+ ) +} diff --git a/frontend/lib/directus.js b/frontend/lib/directus.js new file mode 100644 index 0000000..81e4805 --- /dev/null +++ b/frontend/lib/directus.js @@ -0,0 +1,5 @@ +import { Directus } from '@directus/sdk'; + +const directus = new Directus('http://0.0.0.0:8055/'); + +export default directus; diff --git a/frontend/package.json b/frontend/package.json index 887a543..e37dfbc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,6 +9,7 @@ "lint": "next lint" }, "dependencies": { + "@directus/sdk": "10.3.3", "next": "13.4.4", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 7f11dcc..a95c354 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + '@directus/sdk': + specifier: 10.3.3 + version: 10.3.3 next: specifier: 13.4.4 version: 13.4.4(react-dom@18.2.0)(react@18.2.0) @@ -17,6 +20,14 @@ dependencies: packages: + /@directus/sdk@10.3.3: + resolution: {integrity: sha512-58gw+QjkuIr0lJFRx5HwSp1ewAf7rjfV++eJqAmC13p7vif9wfJEcWcJwqXstYdvtJVUg+nB4O/CE0OBEtp5HQ==} + dependencies: + axios: 0.27.2 + transitivePeerDependencies: + - debug + dev: false + /@next/env@13.4.4: resolution: {integrity: sha512-q/y7VZj/9YpgzDe64Zi6rY1xPizx80JjlU2BTevlajtaE3w1LqweH1gGgxou2N7hdFosXHjGrI4OUvtFXXhGLg==} dev: false @@ -108,6 +119,19 @@ packages: tslib: 2.5.3 dev: false + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /axios@0.27.2: + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + transitivePeerDependencies: + - debug + dev: false + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -123,6 +147,37 @@ packages: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -134,6 +189,18 @@ packages: js-tokens: 4.0.0 dev: false + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} diff --git a/schema/dump.sql b/schema/dump.sql index 46f14b3..dd8305a 100644 --- a/schema/dump.sql +++ b/schema/dump.sql @@ -67,38 +67,78 @@ INSERT INTO directus_migrations VALUES('20230401A','Update Material Icons','2023 INSERT INTO directus_migrations VALUES('20230525A','Add Preview Settings','2023-06-09 14:51:51'); INSERT INTO directus_migrations VALUES('20230526A','Migrate Translation Strings','2023-06-09 14:51:51'); CREATE TABLE IF NOT EXISTS "directus_folders" (`id` char(36) NOT NULL, `name` varchar(255) NOT NULL, `parent` char(36), PRIMARY KEY (`id`), FOREIGN KEY (`parent`) REFERENCES `directus_folders` (`id`)); +INSERT INTO directus_folders VALUES('4fe3c63a-cbec-4e7a-af2d-2ba454720476','pages',NULL); CREATE TABLE IF NOT EXISTS "directus_relations" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `many_collection` varchar(64) NOT NULL, `many_field` varchar(64) NOT NULL, `one_collection` varchar(64), `one_field` varchar(64), `one_collection_field` varchar(64), `one_allowed_collections` text, `junction_field` varchar(64), `sort_field` varchar(64), `one_deselect_action` varchar(255) NOT NULL DEFAULT 'nullify'); CREATE TABLE IF NOT EXISTS "directus_revisions" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `activity` integer NOT NULL, `collection` varchar(64) NOT NULL, `item` varchar(255) NOT NULL, `data` json, `delta` json, `parent` integer, FOREIGN KEY (`parent`) REFERENCES `directus_revisions` (`id`), FOREIGN KEY (`activity`) REFERENCES `directus_activity` (`id`) ON DELETE CASCADE); +INSERT INTO directus_revisions VALUES(1,2,'directus_settings','1','{"module_bar":[{"type":"module","id":"content","enabled":true},{"type":"module","id":"users","enabled":true},{"type":"module","id":"files","enabled":true},{"type":"module","id":"insights","enabled":true},{"type":"module","id":"settings","enabled":true,"locked":true}]}','{"module_bar":[{"type":"module","id":"content","enabled":true},{"type":"module","id":"users","enabled":true},{"type":"module","id":"files","enabled":true},{"type":"module","id":"insights","enabled":true},{"type":"module","id":"settings","enabled":true,"locked":true}]}',NULL); +INSERT INTO directus_revisions VALUES(2,3,'directus_fields','1','{"interface":"input","readonly":false,"hidden":false,"field":"slug","collection":"pages"}','{"interface":"input","readonly":false,"hidden":false,"field":"slug","collection":"pages"}',NULL); +INSERT INTO directus_revisions VALUES(3,4,'directus_fields','2','{"width":"full","options":{"choices":[{"text":"$t:published","value":"published"},{"text":"$t:draft","value":"draft"},{"text":"$t:archived","value":"archived"}]},"interface":"select-dropdown","display":"labels","display_options":{"showAsDot":true,"choices":[{"text":"$t:published","value":"published","foreground":"#FFFFFF","background":"var(--primary)"},{"text":"$t:draft","value":"draft","foreground":"#18222F","background":"#D3DAE4"},{"text":"$t:archived","value":"archived","foreground":"#FFFFFF","background":"var(--warning)"}]},"field":"status","collection":"pages"}','{"width":"full","options":{"choices":[{"text":"$t:published","value":"published"},{"text":"$t:draft","value":"draft"},{"text":"$t:archived","value":"archived"}]},"interface":"select-dropdown","display":"labels","display_options":{"showAsDot":true,"choices":[{"text":"$t:published","value":"published","foreground":"#FFFFFF","background":"var(--primary)"},{"text":"$t:draft","value":"draft","foreground":"#18222F","background":"#D3DAE4"},{"text":"$t:archived","value":"archived","foreground":"#FFFFFF","background":"var(--warning)"}]},"field":"status","collection":"pages"}',NULL); +INSERT INTO directus_revisions VALUES(4,5,'directus_collections','pages','{"archive_field":"status","archive_value":"archived","unarchive_value":"draft","singleton":false,"collection":"pages"}','{"archive_field":"status","archive_value":"archived","unarchive_value":"draft","singleton":false,"collection":"pages"}',NULL); +INSERT INTO directus_revisions VALUES(5,6,'directus_fields','3','{"interface":"input","special":null,"collection":"pages","field":"title"}','{"interface":"input","special":null,"collection":"pages","field":"title"}',NULL); +INSERT INTO directus_revisions VALUES(6,7,'directus_fields','4','{"interface":"input-rich-text-html","special":null,"options":{"toolbar":["undo","redo","bold","italic","underline","strikethrough","subscript","superscript","fontfamily","fontsize","h1","h2","h3","h4","h5","h6","alignleft","aligncenter","alignright","alignjustify","alignnone","indent","outdent","numlist","bullist","forecolor","backcolor","removeformat","cut","copy","paste","remove","selectall","blockquote","customLink","unlink","customImage","customMedia","table","hr","code","fullscreen","visualaid"],"folder":null},"collection":"pages","field":"content"}','{"interface":"input-rich-text-html","special":null,"options":{"toolbar":["undo","redo","bold","italic","underline","strikethrough","subscript","superscript","fontfamily","fontsize","h1","h2","h3","h4","h5","h6","alignleft","aligncenter","alignright","alignjustify","alignnone","indent","outdent","numlist","bullist","forecolor","backcolor","removeformat","cut","copy","paste","remove","selectall","blockquote","customLink","unlink","customImage","customMedia","table","hr","code","fullscreen","visualaid"],"folder":null},"collection":"pages","field":"content"}',NULL); +INSERT INTO directus_revisions VALUES(7,8,'directus_folders','4fe3c63a-cbec-4e7a-af2d-2ba454720476','{"name":"pages"}','{"name":"pages"}',NULL); +INSERT INTO directus_revisions VALUES(8,9,'directus_fields','4','{"id":4,"collection":"pages","field":"content","special":null,"interface":"input-rich-text-html","options":{"toolbar":["undo","redo","bold","italic","underline","strikethrough","subscript","superscript","fontfamily","fontsize","h1","h2","h3","h4","h5","h6","alignleft","aligncenter","alignright","alignjustify","alignnone","indent","outdent","numlist","bullist","forecolor","backcolor","removeformat","cut","copy","paste","remove","selectall","blockquote","customLink","unlink","customImage","customMedia","table","hr","code","fullscreen","visualaid"],"folder":"4fe3c63a-cbec-4e7a-af2d-2ba454720476"},"display":null,"display_options":null,"readonly":false,"hidden":false,"sort":null,"width":"full","translations":null,"note":null,"conditions":null,"required":false,"group":null,"validation":null,"validation_message":null}','{"collection":"pages","field":"content","special":null,"interface":"input-rich-text-html","options":{"toolbar":["undo","redo","bold","italic","underline","strikethrough","subscript","superscript","fontfamily","fontsize","h1","h2","h3","h4","h5","h6","alignleft","aligncenter","alignright","alignjustify","alignnone","indent","outdent","numlist","bullist","forecolor","backcolor","removeformat","cut","copy","paste","remove","selectall","blockquote","customLink","unlink","customImage","customMedia","table","hr","code","fullscreen","visualaid"],"folder":"4fe3c63a-cbec-4e7a-af2d-2ba454720476"},"display":null,"display_options":null,"readonly":false,"hidden":false,"sort":null,"width":"full","translations":null,"note":null,"conditions":null,"required":false,"group":null,"validation":null,"validation_message":null}',NULL); +INSERT INTO directus_revisions VALUES(9,10,'directus_collections','pages','{"collection":"pages","icon":"note","note":null,"display_template":null,"hidden":false,"singleton":false,"translations":null,"archive_field":"status","archive_app_filter":true,"archive_value":"archived","unarchive_value":"draft","sort_field":null,"accountability":"all","color":null,"item_duplication_fields":null,"sort":null,"group":null,"collapse":"open","preview_url":null}','{"icon":"note"}',NULL); +INSERT INTO directus_revisions VALUES(10,11,'directus_permissions','1','{"role":null,"collection":"pages","action":"read"}','{"role":null,"collection":"pages","action":"read"}',NULL); +INSERT INTO directus_revisions VALUES(11,12,'directus_permissions','1','{"id":1,"role":null,"collection":"pages","action":"read","permissions":{"_and":[{"status":{"_eq":"published"}}]},"validation":null,"presets":null,"fields":null}','{"role":null,"collection":"pages","action":"read","permissions":{"_and":[{"status":{"_eq":"published"}}]},"validation":null,"presets":null,"fields":null}',NULL); +INSERT INTO directus_revisions VALUES(12,13,'pages','about-us','{"slug":"about-us","status":"published","title":"About Us","content":"

Lorem ipsum ...

"}','{"slug":"about-us","status":"published","title":"About Us","content":"

Lorem ipsum ...

"}',NULL); CREATE TABLE `directus_dashboards` (`id` char(36) not null, `name` varchar(255) not null, `icon` varchar(30) not null default 'dashboard', `note` text, `date_created` datetime default CURRENT_TIMESTAMP, `user_created` char(36), `color` varchar(255) null, foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_files" (`id` char(36) NOT NULL, `storage` varchar(255) NOT NULL, `filename_disk` varchar(255), `filename_download` varchar(255) NOT NULL, `title` varchar(255), `type` varchar(255), `folder` char(36), `uploaded_by` char(36), `uploaded_on` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `modified_by` char(36), `modified_on` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `charset` varchar(50), `filesize` bigint DEFAULT null, `width` integer, `height` integer, `duration` integer, `embed` varchar(200), `description` text, `location` text, `tags` text, `metadata` json, PRIMARY KEY (`id`), FOREIGN KEY (`uploaded_by`) REFERENCES `directus_users` (`id`), FOREIGN KEY (`modified_by`) REFERENCES `directus_users` (`id`), FOREIGN KEY (`folder`) REFERENCES `directus_folders` (`id`) ON DELETE SET NULL); CREATE TABLE IF NOT EXISTS "directus_permissions" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `role` char(36), `collection` varchar(64) NOT NULL, `action` varchar(10) NOT NULL, `permissions` json, `validation` json, `presets` json, `fields` text, FOREIGN KEY (`role`) REFERENCES `directus_roles` (`id`) ON DELETE CASCADE); +INSERT INTO directus_permissions VALUES(1,NULL,'pages','read','{"_and":[{"status":{"_eq":"published"}}]}',NULL,NULL,NULL); CREATE TABLE IF NOT EXISTS "directus_webhooks" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `name` varchar(255) NOT NULL, `method` varchar(10) NOT NULL DEFAULT 'POST', `url` varchar(255) NOT NULL, `status` varchar(10) NOT NULL DEFAULT 'active', `data` boolean NOT NULL DEFAULT '1', `actions` varchar(100) NOT NULL, `collections` varchar(255) NOT NULL, `headers` json); CREATE TABLE IF NOT EXISTS "directus_collections" (`collection` varchar(64) NOT NULL, `icon` varchar(30), `note` text, `display_template` varchar(255), `hidden` boolean NOT NULL DEFAULT '0', `singleton` boolean NOT NULL DEFAULT '0', `translations` json, `archive_field` varchar(64), `archive_app_filter` boolean NOT NULL DEFAULT '1', `archive_value` varchar(255), `unarchive_value` varchar(255), `sort_field` varchar(64), `accountability` varchar(255) DEFAULT 'all', `color` varchar(255) NULL, `item_duplication_fields` json NULL, `sort` integer, `group` varchar(64), `collapse` varchar(255) NOT NULL DEFAULT 'open', `preview_url` varchar(255) null, PRIMARY KEY (`collection`), FOREIGN KEY (`group`) REFERENCES `directus_collections` (`collection`)); +INSERT INTO directus_collections VALUES('pages','note',NULL,NULL,0,0,NULL,'status',1,'archived','draft',NULL,'all',NULL,NULL,NULL,NULL,'open',NULL); CREATE TABLE IF NOT EXISTS "directus_fields" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `collection` varchar(64) NOT NULL, `field` varchar(64) NOT NULL, `special` varchar(64), `interface` varchar(64), `options` json, `display` varchar(64), `display_options` json, `readonly` boolean NOT NULL DEFAULT '0', `hidden` boolean NOT NULL DEFAULT '0', `sort` integer, `width` varchar(30) DEFAULT 'full', `translations` json, `note` text, `conditions` json, `required` boolean DEFAULT '0', `group` varchar(64), `validation` json, `validation_message` text); +INSERT INTO directus_fields VALUES(1,'pages','slug',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); +INSERT INTO directus_fields VALUES(2,'pages','status',NULL,'select-dropdown','{"choices":[{"text":"$t:published","value":"published"},{"text":"$t:draft","value":"draft"},{"text":"$t:archived","value":"archived"}]}','labels','{"showAsDot":true,"choices":[{"text":"$t:published","value":"published","foreground":"#FFFFFF","background":"var(--primary)"},{"text":"$t:draft","value":"draft","foreground":"#18222F","background":"#D3DAE4"},{"text":"$t:archived","value":"archived","foreground":"#FFFFFF","background":"var(--warning)"}]}',0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); +INSERT INTO directus_fields VALUES(3,'pages','title',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); +INSERT INTO directus_fields VALUES(4,'pages','content',NULL,'input-rich-text-html','{"toolbar":["undo","redo","bold","italic","underline","strikethrough","subscript","superscript","fontfamily","fontsize","h1","h2","h3","h4","h5","h6","alignleft","aligncenter","alignright","alignjustify","alignnone","indent","outdent","numlist","bullist","forecolor","backcolor","removeformat","cut","copy","paste","remove","selectall","blockquote","customLink","unlink","customImage","customMedia","table","hr","code","fullscreen","visualaid"],"folder":"4fe3c63a-cbec-4e7a-af2d-2ba454720476"}',NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); CREATE TABLE IF NOT EXISTS "directus_roles" (`id` char(36) NOT NULL, `name` varchar(100) NOT NULL, `icon` varchar(30) NOT NULL DEFAULT 'supervised_user_circle', `description` text, `ip_access` text, `enforce_tfa` boolean NOT NULL DEFAULT '0', `admin_access` boolean NOT NULL DEFAULT '0', `app_access` boolean NOT NULL DEFAULT '1', PRIMARY KEY (`id`)); INSERT INTO directus_roles VALUES('067808bd-7c13-40be-8c11-9ba654b79465','Administrator','verified','$t:admin_description',NULL,0,1,1); CREATE TABLE `directus_shares` (`id` char(36) not null, `name` varchar(255), `collection` varchar(64), `item` varchar(255), `role` char(36), `password` varchar(255), `user_created` char(36), `date_created` datetime default CURRENT_TIMESTAMP, `date_start` datetime null default null, `date_end` datetime null default null, `times_used` integer default '0', `max_uses` integer, foreign key(`collection`) references `directus_collections`(`collection`) on delete CASCADE, foreign key(`role`) references `directus_roles`(`id`) on delete CASCADE, foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_sessions" (`token` varchar(64) NOT NULL, `user` char(36), `expires` datetime NOT NULL, `ip` varchar(255), `user_agent` varchar(255), `share` char(36), `origin` varchar(255) null, PRIMARY KEY (`token`), FOREIGN KEY (`user`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`share`) REFERENCES `directus_shares` (`id`) ON DELETE CASCADE); +INSERT INTO directus_sessions VALUES('yLAw2dHzPl72pVnmc9mxL-RPy4DGd5c5bNceVqRonWuqdC46wPQGbcXSSzJtJsB9','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686931028880,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',NULL,'http://0.0.0.0:8055'); CREATE TABLE IF NOT EXISTS "directus_users" (`id` char(36) NOT NULL, `first_name` varchar(50), `last_name` varchar(50), `email` varchar(128), `password` varchar(255), `location` varchar(255), `title` varchar(50), `description` text, `tags` json, `avatar` char(36), `language` varchar(255) DEFAULT null, `theme` varchar(20) DEFAULT 'auto', `tfa_secret` varchar(255), `status` varchar(16) NOT NULL DEFAULT 'active', `role` char(36), `token` varchar(255), `last_access` datetime, `last_page` varchar(255), `provider` varchar(128) NOT NULL DEFAULT 'default', `external_identifier` varchar(255), `auth_data` json, `email_notifications` boolean DEFAULT '1', PRIMARY KEY (`id`), FOREIGN KEY (`role`) REFERENCES `directus_roles` (`id`) ON DELETE SET NULL); -INSERT INTO directus_users VALUES('f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,NULL,'okram@civokram.com','$argon2id$v=19$m=65536,t=3,p=4$rk0X9HITfk7OIfvEjOrbew$Q4wUp0tjs42ocHPwVPzI3dksy+JKWzQzO5a3gqOwDg8',NULL,NULL,NULL,NULL,NULL,NULL,'auto',NULL,'active','067808bd-7c13-40be-8c11-9ba654b79465',NULL,NULL,NULL,'default',NULL,NULL,1); +INSERT INTO directus_users VALUES('f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,NULL,'okram@civokram.com','$argon2id$v=19$m=65536,t=3,p=4$rk0X9HITfk7OIfvEjOrbew$Q4wUp0tjs42ocHPwVPzI3dksy+JKWzQzO5a3gqOwDg8',NULL,NULL,NULL,NULL,NULL,NULL,'auto',NULL,'active','067808bd-7c13-40be-8c11-9ba654b79465',NULL,1686326228891,'/content/pages','default',NULL,NULL,1); CREATE TABLE IF NOT EXISTS "directus_panels" (`id` char(36) NOT NULL, `dashboard` char(36) NOT NULL, `name` varchar(255), `icon` varchar(30) DEFAULT null, `color` varchar(10), `show_header` boolean NOT NULL DEFAULT '0', `note` text, `type` varchar(255) NOT NULL, `position_x` integer NOT NULL, `position_y` integer NOT NULL, `width` integer NOT NULL, `height` integer NOT NULL, `options` json, `date_created` datetime DEFAULT CURRENT_TIMESTAMP, `user_created` char(36), FOREIGN KEY (`dashboard`) REFERENCES `directus_dashboards` (`id`) ON DELETE CASCADE, FOREIGN KEY (`user_created`) REFERENCES `directus_users` (`id`) ON DELETE SET NULL, PRIMARY KEY (`id`)); CREATE TABLE `directus_flows` (`id` char(36) not null, `name` varchar(255) not null, `icon` varchar(30), `color` varchar(255) null, `description` text, `status` varchar(255) not null default 'active', `trigger` varchar(255), `accountability` varchar(255) default 'all', `options` json, `operation` char(36), `date_created` datetime default CURRENT_TIMESTAMP, `user_created` char(36), foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE `directus_operations` (`id` char(36) not null, `name` varchar(255), `key` varchar(255) not null, `type` varchar(255) not null, `position_x` integer not null, `position_y` integer not null, `options` json, `resolve` char(36), `reject` char(36), `flow` char(36) not null, `date_created` datetime default CURRENT_TIMESTAMP, `user_created` char(36), foreign key(`resolve`) references `directus_operations`(`id`), foreign key(`reject`) references `directus_operations`(`id`), foreign key(`flow`) references `directus_flows`(`id`) on delete CASCADE, foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_activity" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `action` varchar(45) NOT NULL, `user` char(36), `timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `ip` varchar(50), `user_agent` varchar(255), `collection` varchar(64) NOT NULL, `item` varchar(255) NOT NULL, `comment` text, `origin` varchar(255) null); +INSERT INTO directus_activity VALUES(1,'login','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325226329,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_users','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(2,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325235960,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_settings','1',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(3,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325316874,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_fields','1',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(4,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325316884,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_fields','2',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(5,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325316893,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_collections','pages',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(6,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325341265,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_fields','3',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(7,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325423813,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_fields','4',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(8,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325430427,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_folders','4fe3c63a-cbec-4e7a-af2d-2ba454720476',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(9,'update','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325459735,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_fields','4',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(10,'update','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325749015,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_collections','pages',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(11,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325766541,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_permissions','1',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(12,'update','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325778487,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','directus_permissions','1',NULL,'http://0.0.0.0:8055'); +INSERT INTO directus_activity VALUES(13,'create','f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',1686325815292,'127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','pages','about-us',NULL,'http://0.0.0.0:8055'); CREATE TABLE IF NOT EXISTS "directus_notifications" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `timestamp` datetime DEFAULT CURRENT_TIMESTAMP, `status` varchar(255) DEFAULT 'inbox', `recipient` char(36) NOT NULL, `sender` char(36), `subject` varchar(255) NOT NULL, `message` text, `collection` varchar(64), `item` varchar(255), FOREIGN KEY (`recipient`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`sender`) REFERENCES `directus_users` (`id`)); CREATE TABLE IF NOT EXISTS "directus_presets" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `bookmark` varchar(255), `user` char(36), `role` char(36), `collection` varchar(64), `search` varchar(100), `layout` varchar(100) DEFAULT 'tabular', `layout_query` json, `layout_options` json, `refresh_interval` integer, `filter` json, `icon` varchar(30) DEFAULT 'bookmark', `color` varchar(255) NULL, FOREIGN KEY (`user`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`role`) REFERENCES `directus_roles` (`id`) ON DELETE CASCADE); +INSERT INTO directus_presets VALUES(1,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_files',NULL,'cards','{"cards":{"sort":["-uploaded_on"],"limit":25,"page":1}}','{"cards":{"icon":"insert_drive_file","title":"{{ title }}","subtitle":"{{ type }} • {{ filesize }}","size":4,"imageFit":"crop"}}',NULL,NULL,'bookmark',NULL); +INSERT INTO directus_presets VALUES(2,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'pages',NULL,NULL,'{"tabular":{"limit":25,"fields":["status","slug","title","content"]}}','{"tabular":{"widths":{}}}',NULL,NULL,'bookmark',NULL); +INSERT INTO directus_presets VALUES(3,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_users',NULL,'cards','{"cards":{"sort":["email"],"limit":25,"page":1}}','{"cards":{"icon":"account_circle","title":"{{ first_name }} {{ last_name }}","subtitle":"{{ email }}","size":4}}',NULL,NULL,'bookmark',NULL); +INSERT INTO directus_presets VALUES(4,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_presets',NULL,NULL,'{"tabular":{"limit":25}}',NULL,NULL,NULL,'bookmark',NULL); CREATE TABLE `directus_translations` (`id` char(36) not null, `language` varchar(255) not null, `key` varchar(255) not null, `value` text not null, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_settings" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `project_name` varchar(100) NOT NULL DEFAULT 'Directus', `project_url` varchar(255), `project_color` varchar(50) DEFAULT null, `project_logo` char(36), `public_foreground` char(36), `public_background` char(36), `public_note` text, `auth_login_attempts` integer DEFAULT '25', `auth_password_policy` varchar(100), `storage_asset_transform` varchar(7) DEFAULT 'all', `storage_asset_presets` json, `custom_css` text, `storage_default_folder` char(36), `basemaps` json, `mapbox_key` varchar(255), `module_bar` json, `project_descriptor` varchar(100) NULL, `default_language` varchar(255) NOT NULL DEFAULT 'en-US', `custom_aspect_ratios` json, FOREIGN KEY (`project_logo`) REFERENCES `directus_files` (`id`), FOREIGN KEY (`public_foreground`) REFERENCES `directus_files` (`id`), FOREIGN KEY (`public_background`) REFERENCES `directus_files` (`id`), CONSTRAINT `directus_settings_storage_default_folder_foreign` FOREIGN KEY (`storage_default_folder`) REFERENCES `directus_folders` (`id`) ON DELETE SET NULL); +INSERT INTO directus_settings VALUES(1,'Directus',NULL,NULL,NULL,NULL,NULL,NULL,25,NULL,'all',NULL,NULL,NULL,NULL,NULL,'[{"type":"module","id":"content","enabled":true},{"type":"module","id":"users","enabled":true},{"type":"module","id":"files","enabled":true},{"type":"module","id":"insights","enabled":true},{"type":"module","id":"settings","enabled":true,"locked":true}]',NULL,'en-US',NULL); +CREATE TABLE `pages` (`slug` varchar(255) not null, `status` varchar(255) not null default 'draft', `title` varchar(255) null, `content` text null, primary key (`slug`)); +INSERT INTO pages VALUES('about-us','published','About Us','

Lorem ipsum ...

'); DELETE FROM sqlite_sequence; INSERT INTO sqlite_sequence VALUES('directus_relations',0); -INSERT INTO sqlite_sequence VALUES('directus_revisions',0); -INSERT INTO sqlite_sequence VALUES('directus_permissions',0); +INSERT INTO sqlite_sequence VALUES('directus_revisions',12); +INSERT INTO sqlite_sequence VALUES('directus_permissions',1); INSERT INTO sqlite_sequence VALUES('directus_webhooks',0); -INSERT INTO sqlite_sequence VALUES('directus_fields',0); -INSERT INTO sqlite_sequence VALUES('directus_activity',0); +INSERT INTO sqlite_sequence VALUES('directus_fields',4); +INSERT INTO sqlite_sequence VALUES('directus_activity',13); INSERT INTO sqlite_sequence VALUES('directus_notifications',0); -INSERT INTO sqlite_sequence VALUES('directus_presets',0); -INSERT INTO sqlite_sequence VALUES('directus_settings',0); +INSERT INTO sqlite_sequence VALUES('directus_presets',4); +INSERT INTO sqlite_sequence VALUES('directus_settings',1); CREATE UNIQUE INDEX `directus_users_external_identifier_unique` on `directus_users` (`external_identifier`); CREATE UNIQUE INDEX `directus_users_email_unique` on `directus_users` (`email`); CREATE UNIQUE INDEX `directus_users_token_unique` on `directus_users` (`token`);