mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-16 18:42:30 +03:00
51 lines
1.3 KiB
MySQL
51 lines
1.3 KiB
MySQL
|
CREATE TABLE hdb_catalog.hdb_action
|
||
|
(
|
||
|
action_name TEXT PRIMARY KEY,
|
||
|
action_defn JSONB NOT NULL,
|
||
|
comment TEXT NULL,
|
||
|
is_system_defined boolean default false
|
||
|
);
|
||
|
|
||
|
CREATE TABLE hdb_catalog.hdb_action_permission
|
||
|
(
|
||
|
action_name TEXT NOT NULL,
|
||
|
role_name TEXT NOT NULL,
|
||
|
definition JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||
|
comment TEXT NULL,
|
||
|
|
||
|
PRIMARY KEY (action_name, role_name),
|
||
|
FOREIGN KEY (action_name) REFERENCES hdb_catalog.hdb_action(action_name) ON UPDATE CASCADE
|
||
|
);
|
||
|
|
||
|
CREATE TABLE hdb_catalog.hdb_action_log
|
||
|
(
|
||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
-- we deliberately do not reference the action name
|
||
|
-- because sometimes we may want to retain history
|
||
|
-- after dropping the action
|
||
|
action_name TEXT,
|
||
|
input_payload JSONB NOT NULL,
|
||
|
request_headers JSONB NOT NULL,
|
||
|
session_variables JSONB NOT NULL,
|
||
|
response_payload JSONB NULL,
|
||
|
errors JSONB NULL,
|
||
|
created_at timestamptz NOT NULL default now(),
|
||
|
response_received_at timestamptz NULL,
|
||
|
status text NOT NULL,
|
||
|
CHECK (status IN ('created', 'processing', 'completed', 'error'))
|
||
|
);
|
||
|
|
||
|
CREATE TABLE hdb_catalog.hdb_custom_types
|
||
|
(
|
||
|
custom_types jsonb NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE VIEW hdb_catalog.hdb_role AS
|
||
|
(
|
||
|
SELECT DISTINCT role_name FROM (
|
||
|
SELECT role_name FROM hdb_catalog.hdb_permission
|
||
|
UNION ALL
|
||
|
SELECT role_name FROM hdb_catalog.hdb_action_permission
|
||
|
) q
|
||
|
);
|