@happyvertical/smrt-reports 0.55.20 → 0.55.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -70,7 +70,7 @@ Materialized aggregate report models for SMRT.
70
70
  A runtime report is data, not code: `parseRuntimeReportSpec()` accepts a closed
71
71
  grammar (no SQL, expressions, joins, tables, or tenants), and
72
72
  `compileRuntimeReportSpec()` resolves it against a server-owned source
73
- allow-list, the ObjectRegistry field policy, the live principal's permissions,
73
+ allow-list (including optional `fields`/`excludeFields`), the ObjectRegistry field policy, the live principal's permissions,
74
74
  and an explicit fail-closed tenant predicate. Stored `RuntimeReport` specs are
75
75
  re-compiled for the running principal on every run, and result rows are never
76
76
  persisted. Assistant tools are in `@happyvertical/smrt-chat`. The full
@@ -109,3 +109,23 @@ See [core recipes](../core/agents/recipes.md).
109
109
  - Raw aggregate refreshes must explicitly filter `tenant_id`; the tenancy interceptor only protects normal collection reads.
110
110
  - Scheduled/on-change refreshes enqueue `SmrtReportRefreshTask.run()` through `@happyvertical/smrt-jobs`; do not add a separate report queue.
111
111
  - `SmrtReportCollection` is a framework collection base (core's `SMRT_COLLECTION_BASE_NAMES`): a report collection never owns its model's table, even when an app manifest attributes the two to different packages. `pnpm test:postgres` runs the `*.optional.test.ts` lane (#3110).
112
+
113
+ ## Package registration
114
+
115
+ `src/__smrt-register__.ts` embeds the provider manifest during library builds.
116
+ Import it before model decorators, including model-bearing subpaths (`state`
117
+ and `scheduler`), so consumer SSR bundles retain reports-qualified identities.
118
+ The bundle gate executes these public entries in a fresh consumer process.
119
+ Audit #3525 found no other published domain model package missing its shim;
120
+ packages without one contain framework utilities or example/test decorators.
121
+
122
+ ## Schedule lifecycle
123
+
124
+ `tenantFanout: 'discover'` resolves non-null tenants in the source and existing
125
+ materialization at execution time only for signed global scheduled maintenance.
126
+ Include materialized scopes so rebuilds clear groups after their last source
127
+ row is deleted; discovery does not change incremental watermark semantics. Empty discovery must not call
128
+ refresh with an empty tenant array, which would select the global slice.
129
+ Schedule provisioning preserves existing state. Hosts bind terminal job events
130
+ with `ReportScheduleRunner.bindTaskRunner()` and dispose the returned binding
131
+ on shutdown; see [scheduled refresh lifecycle](README.md#scheduled-refresh-lifecycle).
package/README.md CHANGED
@@ -185,6 +185,14 @@ database-backed dimension facets. A descriptor marks group/time fields as
185
185
  combine the two scopes, but an OR or NOT cannot mix them, because moving either
186
186
  side across a source `WHERE`/`HAVING` boundary would change its meaning.
187
187
 
188
+ Materialized query results normalize hydrated values against their declared
189
+ column types. Objects in scalar columns become JSON text; JSON columns retain
190
+ structured values. Date-only and timezone-less timestamps use UTC, matching
191
+ SQLite storage, and temporal facet buckets follow the same rule. Strings over
192
+ 4096 characters are shortened with `truncated` and a warning, except row IDs:
193
+ identities are never rewritten, and unsupported IDs fail validation. Unsafe bigint
194
+ values fail instead of silently losing precision.
195
+
188
196
  The materialized collection executes the normalized, allowlisted predicate as
189
197
  parameterized SQL and applies it identically to rows, totals, and facets. It
190
198
  never accepts raw SQL, source field paths, tenant ids, or principal ids.
@@ -238,6 +246,36 @@ payloads use the same integrity boundary. Only a registered `SmrtReportCollectio
238
246
  synchronously refresh a stale read, and only when its TTL policy is positive and
239
247
  not manual.
240
248
 
249
+ ### Scheduled refresh lifecycle
250
+
251
+ Declare `refresh: { schedule: '*/5 * * * *', tenantFanout: 'discover' }`
252
+ on a tenant-scoped report to discover distinct non-null source tenants each
253
+ scheduled run. Include scopes still present in the materialized table so a
254
+ the next rebuild removes stale groups for tenants losing their final source row.
255
+ Discovery preserves the configured refresh mode. Incremental reports still need
256
+ a `fullRebuildSchedule` to catch hard deletions that do not advance a source
257
+ watermark. Provision schedules with `ensureReportRefreshSchedules({ db,
258
+ reports })`; no discovered scopes means no work, and discovery never refreshes
259
+ the global slice.
260
+ The worker uses the registered source/report tenant columns and its supplied
261
+ maintenance executor. Discovery does not grant database privileges or widen a
262
+ tenant-bound or manual job. Keep `tenantFanout: true` with explicit `tenantIds`
263
+ when the host owns a fixed tenant list.
264
+
265
+ Initialize a `ReportScheduleRunner` and a jobs `TaskRunner` against the migrated
266
+ database, then call `const unbind = schedules.bindTaskRunner(tasks)` before
267
+ starting them. This connects terminal job events to schedule counters, freeing
268
+ the concurrency slot after success or failure. Repeated binding is idempotent;
269
+ call `unbind()` on shutdown. Listen for `runner:error` to detect failed counter
270
+ updates. Persisted failure messages use the jobs package redaction policy.
271
+ Durable payload signing and execution-time authority checks remain
272
+ required; completion accounting uses the signed schedule identity.
273
+
274
+ Repeated schedule provisioning inserts missing identities and preserves existing
275
+ history, next-run time, running count, and operator settings. A different cron,
276
+ mode, or tenant scope identifies a different schedule; explicitly disable obsolete
277
+ schedules when changing those settings.
278
+
241
279
  ### Saved views and snapshot exports
242
280
 
243
281
  `normalizeReportSavedView()` and `restoreReportSavedView()` provide the
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=__smrt-register__.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__smrt-register__.d.ts","sourceRoot":"","sources":["../src/__smrt-register__.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import './__smrt-register__.js';
1
2
  export type { ReportAdapterDescriptor, ReportAdapterOptions, ReportBackgroundQueryOptions, ReportBackgroundQueryResult, ReportBackgroundQueryTask, ReportColumnCapability, ReportColumnDescriptor, ReportColumnKind, ReportColumnSensitivity, ReportDataQueryResult, ReportDataTableColumn, ReportDataTableColumnOverride, ReportDataTableColumnResponsive, ReportDataTableColumnRole, ReportDataTableDescriptor, ReportDataTableHeaderPathSegment, ReportDataTablePresentationOptions, ReportDataTableStructuralRow, ReportDataTableStructuralRowInput, ReportDataTableStructuralRowKind, ReportDataTableValueFormat, ReportDrilldownConstraint, ReportDrilldownDescriptor, ReportDrilldownFieldDescriptor, ReportDrilldownQuery, ReportFilterScope, ReportMaterializedReadLifecycle, ReportQueryExecutionDescriptor, ReportQueryExecutionMode, ReportQueryOptions, ReportRefreshActionDescriptor, ReportRefreshDescriptor, } from './adapter.js';
2
3
  export { buildReportAdapterDescriptor, buildReportDrilldownQuery, queryReportMaterializedRows, reportMaterializedRowKey, splitReportFilterScopes, } from './adapter.js';
3
4
  export { bucketExpr, buildAggregate, } from './aggregate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -736,8 +736,33 @@ function splitReportFilterScopes(descriptor, filter) {
736
736
  };
737
737
  return split(filter);
738
738
  }
739
+ var DATE_ONLY_VALUE = /^\d{4}-\d{2}-\d{2}$/;
740
+ var NAIVE_TIMESTAMP_VALUE = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?$/;
741
+ function instantOrNull(value) {
742
+ return Number.isNaN(value.getTime()) ? null : value.toISOString();
743
+ }
744
+ function epochToInstant(value) {
745
+ if (!Number.isFinite(value)) return null;
746
+ return instantOrNull(new Date(value));
747
+ }
748
+ function temporalToInstant(value) {
749
+ if (value instanceof Date) return instantOrNull(value);
750
+ if (typeof value === "number") return epochToInstant(value);
751
+ if (typeof value === "bigint") {
752
+ const numeric = Number(value);
753
+ return Number.isSafeInteger(numeric) ? epochToInstant(numeric) : null;
754
+ }
755
+ if (typeof value !== "string") return value;
756
+ const text = value.trim();
757
+ if (text.length === 0) return null;
758
+ if (DATE_ONLY_VALUE.test(text)) return `${text}T00:00:00.000Z`;
759
+ if (NAIVE_TIMESTAMP_VALUE.test(text)) return epochToInstant(Date.parse(`${text.replace(" ", "T")}Z`)) ?? value;
760
+ const parsed = Date.parse(text);
761
+ if (!Number.isFinite(parsed)) return value;
762
+ return epochToInstant(parsed) ?? value;
763
+ }
739
764
  function jsonSafeValue(value, ancestors = /* @__PURE__ */ new WeakSet()) {
740
- if (value instanceof Date) return value.toISOString();
765
+ if (value instanceof Date) return instantOrNull(value);
741
766
  if (typeof value === "bigint") {
742
767
  const numeric = Number(value);
743
768
  if (!Number.isSafeInteger(numeric)) throw new RangeError("Materialized bigint values must be safely representable as numbers");
@@ -755,11 +780,36 @@ function jsonSafeValue(value, ancestors = /* @__PURE__ */ new WeakSet()) {
755
780
  }
756
781
  return value;
757
782
  }
758
- function mapMaterializedRow(row, projection, fieldMap) {
783
+ function toDeclaredValue(value, descriptor, shortened) {
784
+ const cap = (text) => {
785
+ if (text.length <= 4096) return text;
786
+ shortened.add(descriptor.id);
787
+ const last = text.charCodeAt(4095);
788
+ const next = text.charCodeAt(4096);
789
+ const splitsPair = last >= 55296 && last <= 56319 && next >= 56320 && next <= 57343;
790
+ return text.slice(0, splitsPair ? 4095 : 4096);
791
+ };
792
+ if (descriptor.id === "id") return value;
793
+ if (value === void 0 || value === null) return null;
794
+ if (descriptor.type === "datetime") return temporalToInstant(value);
795
+ if (descriptor.type === "json") return jsonSafeValue(value);
796
+ if (typeof value === "object" && !(value instanceof Date)) try {
797
+ const rendered = JSON.stringify(jsonSafeValue(value));
798
+ return rendered === void 0 ? null : cap(rendered);
799
+ } catch (error) {
800
+ if (error instanceof RangeError) throw error;
801
+ return null;
802
+ }
803
+ if (descriptor.type === "boolean" && typeof value === "number") return value !== 0;
804
+ if (typeof value === "string") return cap(value);
805
+ return jsonSafeValue(value);
806
+ }
807
+ function mapMaterializedRow(row, projection, fieldMap, schema, shortened) {
759
808
  const mapped = {};
760
809
  for (const id of projection) {
761
810
  const sourceField = fieldMap.get(id) ?? id;
762
- if (sourceField in row) mapped[id] = jsonSafeValue(row[sourceField]);
811
+ const descriptor = schema.fields.find((field) => field.id === id);
812
+ if (sourceField in row && descriptor) mapped[id] = toDeclaredValue(row[sourceField], descriptor, shortened);
763
813
  }
764
814
  return mapped;
765
815
  }
@@ -820,6 +870,7 @@ async function queryReportMaterializedRows(reportCtor, input, options = {}) {
820
870
  const fieldMap = publicFieldMap(descriptor);
821
871
  const where = materializedWhere(request.filter, fieldMap);
822
872
  const collection = options.collection ?? await ObjectRegistry.getCollection(descriptor.reportClassName, { db: options.db });
873
+ const shortened = /* @__PURE__ */ new Set();
823
874
  let rows = [];
824
875
  let page;
825
876
  let total;
@@ -836,7 +887,7 @@ async function queryReportMaterializedRows(reportCtor, input, options = {}) {
836
887
  limit,
837
888
  orderBy: orderBy?.length === 1 ? orderBy[0] : orderBy,
838
889
  ...where === void 0 ? {} : { where }
839
- })).map((row) => mapMaterializedRow(row, projection, fieldMap));
890
+ })).map((row) => mapMaterializedRow(row, projection, fieldMap, descriptor.schema, shortened));
840
891
  rows.forEach((row) => {
841
892
  if (typeof row.id !== "string" || row.id.length === 0) throw new Error("Materialized report rows require a non-empty string id");
842
893
  });
@@ -870,10 +921,12 @@ async function queryReportMaterializedRows(reportCtor, input, options = {}) {
870
921
  facets = requested.map((facet) => {
871
922
  const sourceField = fieldMap.get(facet.field) ?? facet.field;
872
923
  const values = byField.get(sourceField)?.values ?? [];
924
+ const field = descriptor.schema.fields.find((field2) => field2.id === facet.field);
925
+ if (!field) throw new Error("Unknown report facet field");
873
926
  return {
874
927
  field: facet.field,
875
928
  values: values.map((value) => ({
876
- value: value.value,
929
+ value: toDeclaredValue(value.value, field, shortened),
877
930
  count: value.count
878
931
  })),
879
932
  truncated: values.length >= facet.limit
@@ -894,8 +947,8 @@ async function queryReportMaterializedRows(reportCtor, input, options = {}) {
894
947
  },
895
948
  ...facets === void 0 ? {} : { facets },
896
949
  freshness: { state: "unknown" },
897
- warnings: [],
898
- truncated: false
950
+ warnings: shortened.size ? ["Values exceeding the scalar result limit were shortened."] : [],
951
+ truncated: shortened.size > 0
899
952
  }, request, descriptor.schema);
900
953
  if (!lifecycleBefore || !lifecycleOptions) return {
901
954
  ...normalized,
@@ -1454,30 +1507,53 @@ function isExcluded(name, field, tenantField, permissions) {
1454
1507
  if (tenantField && toSnakeCase(name) === tenantField) return true;
1455
1508
  return false;
1456
1509
  }
1457
- async function loadSourceFields(qualifiedName, tenantField, permissions) {
1510
+ async function loadSourceFields(qualifiedName, tenantField, permissions, source) {
1458
1511
  const registered = await ObjectRegistry.getAllFields(qualifiedName);
1459
- const fields = /* @__PURE__ */ new Map();
1512
+ const baseNames = new Map(Object.keys(BASE_FIELDS).map((name) => [toSnakeCase(name), name]));
1513
+ const columns = /* @__PURE__ */ new Map();
1460
1514
  for (const [name, field] of registered) {
1461
- if (isExcluded(name, field, tenantField, permissions)) continue;
1462
- const type = columnTypeFor(field.type);
1463
- if (!type) continue;
1464
- const format = strictFormat(field);
1465
- fields.set(name, {
1515
+ const column = toSnakeCase(explicitColumn(field) ?? name);
1516
+ const entries = columns.get(column) ?? [];
1517
+ entries.push({
1466
1518
  name,
1467
- column: toSnakeCase(explicitColumn(field) ?? name),
1468
- type,
1469
- ...format ? { format } : {},
1470
- label: typeof field.description === "string" && field.description.length > 0 ? field.description : humanize(name)
1519
+ field
1471
1520
  });
1521
+ columns.set(column, entries);
1472
1522
  }
1473
1523
  for (const [name, type] of Object.entries(BASE_FIELDS)) {
1474
- if (fields.has(name) || registered.has(name)) continue;
1475
- fields.set(name, {
1524
+ const column = toSnakeCase(name);
1525
+ if (!columns.has(column) && !registered.has(name)) columns.set(column, [{
1476
1526
  name,
1477
- column: toSnakeCase(name),
1478
- type,
1479
- label: humanize(name)
1480
- });
1527
+ field: { type: type === "id" ? "foreignKey" : type === "string" ? "text" : type }
1528
+ }]);
1529
+ }
1530
+ const knownNames = /* @__PURE__ */ new Set();
1531
+ for (const [column, entries] of columns) for (const entry of entries) knownNames.add(baseNames.get(column) ?? entry.name);
1532
+ const policy = (key) => {
1533
+ const value = source[key];
1534
+ if (value === void 0) return void 0;
1535
+ if (!Array.isArray(value) || Array.from(value).some((name) => typeof name !== "string" || !knownNames.has(name))) throw new RuntimeReportError("unsupported_source", `source.${key}`, `${key} must contain canonical field names declared on the source`);
1536
+ return new Set(value);
1537
+ };
1538
+ const included = policy("fields");
1539
+ const excluded = policy("excludeFields");
1540
+ const fields = /* @__PURE__ */ new Map();
1541
+ for (const [column, entries] of columns) {
1542
+ if (column === tenantField || column === "tenant_id" || entries.some(({ name, field }) => isExcluded(name, field, tenantField, permissions) || excluded?.has(baseNames.get(column) ?? name))) continue;
1543
+ for (const { name: registeredName, field } of entries) {
1544
+ const name = baseNames.get(column) ?? registeredName;
1545
+ if (fields.has(name) || included && !included.has(name)) continue;
1546
+ const type = columnTypeFor(field.type);
1547
+ if (!type) continue;
1548
+ const format = strictFormat(field);
1549
+ fields.set(name, {
1550
+ name,
1551
+ column,
1552
+ type,
1553
+ ...format ? { format } : {},
1554
+ label: typeof field.description === "string" && field.description.length > 0 ? field.description : humanize(name)
1555
+ });
1556
+ }
1481
1557
  }
1482
1558
  return fields;
1483
1559
  }
@@ -1622,7 +1698,7 @@ async function prepareSource(context, id) {
1622
1698
  if (!table) throw new RuntimeReportError("unsupported_source", "spec.source", "this source has no registered table");
1623
1699
  const tenantCol = await tenantColumn(qualifiedName);
1624
1700
  if (isTenantScopedClass(qualifiedName) && !tenantCol) throw new RuntimeReportError("unsupported_source", "spec.source", "this tenant-scoped source does not expose a tenant column");
1625
- const fields = await loadSourceFields(qualifiedName, tenantCol, new Set(context.permissions ?? []));
1701
+ const fields = await loadSourceFields(qualifiedName, tenantCol, new Set(context.permissions ?? []), source);
1626
1702
  return {
1627
1703
  source,
1628
1704
  registeredName: registered.name,