Review: Add Caddy reverse proxy for dev.landscaping-assistant.app
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — Feature
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Feature Flag — none
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
Traceability
- [x] story:dev-url label — present on board item
- [ ] story note MISSING — [SCOPE] Create user story entry "dev-url" on project-landscaping-assistant user-stories section. Suggested summary: "Access dev environment via dev.landscaping-assistant.app with DNS, Caddy proxy, and Keycloak configuration"
- [x] arch:edge-proxy label — Edge Proxy (Hetzner VPS)
- [x] arch note verified — arch-edge-proxy note exists in pal-e-docs (active, architecture type)
- [x] Forgejo issue — ldraney/landscaping-assistant#340, open
File Targets
- [x]
salt/pillar/caddy.sls— verified: file exists in pal-e-platform. ISS dev entry pattern confirmed at lines 37-40 (domain: dev.intelligentstaffingsystems.ai, proxy_target: iss-dev.tail5b443a.ts.net, www_redirect: false). Adding a landscaping-dev entry following this pattern is straightforward.
Repo Placement
MISMATCH: Issue body declares
### Repo: ldraney/pal-e-platform but the Forgejo issue is filed under ldraney/landscaping-assistant (#340). The code change targets pal-e-platform/salt/pillar/caddy.sls. The previous Caddy proxy work for the custom-domain story was filed directly in pal-e-platform as pal-e-platform#434. Consider filing the implementation issue in the target repo for consistency, or document the cross-repo filing rationale.Dependencies
- Blocker: Item #1943 (landscaping-assistant#339 — "Add DNS CNAME for dev.landscaping-assistant.app") must complete first. Both are in backlog. The Lineage section correctly documents this: "Depends on DNS CNAME being in place."
- Sibling: Item #1945 (landscaping-assistant#341 — arch:keycloak, story:dev-url) is a downstream sibling in the same story that likely handles Keycloak redirect URI updates for the dev domain.
- Dependencies are documented in the issue body (Lineage section).
Acceptance Criteria
1 AC — clear and testable: "HTTPS requests to dev.landscaping-assistant.app are proxied to landscaping-dev.tail5b443a.ts.net". Test command is real (
curl -I). Note: test depends on DNS CNAME (issue #339) being in place first AND the dev environment running on the Tailscale funnel. The salt apply deployment command is documented.Blast Radius
Low. Only ISS currently has a dev.* Caddy entry. Adding a new pillar entry is additive and does not affect existing sites. Other apps (WKQ, prediction-assistant, paldocs) do not have dev entries — future work if needed. No downstream consumers are affected.
Decomposition Assessment
1 file target in 1 repo, 1 acceptance criterion. Estimated agent work well under 5 minutes. No decomposition needed.
Recommendation
- [SCOPE] Create user story entry "dev-url" on project-landscaping-assistant user-stories section. The story spans 3 issues (#339 DNS, #340 Caddy, #341 Keycloak) and needs a summary entry for traceability.
- [BODY] Repo placement: Consider moving the Forgejo issue to
pal-e-platformto match the target repo and the precedent set by pal-e-platform#434 (the production Caddy entry). Alternatively, document the cross-repo filing approach if this is intentional for project-board tracking.