graphql-engine/server/tests-py/queries/graphql_query/boolexp/basic/setup.yaml
Abby Sassel c9e7e10eaa server/bugfix: Include permission filter in the exists clause. Fixes #6931
GitOrigin-RevId: d3080dfa00c96afcf1254d83757a5e50a0726381
2021-05-24 09:09:50 +00:00

287 lines
5.3 KiB
YAML

type: bulk
args:
#Author table
- type: run_sql
args:
sql: |
create table author(
id serial primary key,
name text unique,
is_registered boolean not null default false
);
INSERT INTO author(name, is_registered)
VALUES
('Author 1', true),
('Author 2', true),
('Author 3', false);
CREATE TABLE article (
id SERIAL PRIMARY KEY,
title TEXT,
content TEXT,
author_id INTEGER REFERENCES author(id),
is_published BOOLEAN,
published_on TIMESTAMP
);
CREATE TABLE city (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
country TEXT NOT NULL
);
INSERT INTO city (name, country)
VALUES
('Durham', 'USA'),
('New York', 'USA'),
('Framlingham', 'UK'),
('New Orleans', 'USA');
SET TIME ZONE 'UTC';
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
received_at TIMESTAMP NOT NULL,
delivered_at TIMESTAMP
);
CREATE TABLE message (
id int PRIMARY KEY,
content TEXT NOT NULL,
parent_id INT NULL
);
INSERT INTO message (id, content, parent_id)
VALUES
(
1,
'hello world',
default
),
(
2,
'content 2',
1
),
(
3,
'content 3',
1
),
(
4,
'ahoy',
default
),
(
5,
'content 5',
4
),
(
6,
'hello three',
4
);
alter table message
add constraint parent_fk foreign key (parent_id)
references message(id);
insert into article (title,content,author_id,is_published)
values
(
'Article 1',
'Sample article content 1',
1,
false
),
(
'Article 2',
'Sample article content 2',
1,
true
),
(
'Article 3',
'Sample article content 3',
2,
false
),
(
'Article 4',
'Sample article content 4',
3,
true
);
CREATE TABLE "uuid_test" (
id serial primary key,
uuid_col UUID NOT NULL
);
create table "user" (
id serial primary key,
name text not null unique,
is_admin boolean default false
);
insert into "user" (name, is_admin)
values ('user_1', false), ('user_2', true)
;
create table account (
id serial primary key,
account_no integer not null unique
);
insert into account (account_no) values (1), (2) ;
CREATE TABLE table_with_sql_identifier
( id serial PRIMARY KEY
, sql_id information_schema.sql_identifier );
INSERT INTO table_with_sql_identifier (sql_id)
VALUES ('one'), ('one'), ('two'), ('three'), ('four'), ('one'), ('two');
- type: track_table
args:
schema: public
name: author
#Article table
- type: track_table
args:
schema: public
name: article
#Article table
- type: track_table
args:
schema: public
name: city
#Set timezone
- type: track_table
args:
schema: public
name: orders
#Object relationship
- type: create_object_relationship
args:
table: article
name: author
using:
foreign_key_constraint_on: author_id
#Array relationship
- type: create_array_relationship
args:
table: author
name: articles
using:
foreign_key_constraint_on:
table: article
column: author_id
#Message table
- type: track_table
args:
schema: public
name: message
# parent obj rel
- type: create_object_relationship
args:
table: message
name: parent
using:
foreign_key_constraint_on: parent_id
# children array rel
- type: create_array_relationship
args:
table: message
name: children
using:
foreign_key_constraint_on:
table: message
column: parent_id
- type: insert
args:
table: orders
objects:
- received_at: '2018-09-21T09:39:44'
- received_at: '2018-09-21T09:40:44'
delivered_at: '2018-09-21T09:50:44'
- type: track_table
args:
name: uuid_test
schema: public
- type: insert
args:
table: uuid_test
objects:
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e5
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e6
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e7
# Tables to test '_exist' field
- type: track_table
args:
name: user
schema: public
- type: track_table
args:
name: account
schema: public
- type: create_select_permission
args:
table: account
role: user
permission:
columns:
- id
- account_no
filter:
_exists:
_table: user
_where:
id: X-Hasura-User-Id
is_admin: true
- type: create_select_permission
args:
table: article
role: user
permission:
columns:
- author_id
- content
- id
- title
filter:
is_published:
_eq: true
- type: create_select_permission
args:
table: author
role: user
permission:
columns:
- id
- name
filter: {}
- type: track_table
args: table_with_sql_identifier