pipework 0.262.0 → 0.263.0

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 (39) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/REFERENCE.md +1 -1
  3. package/dist/audit/schema/audit-record-fields.d.ts.map +1 -1
  4. package/dist/audit/schema/audit-record-fields.js +2 -1
  5. package/dist/audit/schema/audit-record-fields.js.map +1 -1
  6. package/dist/auth/auth/schema.d.ts.map +1 -1
  7. package/dist/auth/auth/schema.js +4 -0
  8. package/dist/auth/auth/schema.js.map +1 -1
  9. package/dist/data/domain/types.d.ts +7 -0
  10. package/dist/data/domain/types.d.ts.map +1 -1
  11. package/dist/data/write/audit/audit-select.d.ts +2 -1
  12. package/dist/data/write/audit/audit-select.d.ts.map +1 -1
  13. package/dist/data/write/audit/audit-select.js +6 -4
  14. package/dist/data/write/audit/audit-select.js.map +1 -1
  15. package/dist/data/write/audit/primary-key.d.ts +2 -1
  16. package/dist/data/write/audit/primary-key.d.ts.map +1 -1
  17. package/dist/data/write/audit/primary-key.js +5 -2
  18. package/dist/data/write/audit/primary-key.js.map +1 -1
  19. package/dist/infra/access-links/schema.d.ts.map +1 -1
  20. package/dist/infra/access-links/schema.js +6 -0
  21. package/dist/infra/access-links/schema.js.map +1 -1
  22. package/dist/infra/audit/namespace.d.ts +1 -1
  23. package/dist/infra/audit/namespace.js +1 -1
  24. package/dist/infra/email/schema.d.ts.map +1 -1
  25. package/dist/infra/email/schema.js +3 -0
  26. package/dist/infra/email/schema.js.map +1 -1
  27. package/dist/request/http/rate-limit-classes.d.ts.map +1 -1
  28. package/dist/request/http/rate-limit-classes.js +2 -0
  29. package/dist/request/http/rate-limit-classes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/audit/schema/audit-record-fields.ts +2 -1
  32. package/src/auth/auth/schema.ts +4 -0
  33. package/src/data/domain/types.ts +7 -0
  34. package/src/data/write/audit/audit-select.ts +6 -4
  35. package/src/data/write/audit/primary-key.ts +6 -2
  36. package/src/infra/access-links/schema.ts +6 -0
  37. package/src/infra/audit/namespace.ts +1 -1
  38. package/src/infra/email/schema.ts +3 -0
  39. package/src/request/http/rate-limit-classes.ts +2 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.263.0
4
+
5
+ - **Added: `define(..., { auditEntityId: 'hashed' })` keeps personal keys out of `audit_record.entity_id`** (#923). An audited write to such a table stores the lowercase hex SHA-256 of the key text (the single key, or the composite key's JSON array) instead of the key; `audit.entityId(table, row)` returns the same hash, so `audit.query({ entity, entityId })` still finds one row's history. Pipework's own tables keyed by an address, an IP or a code are declared hashed: `pipework_email_unsubscribes` (an unsubscribe no longer writes the address into the audit row), `pipework_email_suppressions`, `pipework_signin_attempts`, `pipework_email_link_requests`, `pipework_rate_limit_counts`, `access_link_code`, `access_link_miss` and `access_link_check_spent`. Audit rows already written are not rewritten (the hash chain covers `entity_id`).
6
+
3
7
  ## 0.262.0
4
8
 
5
9
  - **Added: `mail.unsubscribedAmong(db, addresses, list)` reads many opt-outs in one query** (#922). It returns a `Set` of the given addresses, spelled as given, that have opted out of `list`, comparing them trimmed and lowercased as `mail.unsubscribed` does. Every given spelling of an opted-out address is in the set; no addresses means no query. A job that mails a list to a batch leaves out the opted-out in one read.
package/REFERENCE.md CHANGED
@@ -921,7 +921,7 @@ Field builders for domain definitions — uuid(), text(), integer(), etc.
921
921
 
922
922
  ### `pipe.define`
923
923
 
924
- Registers a domain definition with table, validators, and factory projections. The `auditEntity` option names the `@touches` entity writes to this table are audited under (see `__flowStep`).
924
+ Registers a domain definition with table, validators, and factory projections. The `auditEntity` option names the `@touches` entity writes to this table are audited under (see `__flowStep`). The `auditEntityId` option (`'key'` default, or `'hashed'`) sets what those audit rows store as `entity_id`: the primary key's text, or its lowercase hex SHA-256 for a table keyed by personal data or a secret (an address, an IP, a bearer code). `audit.entityId(table, row)` returns the matching value for `audit.query`. Audit rows already written are not rewritten, because the chain covers `entity_id`. The email unsubscribe and suppression tables, the sign-in, email-link and rate-limit counters, and the access-link code, miss and spent-challenge tables are declared `'hashed'`.
925
925
 
926
926
  `field.<type>().generatedAlwaysAs(sql`expr`)` declares a stored generated column: the migration emits `GENERATED ALWAYS AS (expr) STORED`, Postgres writes the value, the insert and update shapes and types omit it, the select shape keeps it, and a factory override for it throws. It cannot be combined with `.default()`, `.defaultRandom()`, `.primaryKey()`, `.tenant()` or `.references()`. Index it and name it as a conflict target to key on a digest of a value too long for a btree entry (~2.7 KB):
927
927
 
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record-fields.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C7B,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAA6C,CAAA"}
1
+ {"version":3,"file":"audit-record-fields.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7B,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAA6C,CAAA"}
@@ -40,7 +40,8 @@ export const auditRecordFields = {
40
40
  verb: field.text(),
41
41
  // The audited row's primary key as text: the single key's value, or for a
42
42
  // composite key a JSON array of the key values (as text, in key order). Null
43
- // on read-touches rows and on rows written before the column existed.
43
+ // on read-touches rows and on rows written before the column existed. A table
44
+ // declared `auditEntityId: 'hashed'` stores the SHA-256 hex of that text instead.
44
45
  // Indexed with the tenant and entity so one row's history is an index range.
45
46
  entityId: field.text().nullable(),
46
47
  // Server-side `.traceSafe()` projection of the row before/after the write.
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record-fields.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,wBAAwB;AACxB,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE;IACvD,4EAA4E;IAC5E,uEAAuE;IACvE,qEAAqE;IACrE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,2EAA2E;IAC3E,6DAA6D;IAC7D,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IAClB,0EAA0E;IAC1E,6EAA6E;IAC7E,sEAAsE;IACtE,6EAA6E;IAC7E,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,2EAA2E;IAC3E,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,8BAA8B;IAC9B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE;IAC7B,oEAAoE;IACpE,0EAA0E;IAC1E,0DAA0D;IAC1D,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"audit-record-fields.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,wBAAwB;AACxB,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE;IACvD,4EAA4E;IAC5E,uEAAuE;IACvE,qEAAqE;IACrE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,2EAA2E;IAC3E,6DAA6D;IAC7D,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IAClB,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,kFAAkF;IAClF,6EAA6E;IAC7E,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,2EAA2E;IAC3E,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,8BAA8B;IAC9B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE;IAC7B,oEAAoE;IACpE,0EAA0E;IAC1E,0DAA0D;IAC1D,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/auth/auth/schema.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAG/C,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAexB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;4BAIvB,CAAA;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAanB,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;8BAMzB,CAAA;AAIF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;6BAMxB,CAAA;AAKF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgBrB,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kCAI5B,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/auth/auth/schema.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAG/C,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAexB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;4BAIvB,CAAA;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAanB,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;8BAQzB,CAAA;AAIF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;6BAMxB,CAAA;AAKF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgBrB,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kCAM5B,CAAA"}
@@ -63,6 +63,8 @@ export const signinAttempts = define('pipework_signin_attempts', {
63
63
  firstFailureAt: field.timestamp().nullable(),
64
64
  lastFailureAt: field.timestamp().nullable(),
65
65
  lockedUntil: field.timestamp().nullable(),
66
+ }, {
67
+ auditEntityId: 'hashed',
66
68
  });
67
69
  // Behind `auth.guard`. Same shape as signinAttempts; `key` is
68
70
  // '<guard name>:<sha256 of the sorted key entries>'. Not tenant-scoped.
@@ -98,5 +100,7 @@ export const emailLinkRequests = define('pipework_email_link_requests', {
98
100
  key: field.text().primaryKey(),
99
101
  count: field.integer().default(0),
100
102
  windowStart: field.timestamp().default('now'),
103
+ }, {
104
+ auditEntityId: 'hashed',
101
105
  });
102
106
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/auth/auth/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/auth/auth/schema.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,mDAAmD;AACnD,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,6EAA6E;AAC7E,gFAAgF;AAChF,qDAAqD;AACrD,EAAE;AACF,8EAA8E;AAC9E,6BAA6B;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IAC3D,yBAAyB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,yBAAyB;IAChI,sBAAsB,EAAE,8BAA8B;CACvD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,yBAAyB,EAAE;IAC7D,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;IAC7C,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;IACvB,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;CAC7B,EAAE;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,MAAM,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA,oBAAoB,CAAC;QAChG,QAAQ,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;KACxE,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,EAAE;IAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IACjC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,EAAE;IACnD,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;IAC7C,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;IACnB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACjC,EAAE;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,uCAAuC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACvF,MAAM,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5D,KAAK,EAAE,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC1D,CAAC;CACH,CAAC,CAAA;AAEF,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,0BAA0B,EAAE;IAC/D,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAC9B,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC5C,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;CAC1C,EAAE;IACD,aAAa,EAAE,QAAQ;CACxB,CAAC,CAAA;AAEF,8DAA8D;AAC9D,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,yBAAyB,EAAE;IAC7D,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAC9B,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC5C,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA;AAEF,+EAA+E;AAC/E,iFAAiF;AACjF,mFAAmF;AACnF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,sBAAsB,EAAE;IACvD,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAC7B,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;IACrB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;IACrB,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;IACvB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;CACtC,EAAE;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;KAC7E,CAAC;CACH,CAAC,CAAA;AAEF,6GAA6G;AAC7G,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,8BAA8B,EAAE;IACtE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAC9B,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C,EAAE;IACD,aAAa,EAAE,QAAQ;CACxB,CAAC,CAAA"}
@@ -146,6 +146,13 @@ export interface DefineOptions {
146
146
  * name (case-insensitive, underscores ignored, table name optionally plural).
147
147
  */
148
148
  readonly auditEntity?: string;
149
+ /**
150
+ * What an audited write stores as `audit_record.entity_id`. `'key'` (default): the primary key's text.
151
+ * `'hashed'`: the lowercase hex SHA-256 of that text, for a table whose key is personal data or a
152
+ * secret (an address, an IP, a bearer code); `audit.entityId(table, row)` returns the same hash, so
153
+ * one row's history stays queryable. Audit rows already written are not rewritten: the chain covers entity_id.
154
+ */
155
+ readonly auditEntityId?: 'key' | 'hashed';
149
156
  }
150
157
  /** Column type projected from a FieldDescriptor — carries the right data type for Drizzle operators. */
151
158
  export type FieldColumn<F extends FieldDescriptor, TName extends string = string> = AnyPgColumn<{
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ import type { DefinedTable } from '../../domain/types.js';
5
5
  /**
6
6
  * SQL for `audit_record.entity_id` read from CTE alias `alias`: the single key
7
7
  * column cast to text, or a compact JSON array of the key columns as text for
8
- * a composite key; null for a table with no declared key. Matches `auditEntityId` in `primary-key.ts`.
8
+ * a composite key; null for a table with no declared key. A table declared `auditEntityId: 'hashed'`
9
+ * gets the lowercase hex SHA-256 of that text. Matches `auditEntityId` in `primary-key.ts`.
9
10
  */
10
11
  export declare function buildEntityIdExpr(table: DefinedTable<any>, alias: string): SQL;
11
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"audit-select.d.ts","sourceRoot":"","sources":["../../../../src/data/write/audit/audit-select.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAIpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAE/B,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,MAAM,GACZ,GAAG,CAOL;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,kJAAkJ;IAClJ,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;IAC7G,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG;AACV,+EAA+E;AAC/E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,GAAG,IAAI,GAC3C,GAAG,CA0BL"}
1
+ {"version":3,"file":"audit-select.d.ts","sourceRoot":"","sources":["../../../../src/data/write/audit/audit-select.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAIpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAE/B,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,EACxB,KAAK,EAAE,MAAM,GACZ,GAAG,CAQL;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,kJAAkJ;IAClJ,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;IAC7G,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG;AACV,+EAA+E;AAC/E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,GAAG,IAAI,GAC3C,GAAG,CA0BL"}
@@ -17,7 +17,8 @@ import { declaredPrimaryKeyFieldKeys } from './primary-key.js';
17
17
  /**
18
18
  * SQL for `audit_record.entity_id` read from CTE alias `alias`: the single key
19
19
  * column cast to text, or a compact JSON array of the key columns as text for
20
- * a composite key; null for a table with no declared key. Matches `auditEntityId` in `primary-key.ts`.
20
+ * a composite key; null for a table with no declared key. A table declared `auditEntityId: 'hashed'`
21
+ * gets the lowercase hex SHA-256 of that text. Matches `auditEntityId` in `primary-key.ts`.
21
22
  */
22
23
  export function buildEntityIdExpr(
23
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see primaryKeyFieldKeys
@@ -26,9 +27,10 @@ table, alias) {
26
27
  if (keys.length === 0)
27
28
  return sql `NULL::text`;
28
29
  const cols = keys.map(k => `${alias}.${quoteIdentifier(camelToSnake(k), 'pk column')}::text`);
29
- return cols.length === 1
30
- ? sql.raw(cols[0])
31
- : sql.raw(`array_to_json(ARRAY[${cols.join(', ')}])::text`);
30
+ const text = cols.length === 1 ? cols[0] : `array_to_json(ARRAY[${cols.join(', ')}])::text`;
31
+ return table.$options.auditEntityId === 'hashed'
32
+ ? sql.raw(`encode(sha256(convert_to(${text}, 'UTF8')), 'hex')`)
33
+ : sql.raw(text);
32
34
  }
33
35
  /**
34
36
  * Composes the `audit_inserts` CTE body: one `SELECT` per `@touches` target,
@@ -1 +1 @@
1
- {"version":3,"file":"audit-select.js","sourceRoot":"","sources":["../../../../src/data/write/audit/audit-select.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,uCAAuC;AACvC,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAIrC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAG9D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;AAC/B,yFAAyF;AACzF,KAAwB,EACxB,KAAa;IAEb,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA,YAAY,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC7F,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;QACtB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;QACnB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC/D,CAAC;AAqBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAuB,EACvB,IAAS,EACT,QAAa,EACb,MAAW,EACX,KAAU;AACV,+EAA+E;AAC/E,SAA4C;IAE5C,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAA;IAC9C,MAAM,YAAY,GAAG,cAAc,KAAK,IAAI;QAC1C,CAAC,CAAC,GAAG,CAAA,aAAa;QAClB,CAAC,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAA;IAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA;;;QAGlC,GAAG,CAAC,IAAI,CAAC,QAAQ;QACjB,GAAG,CAAC,IAAI,CAAC,OAAO;QAChB,GAAG,CAAC,IAAI,CAAC,MAAM;QACf,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,OAAO;QACX,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,YAAY;;MAEd,IAAI;MACJ,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;GAC1B,CAAC,CAAA;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAA,aAAa,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,SAAqD,EAAE,CAAY;IACpF,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAChC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,SAAS,CAAC,EAAE,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"audit-select.js","sourceRoot":"","sources":["../../../../src/data/write/audit/audit-select.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,uCAAuC;AACvC,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAIrC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAG9D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;AAC/B,yFAAyF;AACzF,KAAwB,EACxB,KAAa;IAEb,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA,YAAY,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;IAC5F,OAAO,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ;QAC9C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,4BAA4B,IAAI,oBAAoB,CAAC;QAC/D,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC;AAqBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAuB,EACvB,IAAS,EACT,QAAa,EACb,MAAW,EACX,KAAU;AACV,+EAA+E;AAC/E,SAA4C;IAE5C,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAA;IAC9C,MAAM,YAAY,GAAG,cAAc,KAAK,IAAI;QAC1C,CAAC,CAAC,GAAG,CAAA,aAAa;QAClB,CAAC,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAA;IAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA;;;QAGlC,GAAG,CAAC,IAAI,CAAC,QAAQ;QACjB,GAAG,CAAC,IAAI,CAAC,OAAO;QAChB,GAAG,CAAC,IAAI,CAAC,MAAM;QACf,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,OAAO;QACX,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,YAAY;;MAEd,IAAI;MACJ,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;GAC1B,CAAC,CAAA;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAA,aAAa,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,SAAqD,EAAE,CAAY;IACpF,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAChC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,SAAS,CAAC,EAAE,CAAA;AAC7C,CAAC"}
@@ -9,7 +9,8 @@ export declare function declaredPrimaryKeyFieldKeys(table: DefinedTable<any>): r
9
9
  /**
10
10
  * The audited row's primary key as `audit_record.entity_id` text: the single
11
11
  * key's value, or for a composite key a compact JSON array of the key values
12
- * as strings, in key order (`["a","7"]`).
12
+ * as strings, in key order (`["a","7"]`). A table declared `auditEntityId: 'hashed'`
13
+ * gets the lowercase hex SHA-256 of that text, as the audit writes store it.
13
14
  */
14
15
  export declare function auditEntityId(table: DefinedTable<any>, row: Readonly<Record<string, unknown>>): string;
15
16
  //# sourceMappingURL=primary-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primary-key.d.ts","sourceRoot":"","sources":["../../../../src/data/write/audit/primary-key.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAA;AAEtE;;;GAGG;AACH,wBAAgB,mBAAmB,CAEjC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,SAAS,MAAM,EAAE,CAYnB;AAED,+FAA+F;AAC/F,wBAAgB,2BAA2B,CAEzC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,SAAS,MAAM,EAAE,CASnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAE3B,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,EACxB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrC,MAAM,CAUR"}
1
+ {"version":3,"file":"primary-key.d.ts","sourceRoot":"","sources":["../../../../src/data/write/audit/primary-key.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAA;AAEtE;;;GAGG;AACH,wBAAgB,mBAAmB,CAEjC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,SAAS,MAAM,EAAE,CAYnB;AAED,+FAA+F;AAC/F,wBAAgB,2BAA2B,CAEzC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,SAAS,MAAM,EAAE,CASnB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAE3B,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,EACxB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrC,MAAM,CAWR"}
@@ -4,6 +4,7 @@
4
4
  // pre/post pair per affected db row. We honor the two ways a `pipe.define()`
5
5
  // table declares its key: composite via the `primaryKey` option, or single
6
6
  // via a field-level `.primaryKey()`.
7
+ import { createHash } from 'node:crypto';
7
8
  /**
8
9
  * Returns the primary-key field keys in declaration order. Throws when the
9
10
  * table declares no primary key — the audit CTE needs one to pair rows.
@@ -39,7 +40,8 @@ table) {
39
40
  /**
40
41
  * The audited row's primary key as `audit_record.entity_id` text: the single
41
42
  * key's value, or for a composite key a compact JSON array of the key values
42
- * as strings, in key order (`["a","7"]`).
43
+ * as strings, in key order (`["a","7"]`). A table declared `auditEntityId: 'hashed'`
44
+ * gets the lowercase hex SHA-256 of that text, as the audit writes store it.
43
45
  */
44
46
  export function auditEntityId(
45
47
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see primaryKeyFieldKeys
@@ -52,6 +54,7 @@ table, row) {
52
54
  }
53
55
  return v instanceof Date ? v.toISOString() : String(v);
54
56
  });
55
- return keys.length === 1 ? values[0] : JSON.stringify(values);
57
+ const text = keys.length === 1 ? values[0] : JSON.stringify(values);
58
+ return table.$options.auditEntityId === 'hashed' ? createHash('sha256').update(text, 'utf8').digest('hex') : text;
56
59
  }
57
60
  //# sourceMappingURL=primary-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primary-key.js","sourceRoot":"","sources":["../../../../src/data/write/audit/primary-key.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,qCAAqC;AAIrC;;;GAGG;AACH,MAAM,UAAU,mBAAmB;AACjC,yJAAyJ;AACzJ,KAAwB;IAExB,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,CAAC,KAAK,KAAK;YACzD,wCAAwC;YACxC,kEAAkE;YAClE,qEAAqE;YACrE,oEAAoE,CACrE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,2BAA2B;AACzC,yFAAyF;AACzF,KAAwB;IAExB,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAA;IAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAsB,CAAA;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;AAC3B,yFAAyF;AACzF,KAAwB,EACxB,GAAsC;IAEtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,KAAK,yBAAyB,CAAC,4BAA4B,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"primary-key.js","sourceRoot":"","sources":["../../../../src/data/write/audit/primary-key.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,qCAAqC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC;;;GAGG;AACH,MAAM,UAAU,mBAAmB;AACjC,yJAAyJ;AACzJ,KAAwB;IAExB,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,CAAC,KAAK,KAAK;YACzD,wCAAwC;YACxC,kEAAkE;YAClE,qEAAqE;YACrE,oEAAoE,CACrE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,2BAA2B;AACzC,yFAAyF;AACzF,KAAwB;IAExB,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAA;IAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAsB,CAAA;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;AAC3B,yFAAyF;AACzF,KAAwB,EACxB,GAAsC;IAEtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,KAAK,yBAAyB,CAAC,4BAA4B,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACpE,OAAO,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACnH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/access-links/schema.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,gDAAiD,CAAA;AAEtF,eAAO,MAAM,cAAc;;;;;;;;;;;;;sBAKzB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBrB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiBxB,CAAA;AAIF,eAAO,MAAM,oBAAoB;;;;;;;6BAG/B,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;sBAIzB,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/access-links/schema.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,gDAAiD,CAAA;AAEtF,eAAO,MAAM,cAAc;;;;;;;;;;;;;sBAOzB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBrB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiBxB,CAAA;AAIF,eAAO,MAAM,oBAAoB;;;;;;;6BAK/B,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;sBAMzB,CAAA"}
@@ -13,6 +13,8 @@ export const accessLinkCode = define('access_link_code', {
13
13
  tenantId: field.uuid(),
14
14
  linkId: field.uuid(),
15
15
  createdAt: field.timestamp().default('now'),
16
+ }, {
17
+ auditEntityId: 'hashed',
16
18
  });
17
19
  export const accessLink = define('access_link', {
18
20
  id: field.uuid().defaultRandom().primaryKey(),
@@ -54,6 +56,8 @@ export const accessLinkUse = define('access_link_use', {
54
56
  export const accessLinkCheckSpent = define('access_link_check_spent', {
55
57
  challenge: field.text().primaryKey(),
56
58
  expiresAt: field.timestamp(),
59
+ }, {
60
+ auditEntityId: 'hashed',
57
61
  });
58
62
  // Codes that matched no link, counted per client in a fixed window: the guessing
59
63
  // limit, shared by every process. Not tenant-scoped.
@@ -61,5 +65,7 @@ export const accessLinkMiss = define('access_link_miss', {
61
65
  client: field.text().primaryKey(),
62
66
  count: field.integer().default(0),
63
67
  windowStart: field.timestamp().default('now'),
68
+ }, {
69
+ auditEntityId: 'hashed',
64
70
  });
65
71
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/access-links/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/access-links/schema.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const audit: {
9
9
  /** Queries the framework-managed `audit_record` table. Tenant-scoped via the active Flow. `{ entity, entityId }` returns one row's history from an index; build a composite key's `entityId` with `audit.entityId`. */
10
10
  query: typeof query;
11
11
  /**
12
- * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings.
12
+ * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings. A table declared `auditEntityId: 'hashed'` gets the lowercase hex SHA-256 of that text, which is what its audit rows store.
13
13
  */
14
14
  entityId: typeof auditEntityId;
15
15
  /** The newest record's `{ seq, hash }` in the tenant's audit hash chain (blueprint `audit.chain`), to store outside the database; `null` when empty. */
@@ -9,7 +9,7 @@ export const audit = {
9
9
  /** Queries the framework-managed `audit_record` table. Tenant-scoped via the active Flow. `{ entity, entityId }` returns one row's history from an index; build a composite key's `entityId` with `audit.entityId`. */
10
10
  query,
11
11
  /**
12
- * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings.
12
+ * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings. A table declared `auditEntityId: 'hashed'` gets the lowercase hex SHA-256 of that text, which is what its audit rows store.
13
13
  */
14
14
  entityId: auditEntityId,
15
15
  /** The newest record's `{ seq, hash }` in the tenant's audit hash chain (blueprint `audit.chain`), to store outside the database; `null` when empty. */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/email/schema.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAEhD,CAAA;AAEF,eAAO,MAAM,cAAc,gFAAiF,CAAA;AAC5G,eAAO,MAAM,gBAAgB,8CAA+C,CAAA;AAC5E,eAAO,MAAM,eAAe,4BAA6B,CAAA;AACzD,eAAO,MAAM,mBAAmB,kCAAmC,CAAA;AAEnE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAuBxB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iCAK5B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;iCAM5B,CAAA;AAMF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAgCvB,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/email/schema.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAEhD,CAAA;AAEF,eAAO,MAAM,cAAc,gFAAiF,CAAA;AAC5G,eAAO,MAAM,gBAAgB,8CAA+C,CAAA;AAC5E,eAAO,MAAM,eAAe,4BAA6B,CAAA;AACzD,eAAO,MAAM,mBAAmB,kCAAmC,CAAA;AAEnE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAuBxB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iCAO5B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;iCAO5B,CAAA;AAMF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAgCvB,CAAA"}
@@ -45,6 +45,8 @@ export const emailSuppressions = define('pipework_email_suppressions', {
45
45
  reason: field.enum(SUPPRESSION_REASONS),
46
46
  detail: field.jsonb(schema.check.json()).nullable(),
47
47
  createdAt: field.timestamp().default('now'),
48
+ }, {
49
+ auditEntityId: 'hashed',
48
50
  });
49
51
  // One row per (address, list) that opted out of a list's mail. Address lowercased.
50
52
  export const emailUnsubscribes = define('pipework_email_unsubscribes', {
@@ -53,6 +55,7 @@ export const emailUnsubscribes = define('pipework_email_unsubscribes', {
53
55
  createdAt: field.timestamp().default('now'),
54
56
  }, {
55
57
  primaryKey: ['address', 'list'],
58
+ auditEntityId: 'hashed',
56
59
  });
57
60
  // One row per received message. Bodies are not stored here: the raw message is
58
61
  // the copy (in the receipt bucket or the stand-in's `received/` folder) and is
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/email/schema.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,8EAA8E;AAC9E,0EAA0E;AAC1E,kFAAkF;AAClF,4EAA4E;AAC5E,qFAAqF;AAErF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,6BAA6B;CAClH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAU,CAAA;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAA;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAA;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAA;AAEnE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,yBAAyB,EAAE;IAC7D,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;IAC7C,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE;IACjB,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;IACvB,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpD,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACtC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACzC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9B,EAAE;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7D,YAAY,EAAE,KAAK,CAAC,yCAAyC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACzF,cAAc,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;KAC1F,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,EAAE;IACrE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAClC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,CAAC,CAAA;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,EAAE;IACrE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;IACrB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,EAAE;IACD,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;CAChC,CAAC,CAAA;AAEF,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,EAAE;IAC3D,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;IAC7C,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7C,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE;IAC/B,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC1C,wGAAwG;IACxG,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAChD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACxD,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACjC,EAAE;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1E,WAAW,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACpF,QAAQ,EAAE,KAAK,CAAC,wCAAwC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/E,UAAU,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;KAC9H,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/email/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-classes.d.ts","sourceRoot":"","sources":["../../../src/request/http/rate-limit-classes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAO/C,OAAO,KAAK,EAAE,sBAAsB,EAA0D,MAAM,YAAY,CAAA;AAIhH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;gCAI1B,CAAA;AASF,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACjE,qFAAqF;IACrF,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChH;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAsI3G"}
1
+ {"version":3,"file":"rate-limit-classes.d.ts","sourceRoot":"","sources":["../../../src/request/http/rate-limit-classes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAO/C,OAAO,KAAK,EAAE,sBAAsB,EAA0D,MAAM,YAAY,CAAA;AAIhH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;gCAM1B,CAAA;AASF,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACjE,qFAAqF;IACrF,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChH;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAsI3G"}
@@ -10,6 +10,8 @@ export const rateLimitCounts = define('pipework_rate_limit_counts', {
10
10
  key: field.text().primaryKey(),
11
11
  count: field.integer().default(0),
12
12
  windowStart: field.timestamp().default('now'),
13
+ }, {
14
+ auditEntityId: 'hashed',
13
15
  });
14
16
  const WINDOWS = ['perUser', 'perTenant', 'perAddress', 'total'];
15
17
  function windowsOf(win) {
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-classes.js","sourceRoot":"","sources":["../../../src/request/http/rate-limit-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit-classes.js","sourceRoot":"","sources":["../../../src/request/http/rate-limit-classes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.262.0",
3
+ "version": "0.263.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,7 +42,8 @@ export const auditRecordFields = {
42
42
  verb: field.text(),
43
43
  // The audited row's primary key as text: the single key's value, or for a
44
44
  // composite key a JSON array of the key values (as text, in key order). Null
45
- // on read-touches rows and on rows written before the column existed.
45
+ // on read-touches rows and on rows written before the column existed. A table
46
+ // declared `auditEntityId: 'hashed'` stores the SHA-256 hex of that text instead.
46
47
  // Indexed with the tenant and entity so one row's history is an index range.
47
48
  entityId: field.text().nullable(),
48
49
  // Server-side `.traceSafe()` projection of the row before/after the write.
@@ -69,6 +69,8 @@ export const signinAttempts = define('pipework_signin_attempts', {
69
69
  firstFailureAt: field.timestamp().nullable(),
70
70
  lastFailureAt: field.timestamp().nullable(),
71
71
  lockedUntil: field.timestamp().nullable(),
72
+ }, {
73
+ auditEntityId: 'hashed',
72
74
  })
73
75
 
74
76
  // Behind `auth.guard`. Same shape as signinAttempts; `key` is
@@ -107,4 +109,6 @@ export const emailLinkRequests = define('pipework_email_link_requests', {
107
109
  key: field.text().primaryKey(),
108
110
  count: field.integer().default(0),
109
111
  windowStart: field.timestamp().default('now'),
112
+ }, {
113
+ auditEntityId: 'hashed',
110
114
  })
@@ -168,6 +168,13 @@ export interface DefineOptions {
168
168
  * name (case-insensitive, underscores ignored, table name optionally plural).
169
169
  */
170
170
  readonly auditEntity?: string
171
+ /**
172
+ * What an audited write stores as `audit_record.entity_id`. `'key'` (default): the primary key's text.
173
+ * `'hashed'`: the lowercase hex SHA-256 of that text, for a table whose key is personal data or a
174
+ * secret (an address, an IP, a bearer code); `audit.entityId(table, row)` returns the same hash, so
175
+ * one row's history stays queryable. Audit rows already written are not rewritten: the chain covers entity_id.
176
+ */
177
+ readonly auditEntityId?: 'key' | 'hashed'
171
178
  }
172
179
 
173
180
  /** Column type projected from a FieldDescriptor — carries the right data type for Drizzle operators. */
@@ -23,7 +23,8 @@ import type { DefinedTable } from '../../domain/types.js'
23
23
  /**
24
24
  * SQL for `audit_record.entity_id` read from CTE alias `alias`: the single key
25
25
  * column cast to text, or a compact JSON array of the key columns as text for
26
- * a composite key; null for a table with no declared key. Matches `auditEntityId` in `primary-key.ts`.
26
+ * a composite key; null for a table with no declared key. A table declared `auditEntityId: 'hashed'`
27
+ * gets the lowercase hex SHA-256 of that text. Matches `auditEntityId` in `primary-key.ts`.
27
28
  */
28
29
  export function buildEntityIdExpr(
29
30
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see primaryKeyFieldKeys
@@ -33,9 +34,10 @@ export function buildEntityIdExpr(
33
34
  const keys = declaredPrimaryKeyFieldKeys(table)
34
35
  if (keys.length === 0) return sql`NULL::text`
35
36
  const cols = keys.map(k => `${alias}.${quoteIdentifier(camelToSnake(k), 'pk column')}::text`)
36
- return cols.length === 1
37
- ? sql.raw(cols[0]!)
38
- : sql.raw(`array_to_json(ARRAY[${cols.join(', ')}])::text`)
37
+ const text = cols.length === 1 ? cols[0]! : `array_to_json(ARRAY[${cols.join(', ')}])::text`
38
+ return table.$options.auditEntityId === 'hashed'
39
+ ? sql.raw(`encode(sha256(convert_to(${text}, 'UTF8')), 'hex')`)
40
+ : sql.raw(text)
39
41
  }
40
42
 
41
43
  /**
@@ -5,6 +5,8 @@
5
5
  // table declares its key: composite via the `primaryKey` option, or single
6
6
  // via a field-level `.primaryKey()`.
7
7
 
8
+ import { createHash } from 'node:crypto'
9
+
8
10
  import type { DefinedTable, FieldRecord } from '../../domain/types.js'
9
11
 
10
12
  /**
@@ -46,7 +48,8 @@ export function declaredPrimaryKeyFieldKeys(
46
48
  /**
47
49
  * The audited row's primary key as `audit_record.entity_id` text: the single
48
50
  * key's value, or for a composite key a compact JSON array of the key values
49
- * as strings, in key order (`["a","7"]`).
51
+ * as strings, in key order (`["a","7"]`). A table declared `auditEntityId: 'hashed'`
52
+ * gets the lowercase hex SHA-256 of that text, as the audit writes store it.
50
53
  */
51
54
  export function auditEntityId(
52
55
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see primaryKeyFieldKeys
@@ -61,5 +64,6 @@ export function auditEntityId(
61
64
  }
62
65
  return v instanceof Date ? v.toISOString() : String(v)
63
66
  })
64
- return keys.length === 1 ? values[0]! : JSON.stringify(values)
67
+ const text = keys.length === 1 ? values[0]! : JSON.stringify(values)
68
+ return table.$options.auditEntityId === 'hashed' ? createHash('sha256').update(text, 'utf8').digest('hex') : text
65
69
  }
@@ -16,6 +16,8 @@ export const accessLinkCode = define('access_link_code', {
16
16
  tenantId: field.uuid(),
17
17
  linkId: field.uuid(),
18
18
  createdAt: field.timestamp().default('now'),
19
+ }, {
20
+ auditEntityId: 'hashed',
19
21
  })
20
22
 
21
23
  export const accessLink = define('access_link', {
@@ -60,6 +62,8 @@ export const accessLinkUse = define('access_link_use', {
60
62
  export const accessLinkCheckSpent = define('access_link_check_spent', {
61
63
  challenge: field.text().primaryKey(),
62
64
  expiresAt: field.timestamp(),
65
+ }, {
66
+ auditEntityId: 'hashed',
63
67
  })
64
68
 
65
69
  // Codes that matched no link, counted per client in a fixed window: the guessing
@@ -68,4 +72,6 @@ export const accessLinkMiss = define('access_link_miss', {
68
72
  client: field.text().primaryKey(),
69
73
  count: field.integer().default(0),
70
74
  windowStart: field.timestamp().default('now'),
75
+ }, {
76
+ auditEntityId: 'hashed',
71
77
  })
@@ -10,7 +10,7 @@ export const audit = {
10
10
  /** Queries the framework-managed `audit_record` table. Tenant-scoped via the active Flow. `{ entity, entityId }` returns one row's history from an index; build a composite key's `entityId` with `audit.entityId`. */
11
11
  query,
12
12
  /**
13
- * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings.
13
+ * The `entityId` filter text for a written table's row: the primary key's value as text, or for a composite key a compact JSON array of the key values as strings in key order (`["a","7"]`). Pass the table and a row (or just its key fields). Dates become ISO strings. A table declared `auditEntityId: 'hashed'` gets the lowercase hex SHA-256 of that text, which is what its audit rows store.
14
14
  */
15
15
  entityId: auditEntityId,
16
16
  /** The newest record's `{ seq, hash }` in the tenant's audit hash chain (blueprint `audit.chain`), to store outside the database; `null` when empty. */
@@ -50,6 +50,8 @@ export const emailSuppressions = define('pipework_email_suppressions', {
50
50
  reason: field.enum(SUPPRESSION_REASONS),
51
51
  detail: field.jsonb(schema.check.json()).nullable(),
52
52
  createdAt: field.timestamp().default('now'),
53
+ }, {
54
+ auditEntityId: 'hashed',
53
55
  })
54
56
 
55
57
  // One row per (address, list) that opted out of a list's mail. Address lowercased.
@@ -59,6 +61,7 @@ export const emailUnsubscribes = define('pipework_email_unsubscribes', {
59
61
  createdAt: field.timestamp().default('now'),
60
62
  }, {
61
63
  primaryKey: ['address', 'list'],
64
+ auditEntityId: 'hashed',
62
65
  })
63
66
 
64
67
  // One row per received message. Bodies are not stored here: the raw message is
@@ -17,6 +17,8 @@ export const rateLimitCounts = define('pipework_rate_limit_counts', {
17
17
  key: field.text().primaryKey(),
18
18
  count: field.integer().default(0),
19
19
  windowStart: field.timestamp().default('now'),
20
+ }, {
21
+ auditEntityId: 'hashed',
20
22
  })
21
23
 
22
24
  const WINDOWS: readonly RateLimitWindowName[] = ['perUser', 'perTenant', 'perAddress', 'total']