Service Layer medium complexity backend
0
Dependencies
0
Dependents
3
Entities
0
Integrations

Description

Backend service that processes org-admin-defined report configurations and executes dynamic queries against the data store. Validates report parameters, enforces org-level data access boundaries, and returns structured result sets. Supports saving and retrieving named custom report configurations per organization.

Feature: Custom Reports

custom-report-service

Sources & reasoning

Custom Reports is not named explicitly in the source but is implied by diverse per-org analytics needs across sections 2-3 and the admin portal's stated role in org-level dashboards (line 195). Blueprint assigns v1.1, reflecting that standard reporting must stabilize before custom capabilities are layered on. Phase 3 positioning in section 5 aligns with the growth-phase roadmap.

  • docs/source/likeperson.md · line 195
    Coordinator and organization-level dashboards and KPIs

Responsibilities

  • Validate and parse incoming custom report configurations
  • Execute parameterized queries based on selected dimensions, fields, and date ranges
  • Enforce organization-scoped data access to prevent cross-org leakage
  • Persist and retrieve saved custom report configurations for an organization
  • Return paginated, structured result sets ready for frontend rendering or export

Interfaces

buildQuery(config: ReportConfig): CompiledQuery
executeReport(orgId: string, config: ReportConfig): ReportResult
saveReportConfig(orgId: string, config: ReportConfig): SavedReport
getSavedReports(orgId: string): SavedReport[]
deleteReportConfig(orgId: string, reportId: string): void