Faro reported the app as `Shiny Frontend` (copied from Shiny). Dancefinder's browser logs and traces would then mix with Shiny's in VictoriaLogs/VictoriaTraces once shiny/frontend#3778 moves to faro.unbound.se.
- `app.name`: `Shiny Frontend` → `dancefinder-app`. This follows the backend convention, where the OTel `service.name` is the repo name (`dancefinder`).
- `version` (`1.0.0`, the same as package.json) and `environment` (`config.name`) are unchanged.
`npm run lint` passes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01VSC7dLAgao1afzL5DQfH8F
Reviewed-on: #3107
Part of the dancefinder.unbound.se cutover to Frostmoln Production (infra: unboundsoftware/infra#1896, already applied).
- Replaces the AWS `deploy-prod` job (failing since CI left AWS) with `deploy-prod-frostmoln` (`deploy prod-frostmoln -n dancefinder`), as schemas did.
- Restricted securityContext (runAsNonRoot, drop ALL, seccomp RuntimeDefault) and `imagePullSecrets: oci-registry` (Platform registry).
- Switches to `nginxinc/nginx-unprivileged` (same pin as schemas-app), listening on 8080 as uid 101; the Service keeps port 80. Traefik Ingress for `/`, PDB, HPA moved to `-prod-frostmoln`; ALB Ingress dropped; Service ClusterIP.
Merging deploys to Frostmoln only; DNS still points at AWS until the cutover.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01H6eVuR4Yt3m7TbDTDwyZJi
Reviewed-on: https://gitea.unbound.se/dancefinder/dancefinder-app/pulls/3100
## Summary
`k8s/deploy.yaml` takes the image from build-tools: `image: ${IMAGE}` instead of the hard-coded `oci.unbound.se/dancefinder/dancefinder-app:${COMMIT}`.
`deploy` substitutes `${IMAGE}` with `<registry>/<owner>/<name>:<tag>`, where the registry comes from the build-tools config and the tag is the value `${COMMIT}` gets today. The rendered reference is unchanged. Moving off `oci.unbound.se` later becomes one change in infra.
Validated on shiny/time-service#864: merged and deployed to AWS staging and Frostmoln staging with the same image. Prerequisites, all merged:
- unboundsoftware/infra#1808: registry in `BUILDTOOLS_FROSTMOLN_STAGING`
- shiny/acctest#952: acctest pins build-tools to the Gitea registry
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Reviewed-on: https://gitea.unbound.se/dancefinder/dancefinder-app/pulls/3084
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.