Changeset 0.29.2 (#197)
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
--
|
||||
-- v0.28.7: packages table + package_user_settings in 012.
|
||||
-- v0.29.0: status column + extension_permissions table.
|
||||
-- v0.29.2: ext_data_tables catalog + platform read views.
|
||||
-- ==========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS packages (
|
||||
@@ -88,3 +89,39 @@ CREATE INDEX IF NOT EXISTS idx_ext_perm_granted ON extension_permissions(granted
|
||||
COMMENT ON TABLE extension_permissions IS 'Declared permissions from package manifests. Admin grants control runtime module injection.';
|
||||
COMMENT ON COLUMN extension_permissions.permission IS 'Capability key: secrets.read, notifications.send, filters.pre_completion, db.read, db.write, api.http';
|
||||
COMMENT ON COLUMN extension_permissions.granted IS 'Admin has reviewed and approved this capability for the package';
|
||||
|
||||
|
||||
-- =========================================
|
||||
-- EXTENSION DATA TABLES CATALOG
|
||||
-- =========================================
|
||||
-- Tracks namespaced tables created for each extension on install.
|
||||
-- Used by uninstall hooks (DROP TABLE) and db.list_tables().
|
||||
-- Table names stored without the ext_{id}_ prefix.
|
||||
-- v0.29.2: Extension data storage.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ext_data_tables (
|
||||
package_id TEXT NOT NULL REFERENCES packages(id) ON DELETE CASCADE,
|
||||
table_name TEXT NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
PRIMARY KEY (package_id, table_name)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_ext_data_tables_pkg ON ext_data_tables(package_id);
|
||||
|
||||
COMMENT ON TABLE ext_data_tables IS 'Catalog of namespaced tables created by extension install hooks. Drives uninstall cleanup and db.list_tables().';
|
||||
COMMENT ON COLUMN ext_data_tables.table_name IS 'Logical name (without ext_{id}_ prefix). Physical table is ext_{package_id}_{table_name}.';
|
||||
|
||||
|
||||
-- =========================================
|
||||
-- PLATFORM VIEWS (extension read access)
|
||||
-- =========================================
|
||||
-- Column-allowlisted views over core platform tables.
|
||||
-- Extensions query these via db.view("users"), db.view("channels").
|
||||
-- Only safe, non-sensitive columns are exposed.
|
||||
-- v0.29.2: Read contract for cross-platform data access.
|
||||
|
||||
CREATE OR REPLACE VIEW ext_view_users AS
|
||||
SELECT id, display_name, email FROM users;
|
||||
|
||||
CREATE OR REPLACE VIEW ext_view_channels AS
|
||||
SELECT id, title, type, team_id FROM channels;
|
||||
|
||||
Reference in New Issue
Block a user