Review: Apply Caddy salt state to edge proxy

review-1771-2026-07-04 Review

review approved

Verdict: APPROVED

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — Standalone
  • [x] Repo — ldraney/pal-e-platform
  • [x] User Story — present
  • [x] Context — present
  • [x] File Targets — present (none to modify, correct for apply-only task)
  • [x] Feature Flag — none
  • [x] Acceptance Criteria — 4 criteria
  • [x] Test Expectations — present
  • [x] Constraints — present
  • [x] Checklist — present
  • [x] Related — present

Traceability

  • [x] story:app-experience — App Experience
  • [x] story note verified — found in project-prediction-assistant user-stories section
  • [x] arch:edge-proxy — Edge Proxy
  • [x] arch note verified — arch-edge-proxy note exists in pal-e-docs (architecture note, active status, project my-vibes-world)
  • [x] Forgejo issue — ldraney/pal-e-platform#516, open

File Targets

  • [x] No files to modify — correct, pillar config already exists
  • [x] salt/pillar/caddy.sls — verified: prediction-assistant entry at lines 21-23 (domain: prediction-assistant.com, proxy_target: prediction-assistant.tail5b443a.ts.net, www_redirect: true)
  • [x] salt/states/caddy/Caddyfile.j2 — verified: template exists, iterates pillar sites with reverse_proxy and optional www redirect

Repo Placement

OK — issue filed on ldraney/pal-e-platform, Salt states and pillar live in pal-e-platform. Single repo affected.

Dependencies

No blockers. No items currently in_progress on the board. Downstream: board item #1774 "Verify prediction-assistant.com is live" (backlog, sprint:10) depends on this ticket completing first. Item #1692 "DNS + reverse proxy — prediction-assistant.com" (validation) is the original DNS/proxy setup that created the pillar entry this ticket applies.

Acceptance Criteria

4 criteria, all concrete and agent-verifiable:
  • [x] Salt state applied — verifiable by running salt-ssh command (provided in Test Expectations)
  • [x] Caddy config includes site block — verifiable by inspecting generated Caddyfile on edge-proxy
  • [x] ACME cert obtained — verifiable; issue correctly notes may 502 until upstream is live
  • [x] curl TLS check — verifiable by running curl -I https://prediction-assistant.com
Test command provided: salt-ssh edge-proxy state.apply caddy. Real and correct.

Blast Radius

Low. Running state.apply caddy regenerates the entire Caddyfile from all pillar entries (palinks, landscaping, prediction-assistant, westside, paldocs). This is idempotent for existing sites since their pillar entries are unchanged. The only new site block added will be prediction-assistant.com. No downstream consumers affected beyond this service.

Decomposition Assessment

0 file targets to modify, 4 acceptance criteria, estimated agent work well under 5 minutes (single salt-ssh command + verification curl). No decomposition needed.

Recommendation

No action needed.