Shemot 28:2 — V'asita vigdei kodesh l'Aharon achicha, l'khavod ul'tifaret. The builder makes the garments. The kohen wears them. Four access tiers (Operations spec §1.1): - Pe'ah (GET/POST /peah/ask) — public, no auth, no tracking. The stranger is safe to approach. - Courtyard (POST /courtyard/offering) — Bearer token auth, offering types: shelamim, olah, chatat, minchah - Chatzer (POST /chatzer/sanhedrin) — Sanhedrin deliberation, returns majority/minority with preserved dissent - Kodesh (GET /kodesh/health, /kodesh/status) — operator interface, health checks for K8s liveness/readiness probes Error format follows chatat protocol (Operations spec §1.2): KIYOR_* (422), SHABBAT (503), MANNA_DEPLETED (503), CLOUD_MOVING (503), HALT_* (503), UNAUTHORIZED (401) Implementation: - Plug.Router with Bandit HTTP server - Added to supervision tree via maybe_add_http_server - Checks system availability (Shabbat, halt) before processing - Health check reads L1 integrity, cloud, manna, halt monitor - Status shows all component states, signal count, refuge list - 16 API tests covering all four tiers + error format All 235 Elixir + 19 L3 + 195 Prolog + 33 Haskell = 463+ tests, 0 failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
711 B
Elixir
21 lines
711 B
Elixir
import Config
|
|
|
|
config :logger, level: :warning
|
|
|
|
# Test uses L1 relative to project root
|
|
config :vav_pipeline,
|
|
l1_mount_point: "../l1",
|
|
manna_provision_file: "test/fixtures/manna/today.json",
|
|
cycle_boundary_check_interval_ms: :timer.hours(24),
|
|
http_port: 0
|
|
|
|
# L3 test database — separate from dev, uses sandbox pool
|
|
# Repo start disabled by default — L3 tests need PostgreSQL running locally
|
|
# Enable: SHORASHIM_L3=1 mix test --include l3
|
|
config :vav_pipeline, VavPipeline.Repo,
|
|
database: "shorashim_test#{System.get_env("MIX_TEST_PARTITION")}",
|
|
hostname: "localhost",
|
|
pool: Ecto.Adapters.SQL.Sandbox,
|
|
pool_size: System.schedulers_online() * 2,
|
|
start: System.get_env("SHORASHIM_L3") != nil
|