req: auth/001 req: auth/002 req: auth/004 req: security/004 req: v1_release/003
hemx SaaS tutorial app
This is the compile-tested v1 production-shaped tutorial app. It intentionally uses an equivalent local persistence adapter and provider recipes as the supported v1 production boundary: auth/session, CSRF, SQLx persistence, deploy, metrics, flags, offline behavior, and islands are explicit app integrations, not hemx core services. Read the walkthrough in ../../docs/tutorial-saas.md. req: examples/001 req: auth/001
What it proves:
- typed form/newtype inputs for project creation
- auth/session context passed through normal Rust state
- CSRF-safe mutation checked before persistence
- local atomic-file persistence adapter with rollback and process-restart proof instead of a vendored SQL/auth provider
- a bounded
POST /projectsreference boundary requiring the current bearer session, exact origin, and CSRF token - generated form, slot, keyed row, page-swap, and live-status commands
- page shell with plain CSS and one explicit metrics island script
- compile-time surface generation plus interaction tests
For provider-explicit boundaries, see ../../docs/recipes/sqlx-persistence.md, ../../docs/recipes/auth-session-csrf.md, ../../docs/recipes/observability-flags.md, ../../docs/recipes/deploy-versioning.md, and ../../docs/recipes/pwa-offline.md.
What it deliberately keeps out of the tutorial crate:
- a vendored SQL/auth/metrics/flags/deploy provider dependency
- provider credentials, external services, migrations, or browser automation
- billing, account administration, or other SaaS platform scope
Those production concerns belong in app adapters and recipes so the tutorial remains runnable in CI without external side effects.
Run:
HEMX_SAAS_STORE=/tmp/hemx-saas-projects.tsv cargo run -p hemx-saas-example
cargo test -p hemx-saas-example --test production_reference
cargo test -p hemx-saas-example