fix(ci): VITE_SENTRY_DSN wird nicht in Web-Build eingebrannt #302

Closed
opened 2026-05-15 19:29:56 +02:00 by admin-mrrm · 1 comment
Owner

Symptom

Im deployten Web-Bundle ist das inlinierte env-Objekt: alle VITE_* korrekt, aber VITE_SENTRY_DSN: "". Folge: if (sentryDsn) initSentry(sentryDsn) greift nie, der Web-Client schickt keine Events an GlitchTip.

Root Cause

plugins/docker versteht den Key build_args_from_secret nicht. Im Build-Log #669 (publish-web, 2026-05-15 08:36) enthält der docker-build-Aufruf keinen einzigen --build-arg VITE_SENTRY_DSN. ARG bleibt leer, Vite bakt leeren String ins Bundle.

Das Drone-Secret web-sentry-dsn (id 19) ist angelegt, aber wegen der falschen Plugin-Syntax irrelevant.

Fix

In .drone.yml publish-web Step auf offizielle plugins/docker-Syntax umstellen: Step-level environment.VITE_SENTRY_DSN aus Secret + settings.build_args_from_env: [VITE_SENTRY_DSN].

Verifikation nach Merge

  1. CI grün auf main → publish-web läuft
  2. curl https://app.mrrm.de/assets/index-*.js → DSN muss eingebrannt sein
  3. Testfehler provozieren, in GlitchTip prüfen

Folgearbeiten (separat)

  • API-DSN vault_mrrmlabapp_api_sentry_dsn in Ansible-Vault setzen
  • Mobile-DSN-Secret-Wert in Drone-UI prüfen (Syntax ist korrekt, Wert offen)
## Symptom Im deployten Web-Bundle ist das inlinierte env-Objekt: alle `VITE_*` korrekt, aber `VITE_SENTRY_DSN: ""`. Folge: `if (sentryDsn) initSentry(sentryDsn)` greift nie, der Web-Client schickt keine Events an GlitchTip. ## Root Cause `plugins/docker` versteht den Key `build_args_from_secret` nicht. Im Build-Log #669 (publish-web, 2026-05-15 08:36) enthält der docker-build-Aufruf keinen einzigen `--build-arg VITE_SENTRY_DSN`. ARG bleibt leer, Vite bakt leeren String ins Bundle. Das Drone-Secret `web-sentry-dsn` (id 19) ist angelegt, aber wegen der falschen Plugin-Syntax irrelevant. ## Fix In `.drone.yml` publish-web Step auf offizielle plugins/docker-Syntax umstellen: Step-level `environment.VITE_SENTRY_DSN` aus Secret + `settings.build_args_from_env: [VITE_SENTRY_DSN]`. ## Verifikation nach Merge 1. CI grün auf main → publish-web läuft 2. `curl https://app.mrrm.de/assets/index-*.js` → DSN muss eingebrannt sein 3. Testfehler provozieren, in GlitchTip prüfen ## Folgearbeiten (separat) - API-DSN `vault_mrrmlabapp_api_sentry_dsn` in Ansible-Vault setzen - Mobile-DSN-Secret-Wert in Drone-UI prüfen (Syntax ist korrekt, Wert offen)
Author
Owner

Erledigt.

Web (#303): plugins/docker build_args_from_secret → korrektes environment: VITE_SENTRY_DSN: from_secret + build_args_from_env. Bundle index-BByatkI8.js enthält DSN (57 chars, sentry.mrrm.de/1).

API:

  • prod-alt: Vault-DSN /2 war bereits gesetzt; on-server compose+.env per ansible-playbook playbooks/prod-alt.yml aktualisiert; Container manuell recreated (Ansible-Handler-Bug bei include_role+loop+notify).
  • dev-neu: Vault-DSN /4 via server-stack PR #9 gesetzt; compose-SENTRY_DSN-Mapping per PR #10 nachgezogen (prod-alt hatte es schon); Container recreated.

Mobile: Drone-Pipeline-Syntax war schon korrekt; DSN /3 via Test-Event verifiziert.

End-to-end-Verifikation: Test-Events in allen vier Projekten (test:claude-verify-Tag) in GlitchTip sichtbar bestätigt.

Erledigt. **Web (#303):** plugins/docker `build_args_from_secret` → korrektes `environment: VITE_SENTRY_DSN: from_secret` + `build_args_from_env`. Bundle `index-BByatkI8.js` enthält DSN (57 chars, `sentry.mrrm.de/1`). **API:** - prod-alt: Vault-DSN `/2` war bereits gesetzt; on-server compose+.env per `ansible-playbook playbooks/prod-alt.yml` aktualisiert; Container manuell recreated (Ansible-Handler-Bug bei `include_role+loop+notify`). - dev-neu: Vault-DSN `/4` via server-stack PR #9 gesetzt; compose-`SENTRY_DSN`-Mapping per PR #10 nachgezogen (prod-alt hatte es schon); Container recreated. **Mobile:** Drone-Pipeline-Syntax war schon korrekt; DSN `/3` via Test-Event verifiziert. End-to-end-Verifikation: Test-Events in allen vier Projekten (`test:claude-verify`-Tag) in GlitchTip sichtbar bestätigt.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#302
No description provided.