diff --git a/docs/local-development.md b/docs/local-development.md index 3233008..9b9c8b6 100644 --- a/docs/local-development.md +++ b/docs/local-development.md @@ -30,6 +30,21 @@ AppRoles and secrets, initializes Mongo replica set `rs0`, configures Vault's Mo plugin, and starts authenticated NATS JetStream. Product startup fails explicitly until Resend credentials exist. Infrastructure remains available for provisioning. +After all services pass their startup health checks and the public Caddy CA is +exported, `make up` prints a Sendico-style completion message with the frontend, +API, API health and Vault URLs, the CA trust reminder, and status/log/stop commands. +Failed startup does not print the success message. Mongo and NATS are private +Compose services, so the summary does not advertise host URLs or credentials for +them. This terminal-only change reuses Compose errors and the command exit status +as startup outcome signals; it adds no analytics or secret output. + +Completion-message validation: `make test-dev-tooling` and `git diff --check` +passed. A containerized shell preview with stubbed infrastructure calls confirmed +the success layout and that failed service startup or CA export exits nonzero +without the message. The UX review checked readable plain-text labels, actionable +URLs/commands and confirmed-success timing. This check did not restart the live +stack or verify application readiness. + ## Vault layout Paths below are inside the KV v2 mount `kv`; the API inserts `data/` after `kv/`. diff --git a/infra/local/scripts/bootstrap.sh b/infra/local/scripts/bootstrap.sh index e12765e..3fcee0d 100644 --- a/infra/local/scripts/bootstrap.sh +++ b/infra/local/scripts/bootstrap.sh @@ -107,7 +107,23 @@ up() { kv services/notifications/email/resend | email_valid || fail 'Vault kv/services/notifications/email/resend needs api_key. Run make email; configure the verified sender in infra/local/notifications/runtime.yml, then make build && make up.' compose up -d --wait --wait-timeout 180 export_ca - echo 'Local stack ready: https://localhost:5126; Vault: http://127.0.0.1:18200' + cat <<'MESSAGE' + +✅ SXCHNGE development environment started! + +Services: + Frontend: https://localhost:5126 + API: https://localhost:5126/api/v1 + API health: https://localhost:5126/api/v1/health + Vault: http://127.0.0.1:18200 + +HTTPS: Trust .local/dev/ca.pem in your browser or system trust store. + See docs/local-development.md for setup instructions. + +View status: make ps +View logs: make logs +Stop: make down +MESSAGE } email() { existing