From 40ac71a12353e10cdd6fcde73356b17576008734 Mon Sep 17 00:00:00 2001 From: Louis Capitanchik <contact@louiscap.co> Date: Tue, 16 Nov 2021 19:42:11 +0000 Subject: [PATCH] Set up hasura metadata --- hasura/config.yaml | 6 ++ hasura/jwk_props_dev.json | 13 +++ hasura/metadata/actions.graphql | 0 hasura/metadata/actions.yaml | 6 ++ hasura/metadata/allow_list.yaml | 1 + hasura/metadata/cron_triggers.yaml | 1 + hasura/metadata/databases/databases.yaml | 14 +++ .../default/tables/public_analytics.yaml | 32 +++++++ .../default/tables/public_bundle_codes.yaml | 25 ++++++ .../default/tables/public_files.yaml | 45 ++++++++++ .../tables/public_files_search_index.yaml | 15 ++++ .../default/tables/public_metrics.yaml | 21 +++++ .../tables/public_oauth_access_tokens.yaml | 10 +++ .../public_oauth_authorization_codes.yaml | 10 +++ .../default/tables/public_oauth_clients.yaml | 47 ++++++++++ .../tables/public_oauth_refresh_tokens.yaml | 10 +++ .../default/tables/public_survey_users.yaml | 20 +++++ .../default/tables/public_surveys.yaml | 33 +++++++ .../default/tables/public_uploads.yaml | 25 ++++++ .../tables/public_user_bundle_codes.yaml | 18 ++++ .../tables/public_user_file_likes.yaml | 21 +++++ .../default/tables/public_users.yaml | 89 +++++++++++++++++++ .../databases/default/tables/tables.yaml | 15 ++++ hasura/metadata/query_collections.yaml | 1 + hasura/metadata/remote_schemas.yaml | 1 + hasura/metadata/rest_endpoints.yaml | 1 + hasura/metadata/version.yaml | 1 + 27 files changed, 481 insertions(+) create mode 100644 hasura/config.yaml create mode 100644 hasura/jwk_props_dev.json create mode 100644 hasura/metadata/actions.graphql create mode 100644 hasura/metadata/actions.yaml create mode 100644 hasura/metadata/allow_list.yaml create mode 100644 hasura/metadata/cron_triggers.yaml create mode 100644 hasura/metadata/databases/databases.yaml create mode 100644 hasura/metadata/databases/default/tables/public_analytics.yaml create mode 100644 hasura/metadata/databases/default/tables/public_bundle_codes.yaml create mode 100644 hasura/metadata/databases/default/tables/public_files.yaml create mode 100644 hasura/metadata/databases/default/tables/public_files_search_index.yaml create mode 100644 hasura/metadata/databases/default/tables/public_metrics.yaml create mode 100644 hasura/metadata/databases/default/tables/public_oauth_access_tokens.yaml create mode 100644 hasura/metadata/databases/default/tables/public_oauth_authorization_codes.yaml create mode 100644 hasura/metadata/databases/default/tables/public_oauth_clients.yaml create mode 100644 hasura/metadata/databases/default/tables/public_oauth_refresh_tokens.yaml create mode 100644 hasura/metadata/databases/default/tables/public_survey_users.yaml create mode 100644 hasura/metadata/databases/default/tables/public_surveys.yaml create mode 100644 hasura/metadata/databases/default/tables/public_uploads.yaml create mode 100644 hasura/metadata/databases/default/tables/public_user_bundle_codes.yaml create mode 100644 hasura/metadata/databases/default/tables/public_user_file_likes.yaml create mode 100644 hasura/metadata/databases/default/tables/public_users.yaml create mode 100644 hasura/metadata/databases/default/tables/tables.yaml create mode 100644 hasura/metadata/query_collections.yaml create mode 100644 hasura/metadata/remote_schemas.yaml create mode 100644 hasura/metadata/rest_endpoints.yaml create mode 100644 hasura/metadata/version.yaml diff --git a/hasura/config.yaml b/hasura/config.yaml new file mode 100644 index 0000000..85d6ce2 --- /dev/null +++ b/hasura/config.yaml @@ -0,0 +1,6 @@ +version: 3 +endpoint: http://localhost:15432 +metadata_directory: metadata +actions: + kind: synchronous + handler_webhook_baseurl: "http://172.17.0.1:7124/api" diff --git a/hasura/jwk_props_dev.json b/hasura/jwk_props_dev.json new file mode 100644 index 0000000..84d7106 --- /dev/null +++ b/hasura/jwk_props_dev.json @@ -0,0 +1,13 @@ +{ + "jwk_url": "http://172.17.0.1:7124/.well-known/jwks.json", + "header": { + "type": "Authorization" + }, + "issuer": "urn:hackerfest:systems:auth", + "claims_namespace": "urn:hackerfest:resources:claims", + "claims_map": { + "x-hasura-user-id": { "path": "$$['urn:hackerfest:resources:claims']['user-id']" }, + "x-hasura-default-role": { "path": "$$['urn:hackerfest:resources:claims']['default-role']" }, + "x-hasura-allowed-roles": { "path": "$$['urn:hackerfest:resources:claims']['allowed-roles']" } + } +} \ No newline at end of file diff --git a/hasura/metadata/actions.graphql b/hasura/metadata/actions.graphql new file mode 100644 index 0000000..e69de29 diff --git a/hasura/metadata/actions.yaml b/hasura/metadata/actions.yaml new file mode 100644 index 0000000..1edb4c2 --- /dev/null +++ b/hasura/metadata/actions.yaml @@ -0,0 +1,6 @@ +actions: [] +custom_types: + enums: [] + input_objects: [] + objects: [] + scalars: [] diff --git a/hasura/metadata/allow_list.yaml b/hasura/metadata/allow_list.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/hasura/metadata/allow_list.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/cron_triggers.yaml b/hasura/metadata/cron_triggers.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/hasura/metadata/cron_triggers.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/databases/databases.yaml b/hasura/metadata/databases/databases.yaml new file mode 100644 index 0000000..65a11b2 --- /dev/null +++ b/hasura/metadata/databases/databases.yaml @@ -0,0 +1,14 @@ +- name: default + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_DATABASE_URL + isolation_level: read-committed + pool_settings: + connection_lifetime: 600 + idle_timeout: 180 + max_connections: 50 + retries: 1 + use_prepared_statements: true + tables: "!include default/tables/tables.yaml" diff --git a/hasura/metadata/databases/default/tables/public_analytics.yaml b/hasura/metadata/databases/default/tables/public_analytics.yaml new file mode 100644 index 0000000..ec71a3b --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_analytics.yaml @@ -0,0 +1,32 @@ +table: + name: analytics + schema: public +object_relationships: +- name: parent + using: + foreign_key_constraint_on: parent_id +array_relationships: +- name: children + using: + foreign_key_constraint_on: + column: parent_id + table: + name: analytics + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - session_id + - action + - event + - start_time + - end_time + - parent_id + - properties + - location + - device + - meta + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_bundle_codes.yaml b/hasura/metadata/databases/default/tables/public_bundle_codes.yaml new file mode 100644 index 0000000..d49af64 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_bundle_codes.yaml @@ -0,0 +1,25 @@ +table: + name: bundle_codes + schema: public +array_relationships: +- name: user_bundle_codes + using: + foreign_key_constraint_on: + column: bundle_code_id + table: + name: user_bundle_codes + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - name + - description + - platforms + - meta + - created_at + - updated_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_files.yaml b/hasura/metadata/databases/default/tables/public_files.yaml new file mode 100644 index 0000000..e82bf5f --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_files.yaml @@ -0,0 +1,45 @@ +table: + name: files + schema: public +object_relationships: +- name: files_search_index + using: + foreign_key_constraint_on: + column: file_id + table: + name: files_search_index + schema: public +- name: user + using: + foreign_key_constraint_on: user_id +array_relationships: +- name: user_file_likes + using: + foreign_key_constraint_on: + column: file_id + table: + name: user_file_likes + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - user_id + - provider + - file_root + - file_name + - stream + - comment + - tags + - labels + - featured + - requires_approval + - approved + - meta + - created_at + - updated_at + - deleted_at + - featured_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_files_search_index.yaml b/hasura/metadata/databases/default/tables/public_files_search_index.yaml new file mode 100644 index 0000000..183be4b --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_files_search_index.yaml @@ -0,0 +1,15 @@ +table: + name: files_search_index + schema: public +object_relationships: +- name: file + using: + foreign_key_constraint_on: file_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - file_id + - search_index + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_metrics.yaml b/hasura/metadata/databases/default/tables/public_metrics.yaml new file mode 100644 index 0000000..72a2830 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_metrics.yaml @@ -0,0 +1,21 @@ +table: + name: metrics + schema: public +object_relationships: +- name: user + using: + foreign_key_constraint_on: author_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - value + - type + - location + - author_id + - meta + - recorded_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_oauth_access_tokens.yaml b/hasura/metadata/databases/default/tables/public_oauth_access_tokens.yaml new file mode 100644 index 0000000..fbcc300 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_oauth_access_tokens.yaml @@ -0,0 +1,10 @@ +table: + name: oauth_access_tokens + schema: public +object_relationships: +- name: oauth_client + using: + foreign_key_constraint_on: client_id +- name: user + using: + foreign_key_constraint_on: user_id diff --git a/hasura/metadata/databases/default/tables/public_oauth_authorization_codes.yaml b/hasura/metadata/databases/default/tables/public_oauth_authorization_codes.yaml new file mode 100644 index 0000000..eafee9b --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_oauth_authorization_codes.yaml @@ -0,0 +1,10 @@ +table: + name: oauth_authorization_codes + schema: public +object_relationships: +- name: oauth_client + using: + foreign_key_constraint_on: client_id +- name: user + using: + foreign_key_constraint_on: user_id diff --git a/hasura/metadata/databases/default/tables/public_oauth_clients.yaml b/hasura/metadata/databases/default/tables/public_oauth_clients.yaml new file mode 100644 index 0000000..749d7f3 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_oauth_clients.yaml @@ -0,0 +1,47 @@ +table: + name: oauth_clients + schema: public +object_relationships: +- name: user + using: + foreign_key_constraint_on: owner_id +array_relationships: +- name: oauth_access_tokens + using: + foreign_key_constraint_on: + column: client_id + table: + name: oauth_access_tokens + schema: public +- name: oauth_authorization_codes + using: + foreign_key_constraint_on: + column: client_id + table: + name: oauth_authorization_codes + schema: public +- name: oauth_refresh_tokens + using: + foreign_key_constraint_on: + column: client_id + table: + name: oauth_refresh_tokens + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - secret + - owner_id + - redirect_uris + - grant_types + - internal + - meta + - created_at + - updated_at + - deleted_at + - name + - description + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_oauth_refresh_tokens.yaml b/hasura/metadata/databases/default/tables/public_oauth_refresh_tokens.yaml new file mode 100644 index 0000000..4aed769 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_oauth_refresh_tokens.yaml @@ -0,0 +1,10 @@ +table: + name: oauth_refresh_tokens + schema: public +object_relationships: +- name: oauth_client + using: + foreign_key_constraint_on: client_id +- name: user + using: + foreign_key_constraint_on: user_id diff --git a/hasura/metadata/databases/default/tables/public_survey_users.yaml b/hasura/metadata/databases/default/tables/public_survey_users.yaml new file mode 100644 index 0000000..c598f86 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_survey_users.yaml @@ -0,0 +1,20 @@ +table: + name: survey_users + schema: public +object_relationships: +- name: survey + using: + foreign_key_constraint_on: survey_id +- name: user + using: + foreign_key_constraint_on: user_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - survey_id + - user_id + - properties + - created_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_surveys.yaml b/hasura/metadata/databases/default/tables/public_surveys.yaml new file mode 100644 index 0000000..c39d8d0 --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_surveys.yaml @@ -0,0 +1,33 @@ +table: + name: surveys + schema: public +array_relationships: +- name: survey_users + using: + foreign_key_constraint_on: + column: survey_id + table: + name: survey_users + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - slug + - name + - header_image_url + - partner_names + - description + - requirements + - settings + - properties + - public + - published_at + - expires_at + - meta + - created_at + - updated_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_uploads.yaml b/hasura/metadata/databases/default/tables/public_uploads.yaml new file mode 100644 index 0000000..0d2f61c --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_uploads.yaml @@ -0,0 +1,25 @@ +table: + name: uploads + schema: public +object_relationships: +- name: user + using: + foreign_key_constraint_on: user_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - user_id + - provider + - upload_url + - request_params + - expires_at + - status + - status_reason + - meta + - created_at + - updated_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_user_bundle_codes.yaml b/hasura/metadata/databases/default/tables/public_user_bundle_codes.yaml new file mode 100644 index 0000000..2044a9c --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_user_bundle_codes.yaml @@ -0,0 +1,18 @@ +table: + name: user_bundle_codes + schema: public +object_relationships: +- name: bundle_code + using: + foreign_key_constraint_on: bundle_code_id +- name: user + using: + foreign_key_constraint_on: user_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - user_id + - bundle_code_id + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_user_file_likes.yaml b/hasura/metadata/databases/default/tables/public_user_file_likes.yaml new file mode 100644 index 0000000..cb1016f --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_user_file_likes.yaml @@ -0,0 +1,21 @@ +table: + name: user_file_likes + schema: public +object_relationships: +- name: file + using: + foreign_key_constraint_on: file_id +- name: user + using: + foreign_key_constraint_on: user_id +select_permissions: +- permission: + allow_aggregations: true + columns: + - user_id + - file_id + - created_at + - updated_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/public_users.yaml b/hasura/metadata/databases/default/tables/public_users.yaml new file mode 100644 index 0000000..3a2f1ba --- /dev/null +++ b/hasura/metadata/databases/default/tables/public_users.yaml @@ -0,0 +1,89 @@ +table: + name: users + schema: public +array_relationships: +- name: files + using: + foreign_key_constraint_on: + column: user_id + table: + name: files + schema: public +- name: metrics + using: + foreign_key_constraint_on: + column: author_id + table: + name: metrics + schema: public +- name: oauth_access_tokens + using: + foreign_key_constraint_on: + column: user_id + table: + name: oauth_access_tokens + schema: public +- name: oauth_authorization_codes + using: + foreign_key_constraint_on: + column: user_id + table: + name: oauth_authorization_codes + schema: public +- name: oauth_clients + using: + foreign_key_constraint_on: + column: owner_id + table: + name: oauth_clients + schema: public +- name: oauth_refresh_tokens + using: + foreign_key_constraint_on: + column: user_id + table: + name: oauth_refresh_tokens + schema: public +- name: survey_users + using: + foreign_key_constraint_on: + column: user_id + table: + name: survey_users + schema: public +- name: uploads + using: + foreign_key_constraint_on: + column: user_id + table: + name: uploads + schema: public +- name: user_bundle_codes + using: + foreign_key_constraint_on: + column: user_id + table: + name: user_bundle_codes + schema: public +- name: user_file_likes + using: + foreign_key_constraint_on: + column: user_id + table: + name: user_file_likes + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - id + - name + - email + - password + - reset_token + - meta + - created_at + - updated_at + - deleted_at + filter: {} + role: overseer diff --git a/hasura/metadata/databases/default/tables/tables.yaml b/hasura/metadata/databases/default/tables/tables.yaml new file mode 100644 index 0000000..ae8e81f --- /dev/null +++ b/hasura/metadata/databases/default/tables/tables.yaml @@ -0,0 +1,15 @@ +- "!include public_analytics.yaml" +- "!include public_bundle_codes.yaml" +- "!include public_files.yaml" +- "!include public_files_search_index.yaml" +- "!include public_metrics.yaml" +- "!include public_oauth_access_tokens.yaml" +- "!include public_oauth_authorization_codes.yaml" +- "!include public_oauth_clients.yaml" +- "!include public_oauth_refresh_tokens.yaml" +- "!include public_survey_users.yaml" +- "!include public_surveys.yaml" +- "!include public_uploads.yaml" +- "!include public_user_bundle_codes.yaml" +- "!include public_user_file_likes.yaml" +- "!include public_users.yaml" diff --git a/hasura/metadata/query_collections.yaml b/hasura/metadata/query_collections.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/hasura/metadata/query_collections.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/remote_schemas.yaml b/hasura/metadata/remote_schemas.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/hasura/metadata/remote_schemas.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/rest_endpoints.yaml b/hasura/metadata/rest_endpoints.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/hasura/metadata/rest_endpoints.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/version.yaml b/hasura/metadata/version.yaml new file mode 100644 index 0000000..0a70aff --- /dev/null +++ b/hasura/metadata/version.yaml @@ -0,0 +1 @@ +version: 3 -- GitLab