Quest: Live Dashboard Artifact Framework (1ad65f21-f51).
Acceptance:
- view_spec_json schema: {data_sources: [{name, query, params}], filters, rank, render: {template, top_k, group_by}}.
- Safe-query DSL: read-only PG queries, parameterized only (no string interpolation), allow-list of tables (artifacts, hypotheses, gaps, debates, papers, wiki_pages, etc.), reject DDL/DML at parse time.
- Renderer: GET /api/dashboard/{id}/render?params=... executes view_spec, caches output (5 min default TTL, configurable per dashboard), updates last_render_data + last_rendered_at + last_render_errors. Errors captured but never crash render.
- UI: /dashboard/{id} renders via Jinja template referenced in view_spec.
- Migrate existing 6 test rows: pick 2 (Knowledge Growth Monitor, Quest Meta) to be reference dashboards with valid view_spec.
- Spec: docs/planning/specs/dashboard_view_spec_dsl.md.
Why now: existing 6 dashboards have empty rendered_html — framework is half-built. Finishing it unlocks every per-field ranking page.
Completion Notes
Auto-completed by supervisor after successful deploy to main
Git Commits (1)
Squash merge: orchestra/task/e352460b-live-dashboard-view-spec-json-safe-query (1 commits)2026-04-25
Payload JSON
{
"completion_shas": [
"c6e703271"
],
"completion_shas_checked_at": ""
}
Task Dependencies
↓ Referenced by (downstream)