Metadata-Version: 2.4
Name: govoplan-reporting
Version: 0.1.15
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.15
Requires-Dist: govoplan-access>=0.1.15

# 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`.

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).
