Profiles store script + default config per owner. Workflow steps reference them with profile:, overlay keys win, and the UI marks overrides. Profile name is immutable after create so YAML refs stay stable. Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
26 lines
702 B
JavaScript
26 lines
702 B
JavaScript
/**
|
|
* @param {import("knex").Knex} knex
|
|
*/
|
|
export async function up(knex) {
|
|
await knex.schema.createTable("profiles", (t) => {
|
|
t.text("id").primary();
|
|
t.text("owner").notNullable();
|
|
t.text("name").notNullable();
|
|
t.text("script").notNullable();
|
|
t.text("config").notNullable();
|
|
t.text("description").notNullable().defaultTo("");
|
|
t.text("created_at").notNullable();
|
|
t.text("updated_at").notNullable();
|
|
t.unique(["owner", "name"]);
|
|
});
|
|
|
|
await knex.schema.raw("CREATE INDEX profiles_owner_name_idx ON profiles (owner, name)");
|
|
}
|
|
|
|
/**
|
|
* @param {import("knex").Knex} knex
|
|
*/
|
|
export async function down(knex) {
|
|
await knex.schema.dropTableIfExists("profiles");
|
|
}
|