Governed substrate for autonomous agents: scoped identity (passports), audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
65 lines
2.1 KiB
PL/PgSQL
65 lines
2.1 KiB
PL/PgSQL
-- T-127901 · ADR-0003 Phase 2 · atoms_v2 widget_ref + settings_override
|
|
--
|
|
-- Storage model reminder: atoms_v2 is universal_tables id=3574. Rows live in
|
|
-- `table_rows.data` (JSONB), "columns" are metadata rows in `table_columns`.
|
|
-- Adding a column = INSERT into table_columns. No PG-level ALTER TABLE.
|
|
--
|
|
-- widget_ref — number (FK-ish → widgets.id; no hard FK so legacy
|
|
-- widget cleanup does not cascade into atom rows)
|
|
-- settings_override — json (per-atom override on top of widget config)
|
|
--
|
|
-- Index: partial expression index on ((data->>'widget_ref')::int) scoped to
|
|
-- atoms_v2 rows, so lookups "which atoms embed widget N" stay cheap without
|
|
-- scanning the full 376-row (PROD) JSONB blob set.
|
|
--
|
|
-- Idempotent: re-running = 0 diff (guarded by NOT EXISTS).
|
|
|
|
BEGIN;
|
|
|
|
-- widget_ref (number, nullable)
|
|
INSERT INTO table_columns (
|
|
table_id, column_name, display_name, type, config,
|
|
order_index, is_visible, is_readonly, is_system,
|
|
created_at, updated_at
|
|
)
|
|
SELECT
|
|
3574, 'widget_ref', 'Widget Ref', 'number', NULL,
|
|
30, 1, 0, 0,
|
|
NOW(), NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM table_columns
|
|
WHERE table_id = 3574 AND column_name = 'widget_ref'
|
|
);
|
|
|
|
-- settings_override (json, nullable)
|
|
INSERT INTO table_columns (
|
|
table_id, column_name, display_name, type, config,
|
|
order_index, is_visible, is_readonly, is_system,
|
|
created_at, updated_at
|
|
)
|
|
SELECT
|
|
3574, 'settings_override', 'Settings Override', 'json', NULL,
|
|
31, 1, 0, 0,
|
|
NOW(), NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM table_columns
|
|
WHERE table_id = 3574 AND column_name = 'settings_override'
|
|
);
|
|
|
|
-- Partial expression index for widget_ref lookups on atoms_v2 rows only.
|
|
CREATE INDEX IF NOT EXISTS idx_atoms_v2_widget_ref
|
|
ON table_rows (((data->>'widget_ref')::int))
|
|
WHERE table_id = 3574 AND data ? 'widget_ref';
|
|
|
|
COMMIT;
|
|
|
|
-- Verify
|
|
SELECT column_name, type, order_index
|
|
FROM table_columns
|
|
WHERE table_id = 3574
|
|
AND column_name IN ('widget_ref','settings_override')
|
|
ORDER BY order_index;
|
|
|
|
SELECT indexname
|
|
FROM pg_indexes
|
|
WHERE indexname = 'idx_atoms_v2_widget_ref';
|