From 132fc0a20f0f6b25e8ec206ea410d9490188042c Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 27 Mar 2026 14:36:37 -0400 Subject: [PATCH 1/3] hotfix/2026-03-27 - Missing chatter stuff. --- hasura/metadata/cron_triggers.yaml | 9 +++ hasura/metadata/tables.yaml | 114 +++++++++++++++++++++++++++++ localstack/init/10-bootstrap.sh | 3 +- server/chatter/createLocation.js | 2 +- 4 files changed, 126 insertions(+), 2 deletions(-) diff --git a/hasura/metadata/cron_triggers.yaml b/hasura/metadata/cron_triggers.yaml index 2c8c4c91d..845cb60f6 100644 --- a/hasura/metadata/cron_triggers.yaml +++ b/hasura/metadata/cron_triggers.yaml @@ -24,6 +24,15 @@ - name: x-imex-auth value_from_env: DATAPUMP_AUTH comment: Project Mexico +- name: Chatter API Data Pump + webhook: '{{HASURA_API_URL}}/data/chatter-api' + schedule: 45 4 * * * + include_in_metadata: true + payload: {} + headers: + - name: x-imex-auth + value_from_env: DATAPUMP_AUTH + comment: "" - name: Chatter Data Pump webhook: '{{HASURA_API_URL}}/data/chatter' schedule: 45 5 * * * diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index 5d3d3eb85..d6f3f1c25 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -2156,10 +2156,12 @@ - active: _eq: true columns: + - commission_rates - created_at - employeeid - id - labor_rates + - payout_method - percentage - teamid - updated_at @@ -2167,10 +2169,12 @@ - role: user permission: columns: + - commission_rates - created_at - employeeid - id - labor_rates + - payout_method - percentage - teamid - updated_at @@ -2188,10 +2192,12 @@ - role: user permission: columns: + - commission_rates - created_at - employeeid - id - labor_rates + - payout_method - percentage - teamid - updated_at @@ -2560,6 +2566,101 @@ _eq: X-Hasura-User-Id - active: _eq: true +- table: + name: esignature_documents + schema: public + object_relationships: + - name: document + using: + foreign_key_constraint_on: documentid + - name: job + using: + foreign_key_constraint_on: jobid + insert_permissions: + - role: user + permission: + check: + job: + bodyshop: + associations: + _and: + - active: + _eq: true + - user: + authid: + _eq: X-Hasura-User-Id + columns: + - completed + - documentid + - external_document_id + - jobid + - message + - opened + - recipients + - rejected + - status + - subject + - title + comment: "" + select_permissions: + - role: user + permission: + columns: + - completed + - completed_at + - created_at + - documentid + - external_document_id + - id + - jobid + - message + - opened + - recipients + - rejected + - status + - subject + - title + - updated_at + filter: + job: + bodyshop: + associations: + _and: + - active: + _eq: true + - user: + authid: + _eq: X-Hasura-User-Id + comment: "" + update_permissions: + - role: user + permission: + columns: + - completed + - completed_at + - created_at + - documentid + - external_document_id + - message + - opened + - recipients + - rejected + - status + - subject + - title + - updated_at + filter: + job: + bodyshop: + associations: + _and: + - active: + _eq: true + - user: + authid: + _eq: X-Hasura-User-Id + check: null + comment: "" - table: name: eula_acceptances schema: public @@ -3458,6 +3559,13 @@ table: name: email_audit_trail schema: public + - name: esignature_documents + using: + foreign_key_constraint_on: + column: jobid + table: + name: esignature_documents + schema: public - name: exportlogs using: foreign_key_constraint_on: @@ -6506,6 +6614,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - task_name @@ -6531,6 +6640,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - task_name @@ -6565,6 +6675,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - task_name @@ -6748,6 +6859,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - updated_at @@ -6768,6 +6880,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - updated_at @@ -6798,6 +6911,7 @@ - id - jobid - memo + - payout_context - productivehrs - rate - updated_at diff --git a/localstack/init/10-bootstrap.sh b/localstack/init/10-bootstrap.sh index ee8183d1e..72a18528a 100755 --- a/localstack/init/10-bootstrap.sh +++ b/localstack/init/10-bootstrap.sh @@ -51,7 +51,8 @@ awslocal ses verify-email-identity --email-address noreply@imex.online --region # Secrets ensure_secret_file "CHATTER_PRIVATE_KEY" "/tmp/certs/io-ftp-test.key" -ensure_secret_string "CHATTER_COMPANY_KEY_6713" "${CHATTER_COMPANY_KEY_6713:-REPLACE_ME}" +ensure_secret_string "CHATTER_COMPANY_KEY_6713" "${CHATTER_COMPANY_KEY_6713}" +ensure_secret_string "CHATTER_COMPANY_KEY_6746" "${CHATTER_COMPANY_KEY_6746}" # Logs ensure_log_group "development" diff --git a/server/chatter/createLocation.js b/server/chatter/createLocation.js index 46766dcf8..18c51305f 100644 --- a/server/chatter/createLocation.js +++ b/server/chatter/createLocation.js @@ -67,7 +67,7 @@ const createLocation = async (req, res) => { const chatterApi = await createChatterClient(DEFAULT_COMPANY_ID); - const locationIdentifier = `${DEFAULT_COMPANY_ID}-${bodyshop.id}`; + const locationIdentifier = bodyshop?.imexshopid ?? `${DEFAULT_COMPANY_ID}-${bodyshop.id}`; const locationPayload = { name: bodyshop.shopname, From 8fd368ebb45a6a29f935799acee8401dfd249b75 Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 27 Mar 2026 14:45:01 -0400 Subject: [PATCH 2/3] Revert hasura metadata tables changes --- hasura/metadata/tables.yaml | 938 +++--------------------------------- 1 file changed, 68 insertions(+), 870 deletions(-) diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index d6f3f1c25..7a9de6b10 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -69,6 +69,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: jobline: job: @@ -179,6 +180,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -198,14 +200,6 @@ - name: user using: foreign_key_constraint_on: useremail - array_relationships: - - name: notifications - using: - foreign_key_constraint_on: - column: associationid - table: - name: notifications - schema: public select_permissions: - role: user permission: @@ -215,9 +209,6 @@ - default_prod_list_view - id - kanban_settings - - new_message_sound - - notification_settings - - notifications_autoadd - qbo_realmId - shopid - useremail @@ -233,9 +224,6 @@ - authlevel - default_prod_list_view - kanban_settings - - new_message_sound - - notification_settings - - notifications_autoadd - qbo_realmId filter: user: @@ -399,6 +387,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -515,6 +504,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bill: job: @@ -681,6 +671,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: _and: - job: @@ -695,25 +686,6 @@ - exported: _eq: false event_triggers: - - name: notifications_bills - definition: - enable_manual: false - insert: - columns: '*' - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleBillsChange' - version: 2 - name: os_bills definition: delete: @@ -944,14 +916,10 @@ - autohouseid - bill_allow_post_to_closed - bill_tax_rates - - carfax_exclude - cdk_configuration - cdk_dealerid - - chatter_company_id - - chatterid - city - claimscorpid - - convenient_company - country - created_at - default_adjustment_rate @@ -963,7 +931,6 @@ - enforce_referral - entegral_configuration - entegral_id - - external_shop_id - features - federal_tax_id - id @@ -971,8 +938,6 @@ - inhousevendorid - insurance_vendor_id - intakechecklist - - intellipay_config - - intellipay_merchant_id - jc_hourly_rates - jobsizelimit - last_name_first @@ -1009,16 +974,12 @@ - md_tasks_presets - md_to_emails - messagingservicesid - - notification_followers - pbs_configuration - pbs_serialnumber - phone - - podiumid - prodtargethrs - production_config - region_config - - rr_configuration - - rr_dealerid - schedule_end_time - schedule_start_time - scoreboard_target @@ -1035,7 +996,6 @@ - template_header - textid - timezone - - tours_enabled - tt_allow_post_to_invoiced - tt_enforce_hours_for_tech_console - updated_at @@ -1064,7 +1024,6 @@ - bill_allow_post_to_closed - bill_tax_rates - cdk_configuration - - chatter_company_id - city - country - created_at @@ -1075,13 +1034,11 @@ - enforce_conversion_category - enforce_conversion_csr - enforce_referral - - external_shop_id - federal_tax_id - id - inhousevendorid - insurance_vendor_id - intakechecklist - - intellipay_config - jc_hourly_rates - last_name_first - localmediaserverhttp @@ -1116,12 +1073,10 @@ - md_ro_statuses - md_tasks_presets - md_to_emails - - notification_followers - pbs_configuration - phone - prodtargethrs - production_config - - rr_configuration - schedule_end_time - schedule_start_time - scoreboard_target @@ -1152,50 +1107,6 @@ - active: _eq: true check: null - event_triggers: - - name: cache_bodyshop - definition: - enable_manual: false - update: - columns: - - imexshopid - - timezone - - shopname - - notification_followers - - state - - md_order_statuses - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - body: - action: transform - template: |- - { - "created_at": {{$body.created_at}}, - "delivery_info": {{$body.delivery_info}}, - "event": { - "data": { - "new": { - "id": {{$body.event.data.new.id}}, - "shopname": {{$body.event.data.new.shopname}}, - "md_order_statuses": {{$body.event.data.new.md_order_statuses}} - } - }, - "op": {{$body.event.op}}, - "session_variables": {{$body.event.session_variables}} - } - } - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/bodyshop-cache' - version: 2 - table: name: cccontracts schema: public @@ -1370,6 +1281,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: courtesycar: bodyshop: @@ -1610,6 +1522,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -1869,6 +1782,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -2002,6 +1916,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: _or: - job: @@ -2021,29 +1936,6 @@ _eq: X-Hasura-User-Id - active: _eq: true - event_triggers: - - name: notifications_documents - definition: - enable_manual: false - insert: - columns: '*' - update: - columns: - - jobid - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleDocumentsChange' - version: 2 - table: name: email_audit_trail schema: public @@ -2156,12 +2048,10 @@ - active: _eq: true columns: - - commission_rates - created_at - employeeid - id - labor_rates - - payout_method - percentage - teamid - updated_at @@ -2169,12 +2059,10 @@ - role: user permission: columns: - - commission_rates - created_at - employeeid - id - labor_rates - - payout_method - percentage - teamid - updated_at @@ -2192,12 +2080,10 @@ - role: user permission: columns: - - commission_rates - created_at - employeeid - id - labor_rates - - payout_method - percentage - teamid - updated_at @@ -2215,6 +2101,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: employee_team: bodyshop: @@ -2377,6 +2264,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: employee: bodyshop: @@ -2447,13 +2335,6 @@ table: name: jobs schema: public - - name: tasks - using: - foreign_key_constraint_on: - column: assigned_to - table: - name: tasks - schema: public - name: timetickets using: foreign_key_constraint_on: @@ -2557,6 +2438,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -2566,101 +2448,6 @@ _eq: X-Hasura-User-Id - active: _eq: true -- table: - name: esignature_documents - schema: public - object_relationships: - - name: document - using: - foreign_key_constraint_on: documentid - - name: job - using: - foreign_key_constraint_on: jobid - insert_permissions: - - role: user - permission: - check: - job: - bodyshop: - associations: - _and: - - active: - _eq: true - - user: - authid: - _eq: X-Hasura-User-Id - columns: - - completed - - documentid - - external_document_id - - jobid - - message - - opened - - recipients - - rejected - - status - - subject - - title - comment: "" - select_permissions: - - role: user - permission: - columns: - - completed - - completed_at - - created_at - - documentid - - external_document_id - - id - - jobid - - message - - opened - - recipients - - rejected - - status - - subject - - title - - updated_at - filter: - job: - bodyshop: - associations: - _and: - - active: - _eq: true - - user: - authid: - _eq: X-Hasura-User-Id - comment: "" - update_permissions: - - role: user - permission: - columns: - - completed - - completed_at - - created_at - - documentid - - external_document_id - - message - - opened - - recipients - - rejected - - status - - subject - - title - - updated_at - filter: - job: - bodyshop: - associations: - _and: - - active: - _eq: true - - user: - authid: - _eq: X-Hasura-User-Id - check: null - comment: "" - table: name: eula_acceptances schema: public @@ -2796,9 +2583,6 @@ - active: _eq: true allow_aggregations: true -- table: - name: integration_log - schema: public - table: name: inventory schema: public @@ -2901,6 +2685,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -3012,6 +2797,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: conversation: bodyshop: @@ -3022,76 +2808,6 @@ _eq: X-Hasura-User-Id - active: _eq: true -- table: - name: job_watchers - schema: public - object_relationships: - - name: job - using: - foreign_key_constraint_on: jobid - - name: user - using: - foreign_key_constraint_on: user_email - insert_permissions: - - role: user - permission: - check: - job: - bodyshop: - associations: - user: - authid: - _eq: X-Hasura-User-Id - columns: - - user_email - - created_at - - id - - jobid - comment: "" - select_permissions: - - role: user - permission: - columns: - - user_email - - created_at - - id - - jobid - filter: - job: - bodyshop: - associations: - user: - authid: - _eq: X-Hasura-User-Id - comment: "" - update_permissions: - - role: user - permission: - columns: - - user_email - - created_at - - id - - jobid - filter: - job: - bodyshop: - associations: - user: - authid: - _eq: X-Hasura-User-Id - check: null - comment: "" - delete_permissions: - - role: user - permission: - filter: - job: - bodyshop: - associations: - user: - authid: - _eq: X-Hasura-User-Id - comment: "" - table: name: joblines schema: public @@ -3183,7 +2899,6 @@ - est_seq - glass_flag - id - - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -3253,7 +2968,6 @@ - est_seq - glass_flag - id - - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -3334,7 +3048,6 @@ - est_seq - glass_flag - id - - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -3399,6 +3112,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: job: bodyshop: @@ -3409,31 +3123,6 @@ _eq: X-Hasura-User-Id - active: _eq: true - event_triggers: - - name: notifications_joblines - definition: - enable_manual: false - update: - columns: - - critical - - status - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - body: - action: transform - template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": \"UPDATE\",\r\n \"data\": {\r\n \"old\": {\r\n \"id\": {{$body.event.data.old.id}},\r\n \"jobid\": {{$body.event.data.old.jobid}},\r\n \"critical\": {{$body.event.data.old.critical}},\r\n \"status\": {{$body.event.data.old.status}},\r\n \"line_desc\": {{$body.event.data.old.line_desc}}\r\n },\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"jobid\": {{$body.event.data.new.jobid}},\r\n \"critical\": {{$body.event.data.new.critical}},\r\n \"status\": {{$body.event.data.new.status}},\r\n \"line_desc\": {{$body.event.data.new.line_desc}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_joblines\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"joblines\"\r\n }\r\n}\r\n" - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleJobLinesChange' - version: 2 - table: name: joblines_status schema: public @@ -3559,13 +3248,6 @@ table: name: email_audit_trail schema: public - - name: esignature_documents - using: - foreign_key_constraint_on: - column: jobid - table: - name: esignature_documents - schema: public - name: exportlogs using: foreign_key_constraint_on: @@ -3587,13 +3269,6 @@ table: name: job_conversations schema: public - - name: job_watchers - using: - foreign_key_constraint_on: - column: jobid - table: - name: job_watchers - schema: public - name: joblines using: foreign_key_constraint_on: @@ -3624,13 +3299,6 @@ table: name: notes schema: public - - name: notifications - using: - foreign_key_constraint_on: - column: jobid - table: - name: notifications - schema: public - name: parts_dispatches using: foreign_key_constraint_on: @@ -3724,12 +3392,10 @@ - actual_completion - actual_delivery - actual_in - - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line - - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -3794,7 +3460,6 @@ - completed_tasks - converted - created_at - - created_user_email - cust_pr - date_estimated - date_exported @@ -3812,10 +3477,7 @@ - ded_status - deliverchecklist - depreciation_taxes - - dms_advisor_id - dms_allocation - - dms_customer_id - - dms_id - driveable - employee_body - employee_csr @@ -3832,12 +3494,8 @@ - est_ph1 - est_st - est_zip - - estimate_approved - - estimate_sent_approval - federal_tax_rate - - flat_rate_ats - g_bett_amt - - hit_and_run - id - inproduction - ins_addr1 @@ -3911,10 +3569,8 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph1x - ownr_ph2 - - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -3933,7 +3589,6 @@ - qb_multiple_payers - queued_for_parts - rate_ats - - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -4006,12 +3661,10 @@ - actual_completion - actual_delivery - actual_in - - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line - - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -4076,7 +3729,6 @@ - completed_tasks - converted - created_at - - created_user_email - cust_pr - date_estimated - date_exported @@ -4095,10 +3747,7 @@ - ded_status - deliverchecklist - depreciation_taxes - - dms_advisor_id - dms_allocation - - dms_customer_id - - dms_id - driveable - employee_body - employee_csr @@ -4115,12 +3764,8 @@ - est_ph1 - est_st - est_zip - - estimate_approved - - estimate_sent_approval - federal_tax_rate - - flat_rate_ats - g_bett_amt - - hit_and_run - id - inproduction - ins_addr1 @@ -4195,10 +3840,8 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph1x - ownr_ph2 - - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -4217,7 +3860,6 @@ - qb_multiple_payers - queued_for_parts - rate_ats - - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -4301,12 +3943,10 @@ - actual_completion - actual_delivery - actual_in - - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line - - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -4371,7 +4011,6 @@ - completed_tasks - converted - created_at - - created_user_email - cust_pr - date_estimated - date_exported @@ -4390,10 +4029,7 @@ - ded_status - deliverchecklist - depreciation_taxes - - dms_advisor_id - dms_allocation - - dms_customer_id - - dms_id - driveable - employee_body - employee_csr @@ -4410,12 +4046,8 @@ - est_ph1 - est_st - est_zip - - estimate_approved - - estimate_sent_approval - federal_tax_rate - - flat_rate_ats - g_bett_amt - - hit_and_run - id - inproduction - ins_addr1 @@ -4490,10 +4122,8 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph1x - ownr_ph2 - - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -4512,7 +4142,6 @@ - qb_multiple_payers - queued_for_parts - rate_ats - - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -4592,6 +4221,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -4602,69 +4232,6 @@ - active: _eq: true event_triggers: - - name: job_modified - definition: - enable_manual: false - update: - columns: - - employee_prep - - clm_total - - suspended - - employee_body - - ro_number - - ownr_co_nm - - v_vin - - scheduled_completion - - special_coverage_policy - - scheduled_delivery - - actual_delivery - - actual_completion - - kanbanparent - - est_ct_fn - - alt_transport - - v_model_desc - - clm_no - - v_make_desc - - date_next_contact - - status - - employee_csr - - actual_in - - v_model_yr - - comment - - job_totals - - ownr_fn - - v_color - - ca_gst_registrant - - employee_refinish - - ownr_ph1 - - date_last_contacted - - inproduction - - est_ct_ln - - production_vars - - category - - date_invoiced - - est_co_nm - - ownr_ln - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - body: - action: transform - template: |- - { - "data": {{$body?.event?.data?.new}} - } - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/job/job-updated' - version: 2 - name: job_status_transition definition: enable_manual: true @@ -4701,77 +4268,6 @@ template_engine: Kriti url: '{{$base_url}}/record-handler/arms' version: 2 - - name: notifications_jobs - definition: - enable_manual: false - insert: - columns: '*' - update: - columns: - - queued_for_parts - - employee_prep - - clm_total - - towin - - employee_body - - converted - - scheduled_in - - scheduled_completion - - scheduled_delivery - - actual_delivery - - actual_completion - - alt_transport - - date_exported - - status - - employee_csr - - actual_in - - deliverchecklist - - comment - - job_totals - - employee_refinish - - inproduction - - production_vars - - intakechecklist - - cieca_ttl - - date_invoiced - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - body: - action: transform - template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": {{$body.event.op}},\r\n \"data\": {\r\n \"old\": {\r\n \"id\": {{$body.event.data.old.id}},\r\n \"ro_number\": {{$body.event.data.old.ro_number}},\r\n \"queued_for_parts\": {{$body.event.data.old.queued_for_parts}},\r\n \"employee_prep\": {{$body.event.data.old.employee_prep}},\r\n \"clm_total\": {{$body.event.data.old.clm_total}},\r\n \"towin\": {{$body.event.data.old.towin}},\r\n \"employee_body\": {{$body.event.data.old.employee_body}},\r\n \"converted\": {{$body.event.data.old.converted}},\r\n \"scheduled_in\": {{$body.event.data.old.scheduled_in}},\r\n \"scheduled_completion\": {{$body.event.data.old.scheduled_completion}},\r\n \"scheduled_delivery\": {{$body.event.data.old.scheduled_delivery}},\r\n \"actual_delivery\": {{$body.event.data.old.actual_delivery}},\r\n \"actual_completion\": {{$body.event.data.old.actual_completion}},\r\n \"alt_transport\": {{$body.event.data.old.alt_transport}},\r\n \"date_exported\": {{$body.event.data.old.date_exported}},\r\n \"status\": {{$body.event.data.old.status}},\r\n \"employee_csr\": {{$body.event.data.old.employee_csr}},\r\n \"actual_in\": {{$body.event.data.old.actual_in}},\r\n \"deliverchecklist\": {{$body.event.data.old.deliverchecklist}},\r\n \"comment\": {{$body.event.data.old.comment}},\r\n \"employee_refinish\": {{$body.event.data.old.employee_refinish}},\r\n \"inproduction\": {{$body.event.data.old.inproduction}},\r\n \"production_vars\": {{$body.event.data.old.production_vars}},\r\n \"intakechecklist\": {{$body.event.data.old.intakechecklist}},\r\n \"cieca_ttl\": {{$body.event.data.old.cieca_ttl}},\r\n \"date_invoiced\": {{$body.event.data.old.date_invoiced}}\r\n },\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"ro_number\": {{$body.event.data.old.ro_number}},\r\n \"queued_for_parts\": {{$body.event.data.new.queued_for_parts}},\r\n \"employee_prep\": {{$body.event.data.new.employee_prep}},\r\n \"clm_total\": {{$body.event.data.new.clm_total}},\r\n \"towin\": {{$body.event.data.new.towin}},\r\n \"employee_body\": {{$body.event.data.new.employee_body}},\r\n \"converted\": {{$body.event.data.new.converted}},\r\n \"scheduled_in\": {{$body.event.data.new.scheduled_in}},\r\n \"scheduled_completion\": {{$body.event.data.new.scheduled_completion}},\r\n \"scheduled_delivery\": {{$body.event.data.new.scheduled_delivery}},\r\n \"actual_delivery\": {{$body.event.data.new.actual_delivery}},\r\n \"actual_completion\": {{$body.event.data.new.actual_completion}},\r\n \"alt_transport\": {{$body.event.data.new.alt_transport}},\r\n \"date_exported\": {{$body.event.data.new.date_exported}},\r\n \"status\": {{$body.event.data.new.status}},\r\n \"employee_csr\": {{$body.event.data.new.employee_csr}},\r\n \"actual_in\": {{$body.event.data.new.actual_in}},\r\n \"deliverchecklist\": {{$body.event.data.new.deliverchecklist}},\r\n \"comment\": {{$body.event.data.new.comment}},\r\n \"employee_refinish\": {{$body.event.data.new.employee_refinish}},\r\n \"inproduction\": {{$body.event.data.new.inproduction}},\r\n \"production_vars\": {{$body.event.data.new.production_vars}},\r\n \"intakechecklist\": {{$body.event.data.new.intakechecklist}},\r\n \"cieca_ttl\": {{$body.event.data.new.cieca_ttl}},\r\n \"date_invoiced\": {{$body.event.data.new.date_invoiced}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_jobs\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"jobs\"\r\n }\r\n}\r\n" - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleJobsChange' - version: 2 - - name: notifications_jobs_autoadd - definition: - enable_manual: false - insert: - columns: '*' - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - body: - action: transform - template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": {{$body.event.op}},\r\n \"data\": {\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"shopid\": {{$body.event.data.new?.shopid}},\r\n \"ro_number\": {{$body.event.data.new?.ro_number}},\r\n \"created_user_email\": {{$body.event.data.new?.created_user_email}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_jobs_autoadd\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"jobs\"\r\n }\r\n}\r\n" - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleAutoAdd' - version: 2 - name: os_jobs definition: delete: @@ -4795,35 +4291,6 @@ template_engine: Kriti url: '{{$base_url}}/opensearch' version: 2 -- table: - name: jobs_inproduction - schema: public - object_relationships: - - name: bodyshop - using: - manual_configuration: - column_mapping: - shopid: id - insertion_order: null - remote_table: - name: bodyshops - schema: public - select_permissions: - - role: user - permission: - columns: - - id - - shopid - - updated_at - filter: - bodyshop: - associations: - _and: - - user: - authid: - _eq: X-Hasura-User-Id - - active: - _eq: true - table: name: masterdata schema: public @@ -4840,34 +4307,6 @@ - key - value filter: {} -- table: - name: media_analytics - schema: public - object_relationships: - - name: bodyshop - using: - foreign_key_constraint_on: bodyshopid - array_relationships: - - name: media_analytics_details - using: - foreign_key_constraint_on: - column: media_analytics_id - table: - name: media_analytics_detail - schema: public -- table: - name: media_analytics_detail - schema: public - object_relationships: - - name: bodyshop - using: - foreign_key_constraint_on: bodyshopid - - name: job - using: - foreign_key_constraint_on: jobid - - name: media_analytic - using: - foreign_key_constraint_on: media_analytics_id - table: name: messages schema: public @@ -4913,7 +4352,6 @@ - id - image - image_path - - is_system - isoutbound - msid - read @@ -4961,6 +4399,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: conversation: bodyshop: @@ -5078,7 +4517,6 @@ - critical - id - jobid - - pinned - private - text - type @@ -5093,7 +4531,6 @@ - critical - id - jobid - - pinned - private - text - type @@ -5118,7 +4555,6 @@ - critical - id - jobid - - pinned - private - text - type @@ -5137,6 +4573,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: job: bodyshop: @@ -5147,110 +4584,6 @@ _eq: X-Hasura-User-Id - active: _eq: true - event_triggers: - - name: notifications_notes - definition: - enable_manual: false - insert: - columns: '*' - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleNotesChange' - version: 2 -- table: - name: notifications - schema: public - object_relationships: - - name: association - using: - foreign_key_constraint_on: associationid - - name: job - using: - foreign_key_constraint_on: jobid - insert_permissions: - - role: user - permission: - check: - job: - bodyshop: - associations: - _and: - - user: - authid: - _eq: X-Hasura-User-Id - - active: - _eq: true - columns: - - scenario_meta - - scenario_text - - fcm_text - - created_at - - read - - updated_at - - associationid - - id - - jobid - comment: "" - select_permissions: - - role: user - permission: - columns: - - scenario_meta - - scenario_text - - fcm_text - - created_at - - read - - updated_at - - associationid - - id - - jobid - filter: - job: - bodyshop: - associations: - _and: - - user: - authid: - _eq: X-Hasura-User-Id - - active: - _eq: true - allow_aggregations: true - comment: "" - update_permissions: - - role: user - permission: - columns: - - scenario_meta - - scenario_text - - fcm_text - - created_at - - read - - updated_at - - associationid - - id - - jobid - filter: {} - check: - job: - bodyshop: - associations: - _and: - - user: - authid: - _eq: X-Hasura-User-Id - - active: - _eq: true - comment: "" - table: name: owners schema: public @@ -5293,9 +4626,7 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph2 - - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -5320,9 +4651,7 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph2 - - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -5358,9 +4687,7 @@ - ownr_fn - ownr_ln - ownr_ph1 - - ownr_ph1_ty - ownr_ph2 - - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -5381,6 +4708,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -5685,6 +5013,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: parts_order: job: @@ -5817,6 +5146,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: job: bodyshop: @@ -5992,6 +5322,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: job: bodyshop: @@ -6003,25 +5334,6 @@ - active: _eq: true event_triggers: - - name: notifications_payments - definition: - enable_manual: false - insert: - columns: '*' - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handlePaymentsChange' - version: 2 - name: os_payments definition: delete: @@ -6045,32 +5357,6 @@ template_engine: Kriti url: '{{$base_url}}/opensearch' version: 2 -- table: - name: phone_number_opt_out - schema: public - object_relationships: - - name: bodyshop - using: - foreign_key_constraint_on: bodyshopid - select_permissions: - - role: user - permission: - columns: - - phone_number - - created_at - - updated_at - - bodyshopid - - id - filter: - bodyshop: - associations: - _and: - - user: - authid: - _eq: X-Hasura-User-Id - - active: - _eq: true - comment: "" - table: name: phonebook schema: public @@ -6176,6 +5462,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -6286,6 +5573,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: _or: - parentjob_rel: @@ -6375,6 +5663,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: job: bodyshop: @@ -6389,9 +5678,6 @@ name: tasks schema: public object_relationships: - - name: assigned_to_employee - using: - foreign_key_constraint_on: assigned_to - name: bill using: foreign_key_constraint_on: billid @@ -6407,6 +5693,9 @@ - name: parts_order using: foreign_key_constraint_on: partsorderid + - name: user + using: + foreign_key_constraint_on: assigned_to - name: userByCreatedBy using: foreign_key_constraint_on: created_by @@ -6423,50 +5712,48 @@ - active: _eq: true columns: - - assigned_to - - billid - - bodyshopid - completed + - deleted + - priority + - assigned_to + - created_by + - description + - title - completed_at - created_at - - created_by - - deleted - deleted_at - - description - due_date + - remind_at + - updated_at + - billid + - bodyshopid - id - jobid - joblineid - partsorderid - - priority - - remind_at - - remind_at_sent - - title - - updated_at select_permissions: - role: user permission: columns: - - assigned_to - - billid - - bodyshopid - completed + - deleted + - priority + - assigned_to + - created_by + - description + - title - completed_at - created_at - - created_by - - deleted - deleted_at - - description - due_date + - remind_at + - updated_at + - billid + - bodyshopid - id - jobid - joblineid - partsorderid - - priority - - remind_at - - remind_at_sent - - title - - updated_at filter: bodyshop: associations: @@ -6481,26 +5768,25 @@ - role: user permission: columns: - - assigned_to - - billid - - bodyshopid - completed + - deleted + - priority + - assigned_to + - created_by + - description + - title - completed_at - created_at - - created_by - - deleted - deleted_at - - description - due_date + - remind_at + - updated_at + - billid + - bodyshopid - id - jobid - joblineid - partsorderid - - priority - - remind_at - - remind_at_sent - - title - - updated_at filter: bodyshop: associations: @@ -6511,61 +5797,6 @@ - active: _eq: true check: null - event_triggers: - - name: notifications_tasks - definition: - enable_manual: false - insert: - columns: '*' - update: - columns: - - joblineid - - assigned_to - - due_date - - deleted - - partsorderid - - completed - - description - - billid - - title - - jobid - - priority - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleTasksChange' - version: 2 - - name: tasks_assigned_changed - definition: - enable_manual: false - insert: - columns: '*' - update: - columns: - - assigned_to - retry_conf: - interval_sec: 10 - num_retries: 3 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/tasks-assigned-handler' - version: 2 - table: name: timetickets schema: public @@ -6614,7 +5845,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - task_name @@ -6640,7 +5870,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - task_name @@ -6675,7 +5904,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - task_name @@ -6694,6 +5922,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -6703,26 +5932,6 @@ _eq: X-Hasura-User-Id - active: _eq: true - event_triggers: - - name: notifications_time_tickets - definition: - enable_manual: false - insert: - columns: '*' - retry_conf: - interval_sec: 10 - num_retries: 0 - timeout_sec: 60 - webhook_from_env: HASURA_API_URL - headers: - - name: event-secret - value_from_env: EVENT_SECRET - request_transform: - method: POST - query_params: {} - template_engine: Kriti - url: '{{$base_url}}/notifications/events/handleTimeTicketsChange' - version: 2 - table: name: transitions schema: public @@ -6859,7 +6068,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - updated_at @@ -6880,7 +6088,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - updated_at @@ -6911,7 +6118,6 @@ - id - jobid - memo - - payout_context - productivehrs - rate - updated_at @@ -6960,13 +6166,6 @@ table: name: email_audit_trail schema: public - - name: employees - using: - foreign_key_constraint_on: - column: user_email - table: - name: employees - schema: public - name: eula_acceptances using: foreign_key_constraint_on: @@ -6988,13 +6187,6 @@ table: name: ioevents schema: public - - name: job_watchers - using: - foreign_key_constraint_on: - column: user_email - table: - name: job_watchers - schema: public - name: messages using: foreign_key_constraint_on: @@ -7023,6 +6215,13 @@ table: name: parts_orders schema: public + - name: tasks + using: + foreign_key_constraint_on: + column: assigned_to + table: + name: tasks + schema: public - name: tasksByCreatedBy using: foreign_key_constraint_on: @@ -7219,6 +6418,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: @@ -7304,7 +6504,6 @@ - state - street1 - street2 - - tags - updated_at - zip select_permissions: @@ -7328,7 +6527,6 @@ - state - street1 - street2 - - tags - updated_at - zip filter: @@ -7362,7 +6560,6 @@ - state - street1 - street2 - - tags - updated_at - zip filter: @@ -7378,6 +6575,7 @@ delete_permissions: - role: user permission: + backend_only: false filter: bodyshop: associations: From f89d7865fac369bc95ce7cdafe2951e38ffd7268 Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 27 Mar 2026 14:46:00 -0400 Subject: [PATCH 3/3] Restore hasura metadata tables from master-AIO --- hasura/metadata/tables.yaml | 836 ++++++++++++++++++++++++++++++++---- 1 file changed, 762 insertions(+), 74 deletions(-) diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index 7a9de6b10..5d3d3eb85 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -69,7 +69,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: jobline: job: @@ -180,7 +179,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -200,6 +198,14 @@ - name: user using: foreign_key_constraint_on: useremail + array_relationships: + - name: notifications + using: + foreign_key_constraint_on: + column: associationid + table: + name: notifications + schema: public select_permissions: - role: user permission: @@ -209,6 +215,9 @@ - default_prod_list_view - id - kanban_settings + - new_message_sound + - notification_settings + - notifications_autoadd - qbo_realmId - shopid - useremail @@ -224,6 +233,9 @@ - authlevel - default_prod_list_view - kanban_settings + - new_message_sound + - notification_settings + - notifications_autoadd - qbo_realmId filter: user: @@ -387,7 +399,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -504,7 +515,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bill: job: @@ -671,7 +681,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: _and: - job: @@ -686,6 +695,25 @@ - exported: _eq: false event_triggers: + - name: notifications_bills + definition: + enable_manual: false + insert: + columns: '*' + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleBillsChange' + version: 2 - name: os_bills definition: delete: @@ -916,10 +944,14 @@ - autohouseid - bill_allow_post_to_closed - bill_tax_rates + - carfax_exclude - cdk_configuration - cdk_dealerid + - chatter_company_id + - chatterid - city - claimscorpid + - convenient_company - country - created_at - default_adjustment_rate @@ -931,6 +963,7 @@ - enforce_referral - entegral_configuration - entegral_id + - external_shop_id - features - federal_tax_id - id @@ -938,6 +971,8 @@ - inhousevendorid - insurance_vendor_id - intakechecklist + - intellipay_config + - intellipay_merchant_id - jc_hourly_rates - jobsizelimit - last_name_first @@ -974,12 +1009,16 @@ - md_tasks_presets - md_to_emails - messagingservicesid + - notification_followers - pbs_configuration - pbs_serialnumber - phone + - podiumid - prodtargethrs - production_config - region_config + - rr_configuration + - rr_dealerid - schedule_end_time - schedule_start_time - scoreboard_target @@ -996,6 +1035,7 @@ - template_header - textid - timezone + - tours_enabled - tt_allow_post_to_invoiced - tt_enforce_hours_for_tech_console - updated_at @@ -1024,6 +1064,7 @@ - bill_allow_post_to_closed - bill_tax_rates - cdk_configuration + - chatter_company_id - city - country - created_at @@ -1034,11 +1075,13 @@ - enforce_conversion_category - enforce_conversion_csr - enforce_referral + - external_shop_id - federal_tax_id - id - inhousevendorid - insurance_vendor_id - intakechecklist + - intellipay_config - jc_hourly_rates - last_name_first - localmediaserverhttp @@ -1073,10 +1116,12 @@ - md_ro_statuses - md_tasks_presets - md_to_emails + - notification_followers - pbs_configuration - phone - prodtargethrs - production_config + - rr_configuration - schedule_end_time - schedule_start_time - scoreboard_target @@ -1107,6 +1152,50 @@ - active: _eq: true check: null + event_triggers: + - name: cache_bodyshop + definition: + enable_manual: false + update: + columns: + - imexshopid + - timezone + - shopname + - notification_followers + - state + - md_order_statuses + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + body: + action: transform + template: |- + { + "created_at": {{$body.created_at}}, + "delivery_info": {{$body.delivery_info}}, + "event": { + "data": { + "new": { + "id": {{$body.event.data.new.id}}, + "shopname": {{$body.event.data.new.shopname}}, + "md_order_statuses": {{$body.event.data.new.md_order_statuses}} + } + }, + "op": {{$body.event.op}}, + "session_variables": {{$body.event.session_variables}} + } + } + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/bodyshop-cache' + version: 2 - table: name: cccontracts schema: public @@ -1281,7 +1370,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: courtesycar: bodyshop: @@ -1522,7 +1610,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -1782,7 +1869,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -1916,7 +2002,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: _or: - job: @@ -1936,6 +2021,29 @@ _eq: X-Hasura-User-Id - active: _eq: true + event_triggers: + - name: notifications_documents + definition: + enable_manual: false + insert: + columns: '*' + update: + columns: + - jobid + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleDocumentsChange' + version: 2 - table: name: email_audit_trail schema: public @@ -2101,7 +2209,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: employee_team: bodyshop: @@ -2264,7 +2371,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: employee: bodyshop: @@ -2335,6 +2441,13 @@ table: name: jobs schema: public + - name: tasks + using: + foreign_key_constraint_on: + column: assigned_to + table: + name: tasks + schema: public - name: timetickets using: foreign_key_constraint_on: @@ -2438,7 +2551,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -2583,6 +2695,9 @@ - active: _eq: true allow_aggregations: true +- table: + name: integration_log + schema: public - table: name: inventory schema: public @@ -2685,7 +2800,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -2797,7 +2911,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: conversation: bodyshop: @@ -2808,6 +2921,76 @@ _eq: X-Hasura-User-Id - active: _eq: true +- table: + name: job_watchers + schema: public + object_relationships: + - name: job + using: + foreign_key_constraint_on: jobid + - name: user + using: + foreign_key_constraint_on: user_email + insert_permissions: + - role: user + permission: + check: + job: + bodyshop: + associations: + user: + authid: + _eq: X-Hasura-User-Id + columns: + - user_email + - created_at + - id + - jobid + comment: "" + select_permissions: + - role: user + permission: + columns: + - user_email + - created_at + - id + - jobid + filter: + job: + bodyshop: + associations: + user: + authid: + _eq: X-Hasura-User-Id + comment: "" + update_permissions: + - role: user + permission: + columns: + - user_email + - created_at + - id + - jobid + filter: + job: + bodyshop: + associations: + user: + authid: + _eq: X-Hasura-User-Id + check: null + comment: "" + delete_permissions: + - role: user + permission: + filter: + job: + bodyshop: + associations: + user: + authid: + _eq: X-Hasura-User-Id + comment: "" - table: name: joblines schema: public @@ -2899,6 +3082,7 @@ - est_seq - glass_flag - id + - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -2968,6 +3152,7 @@ - est_seq - glass_flag - id + - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -3048,6 +3233,7 @@ - est_seq - glass_flag - id + - include_in_part_cnt - ioucreated - jobid - lbr_amt @@ -3112,7 +3298,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: job: bodyshop: @@ -3123,6 +3308,31 @@ _eq: X-Hasura-User-Id - active: _eq: true + event_triggers: + - name: notifications_joblines + definition: + enable_manual: false + update: + columns: + - critical + - status + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + body: + action: transform + template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": \"UPDATE\",\r\n \"data\": {\r\n \"old\": {\r\n \"id\": {{$body.event.data.old.id}},\r\n \"jobid\": {{$body.event.data.old.jobid}},\r\n \"critical\": {{$body.event.data.old.critical}},\r\n \"status\": {{$body.event.data.old.status}},\r\n \"line_desc\": {{$body.event.data.old.line_desc}}\r\n },\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"jobid\": {{$body.event.data.new.jobid}},\r\n \"critical\": {{$body.event.data.new.critical}},\r\n \"status\": {{$body.event.data.new.status}},\r\n \"line_desc\": {{$body.event.data.new.line_desc}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_joblines\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"joblines\"\r\n }\r\n}\r\n" + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleJobLinesChange' + version: 2 - table: name: joblines_status schema: public @@ -3269,6 +3479,13 @@ table: name: job_conversations schema: public + - name: job_watchers + using: + foreign_key_constraint_on: + column: jobid + table: + name: job_watchers + schema: public - name: joblines using: foreign_key_constraint_on: @@ -3299,6 +3516,13 @@ table: name: notes schema: public + - name: notifications + using: + foreign_key_constraint_on: + column: jobid + table: + name: notifications + schema: public - name: parts_dispatches using: foreign_key_constraint_on: @@ -3392,10 +3616,12 @@ - actual_completion - actual_delivery - actual_in + - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line + - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -3460,6 +3686,7 @@ - completed_tasks - converted - created_at + - created_user_email - cust_pr - date_estimated - date_exported @@ -3477,7 +3704,10 @@ - ded_status - deliverchecklist - depreciation_taxes + - dms_advisor_id - dms_allocation + - dms_customer_id + - dms_id - driveable - employee_body - employee_csr @@ -3494,8 +3724,12 @@ - est_ph1 - est_st - est_zip + - estimate_approved + - estimate_sent_approval - federal_tax_rate + - flat_rate_ats - g_bett_amt + - hit_and_run - id - inproduction - ins_addr1 @@ -3569,8 +3803,10 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph1x - ownr_ph2 + - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -3589,6 +3825,7 @@ - qb_multiple_payers - queued_for_parts - rate_ats + - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -3661,10 +3898,12 @@ - actual_completion - actual_delivery - actual_in + - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line + - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -3729,6 +3968,7 @@ - completed_tasks - converted - created_at + - created_user_email - cust_pr - date_estimated - date_exported @@ -3747,7 +3987,10 @@ - ded_status - deliverchecklist - depreciation_taxes + - dms_advisor_id - dms_allocation + - dms_customer_id + - dms_id - driveable - employee_body - employee_csr @@ -3764,8 +4007,12 @@ - est_ph1 - est_st - est_zip + - estimate_approved + - estimate_sent_approval - federal_tax_rate + - flat_rate_ats - g_bett_amt + - hit_and_run - id - inproduction - ins_addr1 @@ -3840,8 +4087,10 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph1x - ownr_ph2 + - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -3860,6 +4109,7 @@ - qb_multiple_payers - queued_for_parts - rate_ats + - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -3943,10 +4193,12 @@ - actual_completion - actual_delivery - actual_in + - acv_amount - adj_g_disc - adj_strdis - adj_towdis - adjustment_bottom_line + - admin_clerk - agt_addr1 - agt_addr2 - agt_city @@ -4011,6 +4263,7 @@ - completed_tasks - converted - created_at + - created_user_email - cust_pr - date_estimated - date_exported @@ -4029,7 +4282,10 @@ - ded_status - deliverchecklist - depreciation_taxes + - dms_advisor_id - dms_allocation + - dms_customer_id + - dms_id - driveable - employee_body - employee_csr @@ -4046,8 +4302,12 @@ - est_ph1 - est_st - est_zip + - estimate_approved + - estimate_sent_approval - federal_tax_rate + - flat_rate_ats - g_bett_amt + - hit_and_run - id - inproduction - ins_addr1 @@ -4122,8 +4382,10 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph1x - ownr_ph2 + - ownr_ph2_ty - ownr_ph2x - ownr_st - ownr_title @@ -4142,6 +4404,7 @@ - qb_multiple_payers - queued_for_parts - rate_ats + - rate_ats_flat - rate_la1 - rate_la2 - rate_la3 @@ -4221,7 +4484,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -4232,6 +4494,69 @@ - active: _eq: true event_triggers: + - name: job_modified + definition: + enable_manual: false + update: + columns: + - employee_prep + - clm_total + - suspended + - employee_body + - ro_number + - ownr_co_nm + - v_vin + - scheduled_completion + - special_coverage_policy + - scheduled_delivery + - actual_delivery + - actual_completion + - kanbanparent + - est_ct_fn + - alt_transport + - v_model_desc + - clm_no + - v_make_desc + - date_next_contact + - status + - employee_csr + - actual_in + - v_model_yr + - comment + - job_totals + - ownr_fn + - v_color + - ca_gst_registrant + - employee_refinish + - ownr_ph1 + - date_last_contacted + - inproduction + - est_ct_ln + - production_vars + - category + - date_invoiced + - est_co_nm + - ownr_ln + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + body: + action: transform + template: |- + { + "data": {{$body?.event?.data?.new}} + } + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/job/job-updated' + version: 2 - name: job_status_transition definition: enable_manual: true @@ -4268,6 +4593,77 @@ template_engine: Kriti url: '{{$base_url}}/record-handler/arms' version: 2 + - name: notifications_jobs + definition: + enable_manual: false + insert: + columns: '*' + update: + columns: + - queued_for_parts + - employee_prep + - clm_total + - towin + - employee_body + - converted + - scheduled_in + - scheduled_completion + - scheduled_delivery + - actual_delivery + - actual_completion + - alt_transport + - date_exported + - status + - employee_csr + - actual_in + - deliverchecklist + - comment + - job_totals + - employee_refinish + - inproduction + - production_vars + - intakechecklist + - cieca_ttl + - date_invoiced + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + body: + action: transform + template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": {{$body.event.op}},\r\n \"data\": {\r\n \"old\": {\r\n \"id\": {{$body.event.data.old.id}},\r\n \"ro_number\": {{$body.event.data.old.ro_number}},\r\n \"queued_for_parts\": {{$body.event.data.old.queued_for_parts}},\r\n \"employee_prep\": {{$body.event.data.old.employee_prep}},\r\n \"clm_total\": {{$body.event.data.old.clm_total}},\r\n \"towin\": {{$body.event.data.old.towin}},\r\n \"employee_body\": {{$body.event.data.old.employee_body}},\r\n \"converted\": {{$body.event.data.old.converted}},\r\n \"scheduled_in\": {{$body.event.data.old.scheduled_in}},\r\n \"scheduled_completion\": {{$body.event.data.old.scheduled_completion}},\r\n \"scheduled_delivery\": {{$body.event.data.old.scheduled_delivery}},\r\n \"actual_delivery\": {{$body.event.data.old.actual_delivery}},\r\n \"actual_completion\": {{$body.event.data.old.actual_completion}},\r\n \"alt_transport\": {{$body.event.data.old.alt_transport}},\r\n \"date_exported\": {{$body.event.data.old.date_exported}},\r\n \"status\": {{$body.event.data.old.status}},\r\n \"employee_csr\": {{$body.event.data.old.employee_csr}},\r\n \"actual_in\": {{$body.event.data.old.actual_in}},\r\n \"deliverchecklist\": {{$body.event.data.old.deliverchecklist}},\r\n \"comment\": {{$body.event.data.old.comment}},\r\n \"employee_refinish\": {{$body.event.data.old.employee_refinish}},\r\n \"inproduction\": {{$body.event.data.old.inproduction}},\r\n \"production_vars\": {{$body.event.data.old.production_vars}},\r\n \"intakechecklist\": {{$body.event.data.old.intakechecklist}},\r\n \"cieca_ttl\": {{$body.event.data.old.cieca_ttl}},\r\n \"date_invoiced\": {{$body.event.data.old.date_invoiced}}\r\n },\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"ro_number\": {{$body.event.data.old.ro_number}},\r\n \"queued_for_parts\": {{$body.event.data.new.queued_for_parts}},\r\n \"employee_prep\": {{$body.event.data.new.employee_prep}},\r\n \"clm_total\": {{$body.event.data.new.clm_total}},\r\n \"towin\": {{$body.event.data.new.towin}},\r\n \"employee_body\": {{$body.event.data.new.employee_body}},\r\n \"converted\": {{$body.event.data.new.converted}},\r\n \"scheduled_in\": {{$body.event.data.new.scheduled_in}},\r\n \"scheduled_completion\": {{$body.event.data.new.scheduled_completion}},\r\n \"scheduled_delivery\": {{$body.event.data.new.scheduled_delivery}},\r\n \"actual_delivery\": {{$body.event.data.new.actual_delivery}},\r\n \"actual_completion\": {{$body.event.data.new.actual_completion}},\r\n \"alt_transport\": {{$body.event.data.new.alt_transport}},\r\n \"date_exported\": {{$body.event.data.new.date_exported}},\r\n \"status\": {{$body.event.data.new.status}},\r\n \"employee_csr\": {{$body.event.data.new.employee_csr}},\r\n \"actual_in\": {{$body.event.data.new.actual_in}},\r\n \"deliverchecklist\": {{$body.event.data.new.deliverchecklist}},\r\n \"comment\": {{$body.event.data.new.comment}},\r\n \"employee_refinish\": {{$body.event.data.new.employee_refinish}},\r\n \"inproduction\": {{$body.event.data.new.inproduction}},\r\n \"production_vars\": {{$body.event.data.new.production_vars}},\r\n \"intakechecklist\": {{$body.event.data.new.intakechecklist}},\r\n \"cieca_ttl\": {{$body.event.data.new.cieca_ttl}},\r\n \"date_invoiced\": {{$body.event.data.new.date_invoiced}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_jobs\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"jobs\"\r\n }\r\n}\r\n" + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleJobsChange' + version: 2 + - name: notifications_jobs_autoadd + definition: + enable_manual: false + insert: + columns: '*' + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + body: + action: transform + template: "{\r\n \"event\": {\r\n \"session_variables\": {\r\n \"x-hasura-user-id\": {{$body?.event?.session_variables?.x-hasura-user-id ?? \"Internal\"}},\r\n \"x-hasura-role\": {{$body?.event?.session_variables?.x-hasura-role ?? \"Internal\"}}\r\n }, \r\n \"op\": {{$body.event.op}},\r\n \"data\": {\r\n \"new\": {\r\n \"id\": {{$body.event.data.new.id}},\r\n \"shopid\": {{$body.event.data.new?.shopid}},\r\n \"ro_number\": {{$body.event.data.new?.ro_number}},\r\n \"created_user_email\": {{$body.event.data.new?.created_user_email}}\r\n }\r\n }\r\n },\r\n \"trigger\": {\r\n \"name\": \"notifications_jobs_autoadd\"\r\n },\r\n \"table\": {\r\n \"schema\": \"public\",\r\n \"name\": \"jobs\"\r\n }\r\n}\r\n" + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleAutoAdd' + version: 2 - name: os_jobs definition: delete: @@ -4291,6 +4687,35 @@ template_engine: Kriti url: '{{$base_url}}/opensearch' version: 2 +- table: + name: jobs_inproduction + schema: public + object_relationships: + - name: bodyshop + using: + manual_configuration: + column_mapping: + shopid: id + insertion_order: null + remote_table: + name: bodyshops + schema: public + select_permissions: + - role: user + permission: + columns: + - id + - shopid + - updated_at + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true - table: name: masterdata schema: public @@ -4307,6 +4732,34 @@ - key - value filter: {} +- table: + name: media_analytics + schema: public + object_relationships: + - name: bodyshop + using: + foreign_key_constraint_on: bodyshopid + array_relationships: + - name: media_analytics_details + using: + foreign_key_constraint_on: + column: media_analytics_id + table: + name: media_analytics_detail + schema: public +- table: + name: media_analytics_detail + schema: public + object_relationships: + - name: bodyshop + using: + foreign_key_constraint_on: bodyshopid + - name: job + using: + foreign_key_constraint_on: jobid + - name: media_analytic + using: + foreign_key_constraint_on: media_analytics_id - table: name: messages schema: public @@ -4352,6 +4805,7 @@ - id - image - image_path + - is_system - isoutbound - msid - read @@ -4399,7 +4853,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: conversation: bodyshop: @@ -4517,6 +4970,7 @@ - critical - id - jobid + - pinned - private - text - type @@ -4531,6 +4985,7 @@ - critical - id - jobid + - pinned - private - text - type @@ -4555,6 +5010,7 @@ - critical - id - jobid + - pinned - private - text - type @@ -4573,7 +5029,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: job: bodyshop: @@ -4584,6 +5039,110 @@ _eq: X-Hasura-User-Id - active: _eq: true + event_triggers: + - name: notifications_notes + definition: + enable_manual: false + insert: + columns: '*' + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleNotesChange' + version: 2 +- table: + name: notifications + schema: public + object_relationships: + - name: association + using: + foreign_key_constraint_on: associationid + - name: job + using: + foreign_key_constraint_on: jobid + insert_permissions: + - role: user + permission: + check: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - scenario_meta + - scenario_text + - fcm_text + - created_at + - read + - updated_at + - associationid + - id + - jobid + comment: "" + select_permissions: + - role: user + permission: + columns: + - scenario_meta + - scenario_text + - fcm_text + - created_at + - read + - updated_at + - associationid + - id + - jobid + filter: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + allow_aggregations: true + comment: "" + update_permissions: + - role: user + permission: + columns: + - scenario_meta + - scenario_text + - fcm_text + - created_at + - read + - updated_at + - associationid + - id + - jobid + filter: {} + check: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + comment: "" - table: name: owners schema: public @@ -4626,7 +5185,9 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph2 + - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -4651,7 +5212,9 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph2 + - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -4687,7 +5250,9 @@ - ownr_fn - ownr_ln - ownr_ph1 + - ownr_ph1_ty - ownr_ph2 + - ownr_ph2_ty - ownr_st - ownr_title - ownr_zip @@ -4708,7 +5273,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -5013,7 +5577,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: parts_order: job: @@ -5146,7 +5709,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: job: bodyshop: @@ -5322,7 +5884,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: job: bodyshop: @@ -5334,6 +5895,25 @@ - active: _eq: true event_triggers: + - name: notifications_payments + definition: + enable_manual: false + insert: + columns: '*' + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handlePaymentsChange' + version: 2 - name: os_payments definition: delete: @@ -5357,6 +5937,32 @@ template_engine: Kriti url: '{{$base_url}}/opensearch' version: 2 +- table: + name: phone_number_opt_out + schema: public + object_relationships: + - name: bodyshop + using: + foreign_key_constraint_on: bodyshopid + select_permissions: + - role: user + permission: + columns: + - phone_number + - created_at + - updated_at + - bodyshopid + - id + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + comment: "" - table: name: phonebook schema: public @@ -5462,7 +6068,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -5573,7 +6178,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: _or: - parentjob_rel: @@ -5663,7 +6267,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: job: bodyshop: @@ -5678,6 +6281,9 @@ name: tasks schema: public object_relationships: + - name: assigned_to_employee + using: + foreign_key_constraint_on: assigned_to - name: bill using: foreign_key_constraint_on: billid @@ -5693,9 +6299,6 @@ - name: parts_order using: foreign_key_constraint_on: partsorderid - - name: user - using: - foreign_key_constraint_on: assigned_to - name: userByCreatedBy using: foreign_key_constraint_on: created_by @@ -5712,48 +6315,50 @@ - active: _eq: true columns: - - completed - - deleted - - priority - assigned_to - - created_by - - description - - title - - completed_at - - created_at - - deleted_at - - due_date - - remind_at - - updated_at - billid - bodyshopid + - completed + - completed_at + - created_at + - created_by + - deleted + - deleted_at + - description + - due_date - id - jobid - joblineid - partsorderid + - priority + - remind_at + - remind_at_sent + - title + - updated_at select_permissions: - role: user permission: columns: - - completed - - deleted - - priority - assigned_to - - created_by - - description - - title - - completed_at - - created_at - - deleted_at - - due_date - - remind_at - - updated_at - billid - bodyshopid + - completed + - completed_at + - created_at + - created_by + - deleted + - deleted_at + - description + - due_date - id - jobid - joblineid - partsorderid + - priority + - remind_at + - remind_at_sent + - title + - updated_at filter: bodyshop: associations: @@ -5768,25 +6373,26 @@ - role: user permission: columns: - - completed - - deleted - - priority - assigned_to - - created_by - - description - - title - - completed_at - - created_at - - deleted_at - - due_date - - remind_at - - updated_at - billid - bodyshopid + - completed + - completed_at + - created_at + - created_by + - deleted + - deleted_at + - description + - due_date - id - jobid - joblineid - partsorderid + - priority + - remind_at + - remind_at_sent + - title + - updated_at filter: bodyshop: associations: @@ -5797,6 +6403,61 @@ - active: _eq: true check: null + event_triggers: + - name: notifications_tasks + definition: + enable_manual: false + insert: + columns: '*' + update: + columns: + - joblineid + - assigned_to + - due_date + - deleted + - partsorderid + - completed + - description + - billid + - title + - jobid + - priority + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleTasksChange' + version: 2 + - name: tasks_assigned_changed + definition: + enable_manual: false + insert: + columns: '*' + update: + columns: + - assigned_to + retry_conf: + interval_sec: 10 + num_retries: 3 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/tasks-assigned-handler' + version: 2 - table: name: timetickets schema: public @@ -5922,7 +6583,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -5932,6 +6592,26 @@ _eq: X-Hasura-User-Id - active: _eq: true + event_triggers: + - name: notifications_time_tickets + definition: + enable_manual: false + insert: + columns: '*' + retry_conf: + interval_sec: 10 + num_retries: 0 + timeout_sec: 60 + webhook_from_env: HASURA_API_URL + headers: + - name: event-secret + value_from_env: EVENT_SECRET + request_transform: + method: POST + query_params: {} + template_engine: Kriti + url: '{{$base_url}}/notifications/events/handleTimeTicketsChange' + version: 2 - table: name: transitions schema: public @@ -6166,6 +6846,13 @@ table: name: email_audit_trail schema: public + - name: employees + using: + foreign_key_constraint_on: + column: user_email + table: + name: employees + schema: public - name: eula_acceptances using: foreign_key_constraint_on: @@ -6187,6 +6874,13 @@ table: name: ioevents schema: public + - name: job_watchers + using: + foreign_key_constraint_on: + column: user_email + table: + name: job_watchers + schema: public - name: messages using: foreign_key_constraint_on: @@ -6215,13 +6909,6 @@ table: name: parts_orders schema: public - - name: tasks - using: - foreign_key_constraint_on: - column: assigned_to - table: - name: tasks - schema: public - name: tasksByCreatedBy using: foreign_key_constraint_on: @@ -6418,7 +7105,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: @@ -6504,6 +7190,7 @@ - state - street1 - street2 + - tags - updated_at - zip select_permissions: @@ -6527,6 +7214,7 @@ - state - street1 - street2 + - tags - updated_at - zip filter: @@ -6560,6 +7248,7 @@ - state - street1 - street2 + - tags - updated_at - zip filter: @@ -6575,7 +7264,6 @@ delete_permissions: - role: user permission: - backend_only: false filter: bodyshop: associations: