feat(FN-4788): complete Step 1 — add project secrets schema migration
Fusion-Task-Id: FN-4788 Fusion-Task-Lineage: 8de6c7f4-cf0f-4b1f-b664-4e8533b88919
This commit is contained in:
committed by
gsxdsm
parent
5bb15b1713
commit
268eec50a9
@@ -119,7 +119,7 @@ export function probeFts5(db: DatabaseSync): boolean {
|
||||
|
||||
// ── Schema Definition ────────────────────────────────────────────────
|
||||
|
||||
const SCHEMA_VERSION = 82;
|
||||
const SCHEMA_VERSION = 83;
|
||||
|
||||
function normalizeTaskComments(
|
||||
steeringComments: SteeringComment[] | undefined,
|
||||
@@ -675,6 +675,25 @@ CREATE TABLE IF NOT EXISTS eval_run_events (
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idxEvalRunEventsRunIdSeq ON eval_run_events(runId, seq);
|
||||
|
||||
-- FN-4788…FN-4800: pre-allocate secrets storage schema for upcoming secrets subsystem.
|
||||
CREATE TABLE IF NOT EXISTS secrets (
|
||||
id TEXT PRIMARY KEY,
|
||||
key TEXT NOT NULL,
|
||||
value_ciphertext BLOB NOT NULL,
|
||||
nonce BLOB NOT NULL,
|
||||
description TEXT,
|
||||
access_policy TEXT NOT NULL DEFAULT 'auto'
|
||||
CHECK (access_policy IN ('auto', 'prompt', 'deny')),
|
||||
env_exportable INTEGER NOT NULL DEFAULT 0
|
||||
CHECK (env_exportable IN (0, 1)),
|
||||
env_export_key TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
last_read_at TEXT,
|
||||
last_read_by TEXT
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idxSecretsKey ON secrets(key);
|
||||
|
||||
-- Schema version tracking
|
||||
CREATE TABLE IF NOT EXISTS __meta (
|
||||
key TEXT PRIMARY KEY,
|
||||
@@ -3324,6 +3343,32 @@ export class Database {
|
||||
});
|
||||
}
|
||||
|
||||
if (version < 83) {
|
||||
this.applyMigration(83, () => {
|
||||
if (!this.hasTable("secrets")) {
|
||||
this.db.exec(`
|
||||
CREATE TABLE secrets (
|
||||
id TEXT PRIMARY KEY,
|
||||
key TEXT NOT NULL,
|
||||
value_ciphertext BLOB NOT NULL,
|
||||
nonce BLOB NOT NULL,
|
||||
description TEXT,
|
||||
access_policy TEXT NOT NULL DEFAULT 'auto'
|
||||
CHECK (access_policy IN ('auto', 'prompt', 'deny')),
|
||||
env_exportable INTEGER NOT NULL DEFAULT 0
|
||||
CHECK (env_exportable IN (0, 1)),
|
||||
env_export_key TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
last_read_at TEXT,
|
||||
last_read_by TEXT
|
||||
)
|
||||
`);
|
||||
this.db.exec("CREATE UNIQUE INDEX IF NOT EXISTS idxSecretsKey ON secrets(key)");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user