Problem
Apps have a documented reports directory, but the framework has no report metadata contract, query runtime, public SDK, or Studio report renderer. Apps cannot ship reusable operational summaries without custom endpoints and custom UI.
Required behavior
- Define a readable report metadata contract for source Entities, columns, filters, grouping, aggregates, sorting, and limits.
- Compile reports through metadata-aware, permission-aware Record queries.
- Add a public App extension point only for calculations that the declarative contract cannot express safely.
- Render report filters and tables through shared Studio components.
- Support saved filter values and CSV export through the same report definition.
- Keep raw SQL private to the framework.
Acceptance criteria
- An App can ship a report definition in its reports directory.
- The runtime validates report metadata during App validation.
- Every result respects row-level and field-level access.
- Studio renders the report without App-specific UI code.
- Export uses the same filters, columns, and permission scope as the visible report.
Problem
Apps have a documented reports directory, but the framework has no report metadata contract, query runtime, public SDK, or Studio report renderer. Apps cannot ship reusable operational summaries without custom endpoints and custom UI.
Required behavior
Acceptance criteria