@ya-accelerators/web-backend-framework 0.0.83 → 0.0.84

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.
@@ -0,0 +1,177 @@
1
+ import { getCurrentAuditContext } from '../../context/audit/index.js';
2
+ import { logger } from '../../logger/index.js';
3
+ // Auto-discover model names from a Prisma client: each model delegate (`.user`, `.eventUserLifecycle`)
4
+ // is an enumerable own property whose value exposes `.create`; camelCase keys → PascalCase model names.
5
+ export const discoverModelNames = (instance) => {
6
+ if (!instance || typeof instance !== 'object') {
7
+ return [];
8
+ }
9
+ const names = [];
10
+ for (const key of Object.keys(instance)) {
11
+ if (key.length === 0 || !/^[a-z]/.test(key)) {
12
+ continue;
13
+ }
14
+ const value = instance[key];
15
+ if (value && typeof value === 'object' && typeof value.create === 'function') {
16
+ names.push(key.charAt(0).toUpperCase() + key.slice(1));
17
+ }
18
+ }
19
+ return names;
20
+ };
21
+ // Map aggregate-root → event-model for every `Foo` whose `EventFooLifecycle` also exists.
22
+ export const buildAggregateRegistry = (modelNames) => {
23
+ const set = new Set(modelNames);
24
+ const registry = new Map();
25
+ for (const model of modelNames) {
26
+ if (model.startsWith('Event') && model.endsWith('Lifecycle')) {
27
+ continue;
28
+ }
29
+ const eventName = `Event${model}Lifecycle`;
30
+ if (set.has(eventName)) {
31
+ registry.set(model, eventName);
32
+ }
33
+ }
34
+ return registry;
35
+ };
36
+ const toCamelCase = (name) => name.charAt(0).toLowerCase() + name.slice(1);
37
+ // Prisma writes a scalar as either the bare value or a `{ set: value }` wrapper; unwrap so a soft-delete
38
+ // restore (`deletedAt: { set: null }`) is not mistaken for a non-null object.
39
+ const unwrapWriteValue = (value) => value !== null && typeof value === 'object' && 'set' in value ? value.set : value;
40
+ // `update` classification: `data.deletedAt` set to a non-null value (bare or `{ set: … }`) → `deleted`;
41
+ // `deletedAt` null / `{ set: null }` (restore) or absent → `updated`.
42
+ export const classifyUpdateEvent = (data) => {
43
+ if (data && typeof data === 'object' && 'deletedAt' in data) {
44
+ const value = unwrapWriteValue(data.deletedAt);
45
+ if (value !== null && value !== undefined) {
46
+ return 'deleted';
47
+ }
48
+ }
49
+ return 'updated';
50
+ };
51
+ // Operations that map to a lifecycle event. `createMany` / `updateMany` / `deleteMany` are absent on
52
+ // purpose — Prisma returns only an affected-row count for those, so no id can be linked.
53
+ const EMIT_OPERATIONS = new Set(['create', 'createManyAndReturn', 'update', 'updateManyAndReturn', 'upsert', 'delete']);
54
+ // Prisma `$extends` extension: emit a Lifecycle event row on single-row create / update / delete / upsert
55
+ // of an aggregate root, in the SAME transaction as the business write. Suppressed inside
56
+ // `runAsSystemAction`.
57
+ export const lifecycleEmitExtension = (options) => {
58
+ const { registry, getCurrentTransactionClient, getRawPrimaryClient } = options;
59
+ const emitOne = async (client, model, eventType, rowId) => {
60
+ if (rowId === undefined || rowId === null) {
61
+ // A single-row write with a `select` / `omit` that drops `id` returns a row we cannot link to its
62
+ // aggregate. Warn (was a silent skip) so the audit gap surfaces during an incident review.
63
+ logger.warn('lifecycle', {
64
+ model,
65
+ eventType,
66
+ reason: 'row id absent (select/omit excluded id) — lifecycle event not emitted',
67
+ });
68
+ return;
69
+ }
70
+ const eventModel = registry.get(model);
71
+ if (!eventModel) {
72
+ return;
73
+ }
74
+ const ctx = getCurrentAuditContext();
75
+ await client[toCamelCase(eventModel)].create({
76
+ data: {
77
+ [`${toCamelCase(model)}Id`]: rowId,
78
+ eventType,
79
+ actorUserId: ctx?.actorUserId,
80
+ reason: ctx?.reason,
81
+ },
82
+ });
83
+ logger.debug('lifecycle-emitted', { model, eventType, actorUserId: ctx?.actorUserId });
84
+ };
85
+ const rowsOf = (result) => (Array.isArray(result) ? result : [result]);
86
+ const idOf = (row) => row?.id;
87
+ // Run the business op on `emitClient`'s transaction and emit its event(s) on the same client.
88
+ // `runBusiness` performs the write; `emitClient` / `preCheckClient` are the transaction client the
89
+ // event row (and, for upsert, the pre-existence probe) are written / read on.
90
+ const runWithEmit = async (runBusiness, emitClient, preCheckClient, model, operation,
91
+ // biome-ignore lint/suspicious/noExplicitAny: Prisma per-operation args are generator-typed any
92
+ args) => {
93
+ if (operation === 'upsert') {
94
+ // Prisma's upsert result does not say whether it inserted or updated; probe existence first (same
95
+ // transaction) so the event type is accurate. The probe is a snapshot read and the upsert is a
96
+ // current-read write, so a concurrent insert of the same unique key committing between them can
97
+ // mislabel the event (created vs updated) — accepted: a rare same-key race that affects only the audit
98
+ // label, never the business row, and a locking `SELECT … FOR UPDATE` per upsert is a disproportionate
99
+ // cost for that edge.
100
+ const existed = (await preCheckClient[toCamelCase(model)].findUnique({ where: args?.where, select: { id: true } })) !== null;
101
+ const result = await runBusiness();
102
+ await emitOne(emitClient, model, existed ? classifyUpdateEvent(args?.update) : 'created', idOf(result));
103
+ return result;
104
+ }
105
+ const result = await runBusiness();
106
+ if (operation === 'create') {
107
+ await emitOne(emitClient, model, 'created', idOf(result));
108
+ }
109
+ else if (operation === 'delete') {
110
+ await emitOne(emitClient, model, 'deleted', idOf(result));
111
+ }
112
+ else if (operation === 'update') {
113
+ await emitOne(emitClient, model, classifyUpdateEvent(args?.data), idOf(result));
114
+ }
115
+ else if (operation === 'createManyAndReturn') {
116
+ for (const row of rowsOf(result)) {
117
+ await emitOne(emitClient, model, 'created', idOf(row));
118
+ }
119
+ }
120
+ else if (operation === 'updateManyAndReturn') {
121
+ for (const row of rowsOf(result)) {
122
+ await emitOne(emitClient, model, 'updated', idOf(row));
123
+ }
124
+ }
125
+ return result;
126
+ };
127
+ return {
128
+ name: 'lifecycleEmit',
129
+ query: {
130
+ $allModels: {
131
+ // biome-ignore lint/suspicious/noExplicitAny: Prisma's $extends query callback params are generator-typed any
132
+ async $allOperations({ model, operation, args, query, __internalParams }) {
133
+ if (!registry.has(model) || !EMIT_OPERATIONS.has(operation)) {
134
+ return query(args);
135
+ }
136
+ if (getCurrentAuditContext()?.suppress) {
137
+ return query(args);
138
+ }
139
+ const ambientTx = getCurrentTransactionClient();
140
+ if (ambientTx) {
141
+ // Case A — an ambient framework transaction (`prisma.transaction`). The business op already
142
+ // runs on that tx; co-locate the emit on the same client so both commit or roll back together.
143
+ return runWithEmit(() => query(args), ambientTx, ambientTx, model, operation, args);
144
+ }
145
+ if (__internalParams?.transaction) {
146
+ // Case C — a native `db().$transaction(...)` opened outside the framework wrapper. A query
147
+ // extension cannot obtain that connection's client, and writing the event on a separate
148
+ // connection would survive a rollback as a phantom event. Skip + warn (fail toward no false
149
+ // audit); `prisma.transaction()` is the supported path for an atomic aggregate write.
150
+ const result = await query(args);
151
+ logger.warn('lifecycle', {
152
+ model,
153
+ operation,
154
+ reason: 'aggregate write inside a native $transaction — use prisma.transaction() for atomic audit; event skipped',
155
+ });
156
+ return result;
157
+ }
158
+ // Case B — no ambient transaction. Wrap the business op + emit in one fresh transaction on the
159
+ // raw primary so the row can never commit without its event. Re-running the op on the raw client
160
+ // (not `query`) keeps it out of this extension → no recursion.
161
+ const raw = getRawPrimaryClient();
162
+ if (!raw) {
163
+ const result = await query(args);
164
+ logger.warn('lifecycle', {
165
+ model,
166
+ operation,
167
+ reason: 'primary client unavailable — lifecycle event not emitted',
168
+ });
169
+ return result;
170
+ }
171
+ return raw.$transaction((tx) => runWithEmit(() => tx[toCamelCase(model)][operation](args), tx, tx, model, operation, args));
172
+ },
173
+ },
174
+ },
175
+ };
176
+ };
177
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/repository/prisma/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,14 @@ const getClient = async () => {
24
24
  };
25
25
  export const redis = {
26
26
  health: async () => {
27
- const client = await getClient();
28
- const ret = await client.ping();
29
- return ret === 'PONG' ? 'OK' : 'NG';
27
+ try {
28
+ const client = await getClient();
29
+ const ret = await client.ping();
30
+ return ret === 'PONG' ? 'OK' : 'NG';
31
+ }
32
+ catch {
33
+ return 'NG';
34
+ }
30
35
  },
31
36
  set: async (key, value, expirationSeconds) => {
32
37
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/redis/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/redis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,IAAI,aAA4E,CAAA;AAEhF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,UAAU,CAAC,aAAa;IACtB,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC;QAC9B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;QACzE,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,KAAK;KACtB,CAAC;IACJ,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;QACvB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;QACzE,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,KAAK;QACvC,cAAc,EAAE,KAAK;KACtB,CAAC,CAAA;AAER,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAC3B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,GAAG,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YAClD,aAAa,GAAG,SAAS,CAAA;YACzB,MAAM,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC/B,OAAO,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,KAAa,EAAE,iBAA0B,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,MAAM,MAAM,CAAC,GAAG,CACd,GAAG,EACH,KAAK,EACL,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACjG,CAAA;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACnD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,KAAK,EAAE,KAAK,EAAE,GAAW,EAAE,KAAa,EAAE,iBAAyB,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;gBAClC,cAAc,EAAE,oBAAoB;gBACpC,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ,CAAC,OAAO;oBACtB,KAAK,EAAE,iBAAiB;iBACzB;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACnD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACtD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACpD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAW,EAAE,iBAAyB,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACtD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACpD,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,MAAc,EAAE,IAAwC,EAAE,EAAE;QAC/E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1E,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -99,6 +99,18 @@ export const s3 = {
99
99
  }
100
100
  catch (error) {
101
101
  if (error instanceof Error && (error.name === 'AccessDenied' || error.name === 'InvalidRequest')) {
102
+ // AccessDenied (AWS) is the retention-still-active denial, but it is indistinguishable from an
103
+ // IAM misconfiguration — warn so an operator can spot a genuine permission gap instead of it
104
+ // silently reading as a normal under-retention skip. InvalidRequest (MinIO/dev) is unambiguous.
105
+ if (error.name === 'AccessDenied') {
106
+ logger.warn('storage', {
107
+ op: 'deleteOrphanVersions',
108
+ bucket: params.bucket,
109
+ key: params.key,
110
+ versionId: version.versionId,
111
+ error,
112
+ });
113
+ }
102
114
  skippedVersionIds.push(version.versionId);
103
115
  }
104
116
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/s3/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/s3/index.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,20 @@
1
1
  import cors from 'cors';
2
2
  import express from 'express';
3
3
  import { createProxyMiddleware } from 'http-proxy-middleware';
4
- import { requestContextStorage } from '../../context/request/index.js';
4
+ import { requestContextStorage, resolveOutboundHeaders } from '../../context/request/index.js';
5
5
  import { defaultEnv } from '../../env.js';
6
6
  import { logger } from '../../logger/index.js';
7
7
  import { Util } from '../../util/index.js';
8
8
  let processErrorHandlersRegistered = false;
9
- let nonForwardableHeaders = new Set();
10
- // Built-in deny-list for auto-forwarded outbound `fetch` headers. Allocated once at module load —
11
- // the patched global `fetch` runs on every outbound request, so this must NOT be rebuilt per call.
12
- const DEFAULT_NON_FORWARDABLE_HEADERS = new Set([
13
- // Credential-bearing headers from the inbound request are never auto-forwarded to outbound
14
- // `fetch` — that would leak the end user's session to any non-mesh host (third-party API,
15
- // webhook, LLM provider, or a URL derived from request data). In-mesh credential propagation
16
- // is opt-in via the explicit `runWithRequestHeaders` allow path (e.g. `corporateServiceAuth`),
17
- // which bypasses this deny-list.
18
- 'authorization',
19
- 'cookie',
20
- 'set-cookie',
21
- // API-key credential headers (the MicroHub identity model authenticates forks via `x-api-key`).
22
- // These identify the caller just like `authorization`, so they must never leak to a non-mesh host.
23
- 'x-api-key',
24
- 'api-key',
25
- 'api_key',
26
- 'x-auth-token',
27
- // Client-context quasi-identifiers from the inbound request. Auto-forwarding these to a non-mesh
28
- // outbound host leaks the end user's identity (IP / device / originating URL) to a third party that
29
- // does not need it — GDPR Art. 5(1)(c) data minimisation / Art. 44 transfer. The service, not the
30
- // end user, is the client of an outbound call. In-mesh calls that legitimately need the origin IP
31
- // opt in via `runWithRequestHeaders` (forwardHeaders bypasses this deny-list).
32
- 'x-forwarded-for',
33
- 'x-real-ip',
34
- 'forwarded',
35
- 'user-agent',
36
- 'referer',
37
- 'content-length',
38
- 'host',
39
- 'connection',
40
- 'transfer-encoding',
41
- 'keep-alive',
42
- 'upgrade',
43
- 'expect',
44
- 'te',
45
- 'proxy-connection',
46
- 'proxy-authenticate',
47
- 'proxy-authorization',
48
- 'trailer',
49
- ]);
9
+ // Auto-forwarded outbound `fetch` headers are an ALLOW-list of tracing/correlation headers only — never
10
+ // credentials (`authorization` / `cookie` / `x-api-key` …), client-context quasi-identifiers
11
+ // (`x-forwarded-for` / `user-agent` / `referer` — GDPR Art. 5(1)(c) data minimisation / Art. 44 transfer),
12
+ // content negotiation (`content-type` / `accept*` / `if-*` / `range`), or `host` / `origin`. Forwarding
13
+ // any of those in-mesh is opt-in per call via `runWithRequestHeaders`. An allow-list, not a deny-list, so
14
+ // a not-yet-enumerated header — a new fork `x-*-key`, a CSRF token, `x-hub-signature` — is withheld by
15
+ // default rather than leaked to whatever host the outbound `fetch` targets. `traceparent` / `tracestate`
16
+ // are the W3C Trace Context pair; `x-request-id` is the framework's own correlation id.
17
+ const AUTO_FORWARD_ALLOW_LIST = new Set(['x-request-id', 'traceparent', 'tracestate']);
50
18
  export const createApp = (params) => {
51
19
  const { customRoutes, middlewares = [], proxyTarget, nonForwardableHeaders: nonForwardableHeadersParam = [] } = params;
52
20
  // Route process-level failures through `logger` (structured log first) while preserving the default
@@ -66,9 +34,10 @@ export const createApp = (params) => {
66
34
  process.exit(1);
67
35
  });
68
36
  }
69
- // Lowercased so the deny check matches Node's lowercased inbound header keys (a consumer passing
70
- // `['X-Secret']` must still strip the incoming `x-secret`).
71
- nonForwardableHeaders = new Set(nonForwardableHeadersParam.map((h) => h.toLowerCase()));
37
+ // Per-app additional deny-set subtracted from the auto-forward allow-list (lowercased so it matches
38
+ // Node's lowercased inbound header keys). Carried into the request store below — NOT a module-level
39
+ // `let` — so a second `createApp` in the same process cannot clobber the first app's config.
40
+ const appNonForwardableHeaders = new Set(nonForwardableHeadersParam.map((h) => h.toLowerCase()));
72
41
  const app = express();
73
42
  app.use(cors({
74
43
  origin: defaultEnv.CORS_ORIGIN,
@@ -84,6 +53,24 @@ export const createApp = (params) => {
84
53
  }
85
54
  next();
86
55
  });
56
+ // Request-id generation + AsyncLocalStorage context FIRST — before /health, customRoutes, and the
57
+ // proxied routes below — so every downstream route runs inside the scope and its log records carry the
58
+ // `x-request-id` and the auto-injected request `path`.
59
+ app.use('', (req, res, next) => {
60
+ const requestId = Util.getHeaderValue(req.headers, 'x-request-id') ?? Util.createULID();
61
+ req.headers['x-request-id'] = requestId;
62
+ res.setHeader('X-Request-Id', requestId);
63
+ requestContextStorage.run({
64
+ headers: {
65
+ ...Object.fromEntries(Object.entries(req.headers)
66
+ .filter(([, value]) => value !== undefined)
67
+ .map(([key, value]) => [key, Array.isArray(value) ? value[0] : value])),
68
+ 'x-request-id': requestId,
69
+ },
70
+ nonForwardableHeaders: appNonForwardableHeaders,
71
+ path: req.path,
72
+ }, next);
73
+ });
87
74
  if (proxyTarget) {
88
75
  app.get('/health', async (_, res) => {
89
76
  res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
@@ -136,20 +123,6 @@ export const createApp = (params) => {
136
123
  if (customRoutes) {
137
124
  customRoutes(app);
138
125
  }
139
- app.use('', (req, res, next) => {
140
- const requestId = Util.getHeaderValue(req.headers, 'x-request-id') ?? Util.createULID();
141
- req.headers['x-request-id'] = requestId;
142
- res.setHeader('X-Request-Id', requestId);
143
- requestContextStorage.run({
144
- headers: {
145
- ...Object.fromEntries(Object.entries(req.headers)
146
- .filter(([, value]) => value !== undefined)
147
- .map(([key, value]) => [key, Array.isArray(value) ? value[0] : value])),
148
- 'x-request-id': requestId,
149
- },
150
- path: req.path,
151
- }, next);
152
- });
153
126
  middlewares.forEach((middleware) => app.use('', middleware));
154
127
  proxyTarget?.targets.forEach((x) => {
155
128
  const onHandlers = {
@@ -159,9 +132,13 @@ export const createApp = (params) => {
159
132
  proxyRes.on('end', () => {
160
133
  if ((proxyRes.statusCode ?? 500) >= 400) {
161
134
  const message = Buffer.concat(body).toString();
135
+ // Suppress the benign, expected downstream responses (an unauthenticated "who am I" 401,
136
+ // an empty-update poll). `.me"` matches a tRPC procedure PATH ending in `.me` in the JSON
137
+ // error body (e.g. `"path":"authentication.me"`) — not the bare `.me` substring, which also
138
+ // matched `.metrics` / `.member` / any host in a URL and silently dropped real warnings.
162
139
  if (!message.includes('UNAUTHORIZED') &&
163
140
  !message.includes('NO_UPDATES_FOUND') &&
164
- !message.includes('.me') &&
141
+ !message.includes('.me"') &&
165
142
  !message.includes('authentication.current')) {
166
143
  try {
167
144
  logger.warn('proxy', { url: req.url, response: JSON.parse(message) });
@@ -188,9 +165,6 @@ export const createApp = (params) => {
188
165
  }
189
166
  app.use(x[0], createProxyMiddleware({
190
167
  target: x[1],
191
- pathRewrite: {
192
- [`^${x[1]}`]: '',
193
- },
194
168
  on: onHandlers,
195
169
  }));
196
170
  });
@@ -207,6 +181,17 @@ export const createApp = (params) => {
207
181
  process.exit(1);
208
182
  });
209
183
  };
184
+ // The target host (hostname[:port], lowercased) of a `fetch` input, or undefined when it cannot be
185
+ // parsed — a host-bound forward scope then does NOT apply (fail-closed: no credential to an unknown host).
186
+ const requestHost = (input) => {
187
+ try {
188
+ const url = typeof input === 'string' ? new URL(input) : input instanceof URL ? input : new URL(input.url);
189
+ return url.host.toLowerCase();
190
+ }
191
+ catch {
192
+ return undefined;
193
+ }
194
+ };
210
195
  const patchFetchWithRequestHeaders = () => {
211
196
  const FETCH_PATCHED_FLAG = '__yaLibraryFetchPatched__';
212
197
  if (typeof globalThis.fetch !== 'function') {
@@ -223,21 +208,15 @@ const patchFetchWithRequestHeaders = () => {
223
208
  if (!store) {
224
209
  return originalFetch(input, init);
225
210
  }
226
- const headers = new Headers(init?.headers ?? {});
227
- for (const [key, value] of Object.entries(store.headers)) {
228
- if (!headers.has(key) &&
229
- !nonForwardableHeaders.has(key.toLowerCase()) &&
230
- !DEFAULT_NON_FORWARDABLE_HEADERS.has(key.toLowerCase())) {
231
- headers.set(key, value);
232
- }
233
- }
234
- // Headers set explicitly via `runWithRequestHeaders` are an intentional, audited allow path
235
- // (e.g. corporateServiceAuth's Bearer token for in-mesh calls) and bypass the deny-list.
236
- for (const [key, value] of Object.entries(store.forwardHeaders ?? {})) {
237
- if (!headers.has(key)) {
238
- headers.set(key, value);
239
- }
240
- }
211
+ const headers = resolveOutboundHeaders(store, {
212
+ allowList: AUTO_FORWARD_ALLOW_LIST,
213
+ targetHost: requestHost(input),
214
+ init,
215
+ // When `input` is a `Request`, passing a rebuilt `headers` in init drops its own headers — carry
216
+ // them so they survive (init.headers still win over them). `globalThis.Request` (the fetch Request)
217
+ // because `Request` is a type-only import from express here.
218
+ ...(input instanceof globalThis.Request ? { inputHeaders: input.headers } : {}),
219
+ });
241
220
  return originalFetch(input, {
242
221
  ...init,
243
222
  headers,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ import { logger } from '../../logger/index.js';
9
9
  import { prisma } from '../../repository/prisma/index.js';
10
10
  import { Util } from '../../util/index.js';
11
11
  import { createApp } from '../express/index.js';
12
+ // Cap the auto-propagated audit `reason` (a free-form, un-erasable `Event<Domain>Lifecycle.reason`
13
+ // `@db.Text` column) so a client cannot stuff it into an unbounded audit-log / PII-injection sink.
14
+ const MAX_AUDIT_REASON_LENGTH = 512;
12
15
  const createRequestContext = (opts) => {
13
16
  const requestHeaders = opts.req.headers;
14
17
  return {
@@ -58,9 +61,15 @@ export function* generator(options = {}) {
58
61
  ? await resolveAuditActor(opts.ctx)
59
62
  : { actorUserId: undefined };
60
63
  const rawInput = await opts.getRawInput();
61
- const reason = rawInput && typeof rawInput === 'object' && 'reason' in rawInput && typeof rawInput.reason === 'string'
64
+ // `baseProcedure` runs BEFORE the `.input()` parser (tRPC parses input at its own position in the
65
+ // middleware chain), so only the raw pre-validation body is reachable here — never the Zod-validated
66
+ // input. Accept `reason` solely as a top-level string and cap its length so a procedure whose schema
67
+ // does not declare `reason` cannot have an arbitrary (PII-bearing / forged) value injected into the
68
+ // un-erasable audit column. A procedure needing a longer / structured reason writes it explicitly.
69
+ const rawReason = rawInput && typeof rawInput === 'object' && 'reason' in rawInput && typeof rawInput.reason === 'string'
62
70
  ? rawInput.reason
63
71
  : undefined;
72
+ const reason = rawReason === undefined ? undefined : rawReason.slice(0, MAX_AUDIT_REASON_LENGTH);
64
73
  return runWithAuditActor({ actorUserId: actor.actorUserId, reason }, async () => {
65
74
  return await runWithRequestPath(opts.path, async () => {
66
75
  const startTime = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/trpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/trpc/index.ts"],"names":[],"mappings":"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"}