@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 12.8 kB
JavaScript
const e=e=>({async up(t){await t.schema.createTable(`lucid_tenants`).addColumn(`key`,e.getDataType(`text`),e=>e.primaryKey()).addColumn(`is_deleted`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`)))).addColumn(`is_deleted_at`,e.getDataType(`timestamp`),e=>e.defaultTo(null)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createTable(`lucid_users`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`super_admin`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`))).notNull()).addColumn(`email`,e.getDataType(`text`),e=>e.notNull().unique()).addColumn(`username`,e.getDataType(`text`),e=>e.notNull().unique()).addColumn(`first_name`,e.getDataType(`text`)).addColumn(`last_name`,e.getDataType(`text`)).addColumn(`password`,e.getDataType(`text`)).addColumn(`secret`,e.getDataType(`text`),e=>e.notNull()).addColumn(`triggered_password_reset`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`)))).addColumn(`invitation_accepted`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`)))).addColumn(`is_locked`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`))).notNull()).addColumn(`is_deleted`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`)))).addColumn(`is_deleted_at`,e.getDataType(`timestamp`)).addColumn(`deleted_by`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createTable(`lucid_user_tenants`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`cascade`).notNull()).addColumn(`tenant_key`,e.getDataType(`text`),e=>e.references(`lucid_tenants.key`).onDelete(`cascade`).notNull()).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addUniqueConstraint(`lucid_user_tenants_user_id_tenant_key_unique`,[`user_id`,`tenant_key`]).execute(),await t.schema.createIndex(`idx_lucid_user_tenants_user_id`).on(`lucid_user_tenants`).column(`user_id`).execute(),await t.schema.createIndex(`idx_lucid_user_tenants_tenant_key`).on(`lucid_user_tenants`).column(`tenant_key`).execute(),await t.schema.createTable(`lucid_user_auth_providers`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`cascade`).notNull()).addColumn(`provider_key`,e.getDataType(`text`),e=>e.notNull()).addColumn(`provider_user_id`,e.getDataType(`text`),e=>e.notNull()).addColumn(`linked_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`))).notNull()).addColumn(`metadata`,e.getDataType(`json`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createIndex(`lucid_user_auth_providers_user_id_index`).on(`lucid_user_auth_providers`).column(`user_id`).execute(),await t.schema.createIndex(`lucid_user_auth_providers_provider_lookup_index`).on(`lucid_user_auth_providers`).columns([`provider_key`,`provider_user_id`]).execute(),await t.schema.createTable(`lucid_roles`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`key`,e.getDataType(`text`),e=>e.unique()).addColumn(`locked`,e.getDataType(`boolean`),t=>t.notNull().defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`)))).addColumn(`tenant_key`,e.getDataType(`text`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createIndex(`idx_lucid_roles_tenant_key`).on(`lucid_roles`).column(`tenant_key`).execute(),await t.schema.createTable(`lucid_role_translations`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`role_id`,e.getDataType(`integer`),e=>e.references(`lucid_roles.id`).onDelete(`cascade`).notNull()).addColumn(`locale_code`,e.getDataType(`text`),e=>e.notNull()).addColumn(`name`,e.getDataType(`text`)).addColumn(`description`,e.getDataType(`text`)).addUniqueConstraint(`lucid_role_translations_role_id_locale_code_unique`,[`role_id`,`locale_code`]).execute(),await t.schema.createIndex(`idx_role_translations_role_id`).on(`lucid_role_translations`).column(`role_id`).execute(),await t.schema.createTable(`lucid_role_permissions`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`role_id`,e.getDataType(`integer`),e=>e.references(`lucid_roles.id`).onDelete(`cascade`)).addColumn(`permission`,e.getDataType(`text`),e=>e.notNull()).addColumn(`core`,e.getDataType(`boolean`),t=>t.notNull().defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`true`)))).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createTable(`lucid_user_roles`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`cascade`)).addColumn(`role_id`,e.getDataType(`integer`),e=>e.references(`lucid_roles.id`).onDelete(`cascade`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createTable(`lucid_user_tokens`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).notNull().onDelete(`cascade`)).addColumn(`token_type`,e.getDataType(`varchar`,255)).addColumn(`token`,e.getDataType(`varchar`,255),e=>e.notNull().unique()).addColumn(`revoked_at`,e.getDataType(`timestamp`)).addColumn(`revoke_reason`,e.getDataType(`varchar`,255)).addColumn(`consumed_at`,e.getDataType(`timestamp`)).addColumn(`replaced_by_token_id`,e.getDataType(`integer`),e=>e.references(`lucid_user_tokens.id`).onDelete(`set null`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`expiry_date`,e.getDataType(`timestamp`),e=>e.notNull()).execute(),await t.schema.createIndex(`idx_lucid_user_tokens_user_id`).on(`lucid_user_tokens`).column(`user_id`).execute(),await t.schema.createIndex(`idx_lucid_user_tokens_refresh_lookup`).on(`lucid_user_tokens`).columns([`user_id`,`token_type`,`revoked_at`,`expiry_date`]).execute(),await t.schema.createTable(`lucid_email_change_requests`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).notNull().onDelete(`cascade`)).addColumn(`old_email`,e.getDataType(`text`),e=>e.notNull()).addColumn(`new_email`,e.getDataType(`text`),e=>e.notNull()).addColumn(`confirm_token_id`,e.getDataType(`integer`),e=>e.references(`lucid_user_tokens.id`).notNull().onDelete(`cascade`)).addColumn(`revert_token_id`,e.getDataType(`integer`),e=>e.references(`lucid_user_tokens.id`).notNull().onDelete(`cascade`)).addColumn(`status`,e.getDataType(`varchar`,255),e=>e.notNull()).addColumn(`confirmed_at`,e.getDataType(`timestamp`)).addColumn(`cancelled_at`,e.getDataType(`timestamp`)).addColumn(`reverted_at`,e.getDataType(`timestamp`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).addColumn(`expires_at`,e.getDataType(`timestamp`),e=>e.notNull()).execute(),await t.schema.createIndex(`idx_lucid_email_change_requests_user_status`).on(`lucid_email_change_requests`).columns([`user_id`,`status`,`expires_at`]).execute(),await t.schema.createIndex(`idx_lucid_email_change_requests_confirm_token`).on(`lucid_email_change_requests`).column(`confirm_token_id`).unique().execute(),await t.schema.createIndex(`idx_lucid_email_change_requests_revert_token`).on(`lucid_email_change_requests`).column(`revert_token_id`).unique().execute(),await t.schema.createTable(`lucid_user_logins`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`cascade`)).addColumn(`token_id`,e.getDataType(`integer`),e=>e.references(`lucid_user_tokens.id`).onDelete(`set null`)).addColumn(`auth_method`,e.getDataType(`text`),e=>e.notNull()).addColumn(`ip_address`,e.getDataType(`varchar`,255)).addColumn(`user_agent`,e.getDataType(`text`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`)))).execute(),await t.schema.createTable(`lucid_auth_states`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`state`,e.getDataType(`text`),e=>e.notNull().unique()).addColumn(`provider_key`,e.getDataType(`text`),e=>e.notNull()).addColumn(`redirect_path`,e.getDataType(`text`)).addColumn(`action_type`,e.getDataType(`text`),e=>e.notNull()).addColumn(`invitation_token_id`,e.getDataType(`integer`),e=>e.references(`lucid_user_tokens.id`).onDelete(`cascade`)).addColumn(`invitation_token`,e.getDataType(`text`)).addColumn(`authenticated_user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`))).notNull()).addColumn(`expiry_date`,e.getDataType(`timestamp`),e=>e.notNull()).execute(),await t.schema.createIndex(`lucid_auth_states_state_index`).on(`lucid_auth_states`).column(`state`).execute(),await t.schema.createTable(`lucid_security_audit_logs`).addColumn(`id`,e.getDataType(`primary`),t=>e.primaryKeyColumnBuilder(t)).addColumn(`user_id`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`action`,e.getDataType(`text`),e=>e.notNull()).addColumn(`performed_by`,e.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`performed_by_roles`,e.getDataType(`json`),e=>e.notNull()).addColumn(`performed_by_super_admin`,e.getDataType(`boolean`),t=>t.defaultTo(e.formatDefaultValue(`boolean`,e.getDefault(`boolean`,`false`))).notNull()).addColumn(`ip_address`,e.getDataType(`varchar`,255),e=>e.notNull()).addColumn(`previous_value`,e.getDataType(`text`),e=>e.notNull()).addColumn(`new_value`,e.getDataType(`text`),e=>e.notNull()).addColumn(`created_at`,e.getDataType(`timestamp`),t=>t.defaultTo(e.formatDefaultValue(`timestamp`,e.getDefault(`timestamp`,`now`))).notNull()).execute(),await t.schema.createIndex(`idx_lucid_security_audit_logs_user_id`).on(`lucid_security_audit_logs`).column(`user_id`).execute(),await t.schema.createIndex(`idx_lucid_security_audit_logs_action`).on(`lucid_security_audit_logs`).column(`action`).execute(),await t.schema.createIndex(`idx_lucid_security_audit_logs_performed_by`).on(`lucid_security_audit_logs`).column(`performed_by`).execute(),await t.schema.createIndex(`idx_lucid_security_audit_logs_created_at`).on(`lucid_security_audit_logs`).column(`created_at`).execute()},async down(e){}});export{e as default};
//# sourceMappingURL=00000003-users-and-permissions.mjs.map