Report Schema Registry
Component Detail
Description
Server-side service that defines and exposes the enumerated set of permitted dimensions, filters, groupings, and aggregation metrics available to the report builder. Acts as the sole source of truth for what query parameters are valid, preventing exposure of internal table structures to clients while still enabling flexible ad-hoc reporting. Returns schema metadata to the UI for dynamic control rendering and validates incoming report parameters before query execution.
report-schema-registry
Sources & reasoning
Described explicitly in implementation notes: dimensions and aggregation metrics are defined server-side in a report schema registry to prevent exposure of internal table structures. Without this layer the builder cannot dynamically enumerate valid options, and query injection via invented dimension names becomes possible.
No source references — this artifact was included based on reasoning alone (see above).
Responsibilities
- Maintain canonical list of available report dimensions and groupings
- Expose schema metadata endpoint consumed by the Report Builder UI
- Validate incoming ReportParams against permitted dimension set
- Map logical dimension names to physical query fragments without exposing table structure
Interfaces
getAvailableSchema(orgId: string): Promise<ReportSchema>
validateParams(params: ReportParams): ValidationResult
resolveDimension(dimensionId: string): QueryFragment
Relationships
Dependents (3)
Components that depend on this component