@toa.io/extensions.exposition 1.0.0-alpha.291 → 1.0.0-alpha.293

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 (526) hide show
  1. package/components/identity.basic/package.json +8 -0
  2. package/components/identity.federation/package.json +8 -0
  3. package/components/identity.passkeys/package.json +8 -0
  4. package/components/identity.tokens/package.json +10 -0
  5. package/package.json +25 -13
  6. package/transpiled/Discovery/Explorer.js +1 -1
  7. package/transpiled/Discovery/Explorer.js.map +1 -1
  8. package/transpiled/Discovery/Site.js +1 -1
  9. package/transpiled/Discovery/Site.js.map +1 -1
  10. package/transpiled/Discovery/trunk.js +1 -1
  11. package/transpiled/Discovery/trunk.js.map +1 -1
  12. package/transpiled/Endpoint.js +3 -0
  13. package/transpiled/Endpoint.js.map +1 -1
  14. package/transpiled/Factory.js +1 -1
  15. package/transpiled/Factory.js.map +1 -1
  16. package/transpiled/Gateway.js +1 -1
  17. package/transpiled/Gateway.js.map +1 -1
  18. package/transpiled/HTTP/Server.d.ts +1 -1
  19. package/transpiled/HTTP/Server.js +1 -1
  20. package/transpiled/HTTP/Server.js.map +1 -1
  21. package/transpiled/Introspection.d.ts +6 -0
  22. package/transpiled/Introspection.js +1 -0
  23. package/transpiled/Introspection.js.map +1 -1
  24. package/transpiled/MCP/Server.d.ts +1 -1
  25. package/transpiled/MCP/Server.js +1 -1
  26. package/transpiled/MCP/Server.js.map +1 -1
  27. package/transpiled/MCP/discover.d.ts +1 -1
  28. package/transpiled/MCP/schema.js +2 -2
  29. package/transpiled/Query.d.ts +2 -12
  30. package/transpiled/Query.js +3 -13
  31. package/transpiled/Query.js.map +1 -1
  32. package/transpiled/RPC/Dispatcher.d.ts +1 -1
  33. package/transpiled/RPC/Dispatcher.js +2 -2
  34. package/transpiled/RPC/Dispatcher.js.map +1 -1
  35. package/transpiled/RTD/Endpoint.d.ts +2 -3
  36. package/transpiled/RTD/Tree.js +1 -1
  37. package/transpiled/RTD/Tree.js.map +1 -1
  38. package/transpiled/RTD/factory.js +1 -1
  39. package/transpiled/RTD/factory.js.map +1 -1
  40. package/transpiled/RTD/syntax/index.d.ts +1 -2
  41. package/transpiled/RTD/syntax/index.js +1 -2
  42. package/transpiled/RTD/syntax/index.js.map +1 -1
  43. package/transpiled/Tenant.js +1 -1
  44. package/transpiled/Tenant.js.map +1 -1
  45. package/transpiled/directives/auth/Authorization.js +1 -1
  46. package/transpiled/directives/auth/Authorization.js.map +1 -1
  47. package/transpiled/directives/io/IO.js +1 -1
  48. package/transpiled/directives/io/IO.js.map +1 -1
  49. package/transpiled/directives/oauth/documents.d.ts +1 -1
  50. package/transpiled/index.d.ts +0 -2
  51. package/transpiled/index.js +0 -2
  52. package/transpiled/index.js.map +1 -1
  53. package/transpiled/service.js +1 -1
  54. package/transpiled/service.js.map +1 -1
  55. package/ui/dist/_app/immutable/assets/0.Cu0AnR_8.css +2 -0
  56. package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
  57. package/ui/dist/_app/immutable/assets/ui.C8aD6zzF.css +1 -0
  58. package/ui/dist/_app/immutable/chunks/B8GvXrmq.js +1 -0
  59. package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
  60. package/ui/dist/_app/immutable/chunks/D6q28_Ok.js +86 -0
  61. package/ui/dist/_app/immutable/chunks/{D9tE1yyO.js → DVlaUfVU.js} +1 -1
  62. package/ui/dist/_app/immutable/chunks/DpB73ZB6.js +6 -0
  63. package/ui/dist/_app/immutable/entry/app.CTava8yn.js +2 -0
  64. package/ui/dist/_app/immutable/entry/start.yWN0gSLA.js +1 -0
  65. package/ui/dist/_app/immutable/nodes/0.HKRDBYrC.js +1 -0
  66. package/ui/dist/_app/immutable/nodes/1.CLa0ydOi.js +1 -0
  67. package/ui/dist/_app/immutable/nodes/2.C9Kaym8C.js +8 -0
  68. package/ui/dist/_app/immutable/nodes/3.C1X4_rXZ.js +1 -0
  69. package/ui/dist/_app/immutable/nodes/4.DdzDIi9E.js +1 -0
  70. package/ui/dist/_app/immutable/nodes/5.DpbmCMdw.js +1 -0
  71. package/ui/dist/_app/version.json +1 -1
  72. package/ui/dist/index.html +12 -12
  73. package/CHANGELOG.md +0 -35
  74. package/components/identity.bans/tsconfig.tsbuildinfo +0 -1
  75. package/components/identity.basic/source/lib/credentials.test.ts +0 -18
  76. package/components/identity.basic/tsconfig.tsbuildinfo +0 -1
  77. package/components/identity.clients/source/lib/canonical.test.ts +0 -43
  78. package/components/identity.clients/source/lib/cimd.test.ts +0 -122
  79. package/components/identity.clients/source/lib/redirect.test.ts +0 -47
  80. package/components/identity.clients/tsconfig.tsbuildinfo +0 -1
  81. package/components/identity.credentials/source/list.test.ts +0 -70
  82. package/components/identity.credentials/tsconfig.tsbuildinfo +0 -1
  83. package/components/identity.federation/source/lib/discovery.test.ts +0 -60
  84. package/components/identity.federation/source/list.test.ts +0 -41
  85. package/components/identity.federation/tsconfig.tsbuildinfo +0 -1
  86. package/components/identity.grants/tsconfig.tsbuildinfo +0 -1
  87. package/components/identity.keys/tsconfig.tsbuildinfo +0 -1
  88. package/components/identity.otp/tsconfig.tsbuildinfo +0 -1
  89. package/components/identity.passkeys/source/errors.test.ts +0 -34
  90. package/components/identity.passkeys/source/webauthn.test.ts +0 -26
  91. package/components/identity.passkeys/tsconfig.tsbuildinfo +0 -1
  92. package/components/identity.roles/tsconfig.tsbuildinfo +0 -1
  93. package/components/identity.tokens/source/authenticate.test.ts +0 -112
  94. package/components/identity.tokens/source/decrypt.test.ts +0 -216
  95. package/components/identity.tokens/source/encrypt.test.ts +0 -150
  96. package/components/identity.tokens/source/issue.test.ts +0 -73
  97. package/components/identity.tokens/source/lib/form.test.ts +0 -25
  98. package/components/identity.tokens/source/lib/paseto.test.ts +0 -62
  99. package/components/identity.tokens/tsconfig.tsbuildinfo +0 -1
  100. package/context.toa.yaml +0 -31
  101. package/cucumber.mjs +0 -7
  102. package/documentation/.assets/ia3-dark.jpg +0 -0
  103. package/documentation/.assets/ia3-light.jpg +0 -0
  104. package/documentation/.assets/overview-dark.jpg +0 -0
  105. package/documentation/.assets/overview-light.jpg +0 -0
  106. package/documentation/.assets/role-scopes-dark.jpg +0 -0
  107. package/documentation/.assets/role-scopes-light.jpg +0 -0
  108. package/documentation/.assets/rtd-dark.jpg +0 -0
  109. package/documentation/.assets/rtd-light.jpg +0 -0
  110. package/documentation/access.md +0 -350
  111. package/documentation/authorities.md +0 -51
  112. package/documentation/cache.md +0 -72
  113. package/documentation/components.md +0 -472
  114. package/documentation/consent.md +0 -101
  115. package/documentation/credentials.md +0 -88
  116. package/documentation/dev.md +0 -30
  117. package/documentation/discovery.md +0 -81
  118. package/documentation/flow.md +0 -44
  119. package/documentation/help.md +0 -122
  120. package/documentation/identity.md +0 -304
  121. package/documentation/introspection.md +0 -123
  122. package/documentation/io.md +0 -167
  123. package/documentation/ip.md +0 -24
  124. package/documentation/map.md +0 -123
  125. package/documentation/mcp.md +0 -183
  126. package/documentation/notes/desync.jpg +0 -0
  127. package/documentation/notes/peers.md +0 -59
  128. package/documentation/notes/sse.md +0 -71
  129. package/documentation/notes/throttling.md +0 -122
  130. package/documentation/oauth.md +0 -180
  131. package/documentation/octets.md +0 -334
  132. package/documentation/passkeys.md +0 -11
  133. package/documentation/protocol.md +0 -120
  134. package/documentation/query.md +0 -324
  135. package/documentation/require.md +0 -15
  136. package/documentation/rpc.md +0 -154
  137. package/documentation/tracing.md +0 -70
  138. package/documentation/tree.md +0 -199
  139. package/features/access.feature +0 -596
  140. package/features/annotation.feature +0 -32
  141. package/features/auth.assert.feature +0 -55
  142. package/features/auth.bearer.feature +0 -120
  143. package/features/auth.claims.feature +0 -171
  144. package/features/auth.incept.feature +0 -166
  145. package/features/auth.input.feature +0 -59
  146. package/features/authorities.basic.feature +0 -141
  147. package/features/authorities.feature +0 -71
  148. package/features/authorities.federation.feature +0 -100
  149. package/features/authorities.tokens.feature +0 -117
  150. package/features/body.feature +0 -76
  151. package/features/cache.feature +0 -368
  152. package/features/configuration.feature +0 -206
  153. package/features/cors.feature +0 -127
  154. package/features/credentials.feature +0 -106
  155. package/features/debug.feature +0 -34
  156. package/features/dev.feature +0 -90
  157. package/features/directives.feature +0 -61
  158. package/features/discovery.feature +0 -213
  159. package/features/discovery.ui.feature +0 -213
  160. package/features/dynamic.feature +0 -192
  161. package/features/errors.feature +0 -258
  162. package/features/etag.feature +0 -239
  163. package/features/flow.feature +0 -148
  164. package/features/help.feature +0 -512
  165. package/features/identity.bans.feature +0 -200
  166. package/features/identity.basic.feature +0 -666
  167. package/features/identity.feature +0 -240
  168. package/features/identity.federation.feature +0 -396
  169. package/features/identity.otp.feature +0 -142
  170. package/features/identity.roles.feature +0 -568
  171. package/features/identity.tokens.custom.feature +0 -430
  172. package/features/identity.tokens.feature +0 -131
  173. package/features/interruptions.feature +0 -20
  174. package/features/introspection.feature +0 -565
  175. package/features/introspection.map.feature +0 -108
  176. package/features/io.feature +0 -204
  177. package/features/io.throttle.feature +0 -166
  178. package/features/map.feature +0 -360
  179. package/features/mcp.feature +0 -753
  180. package/features/methods.feature +0 -48
  181. package/features/oauth.clients.feature +0 -195
  182. package/features/oauth.discovery.feature +0 -164
  183. package/features/oauth.grants.feature +0 -301
  184. package/features/octets.cloudinary.feature +0 -233
  185. package/features/octets.download.feature +0 -194
  186. package/features/octets.entries.feature +0 -83
  187. package/features/octets.feature +0 -306
  188. package/features/octets.head.feature +0 -40
  189. package/features/octets.location.feature +0 -83
  190. package/features/octets.meta.feature +0 -117
  191. package/features/octets.workflows.feature +0 -565
  192. package/features/passkeys.feature +0 -66
  193. package/features/probes.feature +0 -18
  194. package/features/query.feature +0 -389
  195. package/features/realtime.feature +0 -34
  196. package/features/require.feature +0 -66
  197. package/features/response.feature +0 -103
  198. package/features/routes.feature +0 -224
  199. package/features/rpc.feature +0 -429
  200. package/features/server.feature +0 -21
  201. package/features/site/_app/immutable/asset.js +0 -1
  202. package/features/site/favicon.ico +0 -0
  203. package/features/site/index.html +0 -10
  204. package/features/steps/.env.example +0 -5
  205. package/features/steps/Captures.ts +0 -20
  206. package/features/steps/Cloudinary.ts +0 -12
  207. package/features/steps/Common.ts +0 -38
  208. package/features/steps/Components.ts +0 -115
  209. package/features/steps/Database.ts +0 -106
  210. package/features/steps/Gateway.ts +0 -240
  211. package/features/steps/HTTP.ts +0 -96
  212. package/features/steps/IDP.ts +0 -361
  213. package/features/steps/Identity.ts +0 -54
  214. package/features/steps/OTP.ts +0 -42
  215. package/features/steps/Parameters.ts +0 -162
  216. package/features/steps/Probe.ts +0 -38
  217. package/features/steps/Realtime.ts +0 -175
  218. package/features/steps/Workspace.ts +0 -48
  219. package/features/steps/components/audit/manifest.toa.yaml +0 -20
  220. package/features/steps/components/audit/operations/record.js +0 -5
  221. package/features/steps/components/echo/manifest.toa.yaml +0 -59
  222. package/features/steps/components/echo/operations/affect.js +0 -3
  223. package/features/steps/components/echo/operations/compute.js +0 -3
  224. package/features/steps/components/echo/operations/echo.js +0 -3
  225. package/features/steps/components/echo/operations/error.js +0 -7
  226. package/features/steps/components/echo/operations/identity.js +0 -3
  227. package/features/steps/components/echo/operations/parameters.js +0 -3
  228. package/features/steps/components/echo/operations/ping.js +0 -3
  229. package/features/steps/components/echo/operations/unwrap.js +0 -3
  230. package/features/steps/components/echo.beacon/manifest.toa.yaml +0 -2
  231. package/features/steps/components/echo.beacon/operations/hello.js +0 -3
  232. package/features/steps/components/greeter/manifest.toa.yaml +0 -5
  233. package/features/steps/components/greeter/operations/greet.js +0 -3
  234. package/features/steps/components/notify/manifest.toa.yaml +0 -20
  235. package/features/steps/components/notify/operations/send.js +0 -5
  236. package/features/steps/components/octets.tester/manifest.toa.yaml +0 -73
  237. package/features/steps/components/octets.tester/operations/authority.js +0 -3
  238. package/features/steps/components/octets.tester/operations/bar.js +0 -9
  239. package/features/steps/components/octets.tester/operations/baz.js +0 -9
  240. package/features/steps/components/octets.tester/operations/concat.js +0 -5
  241. package/features/steps/components/octets.tester/operations/echo.js +0 -5
  242. package/features/steps/components/octets.tester/operations/err.js +0 -14
  243. package/features/steps/components/octets.tester/operations/foo.js +0 -5
  244. package/features/steps/components/octets.tester/operations/id.js +0 -5
  245. package/features/steps/components/octets.tester/operations/identity.js +0 -5
  246. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  247. package/features/steps/components/octets.tester/operations/redirect.js +0 -17
  248. package/features/steps/components/octets.tester/operations/yex.js +0 -14
  249. package/features/steps/components/octets.tester/operations/yield.js +0 -11
  250. package/features/steps/components/orders/manifest.toa.yaml +0 -30
  251. package/features/steps/components/orders/operations/create.js +0 -7
  252. package/features/steps/components/pots/manifest.toa.yaml +0 -91
  253. package/features/steps/components/pots/migrations/0002-indexes.yaml +0 -4
  254. package/features/steps/components/pricing/manifest.toa.yaml +0 -13
  255. package/features/steps/components/pricing/operations/quote.js +0 -3
  256. package/features/steps/components/sequences/manifest.toa.yaml +0 -11
  257. package/features/steps/components/sequences/operations/numbers.js +0 -5
  258. package/features/steps/components/sequences/operations/tokens.js +0 -14
  259. package/features/steps/components/users/manifest.toa.yaml +0 -30
  260. package/features/steps/components/users/operations/create.js +0 -11
  261. package/features/steps/components/users.properties/manifest.toa.yaml +0 -22
  262. package/features/steps/map.ts +0 -30
  263. package/features/steps/tsconfig.json +0 -9
  264. package/features/streams.feature +0 -35
  265. package/features/timestamps.feature +0 -41
  266. package/features/timing.feature +0 -49
  267. package/features/tracing.feature +0 -123
  268. package/schemas/annotation.cos.yaml +0 -125
  269. package/schemas/call.cos.yaml +0 -18
  270. package/schemas/directive.cos.yaml +0 -7
  271. package/schemas/method.cos.yaml +0 -23
  272. package/schemas/node.cos.yaml +0 -22
  273. package/schemas/query.cos.yaml +0 -31
  274. package/schemas/querystring.cos.yaml +0 -19
  275. package/schemas/range.cos.yaml +0 -10
  276. package/schemas/route.cos.yaml +0 -6
  277. package/source/Annotation.ts +0 -89
  278. package/source/Branch.test.ts +0 -40
  279. package/source/Branch.ts +0 -44
  280. package/source/Composition.ts +0 -51
  281. package/source/Context.ts +0 -11
  282. package/source/Directive.test.ts +0 -199
  283. package/source/Directive.ts +0 -248
  284. package/source/Discovery/Explorer.ts +0 -34
  285. package/source/Discovery/Site.test.ts +0 -147
  286. package/source/Discovery/Site.ts +0 -202
  287. package/source/Discovery/index.ts +0 -3
  288. package/source/Discovery/tree.test.ts +0 -175
  289. package/source/Discovery/tree.ts +0 -77
  290. package/source/Discovery/trunk.ts +0 -33
  291. package/source/Endpoint.test.ts +0 -67
  292. package/source/Endpoint.ts +0 -157
  293. package/source/Factory.ts +0 -42
  294. package/source/Gateway.ts +0 -390
  295. package/source/HTTP/Context.ts +0 -143
  296. package/source/HTTP/Probe.ts +0 -99
  297. package/source/HTTP/Server.ts +0 -430
  298. package/source/HTTP/Timing.ts +0 -14
  299. package/source/HTTP/address.test.ts +0 -28
  300. package/source/HTTP/address.ts +0 -16
  301. package/source/HTTP/exceptions.ts +0 -99
  302. package/source/HTTP/formats/form.ts +0 -21
  303. package/source/HTTP/formats/index.ts +0 -36
  304. package/source/HTTP/formats/json.ts +0 -14
  305. package/source/HTTP/formats/msgpack.ts +0 -14
  306. package/source/HTTP/formats/text.ts +0 -10
  307. package/source/HTTP/formats/yaml.test.ts +0 -22
  308. package/source/HTTP/formats/yaml.ts +0 -40
  309. package/source/HTTP/index.ts +0 -6
  310. package/source/HTTP/messages.test.ts +0 -196
  311. package/source/HTTP/messages.ts +0 -186
  312. package/source/HTTP/types.ts +0 -39
  313. package/source/Interception.ts +0 -37
  314. package/source/Introspection.ts +0 -179
  315. package/source/MCP/Server.ts +0 -335
  316. package/source/MCP/discover.ts +0 -51
  317. package/source/MCP/errors.ts +0 -80
  318. package/source/MCP/index.ts +0 -1
  319. package/source/MCP/schema.test.ts +0 -91
  320. package/source/MCP/schema.ts +0 -94
  321. package/source/MCP/tools.ts +0 -144
  322. package/source/MCP/types.ts +0 -84
  323. package/source/Mapping.ts +0 -101
  324. package/source/Query.test.ts +0 -54
  325. package/source/Query.ts +0 -277
  326. package/source/RPC/Context.ts +0 -75
  327. package/source/RPC/Dispatcher.ts +0 -150
  328. package/source/RPC/errors.test.ts +0 -77
  329. package/source/RPC/errors.ts +0 -82
  330. package/source/RPC/index.ts +0 -1
  331. package/source/RPC/names.test.ts +0 -141
  332. package/source/RPC/names.ts +0 -176
  333. package/source/RPC/types.ts +0 -34
  334. package/source/RTD/Context.ts +0 -16
  335. package/source/RTD/Directives.ts +0 -126
  336. package/source/RTD/Endpoint.ts +0 -27
  337. package/source/RTD/Match.ts +0 -11
  338. package/source/RTD/Method.ts +0 -39
  339. package/source/RTD/Node.ts +0 -169
  340. package/source/RTD/Route.ts +0 -93
  341. package/source/RTD/Tree.ts +0 -137
  342. package/source/RTD/expiration.test.ts +0 -81
  343. package/source/RTD/factory.ts +0 -105
  344. package/source/RTD/index.ts +0 -8
  345. package/source/RTD/segment.test.ts +0 -35
  346. package/source/RTD/segment.ts +0 -51
  347. package/source/RTD/syntax/index.ts +0 -2
  348. package/source/RTD/syntax/parse.test.ts +0 -196
  349. package/source/RTD/syntax/parse.ts +0 -171
  350. package/source/RTD/syntax/types.ts +0 -69
  351. package/source/RTD/walk.test.ts +0 -147
  352. package/source/Remotes.test.ts +0 -79
  353. package/source/Remotes.ts +0 -39
  354. package/source/Tenant.ts +0 -73
  355. package/source/const.ts +0 -45
  356. package/source/deployment.ts +0 -96
  357. package/source/directives/auth/Anonymous.test.ts +0 -70
  358. package/source/directives/auth/Anonymous.ts +0 -36
  359. package/source/directives/auth/Anyone.ts +0 -23
  360. package/source/directives/auth/Assert.ts +0 -43
  361. package/source/directives/auth/Authorization.test.ts +0 -24
  362. package/source/directives/auth/Authorization.ts +0 -388
  363. package/source/directives/auth/Delegate.test.ts +0 -36
  364. package/source/directives/auth/Delegate.ts +0 -54
  365. package/source/directives/auth/Echo.ts +0 -24
  366. package/source/directives/auth/Federation.ts +0 -104
  367. package/source/directives/auth/Id.ts +0 -37
  368. package/source/directives/auth/Incept.ts +0 -117
  369. package/source/directives/auth/Input.ts +0 -92
  370. package/source/directives/auth/Role.test.ts +0 -147
  371. package/source/directives/auth/Role.ts +0 -99
  372. package/source/directives/auth/Rule.ts +0 -59
  373. package/source/directives/auth/Scheme.ts +0 -31
  374. package/source/directives/auth/create.ts +0 -11
  375. package/source/directives/auth/index.ts +0 -3
  376. package/source/directives/auth/schemes.test.ts +0 -18
  377. package/source/directives/auth/schemes.ts +0 -39
  378. package/source/directives/auth/split.ts +0 -14
  379. package/source/directives/auth/types.ts +0 -75
  380. package/source/directives/cache/Cache.ts +0 -92
  381. package/source/directives/cache/Control.ts +0 -81
  382. package/source/directives/cache/Exact.ts +0 -7
  383. package/source/directives/cache/etag.ts +0 -38
  384. package/source/directives/cache/index.ts +0 -3
  385. package/source/directives/cache/types.ts +0 -9
  386. package/source/directives/cors/CORS.test.ts +0 -75
  387. package/source/directives/cors/CORS.ts +0 -88
  388. package/source/directives/cors/index.ts +0 -3
  389. package/source/directives/dev/Development.ts +0 -41
  390. package/source/directives/dev/Faulty.ts +0 -31
  391. package/source/directives/dev/Sleep.ts +0 -53
  392. package/source/directives/dev/Stub.ts +0 -14
  393. package/source/directives/dev/Throw.ts +0 -14
  394. package/source/directives/dev/index.ts +0 -3
  395. package/source/directives/dev/types.ts +0 -5
  396. package/source/directives/flow/Compose.ts +0 -98
  397. package/source/directives/flow/Fetch.ts +0 -86
  398. package/source/directives/flow/Flow.ts +0 -43
  399. package/source/directives/flow/index.ts +0 -3
  400. package/source/directives/flow/types.ts +0 -7
  401. package/source/directives/help/Family.ts +0 -122
  402. package/source/directives/help/Help.test.ts +0 -227
  403. package/source/directives/help/Help.ts +0 -47
  404. package/source/directives/help/Parameters.ts +0 -47
  405. package/source/directives/help/described.ts +0 -57
  406. package/source/directives/help/index.ts +0 -45
  407. package/source/directives/index.ts +0 -33
  408. package/source/directives/io/Directive.ts +0 -17
  409. package/source/directives/io/IO.ts +0 -118
  410. package/source/directives/io/Input.ts +0 -55
  411. package/source/directives/io/Message.ts +0 -1
  412. package/source/directives/io/Output.ts +0 -81
  413. package/source/directives/io/Status.test.ts +0 -88
  414. package/source/directives/io/Status.ts +0 -47
  415. package/source/directives/io/Throttle.ts +0 -30
  416. package/source/directives/io/index.ts +0 -3
  417. package/source/directives/io/lib/throttle/Configuration.test.ts +0 -72
  418. package/source/directives/io/lib/throttle/Configuration.ts +0 -68
  419. package/source/directives/io/lib/throttle/Keys.ts +0 -53
  420. package/source/directives/io/lib/throttle/Quotas.test.ts +0 -411
  421. package/source/directives/io/lib/throttle/Quotas.ts +0 -190
  422. package/source/directives/io/lib/throttle/Sync.test.ts +0 -163
  423. package/source/directives/io/lib/throttle/Sync.ts +0 -93
  424. package/source/directives/io/lib/throttle/Warning.test.ts +0 -32
  425. package/source/directives/io/lib/throttle/Warning.ts +0 -29
  426. package/source/directives/io/lib/throttle/components/Component.ts +0 -7
  427. package/source/directives/io/lib/throttle/components/IP.ts +0 -30
  428. package/source/directives/io/lib/throttle/components/Identity.ts +0 -19
  429. package/source/directives/io/lib/throttle/components/Path.ts +0 -8
  430. package/source/directives/io/lib/throttle/components/Route.ts +0 -19
  431. package/source/directives/io/lib/throttle/components/Segment.ts +0 -19
  432. package/source/directives/io/lib/throttle/components/index.ts +0 -19
  433. package/source/directives/io/lib/throttle/conditions/Condition.ts +0 -5
  434. package/source/directives/io/lib/throttle/conditions/Status.ts +0 -17
  435. package/source/directives/io/lib/throttle/conditions/index.ts +0 -11
  436. package/source/directives/io/lib/throttle/index.ts +0 -4
  437. package/source/directives/io/schemas.test.ts +0 -40
  438. package/source/directives/io/schemas.ts +0 -16
  439. package/source/directives/map/Authority.ts +0 -15
  440. package/source/directives/map/Buffer.ts +0 -15
  441. package/source/directives/map/Claims.ts +0 -63
  442. package/source/directives/map/Directive.ts +0 -4
  443. package/source/directives/map/Headers.ts +0 -60
  444. package/source/directives/map/Language.ts +0 -45
  445. package/source/directives/map/Languages.ts +0 -17
  446. package/source/directives/map/Map.ts +0 -85
  447. package/source/directives/map/Mapping.ts +0 -45
  448. package/source/directives/map/Properties.ts +0 -15
  449. package/source/directives/map/Segments.ts +0 -52
  450. package/source/directives/map/index.ts +0 -3
  451. package/source/directives/mcp/MCP.ts +0 -33
  452. package/source/directives/mcp/Tool.test.ts +0 -56
  453. package/source/directives/mcp/Tool.ts +0 -32
  454. package/source/directives/mcp/index.ts +0 -6
  455. package/source/directives/oauth/Discovery.ts +0 -66
  456. package/source/directives/oauth/documents.ts +0 -110
  457. package/source/directives/oauth/index.ts +0 -3
  458. package/source/directives/octets/Context.ts +0 -23
  459. package/source/directives/octets/Delete.ts +0 -96
  460. package/source/directives/octets/Directive.ts +0 -21
  461. package/source/directives/octets/Get.ts +0 -88
  462. package/source/directives/octets/Octets.ts +0 -82
  463. package/source/directives/octets/Put.ts +0 -186
  464. package/source/directives/octets/Workflow.ts +0 -60
  465. package/source/directives/octets/bytes.test.ts +0 -33
  466. package/source/directives/octets/bytes.ts +0 -18
  467. package/source/directives/octets/index.ts +0 -3
  468. package/source/directives/octets/schemas.test.ts +0 -20
  469. package/source/directives/octets/schemas.ts +0 -15
  470. package/source/directives/octets/types.ts +0 -9
  471. package/source/directives/octets/workflows/Execution.ts +0 -130
  472. package/source/directives/octets/workflows/Workflow.ts +0 -51
  473. package/source/directives/octets/workflows/index.ts +0 -1
  474. package/source/directives/require/Directive.ts +0 -5
  475. package/source/directives/require/Headers.ts +0 -19
  476. package/source/directives/require/Require.ts +0 -27
  477. package/source/directives/require/index.ts +0 -3
  478. package/source/discovery.ts +0 -1
  479. package/source/exceptions.ts +0 -47
  480. package/source/index.ts +0 -12
  481. package/source/io.ts +0 -4
  482. package/source/manifest.test.ts +0 -56
  483. package/source/manifest.ts +0 -56
  484. package/source/octets.d.ts +0 -17
  485. package/source/root.ts +0 -59
  486. package/source/schemas.test.ts +0 -31
  487. package/source/schemas.ts +0 -15
  488. package/source/service.ts +0 -94
  489. package/source/shortcuts.ts +0 -14
  490. package/source/userland.ts +0 -47
  491. package/transpiled/Annotation.d.ts +0 -70
  492. package/transpiled/Annotation.js +0 -2
  493. package/transpiled/Annotation.js.map +0 -1
  494. package/transpiled/RTD/syntax/parse.d.ts +0 -4
  495. package/transpiled/RTD/syntax/parse.js +0 -112
  496. package/transpiled/RTD/syntax/parse.js.map +0 -1
  497. package/transpiled/RTD/syntax/types.d.ts +0 -52
  498. package/transpiled/RTD/syntax/types.js +0 -11
  499. package/transpiled/RTD/syntax/types.js.map +0 -1
  500. package/transpiled/const.d.ts +0 -36
  501. package/transpiled/const.js +0 -37
  502. package/transpiled/const.js.map +0 -1
  503. package/transpiled/deployment.d.ts +0 -6
  504. package/transpiled/deployment.js +0 -76
  505. package/transpiled/deployment.js.map +0 -1
  506. package/transpiled/manifest.d.ts +0 -3
  507. package/transpiled/manifest.js +0 -39
  508. package/transpiled/manifest.js.map +0 -1
  509. package/transpiled/schemas.d.ts +0 -9
  510. package/transpiled/schemas.js +0 -9
  511. package/transpiled/schemas.js.map +0 -1
  512. package/transpiled/shortcuts.d.ts +0 -3
  513. package/transpiled/shortcuts.js +0 -13
  514. package/transpiled/shortcuts.js.map +0 -1
  515. package/tsconfig.json +0 -13
  516. package/tsconfig.tsbuildinfo +0 -1
  517. package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +0 -2
  518. package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +0 -1
  519. package/ui/dist/_app/immutable/chunks/B_pK3U1C.js +0 -6
  520. package/ui/dist/_app/immutable/chunks/CiKbPLyY.js +0 -1
  521. package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +0 -3
  522. package/ui/dist/_app/immutable/entry/app.DMqmL4NY.js +0 -2
  523. package/ui/dist/_app/immutable/entry/start.CRe7HWBI.js +0 -1
  524. package/ui/dist/_app/immutable/nodes/0.D9m-6cbM.js +0 -1
  525. package/ui/dist/_app/immutable/nodes/1.Cgi_RcSO.js +0 -1
  526. package/ui/dist/_app/immutable/nodes/2.D_Cbxgz4.js +0 -14
@@ -1,120 +0,0 @@
1
- # Protocol Support
2
-
3
- ## Media types
4
-
5
- The following media types are supported for both requests and responses:
6
-
7
- - `application/json`
8
- - `application/yaml` using [js-yaml](https://github.com/nodeca/js-yaml)
9
- - `application/msgpack` using [msgpackr](https://github.com/kriszyp/msgpackr)
10
- - `text/plain`
11
-
12
- A request may also be sent as `application/x-www-form-urlencoded`. A form is read and never
13
- written, so it is not a format a response is negotiated to. A name repeated in a form is read as
14
- the list it is.
15
-
16
- The response format is determined by content negotiation
17
- using [negotiator](https://github.com/jshttp/negotiator).
18
-
19
- ```http
20
- GET / HTTP/1.1
21
- accept: application/yaml
22
- ```
23
-
24
- ```
25
- 200 OK
26
- content-type: application/yaml
27
-
28
- foo: bar
29
- ```
30
-
31
- ### Multipart types
32
-
33
- Multipart responses are encoded using content negotiation,
34
- and the `content-type` of the response is set to one of the custom `multipart/` subtypes,
35
- corresponding to the type of
36
- the parts:
37
-
38
- | Response type | Part type |
39
- | ------------------- | --------------------- |
40
- | `multipart/msgpack` | `application/msgpack` |
41
- | `multipart/yaml` | `application/yaml` |
42
- | `multipart/json` | `application/json` |
43
- | `multipart/text` | `text/plain` |
44
-
45
- Multipart responses are started with a text chunk `ACK`, and finished with a text
46
- chunk `FIN`.
47
-
48
- Example:
49
-
50
- ```
51
- GET /stream/ HTTP/1.1
52
- accept: application/yaml
53
- ```
54
-
55
- ```
56
- 200 OK
57
- content-type: multipart/yaml; boundary=cut
58
-
59
- --cut
60
- ACK
61
- --cut
62
- foo: bar
63
- --cut
64
- baz: qux
65
- --cut
66
- FIN
67
- --cut--
68
- ```
69
-
70
- See also:
71
-
72
- - [Multipart Content-Type](https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html) at W3C
73
- - [Content-Type: multipart](<https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/aa493937(v=exchg.140)>)
74
- at Microsoft
75
-
76
- ## HTTP version
77
-
78
- The gateway serves HTTP/1.1 by default. `protocol: h2c` serves cleartext HTTP/2 instead.
79
-
80
- ```yaml
81
- exposition:
82
- protocol: h2c
83
- service:
84
- annotations:
85
- projectcontour.io/upstream-protocol.h2c: '8000'
86
- ```
87
-
88
- `h2c` requires an ingress controller that proxies cleartext HTTP/2 upstream, and the
89
- annotation that controller reads to do so. Contour, Traefik and Envoy-based controllers
90
- proxy it; ingress-nginx does not. A cleartext HTTP/2 server answers nothing else on the
91
- same port: there is no ALPN to negotiate with, so a controller that speaks HTTP/1.1 upstream
92
- reaches nothing.
93
-
94
- Under `h2c` a request refused before its body is read is answered and then cancelled with
95
- `RST_STREAM(NO_ERROR)`. The reply arrives; the upload stops where it is. A client streaming
96
- a request body sees that body cancelled — in Node, `ERR_STREAM_PREMATURE_CLOSE` on the stream
97
- it passed, which throws if nothing handles it. A real failure shows in the reply, or in the
98
- request rejecting because no reply came. A buffered body is unaffected.
99
-
100
- ## CORS
101
-
102
- [CORS](https://www.w3.org/TR/2020/SPSD-cors-20200602/) is supported,
103
- credentials, any `origin`, and any request header fields are allowed.
104
-
105
- The following request headers are allowed:
106
-
107
- - `accept`
108
- - `authorization`
109
- - `content-type`
110
- - `etag`
111
- - `if-match`
112
- - `if-none-match`
113
- - headers used by the [`map` directive family](map.md)
114
-
115
- The following response headers are exposed:
116
-
117
- - `authorization`
118
- - `content-type`
119
- - `content-length`
120
- - `etag`
@@ -1,324 +0,0 @@
1
- # Query mapping
2
-
3
- ## TL;DR
4
-
5
- ```yaml
6
- id?: string
7
- criteria?: string
8
- sort?: string
9
- omit?: integer
10
- limit?: integer
11
- selectors?: string[]
12
- projection?: string[]
13
- ```
14
-
15
- ```yaml
16
- # manifest.toa.yaml
17
-
18
- name: pots
19
- namespace: tea
20
-
21
- exposition:
22
- /hot:
23
- GET:
24
- endpoint: enumerate
25
- query:
26
- criteria: state==hot
27
- /top10:
28
- GET:
29
- endpoint: enumerate
30
- query:
31
- criteria: state==hot
32
- sort: rank:desc
33
- text: true
34
- limit: 10
35
- /latest:
36
- GET:
37
- endpoint: observe
38
- query:
39
- sort: timestamp:desc
40
- limit: 1
41
- ```
42
-
43
- Undefined `query` denies any query arguments in requests.
44
-
45
- `POST` method mapping cannot have `query` declaration.
46
-
47
- ## Criteria
48
-
49
- Search criteria in [RSQL](https://github.com/jirutka/rsql-parser) format.
50
-
51
- A value is read as what the property it selects on holds, and one that cannot be read as that is
52
- refused with `400 Bad Request` — `volume>abc` where `volume` is a number, or `booked==yes` where
53
- `booked` is a boolean. A string property takes whatever is written.
54
-
55
- The `criteria` property is considered as _open_ when it ends with a `;`, allowing the combination of
56
- request query criteria using `and` logic.
57
- Otherwise, criteria property is _closed_, that is, doesn't allow `criteria` in a request query.
58
-
59
- ```yaml
60
- # manifest.toa.yaml
61
-
62
- name: dummy
63
-
64
- exposition:
65
- /:
66
- GET:
67
- endpoint: observe
68
- query:
69
- criteria: state==hot; # open criteria
70
- ```
71
-
72
- ```http
73
- GET /dummies/?criteria=rank==5
74
- ```
75
-
76
- The request example above will result in an operation call with the following Request:
77
-
78
- ```yaml
79
- query:
80
- criteria: state==hot;rank=5
81
- ```
82
-
83
- ### Path variables
84
-
85
- Path variables are prepended to the `criteria` request query parameter except for
86
- the [`POST` method](#post-method).
87
-
88
- If query criteria starts with logical operator (`,` or `;`), then path variables are prepended
89
- accordingly.
90
- `AND` logical operator is used by default.
91
-
92
- Given the following declaration:
93
-
94
- ```yaml
95
- # manifest.toa.yaml
96
-
97
- name: dummies
98
-
99
- exposition:
100
- /:type:
101
- GET:
102
- endpoint: observe
103
- query:
104
- criteria: ,state==hot; # open criteria
105
- ```
106
-
107
- and the following request:
108
-
109
- ```http request
110
- GET /dummies/cool/?criteria=rank==5
111
- ```
112
-
113
- Operation call will have the following query criteria:
114
-
115
- ```yaml
116
- criteria: (type==cool,state==hot);(rank=5)
117
- ```
118
-
119
- #### POST method
120
-
121
- `POST` method semantically used to create a new entity instance, that is, calling a Transition
122
- without Query.
123
- Thus, path variables are added to the request input.
124
-
125
- Given the following declaration:
126
-
127
- ```yaml
128
- # manifest.toa.yaml
129
-
130
- name: dummies
131
-
132
- exposition:
133
- /:type:
134
- POST: transit
135
- ```
136
-
137
- and the following request:
138
-
139
- ```http request
140
- POST /dummies/cool/
141
- content-type: application/yaml
142
-
143
- input:
144
- rank: 5
145
- ```
146
-
147
- Operation call will have the following input:
148
-
149
- ```yaml
150
- type: cool
151
- rank: 5
152
- ```
153
-
154
- > In case of conflict, path variables override input properties.
155
-
156
- ## Text search
157
-
158
- For entities with `text` indexes — declared in a
159
- [migration](/documentation/component/declaration.md#migrations) — search queries can be enabled
160
- using the `search` property.
161
-
162
- ```yaml
163
- # manifest.toa.yaml
164
-
165
- name: dummies
166
-
167
- exposition:
168
- /:type:
169
- GET:
170
- endpoint: observe
171
- query:
172
- search: true
173
- ```
174
-
175
- ```yaml
176
- GET /dummies/?search=some+text+query
177
- ```
178
-
179
- ## Omit, limit
180
-
181
- `omit` and `limit` properties can declare their default values and allowed boundaries:
182
-
183
- ```yaml
184
- limit:
185
- value: 10
186
- range: [1, 100]
187
- ```
188
-
189
- If no default value is provided, then the lower boundary of the range is used.
190
-
191
- Default values for `omit` and `limit` are:
192
-
193
- ```yaml
194
- omit:
195
- value: 0
196
- range: [0, 1000]
197
- limit:
198
- value: 10
199
- range: [1, 1000]
200
- ```
201
-
202
- Constant values can be declared using the shortcut:
203
-
204
- ```yaml
205
- limit: 10
206
- ```
207
-
208
- ```http
209
- GET /dummies/?omit=100&limit=10
210
- ```
211
-
212
- ## Sort
213
-
214
- The `sort` query property defines the result order of Observations within an `objects` scope
215
- (enumeration).
216
- It comprises an ordered set of sorting statements delimited by semicolons.
217
- Each statement consists of an entity property name with an optional sorting direction suffix:
218
- `:asc`for ascending or `:desc` for descending.
219
-
220
- ```yaml
221
- sort: rank # ascending by default
222
- ```
223
-
224
- ```yaml
225
- sort: rank:asc
226
- ```
227
-
228
- ```yaml
229
- sort: rank:desc;timestamp:asc
230
- ```
231
-
232
- If `sort` value ends with a semicolon `;` then the sorting is considered _open_
233
- and can be extended using request query `sort` argument.
234
-
235
- ```yaml
236
- sort: rank:desc; # open sort
237
- ```
238
-
239
- Having the above `sort` declaration, the following request will result in an operation call
240
- with `rank:desc;timestamp:asc` sort:
241
-
242
- ```http
243
- GET /dummies/?sort=timestamp:asc
244
- ```
245
-
246
- ## Selectors
247
-
248
- ![Not implemented](https://img.shields.io/badge/Not_implemented-red)
249
-
250
- The `selectors` query property contains a list of Entity properties allowed for a client to use in
251
- the `criteria` and `sort` query parameters.
252
- If no value is provided, then no selectors are allowed.
253
-
254
- ```yaml
255
- selectors: [rank, timestamp]
256
- ```
257
-
258
- ## Projection
259
-
260
- A list of Entity properties to be included in the Observation result.
261
-
262
- ```yaml
263
- projection: [id, title, timestamp]
264
- ```
265
-
266
- ## Parameters
267
-
268
- By default, the only query parameters allowed are described above. Arbitrary query parameters
269
- can be allowed by specifying them in the `parameters` property.
270
-
271
- ```yaml
272
- parameters: [foo, bar]
273
- ```
274
-
275
- These parameters are embedded in the operation call input, which must be an object.
276
-
277
- ```http
278
- GET /dummies/?foo=0&bar=baz
279
- ```
280
-
281
- ## Optimistic concurrency control
282
-
283
- If an operation answers a safe request (`GET`, `HEAD`) with an object that has a `VERSION`
284
- property, its value is passed as the value of
285
- the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response,
286
- see [validators](cache.md#validators).
287
-
288
- Client can use the `if-match` request header to perform an operation only if the corresponding
289
- object has not been modified since the last retrieval.
290
-
291
- ```http
292
- GET /dummies/5e82ed5e/ HTTP/1.1
293
-
294
- ---
295
-
296
- HTTP/1.1 200 OK
297
- etag: "1"
298
-
299
- foo: bar
300
- ```
301
-
302
- ```http request
303
- PUT /dummies/5e82ed5e/ HTTP/1.1
304
- if-match: "1"
305
-
306
- foo: baz
307
- ```
308
-
309
- ```http
310
- 200 OK
311
- ```
312
-
313
- ```http request
314
- PUT /dummies/5e82ed5e/ HTTP/1.1
315
- if-match: "never"
316
-
317
- foo: baz
318
- ```
319
-
320
- ```http
321
- 412 Precondition Failed
322
- ```
323
-
324
- The value within the quotes is mapped to the `version` property of operation call query.
@@ -1,15 +0,0 @@
1
- # Directive family Require
2
-
3
- The `require` directive family provides the ability to specify HTTP request requirements to be met.
4
-
5
- ## Headers
6
-
7
- `require:header` requires a specific header to be present in the request, and `require:headers`
8
- requires a set of headers to be present.
9
-
10
- ```yaml
11
- exposition:
12
- /:id:
13
- require:header: if-match # enforce concurrency control
14
- PUT: transit
15
- ```
@@ -1,154 +0,0 @@
1
- # JSON-RPC
2
-
3
- An application annotates it, and every resource it exposes answers as a procedure as well.
4
-
5
- ```yaml
6
- exposition:
7
- rpc:
8
- batch: 32
9
- ```
10
-
11
- Without it `/.rpc` is a path like any other, and nothing answers there. The path is fixed:
12
- one an application could choose is one it could collide with a route of its own.
13
-
14
- ## The name
15
-
16
- A procedure is an RTD method — a node and a verb — and its name is the route template with a
17
- variable marked by a leading `_` and the verb as the last segment, joined by `.`.
18
-
19
- The separator is `.` and not `/` because a name is a tool's name too, and
20
- [MCP](mcp.md) names the characters one may hold: letters, digits, `_`, `-` and `.`. A client that
21
- receives one outside that set may refuse the tool, and one that accepts it rewrites what it shows
22
- a model — so what is published has to be spellable as it stands.
23
-
24
- | route | verb | method |
25
- | ---------------------------- | ------ | -------------------------------- |
26
- | `/pots` | `GET` | `pots.GET` |
27
- | `/pots` | `POST` | `pots.POST` |
28
- | `/pots/:id` | `GET` | `pots._id.GET` |
29
- | `/identity/tokens/:identity` | `POST` | `identity.tokens._identity.POST` |
30
- | `/files/**` | `GET` | `files.__.GET` |
31
- | `/` | `GET` | `GET` |
32
-
33
- The verb is always the last segment, so `/pots/GET` answering `POST` is `pots.GET.POST` and
34
- `/pots` answering `GET` is `pots.GET`. Nothing is declared to make a name: a re-mounted route is
35
- a renamed procedure, because the name is the address.
36
-
37
- ## What has a name
38
-
39
- A segment is addressed where it holds only `A-Z`, `a-z`, `0-9` and `-`. `_` is the name's own,
40
- marking a variable, and `__` the rest of a path; `.` is what divides one segment from the next.
41
-
42
- A route with a segment holding anything else — a `.`, a `_`, a `*`, a variable that is not one
43
- word — has no name. It is served over HTTP as it always was; what it loses is the address, so
44
- `/.rpc` cannot call it. Each is said once at startup, naming the route and the segment.
45
-
46
- ```
47
- Route cannot be addressed as a procedure route=/pots/v1.0 segment=v1.0
48
- ```
49
-
50
- ## The parameters
51
-
52
- `params` is by name, and carries what a request carries.
53
-
54
- A key the template names is a route variable, and is taken by the path. `query` is the
55
- querystring. Whatever is left is the body.
56
-
57
- ```json
58
- { "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } }
59
- ```
60
-
61
- ```json
62
- {
63
- "jsonrpc": "2.0",
64
- "id": 2,
65
- "method": "pots.POST",
66
- "params": { "title": "Kettle", "volume": 1.7 }
67
- }
68
- ```
69
-
70
- ```json
71
- {
72
- "jsonrpc": "2.0",
73
- "id": 3,
74
- "method": "pots.GET",
75
- "params": { "query": { "criteria": "volume=gt=1", "limit": 10 } }
76
- }
77
- ```
78
-
79
- The querystring has a name of its own because an operation's input is free to have an `id` or
80
- a `limit`, and the two would otherwise be one object. An operation whose input has a property
81
- named `query` cannot be called with one.
82
-
83
- A variable stands for a single segment, so its value may not contain `/`, `?` or `#`. `__`
84
- stands for the rest of the path and may contain `/`; its value is read under the name `**`,
85
- which is what the RTD calls it wherever else it is read.
86
-
87
- ## What answers
88
-
89
- The reply is the operation's, restricted by the same [`io:output`](io.md) as the resource's,
90
- and encoded as the request's `accept` asks. A call that returned nothing answers `result: null`
91
- — JSON-RPC has no 404, and nothing went wrong.
92
-
93
- A call with no `id` is a notification: it runs and answers nothing, and a request carrying only
94
- notifications answers `204`.
95
-
96
- ## Several at once
97
-
98
- A request may carry an array of calls instead of one, and answers an array of what they
99
- answered — shorter than what it was given, where some were notifications.
100
-
101
- ```json
102
- [
103
- { "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } },
104
- { "jsonrpc": "2.0", "method": "pots._id.DELETE", "params": { "id": "c3d4" } }
105
- ]
106
- ```
107
-
108
- They run one after another, in the order given. `batch` is how many one request may carry, 32
109
- where the annotation does not say: a request is one authentication and one reply however many
110
- calls it makes, so what a caller may ask for at once is bounded.
111
-
112
- ## What refuses
113
-
114
- The whole request is refused, with a status, when it is not a request this endpoint serves: a
115
- verb other than `POST` is `405`, an unreadable body is `400`, and an array that is empty or
116
- longer than `batch` is `400`.
117
-
118
- A call that is not one — a version it does not state, a method it does not name — is answered
119
- to nobody: `id` is `null`, because nothing about it is trustworthy enough to answer to.
120
-
121
- A credential is the request's, so a call cannot be refused for one: a request that presents
122
- none where the procedure requires one is `401`, and carries the challenge that says where to
123
- authenticate.
124
-
125
- Everything else a call runs into is a value, at `200`, because the request itself succeeded.
126
-
127
- | | |
128
- | -------- | -------------------------------------------------- |
129
- | `-32601` | no route of that name, or no such verb on it |
130
- | `-32602` | a variable is missing, or a query is not one |
131
- | `-32000` | the identity is not authorized to make this call |
132
- | `-32001` | the operation refused, its own code in `data.code` |
133
- | `-32603` | anything the gateway did not mean to answer |
134
- | `-32002` | the request carries more calls than `batch` |
135
-
136
- The first five codes JSON-RPC states mean the same to every client. `-32000` and `-32001` are
137
- this gateway's, from the block the specification reserves and leaves empty, so
138
- `-32001` says only that an operation refused — `data.code` is the code that operation declares
139
- in its manifest, and is what a caller reads.
140
-
141
- ## Authorization
142
-
143
- A procedure is authorized as the resource is, against the path and the verb its name states.
144
- A token restricted to `/pots/:id/` for `GET` authorizes `pots._id.GET` and nothing else,
145
- whichever way the call arrives.
146
-
147
- [`anonymous`](access.md#anonymous) is the one directive that reads a call differently from a
148
- request: it admits one whatever the request presented, because what refuses a credentialed request
149
- is that the reply would not be cacheable, and what a call answers is not a reply.
150
-
151
- ## What has no procedure
152
-
153
- `map:buffer` reads the request, and a call is not the request. A resource that declares it
154
- answers over HTTP alone.
@@ -1,70 +0,0 @@
1
- # Tracing
2
-
3
- Each incoming request is processed within a [trace](../../telemetry/readme.md#tracing) —
4
- a server span is created, and its trace context is propagated to component invocations and
5
- emitted events, so all log entries and spans across the application caused by the request
6
- share the same `trace_id`.
7
-
8
- ## The `ray` response header
9
-
10
- Each response contains a `ray` header with the trace ID of the request.
11
- It can be used to find related log entries, or be attached to a support ticket.
12
-
13
- Log entries are stamped with the trace ID regardless of the sampling decision,
14
- while the trace itself is only recorded if the trace is sampled (see [Sampling](#sampling)).
15
-
16
- ```
17
- HTTP/1.1 201 Created
18
- ray: 0af7651916cd43dd8448eb211c80319c
19
- ```
20
-
21
- ## Continuing a trace
22
-
23
- By default, the trace starts at the gateway. If the request carries a trace context in one of the
24
- following headers, the trace is continued, that is, the incoming trace ID is used.
25
-
26
- ### `traceparent`
27
-
28
- The [W3C Trace Context](https://www.w3.org/TR/trace-context/#traceparent-header) header, sent by
29
- clients instrumented with OpenTelemetry-compatible tooling, or by upstream proxies.
30
-
31
- ```
32
- traceparent: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
33
- ```
34
-
35
- In addition to the trace ID, it carries the ID of the client span, which becomes the _parent_ of
36
- the gateway's server span, linking client-side and server-side spans into a single trace tree.
37
-
38
- ### `ray`
39
-
40
- A bare trace ID (32 lowercase hex digits), for clients without tracing instrumentation willing to
41
- correlate their requests with server-side traces.
42
-
43
- ```
44
- ray: 4bf92f3577b34da6a3ce929d0e0e4736
45
- ```
46
-
47
- Unlike `traceparent`, it carries no parent span, so the gateway's server span becomes the root of
48
- the trace.
49
-
50
- If both headers are present, `traceparent` takes precedence as it carries more information.
51
- Headers with invalid values are ignored, and a new trace is started.
52
-
53
- ## Sampling
54
-
55
- The trace _context_ (trace ID) is always created and propagated, so the `ray` header and
56
- `trace_id` in log entries are always present. The sampling decision only determines whether
57
- the _spans_ of the trace are recorded.
58
-
59
- The decision is made once, by the process that starts the trace, and is propagated along with
60
- the trace context (the flags byte of `traceparent`), so a trace is either recorded as a whole
61
- or not at all. Sampling is configured with the
62
- [`telemetry.traces` annotation](../../telemetry/readme.md#sampling).
63
-
64
- Sending a trace context does not bypass sampling: an incoming `ray` header adopts the trace ID,
65
- while the recording decision is still made by the gateway. The `sampled` flag of an incoming
66
- `traceparent` is respected, as the decision belongs to the trace root.
67
-
68
- ## See also
69
-
70
- - [Telemetry extension](../../telemetry/readme.md) — spans, structured logs, `context.span`