2019-07-22 15:47:13 +03:00
|
|
|
type: bulk
|
|
|
|
args:
|
|
|
|
|
2021-01-06 19:06:24 +03:00
|
|
|
|
|
|
|
# A user can query only code but not country
|
|
|
|
|
2019-07-22 15:47:13 +03:00
|
|
|
- type: run_sql
|
|
|
|
args:
|
|
|
|
sql: |
|
|
|
|
CREATE TABLE colors
|
|
|
|
( value text PRIMARY KEY
|
|
|
|
, comment text );
|
|
|
|
INSERT INTO colors (value, comment) VALUES
|
|
|
|
('red', '#FF0000'),
|
|
|
|
('green', '#00FF00'),
|
|
|
|
('blue', '#0000FF'),
|
|
|
|
('orange', '#FFFF00'),
|
|
|
|
('yellow', '#00FFFF'),
|
|
|
|
('purple', '#FF00FF');
|
|
|
|
|
|
|
|
CREATE TABLE users
|
|
|
|
( id serial PRIMARY KEY
|
|
|
|
, name text NOT NULL
|
|
|
|
, favorite_color text NOT NULL REFERENCES colors );
|
|
|
|
INSERT INTO users (name, favorite_color) VALUES
|
|
|
|
('Alyssa', 'red'),
|
|
|
|
('Ben', 'blue');
|
|
|
|
|
2020-08-05 17:08:36 +03:00
|
|
|
CREATE TABLE country
|
|
|
|
( value text PRIMARY KEY
|
|
|
|
, comment text);
|
|
|
|
INSERT INTO country (value, comment) VALUES
|
|
|
|
('India', 'Republic of India'),
|
|
|
|
('USA', 'United States of America');
|
|
|
|
|
|
|
|
CREATE TABLE zones
|
|
|
|
( id SERIAL
|
|
|
|
, code text NOT NULL
|
|
|
|
, country text NOT NULL REFERENCES country
|
|
|
|
, PRIMARY KEY (code, country) );
|
|
|
|
INSERT INTO zones (code, country) VALUES
|
|
|
|
('67432', 'USA'),
|
|
|
|
('600036', 'India');
|
|
|
|
|
2019-07-22 15:47:13 +03:00
|
|
|
- type: track_table
|
|
|
|
args:
|
|
|
|
table: colors
|
|
|
|
is_enum: true
|
|
|
|
- type: track_table
|
|
|
|
args: users
|
2020-08-05 17:08:36 +03:00
|
|
|
- type: track_table
|
|
|
|
args:
|
|
|
|
table: country
|
|
|
|
is_enum: true
|
|
|
|
- type: track_table
|
|
|
|
args: zones
|
2019-10-11 05:22:16 +03:00
|
|
|
|
|
|
|
# Anonymous users can query users, but not colors
|
|
|
|
- type: create_select_permission
|
|
|
|
args:
|
|
|
|
table: users
|
|
|
|
role: anonymous
|
|
|
|
permission:
|
|
|
|
columns: [id, name, favorite_color]
|
|
|
|
filter: {}
|
2020-08-05 17:08:36 +03:00
|
|
|
|
|
|
|
# A user can query only code but not country
|
|
|
|
- type: create_select_permission
|
|
|
|
args:
|
|
|
|
table: zones
|
|
|
|
role: user
|
|
|
|
permission:
|
|
|
|
columns: [id, code]
|
|
|
|
filter: {}
|