@opendatalabs/personal-server-ts-server 1.34.2 → 1.35.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 (180) hide show
  1. package/dist/api-auth.d.ts +1 -0
  2. package/dist/api-auth.d.ts.map +1 -1
  3. package/dist/api-auth.js.map +1 -1
  4. package/dist/api.d.ts +3 -0
  5. package/dist/api.d.ts.map +1 -1
  6. package/dist/api.js +3 -0
  7. package/dist/api.js.map +1 -1
  8. package/dist/app.d.ts +14 -2
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +64 -8
  11. package/dist/app.js.map +1 -1
  12. package/dist/bootstrap.d.ts +19 -0
  13. package/dist/bootstrap.d.ts.map +1 -1
  14. package/dist/bootstrap.js +87 -4
  15. package/dist/bootstrap.js.map +1 -1
  16. package/dist/client.d.ts +1 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +7 -0
  19. package/dist/client.js.map +1 -1
  20. package/dist/enclave-main.d.ts.map +1 -1
  21. package/dist/enclave-main.js +0 -2
  22. package/dist/enclave-main.js.map +1 -1
  23. package/dist/mcp/durable-state.d.ts +2 -1
  24. package/dist/mcp/durable-state.d.ts.map +1 -1
  25. package/dist/mcp/durable-state.js +35 -1
  26. package/dist/mcp/durable-state.js.map +1 -1
  27. package/dist/pdpp/bootstrap.d.ts.map +1 -1
  28. package/dist/pdpp/bootstrap.js +1 -0
  29. package/dist/pdpp/bootstrap.js.map +1 -1
  30. package/dist/pdpp/records-bootstrap.d.ts +47 -1
  31. package/dist/pdpp/records-bootstrap.d.ts.map +1 -1
  32. package/dist/pdpp/records-bootstrap.js +78 -2
  33. package/dist/pdpp/records-bootstrap.js.map +1 -1
  34. package/dist/pdpp/replica-authorization.d.ts +35 -0
  35. package/dist/pdpp/replica-authorization.d.ts.map +1 -0
  36. package/dist/pdpp/replica-authorization.js +234 -0
  37. package/dist/pdpp/replica-authorization.js.map +1 -0
  38. package/dist/pending-blob-deletions.d.ts +1 -0
  39. package/dist/pending-blob-deletions.d.ts.map +1 -1
  40. package/dist/pending-blob-deletions.js +8 -4
  41. package/dist/pending-blob-deletions.js.map +1 -1
  42. package/dist/routes/mcp.d.ts +18 -2
  43. package/dist/routes/mcp.d.ts.map +1 -1
  44. package/dist/routes/mcp.js +111 -11
  45. package/dist/routes/mcp.js.map +1 -1
  46. package/dist/routes/oura.d.ts +6 -0
  47. package/dist/routes/oura.d.ts.map +1 -0
  48. package/dist/routes/oura.js +272 -0
  49. package/dist/routes/oura.js.map +1 -0
  50. package/dist/routes/pdpp-auth-query-keys.d.ts +7 -0
  51. package/dist/routes/pdpp-auth-query-keys.d.ts.map +1 -0
  52. package/dist/routes/pdpp-auth-query-keys.js +25 -0
  53. package/dist/routes/pdpp-auth-query-keys.js.map +1 -0
  54. package/dist/routes/pdpp-auth.d.ts +3 -1
  55. package/dist/routes/pdpp-auth.d.ts.map +1 -1
  56. package/dist/routes/pdpp-auth.js +126 -45
  57. package/dist/routes/pdpp-auth.js.map +1 -1
  58. package/dist/routes/pdpp-blobs.d.ts +13 -1
  59. package/dist/routes/pdpp-blobs.d.ts.map +1 -1
  60. package/dist/routes/pdpp-blobs.js +100 -65
  61. package/dist/routes/pdpp-blobs.js.map +1 -1
  62. package/dist/routes/pdpp-connections.d.ts.map +1 -1
  63. package/dist/routes/pdpp-connections.js +24 -1
  64. package/dist/routes/pdpp-connections.js.map +1 -1
  65. package/dist/routes/pdpp-instance-bindings.d.ts +3 -0
  66. package/dist/routes/pdpp-instance-bindings.d.ts.map +1 -1
  67. package/dist/routes/pdpp-instance-bindings.js +63 -0
  68. package/dist/routes/pdpp-instance-bindings.js.map +1 -1
  69. package/dist/routes/pdpp-record-query.d.ts +19 -0
  70. package/dist/routes/pdpp-record-query.d.ts.map +1 -0
  71. package/dist/routes/pdpp-record-query.js +51 -0
  72. package/dist/routes/pdpp-record-query.js.map +1 -0
  73. package/dist/routes/pdpp-records.d.ts +12 -1
  74. package/dist/routes/pdpp-records.d.ts.map +1 -1
  75. package/dist/routes/pdpp-records.js +120 -233
  76. package/dist/routes/pdpp-records.js.map +1 -1
  77. package/dist/routes/pdpp-replica-quarantine-fixture.d.ts +65 -0
  78. package/dist/routes/pdpp-replica-quarantine-fixture.d.ts.map +1 -0
  79. package/dist/routes/pdpp-replica-quarantine-fixture.js +389 -0
  80. package/dist/routes/pdpp-replica-quarantine-fixture.js.map +1 -0
  81. package/dist/storage/claude-method-transition.d.ts +12 -0
  82. package/dist/storage/claude-method-transition.d.ts.map +1 -0
  83. package/dist/storage/claude-method-transition.js +139 -0
  84. package/dist/storage/claude-method-transition.js.map +1 -0
  85. package/dist/storage/import-operations.d.ts +16 -0
  86. package/dist/storage/import-operations.d.ts.map +1 -1
  87. package/dist/storage/import-operations.js +54 -1
  88. package/dist/storage/import-operations.js.map +1 -1
  89. package/dist/storage/index-schema.d.ts +1 -1
  90. package/dist/storage/index-schema.d.ts.map +1 -1
  91. package/dist/storage/index-schema.js +22 -5
  92. package/dist/storage/index-schema.js.map +1 -1
  93. package/dist/storage/legacy-scope-authority.d.ts.map +1 -1
  94. package/dist/storage/legacy-scope-authority.js +83 -11
  95. package/dist/storage/legacy-scope-authority.js.map +1 -1
  96. package/dist/storage/node-data-storage.d.ts.map +1 -1
  97. package/dist/storage/node-data-storage.js +58 -2
  98. package/dist/storage/node-data-storage.js.map +1 -1
  99. package/dist/storage/pdpp-binary-chunks.d.ts +120 -0
  100. package/dist/storage/pdpp-binary-chunks.d.ts.map +1 -0
  101. package/dist/storage/pdpp-binary-chunks.js +480 -0
  102. package/dist/storage/pdpp-binary-chunks.js.map +1 -0
  103. package/dist/storage/pdpp-records-sqlite-store.d.ts +96 -15
  104. package/dist/storage/pdpp-records-sqlite-store.d.ts.map +1 -1
  105. package/dist/storage/pdpp-records-sqlite-store.js +616 -211
  106. package/dist/storage/pdpp-records-sqlite-store.js.map +1 -1
  107. package/dist/storage/pdpp-replica-canonical-port.d.ts +202 -0
  108. package/dist/storage/pdpp-replica-canonical-port.d.ts.map +1 -0
  109. package/dist/storage/pdpp-replica-canonical-port.js +451 -0
  110. package/dist/storage/pdpp-replica-canonical-port.js.map +1 -0
  111. package/dist/storage/pdpp-replica-coordinator-state.d.ts +16 -0
  112. package/dist/storage/pdpp-replica-coordinator-state.d.ts.map +1 -0
  113. package/dist/storage/pdpp-replica-coordinator-state.js +25 -0
  114. package/dist/storage/pdpp-replica-coordinator-state.js.map +1 -0
  115. package/dist/storage/pdpp-replica-copies.d.ts +81 -0
  116. package/dist/storage/pdpp-replica-copies.d.ts.map +1 -0
  117. package/dist/storage/pdpp-replica-copies.js +59 -0
  118. package/dist/storage/pdpp-replica-copies.js.map +1 -0
  119. package/dist/storage/pdpp-replica-reconciler.d.ts +96 -0
  120. package/dist/storage/pdpp-replica-reconciler.d.ts.map +1 -0
  121. package/dist/storage/pdpp-replica-reconciler.js +710 -0
  122. package/dist/storage/pdpp-replica-reconciler.js.map +1 -0
  123. package/dist/storage/pdpp-replica-sql.d.ts +13 -0
  124. package/dist/storage/pdpp-replica-sql.d.ts.map +1 -0
  125. package/dist/storage/pdpp-replica-sql.js +43 -0
  126. package/dist/storage/pdpp-replica-sql.js.map +1 -0
  127. package/dist/storage/pdpp-replica-staging.d.ts +36 -0
  128. package/dist/storage/pdpp-replica-staging.d.ts.map +1 -0
  129. package/dist/storage/pdpp-replica-staging.js +202 -0
  130. package/dist/storage/pdpp-replica-staging.js.map +1 -0
  131. package/dist/storage/pdpp-replica-visibility-view.d.ts +64 -0
  132. package/dist/storage/pdpp-replica-visibility-view.d.ts.map +1 -0
  133. package/dist/storage/pdpp-replica-visibility-view.js +1397 -0
  134. package/dist/storage/pdpp-replica-visibility-view.js.map +1 -0
  135. package/dist/storage/pdpp-replica-writer-identity.d.ts +64 -0
  136. package/dist/storage/pdpp-replica-writer-identity.d.ts.map +1 -0
  137. package/dist/storage/pdpp-replica-writer-identity.js +81 -0
  138. package/dist/storage/pdpp-replica-writer-identity.js.map +1 -0
  139. package/dist/storage/pdpp-replication-door.d.ts +60 -0
  140. package/dist/storage/pdpp-replication-door.d.ts.map +1 -0
  141. package/dist/storage/pdpp-replication-door.js +203 -0
  142. package/dist/storage/pdpp-replication-door.js.map +1 -0
  143. package/dist/storage/pdpp-replication-host.d.ts +67 -0
  144. package/dist/storage/pdpp-replication-host.d.ts.map +1 -0
  145. package/dist/storage/pdpp-replication-host.js +159 -0
  146. package/dist/storage/pdpp-replication-host.js.map +1 -0
  147. package/dist/storage/pdpp-replication-memory.fixture.d.ts +2 -0
  148. package/dist/storage/pdpp-replication-memory.fixture.d.ts.map +1 -0
  149. package/dist/storage/pdpp-replication-memory.fixture.js +267 -0
  150. package/dist/storage/pdpp-replication-memory.fixture.js.map +1 -0
  151. package/dist/storage/pdpp-replication-preparation.d.ts +3 -0
  152. package/dist/storage/pdpp-replication-preparation.d.ts.map +1 -0
  153. package/dist/storage/pdpp-replication-preparation.js +3 -0
  154. package/dist/storage/pdpp-replication-preparation.js.map +1 -0
  155. package/dist/storage/pdpp-replication-promotion-memory.fixture.d.ts +2 -0
  156. package/dist/storage/pdpp-replication-promotion-memory.fixture.d.ts.map +1 -0
  157. package/dist/storage/pdpp-replication-promotion-memory.fixture.js +65 -0
  158. package/dist/storage/pdpp-replication-promotion-memory.fixture.js.map +1 -0
  159. package/dist/storage/pdpp-replication-receiver.d.ts +230 -0
  160. package/dist/storage/pdpp-replication-receiver.d.ts.map +1 -0
  161. package/dist/storage/pdpp-replication-receiver.js +950 -0
  162. package/dist/storage/pdpp-replication-receiver.js.map +1 -0
  163. package/dist/storage/pdpp-replication-sqlite.d.ts +95 -0
  164. package/dist/storage/pdpp-replication-sqlite.d.ts.map +1 -0
  165. package/dist/storage/pdpp-replication-sqlite.js +615 -0
  166. package/dist/storage/pdpp-replication-sqlite.js.map +1 -0
  167. package/dist/storage/pdpp-replication-transport.d.ts +39 -0
  168. package/dist/storage/pdpp-replication-transport.d.ts.map +1 -0
  169. package/dist/storage/pdpp-replication-transport.js +196 -0
  170. package/dist/storage/pdpp-replication-transport.js.map +1 -0
  171. package/dist/storage/schema-versions.d.ts +5 -0
  172. package/dist/storage/schema-versions.d.ts.map +1 -0
  173. package/dist/storage/schema-versions.js +26 -0
  174. package/dist/storage/schema-versions.js.map +1 -0
  175. package/dist/storage/strava-method-transition.d.ts +18 -0
  176. package/dist/storage/strava-method-transition.d.ts.map +1 -0
  177. package/dist/storage/strava-method-transition.js +209 -0
  178. package/dist/storage/strava-method-transition.js.map +1 -0
  179. package/dist/ui/ps-lite-debug.js +154938 -124896
  180. package/package.json +3 -3
@@ -2,6 +2,7 @@ import { Hono } from "hono";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { PdppError } from "@opendatalabs/personal-server-ts-core/errors/pdpp";
4
4
  import { PDPP_VERSION } from "@opendatalabs/personal-server-ts-core/pdpp-version";
5
+ import { PdppAuthorizationUnavailableError } from "@opendatalabs/personal-server-ts-core/ports/pdpp-auth";
5
6
  import { resourceMetadataUrlFor } from "./pdpp-records.js";
6
7
  import { recordKeyWithinGrantResources, recordWithinGrantTimeConstraint, resolveReadScope, } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
7
8
  function requestId() {
@@ -19,10 +20,14 @@ function jsonError(c, err, reqId, extraHeaders) {
19
20
  }),
20
21
  ...extraHeaders,
21
22
  };
23
+ if (err instanceof PdppAuthorizationUnavailableError) {
24
+ headers["Retry-After"] = String(err.retryAfterSeconds);
25
+ }
22
26
  return c.json(err.toJSON(reqId), err.status, headers);
23
27
  }
24
28
  export function pdppBlobsRoutes(deps) {
25
29
  const app = new Hono();
30
+ const readsFor = deps.reads ?? (() => deps.store);
26
31
  /**
27
32
  * Authorizes a blob fetch through the same path a record read uses (spec §8): finds every
28
33
  * record referencing this blob_id, then grants access if ANY one passes instance scope,
@@ -44,7 +49,15 @@ export function pdppBlobsRoutes(deps) {
44
49
  }),
45
50
  };
46
51
  }
47
- const context = await deps.auth.resolveToken(token);
52
+ let context;
53
+ try {
54
+ context = await deps.auth.resolveToken(token);
55
+ }
56
+ catch (error) {
57
+ if (!(error instanceof PdppAuthorizationUnavailableError))
58
+ throw error;
59
+ return { error: jsonError(c, error, reqId) };
60
+ }
48
61
  if (!context.active) {
49
62
  const err = new PdppError("authentication_error", "Invalid access token");
50
63
  return { error: jsonError(c, err, reqId) };
@@ -58,69 +71,74 @@ export function pdppBlobsRoutes(deps) {
58
71
  return { error: jsonError(c, err, reqId) };
59
72
  }
60
73
  }
61
- const meta = deps.store.getBlobMeta(blobId);
62
- if (!meta) {
63
- const err = new PdppError("blob_not_found", "blob_id is unknown or stale");
64
- return { error: jsonError(c, err, reqId) };
65
- }
66
- const notFound = () => jsonError(c, new PdppError("blob_not_found", "blob_id is unknown or stale"), reqId);
67
- // Identical blob bytes can legitimately be referenced by more than one
68
- // record or instance (e.g. re-ingested via a different stream). Access
69
- // is granted if ANY visible reference passes its authorization check —
70
- // an inaccessible reference must never hide an accessible one.
71
- const references = deps.store.findBlobReferences(blobId);
72
- if (references.length === 0)
73
- return { error: notFound() };
74
- if (context.tokenKind === "owner") {
75
- // Owner tokens carry no grant: current-capability read, scoped to the
76
- // owner's selected live instances when the token has an instance list.
77
- // A source scope must not widen that explicit selection.
78
- // Fail closed: a missing resolver, a missing subjectId, or an empty
79
- // owned list must all deny rather than fall back to "visible to
80
- // everyone" — mirrors the record routes' `?? []` default.
81
- if (!context.subjectId)
82
- return { error: notFound() };
83
- const currentInstances = deps.instancesForSubject?.(context.subjectId);
84
- const sourceInstances = context.sourceId
85
- ? (deps.instancesForSource?.(context.subjectId, context.sourceId) ?? [])
86
- : (currentInstances ?? []);
87
- const ownedInstances = context.instanceIds
88
- ? context.instanceIds.filter((instance) => sourceInstances.includes(instance))
89
- : context.sourceId
90
- ? sourceInstances
91
- : [];
92
- const visible = references.some((reference) => ownedInstances.includes(reference.instance));
93
- if (!visible)
94
- return { error: notFound() };
95
- return { ok: true };
96
- }
97
- // Client token: the blob must be referenced by a record this exact
98
- // grant can see — instance scope, resources allowlist, time_constraint,
99
- // and blob_ref must be in the granted fields for that record's stream.
100
- for (const reference of references) {
101
- const declaration = deps.declarations.forInstance(reference.instance, reference.stream);
102
- let scope;
103
- try {
104
- scope = resolveReadScope(context, reference.stream, declaration);
105
- }
106
- catch {
107
- continue;
74
+ const store = readsFor(context.tokenKind === "owner" ? "owner" : "grant");
75
+ const authorizedMeta = () => {
76
+ const meta = store.getBlobMeta(blobId);
77
+ if (!meta)
78
+ return undefined;
79
+ const references = store.findBlobReferences(blobId);
80
+ if (context.tokenKind === "owner") {
81
+ if (!context.subjectId)
82
+ return undefined;
83
+ const currentInstances = deps.instancesForSubject?.(context.subjectId);
84
+ const sourceInstances = context.sourceId
85
+ ? (deps.instancesForSource?.(context.subjectId, context.sourceId) ??
86
+ [])
87
+ : (currentInstances ?? []);
88
+ const ownedInstances = context.instanceIds
89
+ ? context.instanceIds.filter((instance) => sourceInstances.includes(instance))
90
+ : context.sourceId
91
+ ? sourceInstances
92
+ : [];
93
+ return references.some((reference) => ownedInstances.includes(reference.instance))
94
+ ? meta
95
+ : undefined;
108
96
  }
109
- if (!scope.instanceIds.includes(reference.instance))
110
- continue;
111
- if (!recordKeyWithinGrantResources(reference.recordKey, scope.streamGrant)) {
112
- continue;
97
+ for (const reference of references) {
98
+ const declaration = deps.declarations.forInstance(reference.instance, reference.stream);
99
+ let scope;
100
+ try {
101
+ scope = resolveReadScope(context, reference.stream, declaration);
102
+ }
103
+ catch {
104
+ continue;
105
+ }
106
+ if (!scope.instanceIds.includes(reference.instance))
107
+ continue;
108
+ if (!recordKeyWithinGrantResources(reference.recordKey, scope.streamGrant))
109
+ continue;
110
+ if (!scope.fields?.includes("blob_ref"))
111
+ continue;
112
+ const record = store.getRecord(reference.instance, reference.stream, reference.recordKey);
113
+ if (!record ||
114
+ record.deleted ||
115
+ !recordWithinGrantTimeConstraint(record.data, scope.streamGrant))
116
+ continue;
117
+ return meta;
113
118
  }
114
- if (!scope.fields?.includes("blob_ref"))
115
- continue;
116
- const record = deps.store.getRecord(reference.instance, reference.stream, reference.recordKey);
117
- if (!record ||
118
- !recordWithinGrantTimeConstraint(record.data, scope.streamGrant)) {
119
- continue;
120
- }
121
- return { ok: true };
122
- }
123
- return { error: notFound() };
119
+ return undefined;
120
+ };
121
+ const inSnapshot = (read) => store.withReadSnapshot ? store.withReadSnapshot(read) : read();
122
+ const meta = inSnapshot(authorizedMeta);
123
+ const notFound = () => jsonError(c, new PdppError("blob_not_found", "blob_id is unknown or stale"), reqId);
124
+ if (!meta)
125
+ return { error: notFound() };
126
+ return {
127
+ ok: true,
128
+ store,
129
+ meta,
130
+ runIfReadable: (read) => inSnapshot(() => {
131
+ if (!authorizedMeta())
132
+ return false;
133
+ read();
134
+ return true;
135
+ }),
136
+ readBytes: () => {
137
+ if (!deps.reads && deps.readBlobBytes)
138
+ return authorizedMeta() ? deps.readBlobBytes(blobId) : undefined;
139
+ return inSnapshot(() => authorizedMeta() ? store.getBlobBytes(blobId) : undefined);
140
+ },
141
+ };
124
142
  }
125
143
  // Hono dispatches HEAD via the GET handler and discards the body, so no separate HEAD handler is
126
144
  // needed. Content-Length always comes from blob metadata, not the actual byte read.
@@ -129,7 +147,7 @@ export function pdppBlobsRoutes(deps) {
129
147
  const authz = await authorizeBlobAccess(c, blobId);
130
148
  if ("error" in authz)
131
149
  return authz.error;
132
- const meta = deps.store.getBlobMeta(blobId);
150
+ const meta = authz.meta;
133
151
  const reqId = requestId();
134
152
  const headers = {
135
153
  "Request-Id": reqId,
@@ -143,7 +161,7 @@ export function pdppBlobsRoutes(deps) {
143
161
  }
144
162
  let bytes;
145
163
  try {
146
- bytes = await deps.readBlobBytes?.(blobId);
164
+ bytes = await authz.readBytes();
147
165
  }
148
166
  catch {
149
167
  // A throwing reader must not leak past this route to app.ts's generic
@@ -162,7 +180,24 @@ export function pdppBlobsRoutes(deps) {
162
180
  // sizeBytes lie to the client about how much data follows.
163
181
  return jsonError(c, new PdppError("api_error", "Stored blob size does not match metadata"), reqId);
164
182
  }
165
- return c.body(bytes, 200, headers);
183
+ const chunkSize = 64 * 1024;
184
+ let offset = 0;
185
+ const body = new ReadableStream({
186
+ pull(controller) {
187
+ if (offset >= bytes.byteLength) {
188
+ controller.close();
189
+ return;
190
+ }
191
+ const end = Math.min(offset + chunkSize, bytes.byteLength);
192
+ const chunk = bytes.subarray(offset, end);
193
+ if (!authz.runIfReadable(() => controller.enqueue(chunk))) {
194
+ controller.error(new Error("blob visibility changed during read"));
195
+ return;
196
+ }
197
+ offset = end;
198
+ },
199
+ }, { highWaterMark: 0 });
200
+ return c.body(body, 200, headers);
166
201
  });
167
202
  return app;
168
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-blobs.js","sourceRoot":"","sources":["../../src/routes/pdpp-blobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdpp-blobs.js","sourceRoot":"","sources":["../../src/routes/pdpp-blobs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-connections.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC1D,kBAAkB,CAAC,KAAK,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,mBAAmB,CAAC;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,wEAAwE;IACxE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,6CAA6C;IAC7C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AA8BD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CA8JxE"}
1
+ {"version":3,"file":"pdpp-connections.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC1D,kBAAkB,CAAC,KAAK,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,mBAAmB,CAAC;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,wEAAwE;IACxE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,6CAA6C;IAC7C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AA4CD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAuLxE"}
@@ -11,6 +11,14 @@ function isConnectionId(id, owner, sourceId) {
11
11
  id ===
12
12
  `${sourceId.split("/").filter(Boolean).pop() ?? sourceId}:${owner.toLowerCase()}`));
13
13
  }
14
+ /**
15
+ * Whether an owner token may see or act on one connection instance. An absent
16
+ * instance list is source-wide; a present one is the whole universe, so an
17
+ * empty list covers no connection.
18
+ */
19
+ function coversInstance(scope, instance) {
20
+ return (scope.instanceIds === undefined || scope.instanceIds.includes(instance));
21
+ }
14
22
  function connectionJson(binding, sourceId = binding.sourceId) {
15
23
  return {
16
24
  connection_id: binding.instance,
@@ -35,7 +43,11 @@ export function pdppConnectionRoutes(deps) {
35
43
  context.subjectId.toLowerCase() !== deps.ownerSubjectId.toLowerCase()) {
36
44
  return jsonError("authentication_error", "Owner token required", 401);
37
45
  }
38
- return { subjectId: context.subjectId, sourceId: context.sourceId };
46
+ return {
47
+ subjectId: context.subjectId,
48
+ sourceId: context.sourceId,
49
+ ...(context.instanceIds && { instanceIds: context.instanceIds }),
50
+ };
39
51
  }
40
52
  app.get("/pdpp/capabilities", (c) => c.json({ capabilities: ["connections_v1"] }));
41
53
  app.get("/pdpp/connections", async (c) => {
@@ -55,6 +67,7 @@ export function pdppConnectionRoutes(deps) {
55
67
  return c.json({
56
68
  connections: deps.store
57
69
  .listConnections(sourceId)
70
+ .filter((connection) => coversInstance(ownerScope, connection.instance))
58
71
  .map((connection) => connectionJson(connection, requestedSourceId)),
59
72
  });
60
73
  });
@@ -86,6 +99,11 @@ export function pdppConnectionRoutes(deps) {
86
99
  if (ownerScope.sourceId !== sourceId) {
87
100
  return jsonError("access_denied", "Owner token has a different source scope", 403);
88
101
  }
102
+ // Checked before any write, and before any lookup, so a connection outside
103
+ // the token's instances is refused the same way whether or not it exists.
104
+ if (!coversInstance(ownerScope, connectionId)) {
105
+ return jsonError("access_denied", "Owner token is not scoped to this connection", 403);
106
+ }
89
107
  if (!isConnectionId(connectionId, ownerScope.subjectId, sourceId)) {
90
108
  return jsonError("connection_id_invalid", "Connection id is invalid", 400);
91
109
  }
@@ -118,6 +136,11 @@ export function pdppConnectionRoutes(deps) {
118
136
  const ownerScope = await owner(c.req.raw);
119
137
  if (ownerScope instanceof Response)
120
138
  return ownerScope;
139
+ // Refused before the binding is read or anything is deleted, and the same
140
+ // whether or not the connection exists.
141
+ if (!coversInstance(ownerScope, connectionId)) {
142
+ return jsonError("access_denied", "Owner token is not scoped to this connection", 403);
143
+ }
121
144
  const current = deps.store.getInstanceBinding(connectionId);
122
145
  if (!current.sourceId ||
123
146
  !deps.sourceIds.has(current.sourceId) ||
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-connections.js","sourceRoot":"","sources":["../../src/routes/pdpp-connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdpp-connections.js","sourceRoot":"","sources":["../../src/routes/pdpp-connections.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ export interface PdppInstanceBindingRouteDeps {
20
20
  instancesForSubject(subjectId: string): string[];
21
21
  instancesForSource?(subjectId: string, sourceId: string): string[];
22
22
  configuredMethods: Map<string, string[]>;
23
+ transitionClaude?(instance: string, generation: number): Promise<PdppInstanceBinding>;
24
+ transitionStrava?(instance: string, generation: number): Promise<PdppInstanceBinding>;
25
+ stravaTransitionStatus?(instance: string): Promise<string>;
23
26
  }
24
27
  export declare function pdppInstanceBindingRoutes(deps: PdppInstanceBindingRouteDeps): Hono;
25
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-instance-bindings.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-instance-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC1D,oBAAoB,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7D;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjD,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAaD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,4BAA4B,GACjC,IAAI,CA6JN"}
1
+ {"version":3,"file":"pdpp-instance-bindings.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-instance-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC1D,oBAAoB,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7D;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjD,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,gBAAgB,CAAC,CACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,gBAAgB,CAAC,CACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAeD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,4BAA4B,GACjC,IAAI,CAiRN"}
@@ -1,6 +1,7 @@
1
1
  import { Hono } from "hono";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { PdppBindingError, } from "../storage/pdpp-records-sqlite-store.js";
4
+ const STRAVA_METHODS = ["strava", "strava-browser"];
4
5
  function errorResponse(code, message, status) {
5
6
  return Response.json({ error: { code, message }, request_id: `req_${randomUUID()}` }, { status });
6
7
  }
@@ -64,6 +65,68 @@ export function pdppInstanceBindingRoutes(deps) {
64
65
  configured_active_method: configuredActiveMethod(instance),
65
66
  });
66
67
  });
68
+ app.post("/pdpp/instances/:instance/transition-claude-live", async (c) => {
69
+ const owner = await ownerContext(c.req.raw);
70
+ if ("error" in owner)
71
+ return owner.error;
72
+ const instance = c.req.param("instance");
73
+ if (!canAccessInstance(instance, owner))
74
+ return errorResponse("authentication_error", "Instance is not owned", 401);
75
+ if (!deps.transitionClaude ||
76
+ !["anthropic", "anthropic-live"].includes(configuredActiveMethod(instance) ?? ""))
77
+ return errorResponse("transition_unavailable", "Claude transition is not configured", 409);
78
+ const body = await c.req.json().catch(() => null);
79
+ if (!body ||
80
+ !Number.isSafeInteger(body.expected_generation) ||
81
+ body.expected_generation < 1)
82
+ return errorResponse("invalid_request", "expected_generation is required", 400);
83
+ try {
84
+ const binding = await deps.transitionClaude(instance, body.expected_generation);
85
+ return c.json({ method: binding.method, generation: binding.generation });
86
+ }
87
+ catch (error) {
88
+ if (error instanceof PdppBindingError)
89
+ return errorResponse(error.reason, "Claude transition could not preserve the current connection", 409);
90
+ throw error;
91
+ }
92
+ });
93
+ // Strava export → browser: same owner contract as the Claude transition.
94
+ app.post("/pdpp/instances/:instance/transition-strava-browser", async (c) => {
95
+ const owner = await ownerContext(c.req.raw);
96
+ if ("error" in owner)
97
+ return owner.error;
98
+ const instance = c.req.param("instance");
99
+ if (!canAccessInstance(instance, owner))
100
+ return errorResponse("authentication_error", "Instance is not owned", 401);
101
+ if (!deps.transitionStrava ||
102
+ !STRAVA_METHODS.includes(configuredActiveMethod(instance) ?? ""))
103
+ return errorResponse("transition_unavailable", "Strava transition is not configured", 409);
104
+ const body = await c.req.json().catch(() => null);
105
+ if (!body ||
106
+ !Number.isSafeInteger(body.expected_generation) ||
107
+ body.expected_generation < 1)
108
+ return errorResponse("invalid_request", "expected_generation is required", 400);
109
+ try {
110
+ const binding = await deps.transitionStrava(instance, body.expected_generation);
111
+ return c.json({ method: binding.method, generation: binding.generation });
112
+ }
113
+ catch (error) {
114
+ if (error instanceof PdppBindingError)
115
+ return errorResponse(error.reason, "Strava transition could not preserve the current connection", 409);
116
+ throw error;
117
+ }
118
+ });
119
+ app.get("/pdpp/instances/:instance/strava-browser-transition", async (c) => {
120
+ const owner = await ownerContext(c.req.raw);
121
+ if ("error" in owner)
122
+ return owner.error;
123
+ const instance = c.req.param("instance");
124
+ if (!canAccessInstance(instance, owner))
125
+ return errorResponse("authentication_error", "Instance is not owned", 401);
126
+ if (!deps.stravaTransitionStatus)
127
+ return errorResponse("transition_unavailable", "Strava transition is not configured", 409);
128
+ return c.json({ status: await deps.stravaTransitionStatus(instance) });
129
+ });
67
130
  app.post("/pdpp/instances/:instance/reset", async (c) => {
68
131
  const owner = await ownerContext(c.req.raw);
69
132
  if ("error" in owner)
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-instance-bindings.js","sourceRoot":"","sources":["../../src/routes/pdpp-instance-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdpp-instance-bindings.js","sourceRoot":"","sources":["../../src/routes/pdpp-instance-bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ declare const PARAMETERS: {
2
+ listStreams: never[];
3
+ streamMetadata: never[];
4
+ listRecords: string[];
5
+ getRecord: string[];
6
+ deleteRecord: never[];
7
+ };
8
+ type Endpoint = keyof typeof PARAMETERS;
9
+ /** The sole parsing boundary for canonical record read queries. */
10
+ export declare function parseRecordQuery(url: string, endpoint: Endpoint, tokenKind?: "owner" | "client"): {
11
+ limit: number;
12
+ clamped: boolean;
13
+ order: "asc" | "desc";
14
+ fields: string[] | undefined;
15
+ cursor: string | undefined;
16
+ changesSince: string | undefined;
17
+ };
18
+ export {};
19
+ //# sourceMappingURL=pdpp-record-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-record-query.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-record-query.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU;;;;;;CAMoB,CAAC;AAErC,KAAK,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAExC,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ;;;WAgDZ,KAAK,GAAG,MAAM;;;;EAQjC"}
@@ -0,0 +1,51 @@
1
+ import { PdppError } from "@opendatalabs/personal-server-ts-core/errors/pdpp";
2
+ const PARAMETERS = {
3
+ listStreams: [],
4
+ streamMetadata: [],
5
+ listRecords: ["limit", "order", "cursor", "fields", "changes_since"],
6
+ getRecord: ["fields"],
7
+ deleteRecord: [],
8
+ };
9
+ /** The sole parsing boundary for canonical record read queries. */
10
+ export function parseRecordQuery(url, endpoint, tokenKind) {
11
+ const params = new URL(url).searchParams;
12
+ const allowed = PARAMETERS[endpoint];
13
+ for (const key of params.keys()) {
14
+ if (!allowed.includes(key)) {
15
+ const base = key.replace(/\[.*$/, "");
16
+ const ownerExpand = tokenKind === "owner" &&
17
+ (endpoint === "listRecords" || endpoint === "getRecord") &&
18
+ (base === "expand" || base === "expand_limit");
19
+ throw new PdppError(ownerExpand ? "invalid_expand" : "invalid_request", ownerExpand
20
+ ? "No expandable relation is declared"
21
+ : `Unsupported query parameter '${key}'`, { param: key });
22
+ }
23
+ if (params.getAll(key).length !== 1) {
24
+ throw new PdppError("invalid_request", `Parameter '${key}' must occur once`, { param: key });
25
+ }
26
+ }
27
+ const rawLimit = params.get("limit");
28
+ const limit = rawLimit === null ? 25 : Number(rawLimit);
29
+ if (rawLimit !== null &&
30
+ (!/^[0-9]+$/.test(rawLimit) || !Number.isSafeInteger(limit) || limit <= 0)) {
31
+ throw new PdppError("invalid_request", "limit must be a positive safe integer", { param: "limit" });
32
+ }
33
+ const order = params.get("order") ?? "desc";
34
+ if (order !== "asc" && order !== "desc") {
35
+ throw new PdppError("invalid_request", "order must be 'asc' or 'desc'", {
36
+ param: "order",
37
+ });
38
+ }
39
+ return {
40
+ limit: Math.min(limit, 100),
41
+ clamped: limit > 100,
42
+ order: order,
43
+ fields: params
44
+ .get("fields")
45
+ ?.split(",")
46
+ .map((f) => f.trim()),
47
+ cursor: params.get("cursor") ?? undefined,
48
+ changesSince: params.get("changes_since") ?? undefined,
49
+ };
50
+ }
51
+ //# sourceMappingURL=pdpp-record-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-record-query.js","sourceRoot":"","sources":["../../src/routes/pdpp-record-query.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,24 @@
1
+ import type { ReplicaReader } from "@opendatalabs/personal-server-ts-core/replication/visibility-policy";
1
2
  import { Hono, type Context } from "hono";
2
3
  import { type createSqliteRecordStore } from "../storage/pdpp-records-sqlite-store.js";
3
4
  import type { PdppAuthorizationService } from "@opendatalabs/personal-server-ts-core/ports/pdpp-auth";
4
- import { type PdppRecordStore, type StreamDeclarationRegistry } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
5
+ import { type PdppRecordStore, type PdppReplicaReadStore, type StreamDeclarationRegistry } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
5
6
  export declare const MAX_BLOB_UPLOAD_BYTES: number;
6
7
  /** 512 MiB — max body size for PDPP record ingest and replace routes. */
7
8
  export declare const MAX_INGEST_BODY_BYTES: number;
8
9
  /** 64 KiB of UTF-8 — max body size for the completion metadata route. */
9
10
  export declare const MAX_COMPLETION_BODY_BYTES: number;
11
+ /** The record routes read everything a reader serves except completion receipts. */
12
+ type RouteReadStore = Omit<PdppReplicaReadStore, "listStreamCompletions">;
10
13
  export interface PdppRecordsRouteDeps {
14
+ /** Writes and write-side lookups. Reads go through `reads`. */
11
15
  store: PdppRecordStore;
16
+ /**
17
+ * Reader capability for every read. The app host (`createApp`) always
18
+ * supplies it. Absent only when the route runs without a host, in tests:
19
+ * then every token class reads `store`.
20
+ */
21
+ reads?: (reader: ReplicaReader) => RouteReadStore;
12
22
  bindingStore?: {
13
23
  getInstanceBinding(instance: string): {
14
24
  sourceId: string | null;
@@ -155,4 +165,5 @@ export interface PdppAccessLogPort {
155
165
  */
156
166
  export declare function resourceMetadataUrlFor(c: Context): string;
157
167
  export declare function pdppRecordsRoutes(deps: PdppRecordsRouteDeps): Hono;
168
+ export {};
158
169
  //# sourceMappingURL=pdpp-records.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdpp-records.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdpp-records.d.ts","sourceRoot":"","sources":["../../src/routes/pdpp-records.ts"],"names":[],"mappings":"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"}