From f89be09e04a80dfdbd805276cfa2686912ab8ee3 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sun, 5 Apr 2026 12:33:52 +0200 Subject: [PATCH] =?UTF-8?q?chore:=20greenfield=20migrations=20=E2=80=94=20?= =?UTF-8?q?remove=20user/role=20tables,=20add=20api=5Fkeys,=20drop=20boots?= =?UTF-8?q?trap=5Ftoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- ...__create_tenants.sql => V001__create_tenants.sql} | 0 ...create_licenses.sql => V002__create_licenses.sql} | 0 ...nvironments.sql => V003__create_environments.sql} | 1 - .../resources/db/migration/V004__create_api_keys.sql | 12 ++++++++++++ .../{V008__create_apps.sql => V005__create_apps.sql} | 1 + ..._deployments.sql => V006__create_deployments.sql} | 0 ...eate_audit_log.sql => V007__create_audit_log.sql} | 2 -- .../db/migration/V010__add_exposed_port_to_apps.sql | 1 - 8 files changed, 13 insertions(+), 4 deletions(-) rename src/main/resources/db/migration/{V005__create_tenants.sql => V001__create_tenants.sql} (100%) rename src/main/resources/db/migration/{V006__create_licenses.sql => V002__create_licenses.sql} (100%) rename src/main/resources/db/migration/{V007__create_environments.sql => V003__create_environments.sql} (93%) create mode 100644 src/main/resources/db/migration/V004__create_api_keys.sql rename src/main/resources/db/migration/{V008__create_apps.sql => V005__create_apps.sql} (95%) rename src/main/resources/db/migration/{V009__create_deployments.sql => V006__create_deployments.sql} (100%) rename src/main/resources/db/migration/{V004__create_audit_log.sql => V007__create_audit_log.sql} (88%) delete mode 100644 src/main/resources/db/migration/V010__add_exposed_port_to_apps.sql diff --git a/src/main/resources/db/migration/V005__create_tenants.sql b/src/main/resources/db/migration/V001__create_tenants.sql similarity index 100% rename from src/main/resources/db/migration/V005__create_tenants.sql rename to src/main/resources/db/migration/V001__create_tenants.sql diff --git a/src/main/resources/db/migration/V006__create_licenses.sql b/src/main/resources/db/migration/V002__create_licenses.sql similarity index 100% rename from src/main/resources/db/migration/V006__create_licenses.sql rename to src/main/resources/db/migration/V002__create_licenses.sql diff --git a/src/main/resources/db/migration/V007__create_environments.sql b/src/main/resources/db/migration/V003__create_environments.sql similarity index 93% rename from src/main/resources/db/migration/V007__create_environments.sql rename to src/main/resources/db/migration/V003__create_environments.sql index e965630..99c1423 100644 --- a/src/main/resources/db/migration/V007__create_environments.sql +++ b/src/main/resources/db/migration/V003__create_environments.sql @@ -3,7 +3,6 @@ CREATE TABLE environments ( tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE, slug VARCHAR(100) NOT NULL, display_name VARCHAR(255) NOT NULL, - bootstrap_token TEXT NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE', created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), diff --git a/src/main/resources/db/migration/V004__create_api_keys.sql b/src/main/resources/db/migration/V004__create_api_keys.sql new file mode 100644 index 0000000..c3a748a --- /dev/null +++ b/src/main/resources/db/migration/V004__create_api_keys.sql @@ -0,0 +1,12 @@ +CREATE TABLE api_keys ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + environment_id UUID NOT NULL REFERENCES environments(id) ON DELETE CASCADE, + key_hash VARCHAR(64) NOT NULL, + key_prefix VARCHAR(12) NOT NULL, + status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE', + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + revoked_at TIMESTAMPTZ +); + +CREATE INDEX idx_api_keys_env ON api_keys(environment_id); +CREATE INDEX idx_api_keys_hash ON api_keys(key_hash); diff --git a/src/main/resources/db/migration/V008__create_apps.sql b/src/main/resources/db/migration/V005__create_apps.sql similarity index 95% rename from src/main/resources/db/migration/V008__create_apps.sql rename to src/main/resources/db/migration/V005__create_apps.sql index 24c1e4c..1967bec 100644 --- a/src/main/resources/db/migration/V008__create_apps.sql +++ b/src/main/resources/db/migration/V005__create_apps.sql @@ -7,6 +7,7 @@ CREATE TABLE apps ( jar_checksum VARCHAR(64), jar_original_filename VARCHAR(255), jar_size_bytes BIGINT, + exposed_port INTEGER, current_deployment_id UUID, previous_deployment_id UUID, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), diff --git a/src/main/resources/db/migration/V009__create_deployments.sql b/src/main/resources/db/migration/V006__create_deployments.sql similarity index 100% rename from src/main/resources/db/migration/V009__create_deployments.sql rename to src/main/resources/db/migration/V006__create_deployments.sql diff --git a/src/main/resources/db/migration/V004__create_audit_log.sql b/src/main/resources/db/migration/V007__create_audit_log.sql similarity index 88% rename from src/main/resources/db/migration/V004__create_audit_log.sql rename to src/main/resources/db/migration/V007__create_audit_log.sql index 1ef015a..df7d155 100644 --- a/src/main/resources/db/migration/V004__create_audit_log.sql +++ b/src/main/resources/db/migration/V007__create_audit_log.sql @@ -15,5 +15,3 @@ CREATE TABLE audit_log ( CREATE INDEX idx_audit_log_tenant ON audit_log (tenant_id, created_at DESC); CREATE INDEX idx_audit_log_actor ON audit_log (actor_id, created_at DESC); CREATE INDEX idx_audit_log_action ON audit_log (action, created_at DESC); - -COMMENT ON TABLE audit_log IS 'Immutable audit trail. No UPDATE or DELETE allowed.'; diff --git a/src/main/resources/db/migration/V010__add_exposed_port_to_apps.sql b/src/main/resources/db/migration/V010__add_exposed_port_to_apps.sql deleted file mode 100644 index bdb3ac1..0000000 --- a/src/main/resources/db/migration/V010__add_exposed_port_to_apps.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE apps ADD COLUMN exposed_port INTEGER;