@wtfalch/reporting 0.5.0 → 0.5.1

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.
Files changed (2) hide show
  1. package/README.md +28 -3
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -3,9 +3,12 @@
3
3
  The estate's operational event log and the housekeeping tick behind it: a
4
4
  writer that never fails a request, a claim protocol that needs no scheduler,
5
5
  and the readers an operator opens. Per-app Postgres, a host-supplied logger,
6
- a framework-neutral core and a Next entry. The design and its decisions are
7
- `docs/plans/reporting.md` and `docs/plans/reporting/core.md` in
8
- `wtfalch/app-template`.
6
+ a framework-neutral core and a Next entry. The design and its decisions were
7
+ originally `docs/plans/reporting.md` and `docs/plans/reporting/core.md` in
8
+ `wtfalch/app-template`, which was archived 2026-09-24 and replaced by
9
+ `foundry`; those docs are a historical record only. The design history for
10
+ everything past 0.2.0 lives in this repo's own `docs/plans/errors.md` and
11
+ `CHANGELOG.md`.
9
12
 
10
13
  Three records make up reporting on the estate. This package holds the
11
14
  **events** (what the system did: jobs, drains, alerts, an integration saying
@@ -15,6 +18,10 @@ row is transactional and its actor is unforgeable; an event row is best
15
18
  effort. The two share column names so a reader can walk between them, and
16
19
  nothing else.
17
20
 
21
+ ## Status
22
+
23
+ Published: yes, v0.5.1, 2026-09-28
24
+
18
25
  ## Install
19
26
 
20
27
  ```sh
@@ -136,6 +143,24 @@ every row regardless.
136
143
 
137
144
  ## Analytics (0.2.0)
138
145
 
146
+ **Topology, today:** this package is a library, not a host. `createReporting({
147
+ db, ... })` binds to whichever Postgres the calling app already has, and
148
+ every table below lives in that one app's own database. `tenantId` scopes a
149
+ read to one organisation *within* that single app's database — it does not
150
+ let a console outside that app read anything. There is no cross-app or
151
+ cross-company read: one company's own Boule sees only the rows its own
152
+ process wrote.
153
+
154
+ **Topology, target (settled 2026-09-28, planned after launch):** one shared
155
+ reporting collector, org-scoped like `@wtfalch/files` and `@wtfalch/ai` —
156
+ every app's `reporting` calls point at that one shared store instead of a
157
+ database of its own, row-level scoping keeps one company's rows out of
158
+ another's reads, Archon reads totals across every company, and each
159
+ company's own Boule reads only its own organisation's slice. Not built yet:
160
+ today's shape is the per-app library described above, and the shared-host
161
+ change (or a lighter "point every app's `reporting` at one app's database"
162
+ approach) is an open architecture question for whoever picks it up next.
163
+
139
164
  Three tables and two writers. `reporting_analytics` holds raw rows for a
140
165
  window (`analytics.retention_days`, default 90); `reporting_analytics_daily`
141
166
  and `reporting_analytics_weekly` hold counts with no identifier in any column
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wtfalch/reporting",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "The estate's operational event log and housekeeping tick: a writer that never fails a request, a claim protocol that needs no scheduler, and the readers an operator opens. Per-app Postgres, host-supplied logger, framework-neutral core with a Next entry.",
5
5
  "repository": {
6
6
  "type": "git",