Pyramid web app for inspecting arborist Merkle trees over sharded SQLite: document roots, inclusion proofs, an interactive 3D Merkle lattice (six.js / WebGL with graceful fallback), audit-chain linkage, and a live SSE event stream. Generated artifacts (env/, vendored static/six/ bundles, demo databases) are gitignored and rebuilt via the Makefile (venv, six, init-db, serve).
62 lines
2.7 KiB
Python
62 lines
2.7 KiB
Python
"""Route declarations — ticket §13 (with WS→SSE translation per §3-corrected)."""
|
|
|
|
|
|
def includeme(config):
|
|
# static + meta
|
|
config.add_static_view("static", "static", cache_max_age=3600)
|
|
config.add_route("favicon", "/favicon.ico")
|
|
config.add_route("robots", "/robots.txt")
|
|
config.add_route("version", "/version")
|
|
config.add_route("home", "/")
|
|
config.add_route("dashboard_page", "/dashboard/{dashboard_id}")
|
|
config.add_route("proof_page", "/proof/{root_hash}")
|
|
config.add_route("audit_page", "/audit/{event_hash}")
|
|
|
|
# dashboards (saved layout metadata)
|
|
config.add_route("api_dashboards", "/api/dashboards")
|
|
config.add_route("api_dashboard", "/api/dashboards/{dashboard_id}")
|
|
|
|
# roots
|
|
config.add_route("api_roots", "/api/roots")
|
|
config.add_route("api_root", "/api/root/{root_hash}")
|
|
config.add_route("api_root_leaves", "/api/root/{root_hash}/leaves")
|
|
config.add_route("api_lattice", "/api/lattice/{root_hash}")
|
|
|
|
# hash resolver — drop-a-hash dispatcher
|
|
config.add_route("api_resolve", "/api/resolve/{hex_hash}")
|
|
|
|
# proofs
|
|
config.add_route("api_proof", "/api/proof/{root_hash}/{leaf_index}")
|
|
|
|
# claims + graveyard
|
|
config.add_route("api_claim", "/api/claim/{claim_id}")
|
|
config.add_route("api_claim_neighborhood", "/api/claim/{claim_id}/neighborhood")
|
|
config.add_route("api_graveyard_entry", "/api/graveyard/{claim_hash}")
|
|
|
|
# audit
|
|
config.add_route("api_audit_recent", "/api/audit/recent")
|
|
config.add_route("api_audit_by_root", "/api/audit/by-root/{root_hash}")
|
|
config.add_route("api_audit_event", "/api/audit/{event_hash}")
|
|
config.add_route("api_audit_chain", "/api/audit/chain/{event_hash}")
|
|
|
|
# run / cache / fork
|
|
config.add_route("api_run", "/api/run/{run_id}")
|
|
config.add_route("api_cache", "/api/cache/{cache_key}")
|
|
config.add_route("api_fork", "/api/fork/{fork_id}")
|
|
|
|
# traces (gated on arborist #000062 producing MechanisticWitnessRoot;
|
|
# Phase 0 returns 501 Not Implemented).
|
|
config.add_route("api_trace", "/api/trace/{trace_id}")
|
|
config.add_route("api_circuit", "/api/circuit/{circuit_id}")
|
|
|
|
# diff + snapshot
|
|
config.add_route("api_diff", "/api/diff/{root_a}/{root_b}")
|
|
config.add_route("api_graph_snapshot", "/api/graph/snapshot")
|
|
|
|
# SSE — §3-corrected replaces WS routes with text/event-stream.
|
|
config.add_route("sse_audit_live", "/sse/audit/live")
|
|
config.add_route("sse_run", "/sse/run/{run_id}")
|
|
config.add_route("sse_root", "/sse/root/{root_hash}")
|
|
config.add_route("sse_claim", "/sse/claim/{claim_id}")
|
|
config.add_route("sse_dashboard", "/sse/dashboard/{dashboard_id}")
|
|
config.add_route("sse_mesh_live", "/sse/mesh/live")
|