@pithy-sh/core 0.13.0 → 0.15.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 (354) hide show
  1. package/README.md +54 -0
  2. package/dist/audit/auditEvent.js +1 -1
  3. package/dist/audit/chain.d.ts +289 -0
  4. package/dist/audit/chain.d.ts.map +1 -0
  5. package/dist/audit/chain.js +400 -0
  6. package/dist/audit/citations.d.ts +52 -0
  7. package/dist/audit/citations.d.ts.map +1 -0
  8. package/dist/audit/citations.js +13 -0
  9. package/dist/capability/bindings.d.ts +22 -0
  10. package/dist/capability/bindings.d.ts.map +1 -1
  11. package/dist/capability/bindings.js +32 -2
  12. package/dist/capability/capability.d.ts +123 -16
  13. package/dist/capability/capability.d.ts.map +1 -1
  14. package/dist/capability/capability.js +17 -2
  15. package/dist/capability/erasure.d.ts +75 -0
  16. package/dist/capability/erasure.d.ts.map +1 -0
  17. package/dist/capability/erasure.js +2 -0
  18. package/dist/capability/manifest.d.ts +5 -0
  19. package/dist/capability/manifest.d.ts.map +1 -1
  20. package/dist/capability/personColumns.d.ts +28 -0
  21. package/dist/capability/personColumns.d.ts.map +1 -0
  22. package/dist/capability/personColumns.js +66 -0
  23. package/dist/capability/personRows.d.ts +62 -0
  24. package/dist/capability/personRows.d.ts.map +1 -0
  25. package/dist/capability/personRows.js +59 -0
  26. package/dist/capability/purge.d.ts +86 -19
  27. package/dist/capability/purge.d.ts.map +1 -1
  28. package/dist/capability/purge.js +83 -5
  29. package/dist/capability/settings.d.ts +10 -0
  30. package/dist/capability/settings.d.ts.map +1 -1
  31. package/dist/capability/vectorIndex.d.ts +36 -0
  32. package/dist/capability/vectorIndex.d.ts.map +1 -0
  33. package/dist/capability/vectorIndex.js +25 -0
  34. package/dist/cli/commandCatalog.generated.d.ts +438 -3
  35. package/dist/cli/commandCatalog.generated.d.ts.map +1 -1
  36. package/dist/cli/commandCatalog.generated.js +454 -2
  37. package/dist/cli/commandFacts.d.ts +8 -5
  38. package/dist/cli/commandFacts.d.ts.map +1 -1
  39. package/dist/cli/commandFacts.js +12 -3
  40. package/dist/consent/purpose.d.ts +70 -0
  41. package/dist/consent/purpose.d.ts.map +1 -0
  42. package/dist/consent/purpose.js +97 -0
  43. package/dist/consent/reader.d.ts +99 -0
  44. package/dist/consent/reader.d.ts.map +1 -0
  45. package/dist/consent/reader.js +33 -0
  46. package/dist/controlPlane/audit/actions.d.ts +15 -4
  47. package/dist/controlPlane/audit/actions.d.ts.map +1 -1
  48. package/dist/controlPlane/audit/actions.js +16 -5
  49. package/dist/controlPlane/capability.d.ts +10 -0
  50. package/dist/controlPlane/capability.d.ts.map +1 -1
  51. package/dist/controlPlane/capability.js +56 -8
  52. package/dist/controlPlane/context.d.ts +4 -0
  53. package/dist/controlPlane/context.d.ts.map +1 -1
  54. package/dist/controlPlane/context.js +3 -2
  55. package/dist/controlPlane/data/connection.d.ts +21 -2
  56. package/dist/controlPlane/data/connection.d.ts.map +1 -1
  57. package/dist/controlPlane/data/connection.js +13 -4
  58. package/dist/controlPlane/data/connections.d.ts +94 -0
  59. package/dist/controlPlane/data/connections.d.ts.map +1 -0
  60. package/dist/controlPlane/data/connections.js +151 -0
  61. package/dist/controlPlane/data/hold.d.ts +46 -0
  62. package/dist/controlPlane/data/hold.d.ts.map +1 -0
  63. package/dist/controlPlane/data/hold.js +36 -0
  64. package/dist/controlPlane/data/oidcTrust.d.ts +122 -0
  65. package/dist/controlPlane/data/oidcTrust.d.ts.map +1 -0
  66. package/dist/controlPlane/data/oidcTrust.js +173 -0
  67. package/dist/controlPlane/data/tables.d.ts +4 -0
  68. package/dist/controlPlane/data/tables.d.ts.map +1 -1
  69. package/dist/controlPlane/data/tables.js +9 -4
  70. package/dist/controlPlane/data/trustFirstCall.d.ts +16 -0
  71. package/dist/controlPlane/data/trustFirstCall.d.ts.map +1 -0
  72. package/dist/controlPlane/data/trustFirstCall.js +25 -0
  73. package/dist/controlPlane/discovery/adminRoute.d.ts +165 -2
  74. package/dist/controlPlane/discovery/adminRoute.d.ts.map +1 -1
  75. package/dist/controlPlane/discovery/adminRoute.js +32 -8
  76. package/dist/controlPlane/discovery/routeInput.d.ts +23 -0
  77. package/dist/controlPlane/discovery/routeInput.d.ts.map +1 -0
  78. package/dist/controlPlane/discovery/routeInput.js +80 -0
  79. package/dist/controlPlane/discovery/toolName.d.ts +21 -0
  80. package/dist/controlPlane/discovery/toolName.d.ts.map +1 -0
  81. package/dist/controlPlane/discovery/toolName.js +25 -0
  82. package/dist/controlPlane/erasure/attest.d.ts +78 -0
  83. package/dist/controlPlane/erasure/attest.d.ts.map +1 -0
  84. package/dist/controlPlane/erasure/attest.js +164 -0
  85. package/dist/controlPlane/erasure/read.d.ts +39 -0
  86. package/dist/controlPlane/erasure/read.d.ts.map +1 -0
  87. package/dist/controlPlane/erasure/read.js +140 -0
  88. package/dist/controlPlane/error/errors.d.ts +61 -2
  89. package/dist/controlPlane/error/errors.d.ts.map +1 -1
  90. package/dist/controlPlane/error/errors.js +13 -0
  91. package/dist/controlPlane/evidence/derive.d.ts +124 -0
  92. package/dist/controlPlane/evidence/derive.d.ts.map +1 -0
  93. package/dist/controlPlane/evidence/derive.js +343 -0
  94. package/dist/controlPlane/evidence/mapping.d.ts +85 -0
  95. package/dist/controlPlane/evidence/mapping.d.ts.map +1 -0
  96. package/dist/controlPlane/evidence/mapping.js +114 -0
  97. package/dist/controlPlane/evidence/pack.d.ts +46 -0
  98. package/dist/controlPlane/evidence/pack.d.ts.map +1 -0
  99. package/dist/controlPlane/evidence/pack.js +124 -0
  100. package/dist/controlPlane/http/connections.d.ts +96 -0
  101. package/dist/controlPlane/http/connections.d.ts.map +1 -0
  102. package/dist/controlPlane/http/connections.js +109 -0
  103. package/dist/controlPlane/http/guard.d.ts +23 -2
  104. package/dist/controlPlane/http/guard.d.ts.map +1 -1
  105. package/dist/controlPlane/http/guard.js +69 -12
  106. package/dist/controlPlane/http/handlers.d.ts +212 -10
  107. package/dist/controlPlane/http/handlers.d.ts.map +1 -1
  108. package/dist/controlPlane/http/handlers.js +117 -26
  109. package/dist/controlPlane/http/holds.d.ts +57 -0
  110. package/dist/controlPlane/http/holds.d.ts.map +1 -0
  111. package/dist/controlPlane/http/holds.js +98 -0
  112. package/dist/controlPlane/http/presence.d.ts +27 -0
  113. package/dist/controlPlane/http/presence.d.ts.map +1 -0
  114. package/dist/controlPlane/http/presence.js +67 -0
  115. package/dist/controlPlane/http/processing.d.ts +73 -0
  116. package/dist/controlPlane/http/processing.d.ts.map +1 -0
  117. package/dist/controlPlane/http/processing.js +17 -0
  118. package/dist/controlPlane/http/responses.d.ts +927 -3
  119. package/dist/controlPlane/http/responses.d.ts.map +1 -1
  120. package/dist/controlPlane/http/responses.js +283 -7
  121. package/dist/controlPlane/http/routes.d.ts +12 -2
  122. package/dist/controlPlane/http/routes.d.ts.map +1 -1
  123. package/dist/controlPlane/http/routes.js +182 -5
  124. package/dist/controlPlane/http/schemas.d.ts +63 -0
  125. package/dist/controlPlane/http/schemas.d.ts.map +1 -1
  126. package/dist/controlPlane/http/schemas.js +39 -1
  127. package/dist/controlPlane/http/verify.d.ts.map +1 -1
  128. package/dist/controlPlane/http/verify.js +13 -1
  129. package/dist/controlPlane/http/verifyTrust.d.ts +76 -0
  130. package/dist/controlPlane/http/verifyTrust.d.ts.map +1 -0
  131. package/dist/controlPlane/http/verifyTrust.js +75 -0
  132. package/dist/controlPlane/migrations/0004_connection_trusts.d.ts +15 -0
  133. package/dist/controlPlane/migrations/0004_connection_trusts.d.ts.map +1 -0
  134. package/dist/controlPlane/migrations/0004_connection_trusts.js +23 -0
  135. package/dist/controlPlane/migrations/0005_holds.d.ts +12 -0
  136. package/dist/controlPlane/migrations/0005_holds.d.ts.map +1 -0
  137. package/dist/controlPlane/migrations/0005_holds.js +26 -0
  138. package/dist/controlPlane/processing/derive.d.ts +77 -0
  139. package/dist/controlPlane/processing/derive.d.ts.map +1 -0
  140. package/dist/controlPlane/processing/derive.js +206 -0
  141. package/dist/controlPlane/processing/read.d.ts +10 -0
  142. package/dist/controlPlane/processing/read.d.ts.map +1 -0
  143. package/dist/controlPlane/processing/read.js +89 -0
  144. package/dist/controlPlane/scope/kind.d.ts +46 -0
  145. package/dist/controlPlane/scope/kind.d.ts.map +1 -0
  146. package/dist/controlPlane/scope/kind.js +52 -0
  147. package/dist/controlPlane/scope/scope.d.ts +58 -3
  148. package/dist/controlPlane/scope/scope.d.ts.map +1 -1
  149. package/dist/controlPlane/scope/scope.js +59 -4
  150. package/dist/controlPlane/token/jws.js +1 -1
  151. package/dist/controlPlane/token/mint.js +1 -1
  152. package/dist/controlPlane/wire.d.ts +23 -0
  153. package/dist/controlPlane/wire.d.ts.map +1 -1
  154. package/dist/controlPlane/wire.js +24 -1
  155. package/dist/createBackend.d.ts +13 -0
  156. package/dist/createBackend.d.ts.map +1 -1
  157. package/dist/createBackend.js +11 -3
  158. package/dist/createEntrypoint.d.ts +7 -0
  159. package/dist/createEntrypoint.d.ts.map +1 -1
  160. package/dist/createEntrypoint.js +4 -0
  161. package/dist/error/http.d.ts +168 -0
  162. package/dist/error/http.d.ts.map +1 -1
  163. package/dist/error/payload.d.ts +336 -0
  164. package/dist/error/payload.d.ts.map +1 -1
  165. package/dist/error/payload.js +112 -0
  166. package/dist/error/pithyError.d.ts +22 -0
  167. package/dist/error/pithyError.d.ts.map +1 -1
  168. package/dist/error/pithyError.js +31 -1
  169. package/dist/http/routeSpec.d.ts +46 -1
  170. package/dist/http/routeSpec.d.ts.map +1 -1
  171. package/dist/http/routeSpec.js +39 -5
  172. package/dist/http/verification.d.ts.map +1 -1
  173. package/dist/http/verification.js +1 -1
  174. package/dist/i18n/translator.d.ts +2 -1
  175. package/dist/i18n/translator.d.ts.map +1 -1
  176. package/dist/index.d.ts +1 -1
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +3 -3
  179. package/dist/logger/record.d.ts +98 -0
  180. package/dist/logger/record.d.ts.map +1 -1
  181. package/dist/mcp/annotations.d.ts +20 -0
  182. package/dist/mcp/annotations.d.ts.map +1 -0
  183. package/dist/mcp/annotations.js +23 -0
  184. package/dist/mcp/tools.d.ts +75 -0
  185. package/dist/mcp/tools.d.ts.map +1 -0
  186. package/dist/mcp/tools.js +118 -0
  187. package/dist/openapi/document.d.ts.map +1 -1
  188. package/dist/openapi/document.js +8 -26
  189. package/dist/openapi/operations.d.ts +35 -0
  190. package/dist/openapi/operations.d.ts.map +1 -0
  191. package/dist/openapi/operations.js +37 -0
  192. package/dist/presence/channel.d.ts +11 -0
  193. package/dist/presence/channel.d.ts.map +1 -0
  194. package/dist/presence/channel.js +65 -0
  195. package/dist/presence/declaration.d.ts +154 -0
  196. package/dist/presence/declaration.d.ts.map +1 -0
  197. package/dist/presence/declaration.js +164 -0
  198. package/dist/presence/durableObject.d.ts +61 -0
  199. package/dist/presence/durableObject.d.ts.map +1 -0
  200. package/dist/presence/durableObject.js +257 -0
  201. package/dist/presence/frames.d.ts +166 -0
  202. package/dist/presence/frames.d.ts.map +1 -0
  203. package/dist/presence/frames.js +90 -0
  204. package/dist/presence/http/guard.d.ts +11 -0
  205. package/dist/presence/http/guard.d.ts.map +1 -0
  206. package/dist/presence/http/guard.js +20 -0
  207. package/dist/presence/http/responses.d.ts +31 -0
  208. package/dist/presence/http/responses.d.ts.map +1 -0
  209. package/dist/presence/http/responses.js +34 -0
  210. package/dist/presence/http/routes.d.ts +24 -0
  211. package/dist/presence/http/routes.d.ts.map +1 -0
  212. package/dist/presence/http/routes.js +127 -0
  213. package/dist/presence/http/schemas.d.ts +29 -0
  214. package/dist/presence/http/schemas.d.ts.map +1 -0
  215. package/dist/presence/http/schemas.js +28 -0
  216. package/dist/presence/names.d.ts +23 -0
  217. package/dist/presence/names.d.ts.map +1 -0
  218. package/dist/presence/names.js +22 -0
  219. package/dist/presence/room.d.ts +95 -0
  220. package/dist/presence/room.d.ts.map +1 -0
  221. package/dist/presence/room.js +105 -0
  222. package/dist/presence/ticket.d.ts +55 -0
  223. package/dist/presence/ticket.d.ts.map +1 -0
  224. package/dist/presence/ticket.js +109 -0
  225. package/dist/privacy/classify.js +1 -1
  226. package/dist/privacy/encrypted.js +1 -1
  227. package/dist/processing/activity.d.ts +134 -0
  228. package/dist/processing/activity.d.ts.map +1 -0
  229. package/dist/processing/activity.js +161 -0
  230. package/dist/processing/composed.d.ts +18 -0
  231. package/dist/processing/composed.d.ts.map +1 -0
  232. package/dist/processing/composed.js +28 -0
  233. package/dist/processing/vocabulary.d.ts +26 -0
  234. package/dist/processing/vocabulary.d.ts.map +1 -0
  235. package/dist/processing/vocabulary.js +35 -0
  236. package/dist/queue/consumer.d.ts +59 -0
  237. package/dist/queue/consumer.d.ts.map +1 -0
  238. package/dist/queue/consumer.js +46 -0
  239. package/dist/retention/composed.d.ts +37 -0
  240. package/dist/retention/composed.d.ts.map +1 -0
  241. package/dist/retention/composed.js +66 -0
  242. package/dist/retention/holds.d.ts +61 -0
  243. package/dist/retention/holds.d.ts.map +1 -0
  244. package/dist/retention/holds.js +107 -0
  245. package/dist/retention/holdsPurge.d.ts +22 -0
  246. package/dist/retention/holdsPurge.d.ts.map +1 -0
  247. package/dist/retention/holdsPurge.js +50 -0
  248. package/dist/retention/policy.d.ts +132 -0
  249. package/dist/retention/policy.d.ts.map +1 -0
  250. package/dist/retention/policy.js +197 -0
  251. package/dist/session/rotated.d.ts +34 -0
  252. package/dist/session/rotated.d.ts.map +1 -0
  253. package/dist/session/rotated.js +25 -0
  254. package/dist/test-utils/connectionFixtures.d.ts +13 -0
  255. package/dist/test-utils/connectionFixtures.d.ts.map +1 -0
  256. package/dist/test-utils/connectionFixtures.js +58 -0
  257. package/dist/test-utils/interleave.d.ts +12 -0
  258. package/dist/test-utils/interleave.d.ts.map +1 -0
  259. package/dist/test-utils/interleave.js +26 -0
  260. package/dist/testWorker.d.ts +8 -0
  261. package/dist/testWorker.d.ts.map +1 -0
  262. package/dist/testWorker.js +9 -0
  263. package/dist/version.generated.d.ts +1 -1
  264. package/dist/version.generated.js +1 -1
  265. package/dist/workflow/dispatchRoute.js +1 -1
  266. package/package.json +1 -1
  267. package/src/audit/auditEvent.ts +1 -1
  268. package/src/audit/chain.ts +551 -0
  269. package/src/audit/citations.ts +63 -0
  270. package/src/capability/bindings.ts +61 -0
  271. package/src/capability/capability.ts +156 -19
  272. package/src/capability/erasure.ts +82 -0
  273. package/src/capability/personColumns.ts +83 -0
  274. package/src/capability/personRows.ts +125 -0
  275. package/src/capability/purge.ts +158 -21
  276. package/src/capability/settings.ts +7 -0
  277. package/src/capability/vectorIndex.ts +60 -0
  278. package/src/cli/commandCatalog.generated.ts +487 -2
  279. package/src/cli/commandFacts.ts +12 -3
  280. package/src/cloudflare-test.d.ts +3 -1
  281. package/src/consent/purpose.ts +160 -0
  282. package/src/consent/reader.ts +134 -0
  283. package/src/controlPlane/audit/actions.ts +15 -4
  284. package/src/controlPlane/capability.ts +99 -20
  285. package/src/controlPlane/context.ts +10 -2
  286. package/src/controlPlane/data/connection.ts +16 -2
  287. package/src/controlPlane/data/connections.ts +231 -0
  288. package/src/controlPlane/data/hold.ts +52 -0
  289. package/src/controlPlane/data/oidcTrust.ts +249 -0
  290. package/src/controlPlane/data/tables.ts +7 -0
  291. package/src/controlPlane/data/trustFirstCall.ts +37 -0
  292. package/src/controlPlane/discovery/adminRoute.ts +71 -9
  293. package/src/controlPlane/discovery/routeInput.ts +86 -0
  294. package/src/controlPlane/discovery/toolName.ts +23 -0
  295. package/src/controlPlane/erasure/attest.ts +205 -0
  296. package/src/controlPlane/erasure/read.ts +169 -0
  297. package/src/controlPlane/error/errors.ts +69 -2
  298. package/src/controlPlane/evidence/derive.ts +426 -0
  299. package/src/controlPlane/evidence/mapping.ts +118 -0
  300. package/src/controlPlane/evidence/pack.ts +190 -0
  301. package/src/controlPlane/http/connections.ts +129 -0
  302. package/src/controlPlane/http/guard.ts +118 -9
  303. package/src/controlPlane/http/handlers.ts +172 -40
  304. package/src/controlPlane/http/holds.ts +108 -0
  305. package/src/controlPlane/http/presence.ts +71 -0
  306. package/src/controlPlane/http/processing.ts +19 -0
  307. package/src/controlPlane/http/responses.ts +590 -7
  308. package/src/controlPlane/http/routes.ts +302 -3
  309. package/src/controlPlane/http/schemas.ts +126 -0
  310. package/src/controlPlane/http/verify.ts +19 -2
  311. package/src/controlPlane/http/verifyTrust.ts +176 -0
  312. package/src/controlPlane/migrations/0004_connection_trusts.ts +30 -0
  313. package/src/controlPlane/migrations/0005_holds.ts +40 -0
  314. package/src/controlPlane/processing/derive.ts +359 -0
  315. package/src/controlPlane/processing/read.ts +102 -0
  316. package/src/controlPlane/scope/kind.ts +63 -0
  317. package/src/controlPlane/scope/scope.ts +65 -3
  318. package/src/controlPlane/wire.ts +26 -0
  319. package/src/createBackend.ts +31 -6
  320. package/src/createEntrypoint.ts +17 -0
  321. package/src/error/payload.ts +234 -0
  322. package/src/error/pithyError.ts +42 -0
  323. package/src/http/routeSpec.ts +75 -5
  324. package/src/http/verification.ts +3 -1
  325. package/src/i18n/translator.ts +2 -1
  326. package/src/index.ts +2 -0
  327. package/src/mcp/annotations.ts +38 -0
  328. package/src/mcp/tools.ts +220 -0
  329. package/src/openapi/document.ts +8 -28
  330. package/src/openapi/operations.ts +62 -0
  331. package/src/presence/channel.ts +46 -0
  332. package/src/presence/declaration.ts +283 -0
  333. package/src/presence/durableObject.ts +287 -0
  334. package/src/presence/frames.ts +153 -0
  335. package/src/presence/http/guard.ts +23 -0
  336. package/src/presence/http/responses.ts +63 -0
  337. package/src/presence/http/routes.ts +165 -0
  338. package/src/presence/http/schemas.ts +39 -0
  339. package/src/presence/names.ts +45 -0
  340. package/src/presence/room.ts +145 -0
  341. package/src/presence/ticket.ts +145 -0
  342. package/src/processing/activity.ts +289 -0
  343. package/src/processing/composed.ts +33 -0
  344. package/src/processing/vocabulary.ts +43 -0
  345. package/src/queue/consumer.ts +104 -0
  346. package/src/retention/composed.ts +75 -0
  347. package/src/retention/holds.ts +175 -0
  348. package/src/retention/holdsPurge.ts +50 -0
  349. package/src/retention/policy.ts +305 -0
  350. package/src/session/rotated.ts +53 -0
  351. package/src/test-utils/connectionFixtures.ts +58 -0
  352. package/src/test-utils/interleave.ts +31 -0
  353. package/src/testWorker.ts +13 -0
  354. package/src/version.generated.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/controlPlane/http/responses.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,aAAa;;;;;;;;;;iBAcmF,CAAC;AAC9G,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;iBAQwB,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEjF,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;iBAuBwE,CAAC;AAC9G,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEjF,mFAAmF;AACnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAQyB,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,gGAAgG;AAChG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAM6B,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;;iBAU+C,CAAC;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,iFAAiF;AACjF,eAAO,MAAM,0BAA0B;;;;;;;;;4BAyBkE,CAAC;AAC1G,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAErF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;iBAW8C,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA+BwE,CAAC;AAC3G,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO+D,CAAC;AAC3G,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE7F;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;iBAmCiB,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,4DAA4D;AAC5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;iBA0BmC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAerC,CAAC;AACJ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/controlPlane/http/responses.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  // SPDX-FileCopyrightText: 2026 Pithy
2
2
  // SPDX-License-Identifier: MIT
3
+ import { BASIS_SOURCES, LegalBasis, PROCESSING_GAP_KINDS, RECIPIENT_SOURCES } from "../../processing/vocabulary.js";
3
4
  import { PRIVACY_SOURCES } from "../../privacy/report.js";
4
- import { ConnectionPrincipal, ConnectionPurpose, ControlPlaneActorKind, Ed25519PublicJwk } from "../data/connection.js";
5
+ import { ConnectionCredentialKind, ConnectionPrincipal, ConnectionPurpose, ControlPlaneActorKind, Ed25519PublicJwk } from "../data/connection.js";
5
6
  import { PrivacyPosture } from "../../privacy/posture.js";
7
+ import { EvidenceControlId, EvidenceSource, EvidenceState } from "../evidence/mapping.js";
6
8
  import { z } from "zod";
7
9
  //#region src/controlPlane/http/responses.ts
8
10
  /**
@@ -33,6 +35,23 @@ const PublicKeyView = z.object({
33
35
  revokedAt: z.iso.datetime().nullable().describe("When it was revoked outright, ISO-8601, or null. Revocation ignores the window and is immediate.")
34
36
  }).describe("One registered public key and its validity window. Two live at once during a rotation overlap.");
35
37
  /**
38
+ * One OIDC trust as `GET {basePath}/keys` lists it: who it admits, beside who sanctioned it.
39
+ *
40
+ * **The subject constraint is on the face of the listing**, because it *is* the population: a trust pinned to a
41
+ * workflow is usable by anyone who can run that workflow, and the claims are the only place that is written down.
42
+ * Nothing here is secret — an issuer, an audience and claim values are all public facts about a workload.
43
+ */
44
+ const TrustView = z.object({
45
+ trustId: z.string().describe("The trust's id, as a call names it on `pithy-control-plane-trust`."),
46
+ issuer: z.string().describe("The `iss` the trust accepts."),
47
+ audience: z.string().describe("The `aud` a token must name."),
48
+ claims: z.record(z.string().describe("A claim name."), z.string().describe("The value that claim must have.")).describe("The subject constraint: every named claim must equal its value. This is who may use the trust."),
49
+ authorizedBy: z.string().describe("Who sanctioned the trust — never who may use it."),
50
+ validFrom: z.iso.datetime().describe("When the trust was registered, ISO-8601."),
51
+ revokedAt: z.iso.datetime().nullable().describe("When it was revoked, ISO-8601, or null. A token already minted stays usable until it expires."),
52
+ firstCallAt: z.iso.datetime().nullable().describe("When a call first verified under it, ISO-8601, or null while it is awaiting a first call.")
53
+ }).describe("One OIDC trust: who it admits, and who sanctioned it.");
54
+ /**
36
55
  * `GET /control-plane/ping`.
37
56
  *
38
57
  * It echoes the `keyId` that verified the call, so a client rotating a key can confirm *which* key
@@ -52,8 +71,9 @@ const ControlPlaneKeysResponse = z.object({
52
71
  keys: z.array(PublicKeyView).describe("Every registered key, expired and revoked ones included."),
53
72
  authorizedBy: ConnectionPrincipal.nullable().optional().describe("Who sanctioned this connection — the signed-in session's email at registration. Null for a connection registered before principals were recorded; absent from a Worker older than the field."),
54
73
  actorKind: ControlPlaneActorKind.nullable().optional().describe("What kind of client this connection is for: `agent`, `dashboard` or `script`. Null for a connection registered before it was recorded; absent from an older Worker."),
55
- purpose: ConnectionPurpose.nullable().optional().describe("What the client is for, in the registering operator's words. Untrusted text: render it escaped. Null for a connection registered before it was recorded; absent from an older Worker.")
56
- }).describe("Every key registered against this connection, with its window, and who authorized it for what.");
74
+ purpose: ConnectionPurpose.nullable().optional().describe("What the client is for, in the registering operator's words. Untrusted text: render it escaped. Null for a connection registered before it was recorded; absent from an older Worker."),
75
+ trusts: z.array(TrustView).optional().describe("Every OIDC trust on this connection, revoked ones included. Absent from a Worker older than trusts.")
76
+ }).describe("Every key and trust registered against this connection, and who authorized it for what.");
57
77
  /** `POST /control-plane/keys` — the appended key, and the set as it now stands. */
58
78
  const RegisterKeyResponse = z.object({
59
79
  keyId: z.string().describe("The key just registered."),
@@ -121,9 +141,9 @@ const ControlPlaneMigrationsResponse = z.object({
121
141
  databases: z.array(MigrationDatabaseView).describe("One entry per database this Worker binds, sorted by database name. One unreadable costs only itself.")
122
142
  }).describe("What is applied, pending and undeclared in each bound database, and which run put it there.");
123
143
  /**
124
- * One marked field, as `GET {basePath}/privacy` reports it (#132).
144
+ * One marked field, as `GET {basePath}/privacy` reports it.
125
145
  *
126
- * **The per-field record.** Since #390 it says whether the field rests encrypted beside `class`, so "which of
146
+ * **The per-field record.** It says whether the field rests encrypted beside `class`, so "which of
127
147
  * your PHI fields are encrypted" is a derivation over this list rather than a second inventory to keep.
128
148
  */
129
149
  const PrivacyFieldView = z.object({
@@ -147,7 +167,7 @@ const PrivacySchemaView = z.object({
147
167
  }).describe("One encrypted field.")).optional().describe("Every field marked encrypted at rest, classed or not (#390). Absent on a Worker whose core predates encrypted fields.")
148
168
  }).describe("One storage schema and the marked fields it holds.");
149
169
  /**
150
- * `GET /control-plane/privacy` — the full inventory, behind `privacy:read` (#132).
170
+ * `GET /control-plane/privacy` — the full inventory, behind `privacy:read`.
151
171
  *
152
172
  * Derived at runtime from the schemas this Worker composed, walked once per isolate. The manifest's `privacy`
153
173
  * block is the headline; this is the detail, and it names fields, which is why it has a scope of its own.
@@ -158,5 +178,261 @@ const ControlPlanePrivacyResponse = z.object({
158
178
  schemasWalked: z.number().int().nonnegative().describe("How many storage schemas were walked, marked or not, across the sources `posture.sources` names."),
159
179
  schemas: z.array(PrivacySchemaView).describe("Every schema holding a marked field, in composition order. A schema with none is not listed.")
160
180
  }).describe("Every schema this Worker stores that holds a marked field, each field's path and class, and where it lives.");
181
+ /**
182
+ * One value a fact carries: a scalar, a list of names, or null where the record holds nothing.
183
+ *
184
+ * Scalars and string lists only, so a fact can never carry a row, a secret, or a key: it names and counts.
185
+ */
186
+ const EvidenceValue = z.union([
187
+ z.string(),
188
+ z.number(),
189
+ z.boolean(),
190
+ z.null(),
191
+ z.array(z.string().describe("One name."))
192
+ ]).describe("A fact's value: a word, a number, a flag, a list of names, or null where the record holds none.");
193
+ /** One fact the Worker read for a control, and the declaration it read it from. */
194
+ const EvidenceFact = z.object({
195
+ fact: z.string().describe("What the fact is, as one camelCase name: `auditRecorder`, `liveKeys`, `pending`."),
196
+ subject: z.string().optional().describe("What the fact is about where a control reads several of one thing: a connection id, a database name, a capability, a class, a strategy. Absent where the fact is about the Worker as a whole."),
197
+ value: EvidenceValue.describe("What the Worker read."),
198
+ source: EvidenceSource.describe("The declaration or record it was read from.")
199
+ }).describe("One fact behind a control, and where it came from.");
200
+ /** One control in the pack: its references, the facts read, and what the Worker could say. */
201
+ const EvidenceEntry = z.object({
202
+ control: EvidenceControlId,
203
+ title: z.string().describe("The control in one line, as the mapping table names it."),
204
+ soc2: z.array(z.string().describe("One criterion, such as `CC6.1`.")).describe("The AICPA Trust Services Criteria this control answers."),
205
+ iso27001: z.array(z.string().describe("One Annex A control, such as `A.8.15`.")).describe("The ISO/IEC 27001:2022 Annex A controls this control answers."),
206
+ state: EvidenceState,
207
+ reasons: z.array(z.string().describe("One sentence.")).describe("For `gap`, what is missing. For `not-derivable`, why the Worker cannot say. Empty when `evidenced`. Where both kinds apply, the gaps come first."),
208
+ facts: z.array(EvidenceFact).describe("Every fact read for this control, each naming its source. Read from declarations, never typed in.")
209
+ }).describe("One control: what it answers, what the Worker read, and what it could say. Evidence, never a judgment.");
210
+ /**
211
+ * `GET /control-plane/evidence` — the evidence pack, behind `evidence:read`.
212
+ *
213
+ * Computed in the Worker because the Worker is the deployed build: every fact is read from what this build
214
+ * composes and records. It proves controls present and performs nothing.
215
+ */
216
+ const ControlPlaneEvidenceResponse = z.object({
217
+ environment: z.string().describe("The environment this Worker answers for."),
218
+ generatedAt: z.iso.datetime().describe("When this Worker read the facts, ISO-8601."),
219
+ version: z.string().nullable().describe("The Cloudflare version id of the build that answered, or null where the binding is absent."),
220
+ mappingVersion: z.number().int().positive().describe("The version of the kit's mapping table these entries follow. A control, a reference or a rule moving is a new version."),
221
+ controls: z.array(EvidenceEntry).describe("One entry per control in the mapping table, in its order. Evidence for an auditor to weigh.")
222
+ }).describe("SOC 2 and ISO 27001 evidence this Worker derives from its own declarations. Each control names its facts, their sources and what could be said. An auditor decides the rest.");
223
+ /** Where a purge stands. */
224
+ const ErasureState = z.enum([
225
+ "scheduled",
226
+ "in_progress",
227
+ "complete",
228
+ "failed"
229
+ ]).describe("Where the purge stands: `scheduled`, deleted with its window still open and nothing erased yet; `in_progress`, due and not yet finished; `complete`, every step ran and the `purged` record is written; `failed`, the purge gave up at the step it names, until the next daily pass starts it again.");
230
+ /** One recorded audit event, cited by id and chain position. Never its personal values. */
231
+ const ErasureCitation = z.object({
232
+ eventId: z.string().describe("The audit event's stable public id."),
233
+ action: z.string().describe("Its `domain/reason` action."),
234
+ occurredAt: z.iso.datetime().describe("When it was recorded, ISO-8601."),
235
+ tenant: z.string().nullable().describe("The tenant whose chain holds it, or null for the untenanted chain. `pithy audit verify` walks it."),
236
+ seq: z.number().int().nullable().describe("Its 1-based position in that chain, or null for an event recorded before the chain began."),
237
+ hash: z.string().nullable().describe("Its chain hash, or null for an event recorded before the chain began.")
238
+ }).describe("One audit event the attestation rests on, by id and chain position. The chain (#822) is what makes it tamper-evident; nothing here is signed.");
239
+ /** One purge step: whose rows, what happened to them, and the event that records it. */
240
+ const ErasureStepView = z.object({
241
+ capability: z.string().describe("The capability whose rows this step answered for."),
242
+ disposition: z.enum(["erased", "retained"]).describe("`erased`, the rows were deleted or anonymized; `retained`, the capability kept them under the reason it stated (#814). A retained step never reads as erased."),
243
+ reason: z.string().nullable().describe("For a retained step, the basis the capability stated, written for the person. Null for an erased step."),
244
+ summary: z.string().nullable().describe("For an erased step, what the capability says it erases. Null for a retained step, and when none was given."),
245
+ completedAt: z.iso.datetime().describe("When the step finished, ISO-8601."),
246
+ audit: ErasureCitation.nullable().describe("The audit event that records this step, or null when the trail holds none: no audit composed, or a step run before #823.")
247
+ }).describe("One step of a purge: one capability's rows, erased or kept with a reason, and the event that records it.");
248
+ /** The subject an attestation is about: its kind and its id, and nothing else. */
249
+ const ErasureSubjectView = z.object({
250
+ type: z.enum(["user", "organization"]).describe("The kind of subject."),
251
+ id: z.string().describe("Its id, the one value the trail keeps about it.")
252
+ }).describe("Who was erased: the kind of subject and its id. No address, no name.");
253
+ /** One subject's erasure, attested. */
254
+ const ErasureAttestation = z.object({
255
+ subject: ErasureSubjectView,
256
+ deletion: z.object({
257
+ at: z.iso.datetime().describe("When the subject was deleted, ISO-8601."),
258
+ actorType: z.string().describe("Who deleted it: `control-plane` (a management client), `user` (the account's own holder) or `system`."),
259
+ reason: z.string().nullable().describe("Why, in the words of whoever deleted it. Null when nobody had to say."),
260
+ mode: z.enum(["soft", "hard"]).nullable().describe("`soft`, with a window to restore it; `hard`, with none — a soft deletion brought forward reads as `hard`. Null for a deletion recorded before #823."),
261
+ purgeAfter: z.iso.datetime().nullable().describe("When the purge came due, ISO-8601. Null for a deletion recorded before #823."),
262
+ audit: ErasureCitation.nullable().describe("The audit event that records the deletion, or null when the trail holds none.")
263
+ }).describe("The deletion the purge erases under."),
264
+ state: ErasureState,
265
+ overdue: z.boolean().describe("True when the purge came due more than two days ago and has not completed: a daily pass was missed."),
266
+ stoppedAt: z.string().nullable().describe("For a failed purge, the step it gave up at. For an overdue one, the last step it finished, or `due` when none has run. Null otherwise."),
267
+ steps: z.array(ErasureStepView).describe("Every step that has run, in the order it first ran. A step run again on a later pass is shown once, as it last finished."),
268
+ completedAt: z.iso.datetime().nullable().describe("When the purge finished, ISO-8601. Null until it has."),
269
+ completion: ErasureCitation.nullable().describe("The audit event that records the purge finishing, or null until it has, or when the trail holds none."),
270
+ failure: ErasureCitation.nullable().describe("The audit event that records the purge giving up, or null."),
271
+ trail: z.enum(["recorded", "absent"]).describe("`recorded` when an audit capability is composed and its events are cited; `absent` when none is, so nothing here is cited and the lifecycle rows are the only record.")
272
+ }).describe("Proof that one subject's erasure happened: the deletion, every step with its disposition, the state, and the audit events that record each one.");
273
+ /** `GET /control-plane/erasure/:subjectType/:subjectId` — one subject's attestation, behind `erasure:read`. */
274
+ const ControlPlaneErasureSubjectResponse = z.object({
275
+ generatedAt: z.iso.datetime().describe("When this Worker read the records, ISO-8601."),
276
+ attestation: ErasureAttestation
277
+ }).describe("One subject's erasure attestation, read from the purge's own record and cited in the audit chain.");
278
+ /** One purge in a period: who, where it stands, and where it stopped. */
279
+ const ErasurePeriodEntry = z.object({
280
+ subject: ErasureSubjectView,
281
+ state: ErasureState,
282
+ overdue: z.boolean().describe("True when it came due more than two days ago and has not completed."),
283
+ purgeAfter: z.iso.datetime().nullable().describe("When it came due, or null for a deletion recorded before #823."),
284
+ completedAt: z.iso.datetime().nullable().describe("When it finished, or null until it has."),
285
+ stoppedAt: z.string().nullable().describe("For a failed or overdue purge, the step it stopped at — `due` when none has run. Null otherwise.")
286
+ }).describe("One purge in the period, summarized. Its full record is the subject read.");
287
+ /** `GET /control-plane/erasure` — every purge in a period, counted. */
288
+ const ControlPlaneErasurePeriodResponse = z.object({
289
+ generatedAt: z.iso.datetime().describe("When this Worker read the records, ISO-8601."),
290
+ since: z.iso.datetime().describe("The window's inclusive start, ISO-8601."),
291
+ until: z.iso.datetime().describe("The window's inclusive end, ISO-8601."),
292
+ subjects: z.array(z.enum(["user", "organization"]).describe("One kind of subject.")).describe("The kinds of subject this Worker records purges for. A kind not listed was not read, because nothing composed records it."),
293
+ counts: z.object({
294
+ scheduled: z.number().int().describe("Deleted, with the window still open."),
295
+ inProgress: z.number().int().describe("Due, and not yet finished."),
296
+ complete: z.number().int().describe("Finished."),
297
+ failed: z.number().int().describe("Gave up, until the next pass."),
298
+ overdue: z.number().int().describe("Not finished more than two days after coming due. Counted within the states above.")
299
+ }).describe("How many purges in the window stand where."),
300
+ attention: z.array(ErasurePeriodEntry).describe("Every failed or overdue purge in the window, each with the step it stopped at."),
301
+ purges: z.array(ErasurePeriodEntry).describe("Every purge in the window, oldest due first.")
302
+ }).describe("Every purge in a period: counts of complete, in-progress and failed, and each failed or overdue one named with the step it stopped at.");
303
+ /** One legal hold, as the holds routes answer it. */
304
+ const LegalHoldView = z.object({
305
+ id: z.string().describe("The hold's id. Name it to release the hold."),
306
+ subjectType: z.enum([
307
+ "user",
308
+ "organization",
309
+ "audit"
310
+ ]).describe("What the hold preserves: a user, an organization, or a tenant's audit trail."),
311
+ subjectId: z.string().nullable().describe("The held user's or organization's id, or the tenant whose trail is held. Null for the untenanted trail."),
312
+ reason: z.string().describe("Why it was placed."),
313
+ placedBy: z.string().describe("The management client's user id that placed it."),
314
+ placedAt: z.iso.datetime().describe("When it was placed, ISO-8601."),
315
+ state: z.enum(["active", "released"]).describe("`active` while it stands; `released` once lifted."),
316
+ releasedAt: z.iso.datetime().nullable().describe("When it was released, ISO-8601, or null while it stands."),
317
+ releasedBy: z.string().nullable().describe("Who released it, or null while it stands."),
318
+ releaseReason: z.string().nullable().describe("Why it was released, or null while it stands.")
319
+ }).describe("A legal hold on one user, one organization or one tenant's audit trail.");
320
+ /** `GET /control-plane/holds`. */
321
+ const ControlPlaneHoldsResponse = z.object({
322
+ active: z.number().int().nonnegative().describe("How many holds stand, whatever the listing was narrowed to."),
323
+ holds: z.array(LegalHoldView).describe("The holds, standing first, newest first within each.")
324
+ }).describe("This Worker's legal holds.");
325
+ /** `POST /control-plane/holds` and `POST /control-plane/holds/:holdId/release`: the hold as it now stands. */
326
+ const ControlPlaneHoldResponse = z.object({ hold: LegalHoldView }).describe("One legal hold, as the call left it.");
327
+ /** What kind of gap the processing record names. */
328
+ const ProcessingGapKind = z.enum(PROCESSING_GAP_KINDS).describe("What is missing: `no-legal-basis` (an activity states none), `no-consent-purpose` (a consent basis names no purpose the catalog holds), `class-not-stored` (an activity claims a class nothing stores), `class-unclaimed` (a capability stores a class no activity claims), `phi-not-covered` (a stored `phi` field no consent purpose covers), or `no-standing-grant` (a purpose covering a class holds no standing grant).");
329
+ /** One gap in the processing record. */
330
+ const ProcessingGap = z.object({
331
+ kind: ProcessingGapKind,
332
+ subject: z.string().describe("What the gap is about: an activity id, a capability name, a consent purpose id, or a stored field as `<capability>/<table>.<path>`. A stored field is named only to a connection that also holds `privacy:read`; without it, the gap names the capability."),
333
+ detail: z.string().describe("What is missing, in one sentence.")
334
+ }).describe("Something the record needs and the Worker does not declare. Named, never filled in.");
335
+ /** Where a recipient in the record came from. */
336
+ const ProcessingRecipientSource = z.enum(RECIPIENT_SOURCES).describe("Where the recipient came from: `platform`, Cloudflare, which runs every Worker; `binding`, a binding this Worker has, such as Workers AI; `declared`, an activity's own declaration, built from the resolved config.");
337
+ /** One recipient of personal data. */
338
+ const ProcessingRecipientView = z.object({
339
+ name: z.string().describe("Who receives the data."),
340
+ receives: z.string().describe("What they receive."),
341
+ classes: z.array(z.string()).describe("The data classes in what they receive."),
342
+ source: ProcessingRecipientSource
343
+ }).describe("One recipient: who, what it receives, the classes in it, and where the record learned of it.");
344
+ /** A consent-based activity's purpose, with where its subjects stand. */
345
+ const ProcessingConsentView = z.object({
346
+ purpose: z.string().describe("The consent purpose id the activity rests on."),
347
+ noticeVersion: z.number().int().nullable().describe("The purpose's current notice version. Null when no composed catalog declares the purpose."),
348
+ explicit: z.boolean().nullable().describe("Whether the purpose needs explicit consent. Null when undeclared."),
349
+ grants: z.number().int().nullable().describe("Subjects whose latest choice is a grant. Null when the consent record could not be read."),
350
+ withdrawals: z.number().int().nullable().describe("Subjects whose latest choice is a withdrawal. Null when the consent record could not be read."),
351
+ standing: z.number().int().nullable().describe("Subjects whose grant stands now: current notice, at the minimum method, unexpired. Null when the consent record could not be read.")
352
+ }).describe("The consent purpose a consent-based activity rests on, and its grant counts.");
353
+ /** How long the data an activity uses is kept. */
354
+ const ProcessingRetentionView = z.object({
355
+ classAges: z.array(z.object({
356
+ class: z.string().describe("The privacy class."),
357
+ days: z.number().int().describe("The longest an account holding it may sit inactive, in days.")
358
+ }).describe("One class age.")).describe("The retention block's class ages for the classes this activity uses, strictest first."),
359
+ purgeWindows: z.array(z.object({
360
+ subject: z.enum(["user", "organization"]).describe("Whose deletion the window governs."),
361
+ days: z.number().int().describe("How many days a deletion stays restorable before its purge."),
362
+ source: z.enum([
363
+ "policy",
364
+ "capability",
365
+ "floor"
366
+ ]).describe("Where the value came from.")
367
+ }).describe("One soft-delete window.")).describe("Every soft-delete window the Worker runs, as it takes effect.")
368
+ }).describe("The effective retention behind an activity: its classes' ages and the purge windows.");
369
+ /** One activity in the record. */
370
+ const ProcessingEntry = z.object({
371
+ id: z.string().describe("The activity id, `<domain>.<name>`."),
372
+ purpose: z.string().describe("Why the data is processed."),
373
+ declaredBy: z.string().describe("The capability that declared it, or `config` for the adopter's own."),
374
+ classes: z.array(z.string()).describe("The data classes it uses."),
375
+ legalBasis: LegalBasis.nullable().describe("Its legal basis, or null: a gap the record names."),
376
+ basisSource: z.enum(BASIS_SOURCES).nullable().describe("Where the basis came from: the declaring `capability`, or the `config` block. Null with no basis."),
377
+ consent: ProcessingConsentView.nullable().describe("For a consent basis, its purpose and grant counts. Else null."),
378
+ recipients: z.array(ProcessingRecipientView).describe("Who receives its data: Cloudflare always, then any binding or declared recipient."),
379
+ retention: ProcessingRetentionView.nullable().describe("How long its data is kept, from the Worker's resolved retention. Null when the Worker recorded none."),
380
+ measures: z.array(EvidenceControlId).describe("The evidence pack's controls that protect this activity's data, by id. `measures` states each."),
381
+ gaps: z.array(ProcessingGap).describe("What this activity is missing. Empty when nothing is.")
382
+ }).describe("One processing activity, as GDPR Article 30 lists it.");
383
+ /** One security measure, as the evidence pack names it. */
384
+ const ProcessingMeasure = z.object({
385
+ control: EvidenceControlId,
386
+ title: z.string().describe("What the control is."),
387
+ soc2: z.array(z.string()).describe("Its SOC 2 Trust Services Criteria references."),
388
+ iso27001: z.array(z.string()).describe("Its ISO/IEC 27001:2022 Annex A references."),
389
+ state: EvidenceState.nullable().describe("What the evidence pack says of it now. Null when the connection does not hold `evidence:read`.")
390
+ }).describe("A technical or organizational security measure, cited from the evidence pack.");
391
+ /**
392
+ * `GET /control-plane/processing` — the record of processing activities, behind `processing:read`. It describes
393
+ * the processing and changes none of it.
394
+ */
395
+ const ControlPlaneProcessingResponse = z.object({
396
+ environment: z.string().describe("The environment this Worker serves."),
397
+ generatedAt: z.iso.datetime().describe("When the record was derived, ISO-8601."),
398
+ version: z.string().nullable().describe("The Cloudflare version id of the build answering, or null."),
399
+ activities: z.array(ProcessingEntry).describe("Every activity: each capability's, in composition order, then the adopter's."),
400
+ recipients: z.array(ProcessingRecipientView).describe("Every recipient across the record, once each: Cloudflare first, then by binding, then declared."),
401
+ measures: z.array(ProcessingMeasure).describe("Every security measure the activities cite."),
402
+ gaps: z.array(ProcessingGap).describe("Gaps about no single activity: unclaimed classes, uncovered `phi`, purposes with no standing grant."),
403
+ notDerivable: z.array(z.string()).describe("What the record could not read, and why. Empty when it read everything it needs.")
404
+ }).describe("The GDPR Article 30 record this Worker derives: each activity's purpose, data classes, legal basis, recipients, retention and measures, and every gap named.");
405
+ /** One trust's subject constraint, as a connection listing shows it: the population that may use the trust. */
406
+ const ConnectionTrustView = z.object({
407
+ trustId: z.string().describe("The trust's id."),
408
+ issuer: z.string().describe("The `iss` the trust accepts."),
409
+ claims: z.record(z.string().describe("A claim name."), z.string().describe("The value that claim must have.")).describe("The subject constraint: every named claim must equal its value. This is who may use the trust."),
410
+ revokedAt: z.iso.datetime().nullable().describe("When the trust was revoked, ISO-8601, or null while it stands.")
411
+ }).describe("One OIDC trust's subject constraint, on the face of the listing.");
412
+ /** One connection, as `GET {basePath}/connections` lists it. No key material and no secret. */
413
+ const ConnectionView = z.object({
414
+ id: z.string().describe("The connection's id. Name it to revoke the connection."),
415
+ environment: z.string().describe("The environment the connection is bound to."),
416
+ actorKind: ControlPlaneActorKind.nullable().describe("What kind of client the connection is for: `agent`, `dashboard` or `script`. Null for one registered before it was recorded."),
417
+ purpose: ConnectionPurpose.nullable().describe("What the client is for, in the registering operator's words. Untrusted text: render it escaped. Null for one registered before it was recorded."),
418
+ authorizedBy: ConnectionPrincipal.nullable().describe("The email of the person who sanctioned the connection. Null for one registered before principals were recorded."),
419
+ credentialKind: ConnectionCredentialKind,
420
+ scopes: z.array(z.string()).describe("The scopes the connection was granted."),
421
+ trusts: z.array(ConnectionTrustView).describe("Every OIDC trust on the connection, revoked ones included."),
422
+ live: z.boolean().describe("Whether any key or trust on the connection can verify a call now."),
423
+ registeredAt: z.iso.datetime().describe("When the connection was registered, ISO-8601."),
424
+ revokedAt: z.iso.datetime().nullable().describe("When the connection was revoked, ISO-8601: the latest revocation once every credential was revoked. Null while anything is live, and for one whose keys merely expired.")
425
+ }).describe("One connection: who authorized it, for what, with which credentials and grant, and whether it is live.");
426
+ /** `GET /control-plane/connections`. */
427
+ const ControlPlaneConnectionsResponse = z.object({
428
+ connections: z.array(ConnectionView).describe("Every connection with a recorded principal, matching the filter when one was given, oldest first."),
429
+ unattributed: z.array(ConnectionView).describe("Every connection registered before principals were recorded, oldest first. Listed apart for a person to read; never matched by a principal.")
430
+ }).describe("Every connection bound to this Worker's environment, attributed ones and unattributed ones apart.");
431
+ /** `POST /control-plane/connections/:connectionId/revoke`. */
432
+ const RevokeConnectionResponse = z.object({
433
+ connection: ConnectionView.describe("The connection as it now stands."),
434
+ revokedKeyIds: z.array(z.string()).describe("The keys this call revoked. Empty when every key was already revoked."),
435
+ revokedTrustIds: z.array(z.string()).describe("The trusts this call revoked. Empty when every trust was already revoked.")
436
+ }).describe("A revoked connection, and the credentials the revocation ended.");
161
437
  //#endregion
162
- export { ControlPlaneKeysResponse, ControlPlaneMigrationsResponse, ControlPlanePingResponse, ControlPlanePrivacyResponse, ExpireKeyResponse, MigrationDatabaseView, MigrationGroupPositionView, MigrationGroupView, MigrationView, PrivacyFieldView, PrivacySchemaView, PublicKeyView, RegisterKeyResponse };
438
+ export { ConnectionTrustView, ConnectionView, ControlPlaneConnectionsResponse, ControlPlaneErasurePeriodResponse, ControlPlaneErasureSubjectResponse, ControlPlaneEvidenceResponse, ControlPlaneHoldResponse, ControlPlaneHoldsResponse, ControlPlaneKeysResponse, ControlPlaneMigrationsResponse, ControlPlanePingResponse, ControlPlanePrivacyResponse, ControlPlaneProcessingResponse, ErasureAttestation, ErasureCitation, ErasurePeriodEntry, ErasureState, ErasureStepView, ErasureSubjectView, EvidenceEntry, EvidenceFact, EvidenceValue, ExpireKeyResponse, LegalHoldView, MigrationDatabaseView, MigrationGroupPositionView, MigrationGroupView, MigrationView, PrivacyFieldView, PrivacySchemaView, ProcessingConsentView, ProcessingEntry, ProcessingGap, ProcessingGapKind, ProcessingMeasure, ProcessingRecipientSource, ProcessingRecipientView, ProcessingRetentionView, PublicKeyView, RegisterKeyResponse, RevokeConnectionResponse, TrustView };
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  import type { Hono } from "hono";
4
4
  import type { PithyHonoEnv } from "../../capability/capability";
5
- import { type AdminRoute } from "../discovery/adminRoute";
5
+ import { type AdminRouteDeclaration } from "../discovery/adminRoute";
6
6
  import { type ControlPlaneHandlerDeps } from "./handlers";
7
7
  /**
8
8
  * The seam's own routes, distinct from the admin routes capabilities contribute.
@@ -12,8 +12,18 @@ import { type ControlPlaneHandlerDeps } from "./handlers";
12
12
  * GET /control-plane/keys → the registration state (keys:rotate)
13
13
  * POST /control-plane/keys → register a key (keys:rotate)
14
14
  * POST /control-plane/keys/:keyId/expire → retire a superseded key (keys:rotate)
15
+ * GET /control-plane/connections → every connection, by principal (connections:read)
16
+ * POST /control-plane/connections/:id/revoke → revoke another connection (connections:revoke)
15
17
  * GET /control-plane/migrations → where each database stands (migrations:read)
16
18
  * GET /control-plane/privacy → what each schema holds (privacy:read)
19
+ * GET /control-plane/evidence → SOC 2 and ISO 27001 evidence (evidence:read)
20
+ * GET /control-plane/processing → the Article 30 record (processing:read)
21
+ * GET /control-plane/erasure → every purge in a period (erasure:read)
22
+ * GET /control-plane/erasure/:type/:id → one subject's purge, attested (erasure:read)
23
+ * GET /control-plane/holds → every legal hold (retention:read)
24
+ * POST /control-plane/holds → place a legal hold (retention:hold)
25
+ * POST /control-plane/holds/:id/release → release one, with a reason (retention:hold)
26
+ * POST /control-plane/presence/tickets → a ticket into a presence room (the room kind's scope)
17
27
  *
18
28
  * Every one is `control-plane` and default-denied — with no connection registered they all answer 403,
19
29
  * and that is the shipped state of a Worker nobody has connected.
@@ -39,6 +49,6 @@ import { type ControlPlaneHandlerDeps } from "./handlers";
39
49
  * `ping` carries a null scope. It requires a verified caller and no authorization, and saying so is
40
50
  * how a client knows it can always prove a key — including on a connection granted nothing at all.
41
51
  */
42
- export declare function controlPlaneRouteDescriptors(basePath: string): AdminRoute[];
52
+ export declare function controlPlaneRouteDescriptors(basePath: string): AdminRouteDeclaration[];
43
53
  export declare function registerControlPlaneRoutes(app: Hono<PithyHonoEnv>, basePath: string, deps: ControlPlaneHandlerDeps): void;
44
54
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/controlPlane/http/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAShF,OAAO,EACL,KAAK,uBAAuB,EAQ7B,MAAM,YAAY,CAAC;AAWpB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA+C3E;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CA2FN"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/controlPlane/http/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,EAAE,KAAK,qBAAqB,EAAwB,MAAM,yBAAyB,CAAC;AAiB3F,OAAO,EACL,KAAK,uBAAuB,EAW7B,MAAM,YAAY,CAAC;AAmCpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAsJtF;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CAgPN"}