Metadata-Version: 2.4
Name: govoplan-reporting
Version: 0.1.19
Summary: GovOPlaN governed reporting and semantic BI module.
Author: GovOPlaN
License: AGPL-3.0-or-later
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: govoplan-core>=0.1.37
Requires-Dist: govoplan-access>=0.1.18

# GovOPlaN Reporting

<!-- govoplan-repository-type:start -->
**Repository type:** module (domain).
<!-- govoplan-repository-type:end -->

`govoplan-reporting` owns report definitions, BI-style views, dashboards,
scheduled outputs, and report publication/export behavior. It is intentionally
separate from reusable template rendering and from generic dataflow pipelines.

The module now provides an executable governed semantic-reporting vertical:

- immutable, optimistic-concurrency guarded dataset, semantic-model, report,
  and quality-plan revisions;
- exact source and definition pins, tenant isolation, normalized access
  grants, row-policy handoff, freshness checks, and reconstructable run
  provenance;
- safe dimensions, hierarchies, measures, typed calculations, filters,
  detail/summary/pivot queries, parameterized PostgreSQL semantic plans, and
  accessible chart models without executing arbitrary report SQL;
- quality gates, saved views, interval/scheduled runs, CSV/JSON export,
  provider-neutral publication targets, and import activation assessments;
- a versioned, provider-neutral cross-module report contract with source-owned
  authorization, declared result schemas, privacy transforms, effective scope,
  source revisions, purpose, retention, export history, and audit provenance;
- a full-height Reporting workspace for running, inspecting, saving,
  scheduling, visualizing, drilling into reauthorized contributors, publishing
  through Files/Mail, and exporting authorized reports;
- a configurable Dashboard widget and explicit policy explanations for hidden
  fields, rows, and actions.

Reporting consumes Dataflow outputs or provider-owned read models. It does not
read another module's ORM tables or take ownership of ingestion and
transformation.

The canonical global route is `/reports`. `/reporting` remains a
Reporting-owned compatibility route for saved links. Domain modules may keep
their own operational report routes, but do not register `/reports`.

## Data-subject requests

Reporting publishes `privacy.dsar.reporting` for private saved views,
short-lived drill contexts, subject access grants, minimized staff
attribution, and explicitly identified retained executions, exports, and
publications. DSAR output never copies report rows, parameters, filters,
delivery targets, source payloads, diagnostics, provenance bodies, or hashes.
The source module remains responsible for locating and correcting subject
facts; arbitrary aggregate report output is not searched as if Reporting were
the authoritative owner.

Private views and drill contexts can be removed, grants revoked, and exact
retained result or publication detail minimized idempotently. Shared views,
definitions, schedules, quality/import evidence, and institutional attribution
require authorized review or retention. Source facts must be corrected before
rerunning or republishing a report.

See [docs/REPORTING_BOUNDARY.md](docs/REPORTING_BOUNDARY.md) for the boundary
decision. The behavior-level comparison with the supplied SuperX module set is
recorded in
[docs/SUPERX_CAPABILITY_ASSESSMENT.md](docs/SUPERX_CAPABILITY_ASSESSMENT.md).

Operational and recovery behavior is documented in
[docs/OPERATIONS.md](docs/OPERATIONS.md), while user and administrator tasks
are covered by [docs/USER_GUIDE.md](docs/USER_GUIDE.md) and
[docs/ADMIN_GUIDE.md](docs/ADMIN_GUIDE.md).

The Reporting route, workspace, state, consequence, and accessibility mapping
is recorded in
[docs/INTERFACE_PATTERN_MIGRATION.md](docs/INTERFACE_PATTERN_MIGRATION.md).
