super-graph/config/prod.yml

180 lines
4.2 KiB
YAML
Raw Normal View History

2019-04-11 07:10:51 +02:00
app_name: "Super Graph Production"
2019-03-24 14:57:29 +01:00
host_port: 0.0.0.0:8080
web_ui: false
2019-06-17 07:58:00 +02:00
# debug, info, warn, error, fatal, panic, disable
log_level: "info"
2019-04-20 06:35:57 +02:00
2019-07-29 07:13:33 +02:00
# Disable this in development to get a list of
# queries used. When enabled super graph
# will only allow queries from this list
# List saved to ./config/allow.list
use_allow_list: true
2019-03-24 14:57:29 +01:00
# Throw a 401 on auth failure for queries that need auth
# valid values: always, per_query, never
auth_fail_block: always
2019-03-24 14:57:29 +01:00
2019-07-29 07:13:33 +02:00
# Latency tracing for database queries and remote joins
# the resulting latency information is returned with the
# response
enable_tracing: true
2019-09-26 06:35:31 +02:00
# File that points to the database seeding script
# seed_file: seed.js
# Path pointing to where the migrations can be found
# migrations_path: migrations
# Postgres related environment Variables
2019-03-24 14:57:29 +01:00
# SG_DATABASE_HOST
# SG_DATABASE_PORT
# SG_DATABASE_USER
# SG_DATABASE_PASSWORD
# Auth related environment Variables
2019-04-08 08:47:59 +02:00
# SG_AUTH_RAILS_COOKIE_SECRET_KEY_BASE
# SG_AUTH_RAILS_REDIS_URL
# SG_AUTH_RAILS_REDIS_PASSWORD
# SG_AUTH_JWT_PUBLIC_KEY_FILE
2019-03-24 14:57:29 +01:00
# inflections:
# person: people
# sheep: sheep
2019-04-08 08:47:59 +02:00
auth:
# Can be 'rails' or 'jwt'
type: rails
2019-04-08 08:47:59 +02:00
cookie: _app_session
rails:
# Rails version this is used for reading the
# various cookies formats.
version: 5.2
2019-03-24 14:57:29 +01:00
# Found in 'Rails.application.config.secret_key_base'
secret_key_base: 0a248500a64c01184edb4d7ad3a805488f8097ac761b76aaa6c17c01dcb7af03a2f18ba61b2868134b9c7b79a122bc0dadff4367414a2d173297bfea92be5566
# Remote cookie store. (memcache or redis)
# url: redis://127.0.0.1:6379
# password: test
# max_idle: 80,
# max_active: 12000,
2019-03-24 14:57:29 +01:00
# In most cases you don't need these
# salt: "encrypted cookie"
# sign_salt: "signed encrypted cookie"
# auth_salt: "authenticated encrypted cookie"
2019-03-24 14:57:29 +01:00
2019-04-08 08:47:59 +02:00
# jwt:
# provider: auth0
# secret: abc335bfcfdb04e50db5bb0a4d67ab9
# public_key_file: /secrets/public_key.pem
# public_key_type: ecdsa #rsa
2019-03-24 14:57:29 +01:00
database:
type: postgres
host: db
port: 5432
dbname: {{app_name_slug}}_development
2019-03-24 14:57:29 +01:00
user: postgres
password: ''
#pool_size: 10
#max_retries: 0
#log_level: "debug"
# Define variables here that you want to use in filters
2019-09-05 06:09:56 +02:00
# sub-queries must be wrapped in ()
2019-03-24 14:57:29 +01:00
variables:
2019-09-05 06:09:56 +02:00
account_id: "(select account_id from users where id = $user_id)"
2019-03-24 14:57:29 +01:00
2019-04-08 08:47:59 +02:00
# Define defaults to for the field key and values below
defaults:
2019-10-25 07:39:59 +02:00
filters: ["{ user_id: { eq: $user_id } }"]
2019-04-08 08:47:59 +02:00
2019-05-13 01:27:26 +02:00
# Field and table names that you wish to block
2019-09-08 07:54:38 +02:00
blocklist:
2019-04-08 08:47:59 +02:00
- ar_internal_metadata
- schema_migrations
- secret
- password
- encrypted
- token
2019-03-24 14:57:29 +01:00
tables:
- name: customers
# remotes:
# - name: payments
# id: stripe_id
# url: http://rails_app:3000/stripe/$id
# path: data
# # pass_headers:
# # - cookie
# # - host
# set_headers:
# - name: Authorization
# value: Bearer <stripe_api_key>
- # You can create new fields that have a
# real db table backing them
name: me
table: users
2019-10-25 07:39:59 +02:00
roles_query: "SELECT * FROM users as usr WHERE id = $user_id"
roles:
- name: anon
tables:
- name: products
limit: 10
query:
columns: ["id", "name", "description" ]
aggregation: false
insert:
allow: false
update:
allow: false
delete:
allow: false
- name: user
tables:
- name: users
query:
filters: ["{ id: { _eq: $user_id } }"]
- name: products
query:
limit: 50
filters: ["{ user_id: { eq: $user_id } }"]
columns: ["id", "name", "description" ]
disable_aggregation: false
insert:
filters: ["{ user_id: { eq: $user_id } }"]
columns: ["id", "name", "description" ]
set:
- created_at: "now"
update:
filters: ["{ user_id: { eq: $user_id } }"]
columns:
- id
- name
set:
- updated_at: "now"
delete:
deny: true
- name: admin
match: id = 1
tables:
- name: users
# query:
# filters: ["{ account_id: { _eq: $account_id } }"]