Tracking issue for implementing the two accepted ADRs merged in #612:
docs/architecture-decisions/010-reporting-as-admin-operation.md
docs/architecture-decisions/011-integration-telemetry-and-usage-tracking.md
These are decisions, not code. This issue breaks them into phased implementation work. ADR-010 delivers value on today's structural generics before the larger ADR-011 lift; ADR-011 only gates the usage columns and trend snapshots.
Phase 1 — Reporting on the admin-operation runner (ADR-010 core)
Highest value, no new external dependencies.
Phase 2 — Run modes & persistence (ADR-010)
Phase 3 — Telemetry & feature-usage tracking (ADR-011)
Unblocks the usage columns + trends.
Open design decisions to settle deliberately (not silently in a PR)
Housekeeping
🤖 Generated with Claude Code
Tracking issue for implementing the two accepted ADRs merged in #612:
docs/architecture-decisions/010-reporting-as-admin-operation.mddocs/architecture-decisions/011-integration-telemetry-and-usage-tracking.mdThese are decisions, not code. This issue breaks them into phased implementation work. ADR-010 delivers value on today's structural generics before the larger ADR-011 lift; ADR-011 only gates the usage columns and trend snapshots.
Phase 1 — Reporting on the admin-operation runner (ADR-010 core)
Highest value, no new external dependencies.
ReportBasemirroringAdminScriptBase;reports: []registration in the app definition (core built-ins + adopter-defined).GET /api/v2/reportslists registered reports, not a hardcoded array).scope:'admin'discriminator; repository-level guarantee that user-context queries never return admin records and vice versa. ExtendsScriptExecutionRepository, not the integration-scopedProcessmodel. (Open decision: separate table vs discriminator.)Phase 2 — Run modes & persistence (ADR-010)
live/recorded/snapshotrun modes; mode selects the persistence path.getRemainingTimeInMillis→ resume next step) so heavy reports leave the request path.Phase 3 — Telemetry & feature-usage tracking (ADR-011)
Unblocks the usage columns + trends.
TelemetryServiceabstraction; exporter config in app definition; no-op default.USER_ACTION/CRON/QUEUE/WEBHOOKhandlers; api-module requests; queues/webhooks/sync).Definition.usagedeclaration; single emission path. (Open decision: strict vs advisory canonical registry.)totalsfor comparison,seriesfor trends); reports never query an external APM.Open design decisions to settle deliberately (not silently in a PR)
scopediscriminator.Migrator) eventually ride the same runner (out of scope for ADR-010, revisit later).Housekeeping
release/prereleaselabels (docs(adr): ADR-010 Reporting as an Admin Operation + ADR-011 Telemetry & Usage Tracking #612 cutv2.0.0-next.99unnecessarily).🤖 Generated with Claude Code