mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-19 19:03:36 +00:00
Add more db schema
This commit is contained in:
@@ -34,15 +34,107 @@ export async function up(knex: Knex): Promise<void> {
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.PkiAcmeAccount);
|
||||
}
|
||||
|
||||
// Create PkiAcmeOrder table
|
||||
if (!(await knex.schema.hasTable(TableName.PkiAcmeOrder))) {
|
||||
await knex.schema.createTable(TableName.PkiAcmeOrder, (t) => {
|
||||
t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid());
|
||||
|
||||
// Foreign key to PkiAcmeAccount
|
||||
t.uuid("accountId").notNullable();
|
||||
t.foreign("accountId").references("id").inTable(TableName.PkiAcmeAccount).onDelete("CASCADE");
|
||||
|
||||
// Order status
|
||||
t.string("status").notNullable(); // pending, ready, processing, valid, invalid
|
||||
|
||||
t.timestamps(true, true, true);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.PkiAcmeOrder);
|
||||
}
|
||||
|
||||
// Create PkiAcmeAuth table
|
||||
if (!(await knex.schema.hasTable(TableName.PkiAcmeAuth))) {
|
||||
await knex.schema.createTable(TableName.PkiAcmeAuth, (t) => {
|
||||
t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid());
|
||||
|
||||
// Foreign key to PkiAcmeAccount
|
||||
t.uuid("accountId").notNullable();
|
||||
t.foreign("accountId").references("id").inTable(TableName.PkiAcmeAccount).onDelete("CASCADE");
|
||||
|
||||
// Authorization status
|
||||
t.string("status").notNullable(); // pending, valid, invalid, deactivated, expired, revoked
|
||||
|
||||
// Identifier type and value
|
||||
t.string("identifierType").notNullable(); // dns
|
||||
t.string("identifierValue").notNullable(); // domain name
|
||||
|
||||
// Expiration timestamp
|
||||
t.timestamp("expiresAt").notNullable();
|
||||
|
||||
// Optional link to issued certificate
|
||||
t.uuid("certificateId").nullable();
|
||||
t.foreign("certificateId").references("id").inTable(TableName.Certificate).onDelete("SET NULL");
|
||||
|
||||
t.timestamps(true, true, true);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.PkiAcmeAuth);
|
||||
}
|
||||
|
||||
// Create PkiAcmeChallenge table
|
||||
if (!(await knex.schema.hasTable(TableName.PkiAcmeChallenge))) {
|
||||
await knex.schema.createTable(TableName.PkiAcmeChallenge, (t) => {
|
||||
t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid());
|
||||
|
||||
// Foreign key to PkiAcmeAuth
|
||||
t.uuid("authId").notNullable();
|
||||
t.foreign("authId").references("id").inTable(TableName.PkiAcmeAuth).onDelete("CASCADE");
|
||||
|
||||
// Challenge type
|
||||
t.string("type").notNullable(); // http-01, dns-01, tls-alpn-01
|
||||
|
||||
// Challenge status
|
||||
t.string("status").notNullable(); // pending, processing, valid, invalid
|
||||
|
||||
// Validation timestamp
|
||||
t.timestamp("validatedAt").nullable();
|
||||
|
||||
t.timestamps(true, true, true);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.PkiAcmeChallenge);
|
||||
}
|
||||
}
|
||||
|
||||
export async function down(knex: Knex): Promise<void> {
|
||||
// Drop PkiAcmeAccount table first (depends on PkiAcmeEnrollmentConfig)
|
||||
// Drop tables in reverse dependency order
|
||||
|
||||
// Drop PkiAcmeChallenge first (depends on PkiAcmeAuth)
|
||||
if (await knex.schema.hasTable(TableName.PkiAcmeChallenge)) {
|
||||
await knex.schema.dropTable(TableName.PkiAcmeChallenge);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiAcmeChallenge);
|
||||
}
|
||||
|
||||
// Drop PkiAcmeAuth (depends on PkiAcmeAccount and Certificate)
|
||||
if (await knex.schema.hasTable(TableName.PkiAcmeAuth)) {
|
||||
await knex.schema.dropTable(TableName.PkiAcmeAuth);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiAcmeAuth);
|
||||
}
|
||||
|
||||
// Drop PkiAcmeOrder (depends on PkiAcmeAccount)
|
||||
if (await knex.schema.hasTable(TableName.PkiAcmeOrder)) {
|
||||
await knex.schema.dropTable(TableName.PkiAcmeOrder);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiAcmeOrder);
|
||||
}
|
||||
|
||||
// Drop PkiAcmeAccount (depends on PkiCertificateProfile)
|
||||
if (await knex.schema.hasTable(TableName.PkiAcmeAccount)) {
|
||||
await knex.schema.dropTable(TableName.PkiAcmeAccount);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiAcmeAccount);
|
||||
}
|
||||
|
||||
// Drop PkiAcmeEnrollmentConfig
|
||||
if (await knex.schema.hasTable(TableName.PkiAcmeEnrollmentConfig)) {
|
||||
await knex.schema.dropTable(TableName.PkiAcmeEnrollmentConfig);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiAcmeEnrollmentConfig);
|
||||
|
||||
Reference in New Issue
Block a user