Server Reporting
Language
- Elixir.
Runtime Context
- Server context, Ash resource layer, LiveView UI support.
Purpose
- Manages custom report CRUD operations, report list/detail view data, table filtering/sorting, and session-scoped view preferences.
Key Files
packages/server/lib/nixstasis/reporting.expackages/server/lib/nixstasis/reporting/custom_report.expackages/server/lib/nixstasis/reporting/query_builder.expackages/server/lib/nixstasis/reporting/table_filters.expackages/server/lib/nixstasis_web/live/reports/index_live.expackages/server/lib/nixstasis_web/live/reports/show_live.expackages/server/lib/nixstasis_web/live/reports/form_component.ex
Public Interfaces
Nixstasis.Reporting.list_custom_reports/0Nixstasis.Reporting.list_custom_reports_with_view/1Nixstasis.Reporting.get_custom_report!/1Nixstasis.Reporting.create_custom_report/1Nixstasis.Reporting.custom_report_name_taken?/1Nixstasis.Reporting.update_custom_report/2Nixstasis.Reporting.delete_custom_report/1Nixstasis.Reporting.save_view_preferences/3Nixstasis.Reporting.load_view_preferences/2Nixstasis.Reporting.change_custom_report/2
Dependencies
Internal
Nixstasis.DomainNixstasis.RepoNixstasis.Reporting.CustomReportNixstasis.Reporting.TableFilters
External
- Ecto.Query
- AshPhoenix
- Postgres-backed
report_view_preferencestable for persisted view preferences
Client-Server Interaction Details
- Reporting is primarily used by browser LiveView routes under
/reports. - Custom reports are also exposed through Ash JSON:API under
/api/json/custom_reports. - Report list/detail interaction requirements, including filtering, sorting, delete confirmation, and saved view preferences, are captured in Report View Improvements.
- Schema-aware alert/report builder option lookup and invalid-selection clearing behavior is captured in Schema-Driven Builder Dropdowns.
Traceable references:
packages/server/lib/nixstasis/reporting.ex:1-200packages/server/lib/nixstasis/domain.ex:52-58packages/server/lib/nixstasis_web/router.ex:41-44