BASE-1: Generate Phoenix 1.8 application baseline #61

Merged
jwilger merged 1 commit from issue-7-generate-phoenix-baseline into main 2026-05-07 09:35:46 -07:00
Owner

Summary

  • Generates the Phoenix 1.8 baseline with Postgres, LiveView, Tailwind 4, and daisyUI defaults for #7.
  • Aligns dev/test database config with the project Compose Postgres service and project-local dependency cache paths.
  • Adds an initial threat model for the new Phoenix session, CSRF, LiveView, runtime secret, and local Postgres boundaries.

Verification

  • mix test test/anything_web/controllers/page_controller_test.exs
  • mix assets.build
  • mix format --check-formatted
  • MIX_ENV=test mix compile --warnings-as-errors --force
  • MIX_ENV=prod mix compile --warnings-as-errors --force
  • mix test --warnings-as-errors
  • npm run check:event-model

Notes

  • mix dialyzer --halt-exit-status, mix credo --strict, and mix sobelow are deferred because those Mix tasks are not configured yet; #11 tracks baseline verification gates.
  • mix test on the pre-baseline tree failed because no Mix project existed yet.

Closes #7

## Summary - Generates the Phoenix 1.8 baseline with Postgres, LiveView, Tailwind 4, and daisyUI defaults for #7. - Aligns dev/test database config with the project Compose Postgres service and project-local dependency cache paths. - Adds an initial threat model for the new Phoenix session, CSRF, LiveView, runtime secret, and local Postgres boundaries. ## Verification - `mix test test/anything_web/controllers/page_controller_test.exs` - `mix assets.build` - `mix format --check-formatted` - `MIX_ENV=test mix compile --warnings-as-errors --force` - `MIX_ENV=prod mix compile --warnings-as-errors --force` - `mix test --warnings-as-errors` - `npm run check:event-model` ## Notes - `mix dialyzer --halt-exit-status`, `mix credo --strict`, and `mix sobelow` are deferred because those Mix tasks are not configured yet; #11 tracks baseline verification gates. - `mix test` on the pre-baseline tree failed because no Mix project existed yet. Closes #7
@ -0,0 +1,18 @@
# Anything
To start your Phoenix server:
Author
Owner

Update the README.md so that it actually describes what we are attempting to build.

Update the README.md so that it actually describes what we are attempting to build.
Author
Owner

Addressed. Reflection: I left the generated Phoenix README in place instead of replacing it with the project/product description from the roadmap; this was a one-off documentation drift, not a guardrail gap. I updated README.md to describe the defect-driven self-building workflow, current baseline, setup, configuration, and verification.

Addressed. Reflection: I left the generated Phoenix README in place instead of replacing it with the project/product description from the roadmap; this was a one-off documentation drift, not a guardrail gap. I updated `README.md` to describe the defect-driven self-building workflow, current baseline, setup, configuration, and verification.
jwilger marked this conversation as resolved
@ -0,0 +67,4 @@
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs"
Author
Owner

Instead of having per-environment configs, let's unify to having only config/config.exs and config/runtime.exs and use environment variables to make this a true, 12factor app. I suggest using the config_helper hex package to...well...help config.

Instead of having per-environment configs, let's unify to having only config/config.exs and config/runtime.exs and use environment variables to make this a true, 12factor app. I suggest using the config_helper hex package to...well...help config.
Author
Owner

Addressed. Reflection: I accepted the generated per-environment Phoenix config instead of applying the project’s 12-factor preference during baseline generation; this was a one-off configuration drift, not a guardrail gap. I centralized config into config/config.exs and config/runtime.exs, removed the per-environment config files/import, added config_helper, preserved dev/test Ecto task visibility and Postgres env overrides in config.exs, and kept explicit prod DATABASE_URL/SECRET_KEY_BASE runtime raises.

Addressed. Reflection: I accepted the generated per-environment Phoenix config instead of applying the project’s 12-factor preference during baseline generation; this was a one-off configuration drift, not a guardrail gap. I centralized config into `config/config.exs` and `config/runtime.exs`, removed the per-environment config files/import, added `config_helper`, preserved dev/test Ecto task visibility and Postgres env overrides in `config.exs`, and kept explicit prod `DATABASE_URL`/`SECRET_KEY_BASE` runtime raises.
jwilger marked this conversation as resolved
Sign in to join this conversation.
No description provided.