Compare commits

...
6 Commits
Author SHA1 Message Date
Bastian de Byl f7f4d903a0 Merge remote-tracking branch 'origin/master' into feat/ci-images-registry 2026-09-14 19:57:33 -04:00
bastian f0e2fae900 Merge pull request 'SCRUM-196: GA4 analytics config for fulfillr Traffic & funnel tab' (#11) from scrum-196/fulfillr-ga4-analytics into master 2026-09-14 17:59:21 -04:00
Bastian de BylandClaude Opus 5 75e257077e SCRUM-196: fulfillr 20260914.2149 (embedded tzdata for GA4)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 17:55:15 -04:00
Bastian de BylandClaude Opus 5 80edc84586 SCRUM-196: fulfillr 20260914.2103 (funnel + GA4 traffic endpoints)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 17:10:08 -04:00
Bastian de BylandClaude Opus 5 e174e259eb SCRUM-196: Read GA4 key from fulfillr_ga4_credentials_json
Match the vault variable name holding the service-account key file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 16:21:04 -04:00
Bastian de BylandClaude Opus 5 e681a46b78 SCRUM-196: GA4 analytics config for fulfillr Traffic & funnel tab
Render an analytics block (property 353859448 + service-account key) into the
fulfillr dev and prod configs once fulfillr_ga4_credentials is in the vault.
Without the vault var the block is omitted and the portal reports GA as not
connected. Remember to restart the container after deploy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:02:38 -04:00
4 changed files with 21 additions and 2 deletions
+3
View File
@@ -329,3 +329,6 @@ cifs_watchdog_mounts:
- "{{ photos_path }}/storage" - "{{ photos_path }}/storage"
- "{{ photos_path }}/immich" - "{{ photos_path }}/immich"
# GA4 property for the fulfillr portal Traffic & funnel tab (SCRUM-196, non-secret).
# Shared by dev and prod. The service-account key `fulfillr_ga4_credentials_json` lives in the vault.
fulfillr_ga4_property_id: "353859448"
+2 -2
View File
@@ -81,13 +81,13 @@
- import_tasks: containers/debyltech/fulfillr.yml - import_tasks: containers/debyltech/fulfillr.yml
vars: vars:
image: git.debyl.io/debyltech/fulfillr:20260827.2009 image: git.debyl.io/debyltech/fulfillr:20260914.2149
tags: debyltech, fulfillr tags: debyltech, fulfillr
# Staging back-office (fulfillr-dev.debyltech.com) — same image, staging Turso config. # Staging back-office (fulfillr-dev.debyltech.com) — same image, staging Turso config.
- import_tasks: containers/debyltech/fulfillr-dev.yml - import_tasks: containers/debyltech/fulfillr-dev.yml
vars: vars:
image: git.debyl.io/debyltech/fulfillr:20260827.2009 image: git.debyl.io/debyltech/fulfillr:20260914.2149
tags: debyltech, fulfillr-dev tags: debyltech, fulfillr-dev
- import_tasks: containers/debyltech/uptime-kuma.yml - import_tasks: containers/debyltech/uptime-kuma.yml
@@ -53,5 +53,13 @@
"recovery": { "recovery": {
"schedule_name": "cart-recovery-dev", "schedule_name": "cart-recovery-dev",
"schedule_group": "default" "schedule_group": "default"
}{%- if fulfillr_ga4_credentials_json is defined %},
{# GA4 Data API for the portal Traffic & funnel tab (SCRUM-196). Renders only once the
service-account key `fulfillr_ga4_credentials_json` (the key JSON, as a mapping or string)
is in the vault; without it the traffic endpoint reports configured:false. #}
"analytics": {
"ga4_property_id": "{{ fulfillr_ga4_property_id }}",
"ga4_credentials": {{ (fulfillr_ga4_credentials_json if fulfillr_ga4_credentials_json is mapping else (fulfillr_ga4_credentials_json | from_json)) | to_json }}
} }
{%- endif %}
} }
@@ -53,5 +53,13 @@
"recovery": { "recovery": {
"schedule_name": "cart-recovery-prod", "schedule_name": "cart-recovery-prod",
"schedule_group": "default" "schedule_group": "default"
}{%- if fulfillr_ga4_credentials_json is defined %},
{# GA4 Data API for the portal Traffic & funnel tab (SCRUM-196). Renders only once the
service-account key `fulfillr_ga4_credentials_json` (the key JSON, as a mapping or string)
is in the vault; without it the traffic endpoint reports configured:false. #}
"analytics": {
"ga4_property_id": "{{ fulfillr_ga4_property_id }}",
"ga4_credentials": {{ (fulfillr_ga4_credentials_json if fulfillr_ga4_credentials_json is mapping else (fulfillr_ga4_credentials_json | from_json)) | to_json }}
} }
{%- endif %}
} }