diff --git a/packages/server/src/system/migrations/20250701211053_create_api_keys_table.js b/packages/server/src/system/migrations/20250701211053_create_api_keys_table.js new file mode 100644 index 000000000..30523a3be --- /dev/null +++ b/packages/server/src/system/migrations/20250701211053_create_api_keys_table.js @@ -0,0 +1,27 @@ +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = function(knex) { + return knex.schema.createTable('api_keys', (table) => { + table.increments('id').primary(); + + table.bigInteger('tenant_id').unsigned().index().references('id').inTable('tenants'); + table.integer('user_id').unsigned().index().references('id').inTable('users'); + + table.string('name'); + table.text('key'); + + table.dateTime('expires_at').nullable(); + table.dateTime('revoked_at').nullable(); + table.timestamps(); + }); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = function(knex) { + return knex.schema.dropTableIfExists('api_keys'); +};