Server E2E
Language
- Elixir.
Runtime Context
- Server E2E control API, data lifecycle, log retention, LiveDashboard reporting.
Purpose
- Manages E2E test run lifecycle, suite listing, protocol validation, idempotency, environment locks, seed execution, journey result ingestion, log storage, log retrieval, and retention pruning.
Key Files
packages/server/lib/nixstasis/e2e.expackages/server/lib/nixstasis/e2e/run.expackages/server/lib/nixstasis/e2e/run_result.expackages/server/lib/nixstasis/e2e/protocol.expackages/server/lib/nixstasis/e2e/journey_selection.expackages/server/lib/nixstasis/e2e/expectation_registry.expackages/server/lib/nixstasis/e2e/environment_locks.expackages/server/lib/nixstasis/e2e/log_store.expackages/server/lib/nixstasis/e2e/retention_worker.expackages/server/lib/nixstasis_web/controllers/e2e_run_controller.expackages/server/lib/nixstasis_web/controllers/e2e_run_result_controller.expackages/server/lib/nixstasis_web/plugs/e2e_enabled.expackages/server/lib/nixstasis_web/live_dashboard/e2e_page.expackages/server/lib/mix/tasks/e2e.export_static.ex
Public Interfaces
Nixstasis.E2E.list_runs/0Nixstasis.E2E.list_suites/0Nixstasis.E2E.get_run!/1Nixstasis.E2E.get_run/1Nixstasis.E2E.prune_retention/1Nixstasis.E2E.list_results/1Nixstasis.E2E.create_run/1Nixstasis.E2E.cancel_run/1Nixstasis.E2E.delete_runs/1Nixstasis.E2E.record_result/3Nixstasis.E2E.submit_results/2Nixstasis.E2E.store_log/3Nixstasis.E2E.fetch_result_log/2Nixstasis.E2E.RetentionWorker.start_link/1
Dependencies
Internal
Nixstasis.E2E.DataPolicyNixstasis.E2E.EnvironmentLocksNixstasis.E2E.ExpectationRegistryNixstasis.E2E.JourneySelectionNixstasis.E2E.LogStoreNixstasis.E2E.ProtocolNixstasis.E2E.RunNixstasis.E2E.RunResultNixstasis.Repo
External
- Ecto.Query
- GenServer
- Phoenix Controller rendering
- LiveDashboard extension page
Client-Server Interaction Details
POST /e2e/runsreadsX-E2E-Protocol-Version, validates protocol/environment/suite/journeys/action-expect pairs, runs configured seed script, creates run rows, and returns201on success.- Run creation can return typed errors including
environment_locked,protocol_mismatch,invalid_action_expectation,seed_failed,invalid_request, anddatabase_error. POST /e2e/runs/:id/resultsstores journey outcomes and updates run status.GET /e2e/runs/:id/results/:journey_id/logretrieves log content or typed log-unavailable errors.- Production deployments disable E2E endpoints by default through
NixstasisWeb.Plugs.E2EEnabledunlessNIXSTASIS_E2E_ENABLED=true.
Traceable references:
packages/server/lib/nixstasis/e2e.ex:1-420packages/server/lib/nixstasis_web/controllers/e2e_run_controller.ex:1-93packages/server/lib/nixstasis_web/router.ex:68-79deploy/compose/README.md:12-14