@toa.io/extensions.exposition 1.0.0-alpha.285 → 1.0.0-alpha.287

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 (611) hide show
  1. package/CHANGELOG.md +1 -545
  2. package/components/exposition.octets/operations/delete.js +1 -1
  3. package/components/exposition.octets/operations/get.js +5 -2
  4. package/components/exposition.octets/operations/head.js +1 -1
  5. package/components/exposition.octets/operations/put.js +29 -37
  6. package/components/exposition.octets/types/toa.d.ts +1 -1
  7. package/components/identity.bans/manifest.toa.yaml +12 -13
  8. package/components/identity.bans/migrations/0001-system-properties.yaml +14 -0
  9. package/components/identity.bans/operations/transit.js +1 -1
  10. package/components/identity.bans/source/transit.ts +1 -1
  11. package/components/identity.bans/tsconfig.tsbuildinfo +1 -1
  12. package/components/identity.bans/types/toa.d.ts +5 -5
  13. package/components/identity.basic/events/principal.js +3 -1
  14. package/components/identity.basic/manifest.toa.yaml +17 -23
  15. package/components/identity.basic/migrations/0001-system-properties.yaml +14 -0
  16. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  17. package/components/identity.basic/operations/add.js +1 -1
  18. package/components/identity.basic/operations/authenticate.js +2 -2
  19. package/components/identity.basic/operations/check.js +4 -2
  20. package/components/identity.basic/operations/delete.js +1 -1
  21. package/components/identity.basic/operations/incept.js +1 -1
  22. package/components/identity.basic/operations/info.js +1 -1
  23. package/components/identity.basic/operations/lib/credentials.js +1 -1
  24. package/components/identity.basic/operations/transit.js +7 -8
  25. package/components/identity.basic/source/add.ts +5 -2
  26. package/components/identity.basic/source/authenticate.ts +11 -13
  27. package/components/identity.basic/source/check.ts +9 -6
  28. package/components/identity.basic/source/delete.ts +4 -1
  29. package/components/identity.basic/source/incept.ts +13 -10
  30. package/components/identity.basic/source/info.ts +4 -1
  31. package/components/identity.basic/source/lib/credentials.ts +2 -3
  32. package/components/identity.basic/source/transit.ts +27 -21
  33. package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
  34. package/components/identity.basic/types/index.d.ts +7 -3
  35. package/components/identity.basic/types/toa.d.ts +5 -5
  36. package/components/identity.clients/manifest.toa.yaml +36 -40
  37. package/components/identity.clients/migrations/0001-system-properties.yaml +14 -0
  38. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  39. package/components/identity.clients/operations/describe.js +1 -1
  40. package/components/identity.clients/operations/lib/canonical.js +1 -1
  41. package/components/identity.clients/operations/lib/cimd.js +3 -2
  42. package/components/identity.clients/operations/lib/redirect.js +7 -4
  43. package/components/identity.clients/operations/register.js +2 -2
  44. package/components/identity.clients/source/describe.ts +6 -8
  45. package/components/identity.clients/source/lib/Context.ts +6 -3
  46. package/components/identity.clients/source/lib/Entity.ts +1 -1
  47. package/components/identity.clients/source/lib/canonical.ts +1 -1
  48. package/components/identity.clients/source/lib/cimd.test.ts +8 -6
  49. package/components/identity.clients/source/lib/cimd.ts +24 -19
  50. package/components/identity.clients/source/lib/redirect.test.ts +8 -2
  51. package/components/identity.clients/source/lib/redirect.ts +12 -8
  52. package/components/identity.clients/source/register.ts +18 -18
  53. package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
  54. package/components/identity.clients/types/toa.d.ts +5 -5
  55. package/components/identity.credentials/manifest.toa.yaml +4 -4
  56. package/components/identity.credentials/operations/list.js +8 -4
  57. package/components/identity.credentials/source/list.test.ts +39 -20
  58. package/components/identity.credentials/source/list.ts +12 -8
  59. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
  60. package/components/identity.credentials/types/toa.d.ts +2 -2
  61. package/components/identity.federation/manifest.toa.yaml +23 -32
  62. package/components/identity.federation/migrations/0001-system-properties.yaml +14 -0
  63. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  64. package/components/identity.federation/operations/authenticate.js +4 -2
  65. package/components/identity.federation/operations/create.js +2 -2
  66. package/components/identity.federation/operations/decode.js +1 -1
  67. package/components/identity.federation/operations/delete.js +1 -1
  68. package/components/identity.federation/operations/incept.js +1 -1
  69. package/components/identity.federation/operations/lib/decode.js +1 -1
  70. package/components/identity.federation/operations/lib/discovery.js +2 -2
  71. package/components/identity.federation/operations/lib/exchange.js +8 -4
  72. package/components/identity.federation/operations/lib/principal.js +1 -1
  73. package/components/identity.federation/operations/lib/resolve.js +1 -1
  74. package/components/identity.federation/operations/list.js +2 -2
  75. package/components/identity.federation/source/authenticate.ts +19 -17
  76. package/components/identity.federation/source/create.ts +6 -7
  77. package/components/identity.federation/source/decode.ts +4 -1
  78. package/components/identity.federation/source/delete.ts +4 -1
  79. package/components/identity.federation/source/incept.ts +2 -3
  80. package/components/identity.federation/source/lib/decode.ts +4 -7
  81. package/components/identity.federation/source/lib/discovery.test.ts +15 -5
  82. package/components/identity.federation/source/lib/discovery.ts +10 -9
  83. package/components/identity.federation/source/lib/exchange.ts +18 -15
  84. package/components/identity.federation/source/lib/jose.d.ts +1 -1
  85. package/components/identity.federation/source/lib/principal.ts +5 -3
  86. package/components/identity.federation/source/lib/resolve.ts +5 -1
  87. package/components/identity.federation/source/list.test.ts +26 -10
  88. package/components/identity.federation/source/list.ts +5 -2
  89. package/components/identity.federation/source/types/context.ts +5 -2
  90. package/components/identity.federation/source/types/entity.ts +2 -2
  91. package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
  92. package/components/identity.federation/types/toa.d.ts +5 -5
  93. package/components/identity.grants/manifest.toa.yaml +27 -31
  94. package/components/identity.grants/migrations/0001-system-properties.yaml +14 -0
  95. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  96. package/components/identity.grants/operations/authorize.js +1 -1
  97. package/components/identity.grants/operations/exchange.js +5 -2
  98. package/components/identity.grants/operations/lib/code.js +1 -1
  99. package/components/identity.grants/operations/lib/identify.js +1 -1
  100. package/components/identity.grants/operations/list.js +1 -1
  101. package/components/identity.grants/operations/revoke.js +3 -2
  102. package/components/identity.grants/source/authorize.ts +27 -19
  103. package/components/identity.grants/source/exchange.ts +15 -11
  104. package/components/identity.grants/source/lib/code.ts +20 -8
  105. package/components/identity.grants/source/lib/identify.ts +1 -1
  106. package/components/identity.grants/source/list.ts +2 -2
  107. package/components/identity.grants/source/revoke.ts +9 -7
  108. package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
  109. package/components/identity.grants/types/index.d.ts +3 -3
  110. package/components/identity.grants/types/toa.d.ts +5 -5
  111. package/components/identity.keys/manifest.toa.yaml +18 -23
  112. package/components/identity.keys/migrations/0001-system-properties.yaml +14 -0
  113. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  114. package/components/identity.keys/operations/create.js +1 -1
  115. package/components/identity.keys/operations/disable.js +1 -1
  116. package/components/identity.keys/operations/revoke.js +1 -1
  117. package/components/identity.keys/source/create.ts +2 -3
  118. package/components/identity.keys/source/disable.ts +1 -1
  119. package/components/identity.keys/source/revoke.ts +2 -2
  120. package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
  121. package/components/identity.keys/types/toa.d.ts +5 -5
  122. package/components/identity.otp/manifest.toa.yaml +16 -24
  123. package/components/identity.otp/migrations/0001-system-properties.yaml +14 -0
  124. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  125. package/components/identity.otp/operations/authenticate.js +1 -1
  126. package/components/identity.otp/operations/issue.js +1 -1
  127. package/components/identity.otp/source/authenticate.ts +4 -7
  128. package/components/identity.otp/source/issue.ts +1 -1
  129. package/components/identity.otp/source/lib/Context.ts +1 -1
  130. package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
  131. package/components/identity.otp/types/toa.d.ts +5 -5
  132. package/components/identity.passkeys/manifest.toa.yaml +45 -53
  133. package/components/identity.passkeys/migrations/0001-system-properties.yaml +14 -0
  134. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  135. package/components/identity.passkeys/operations/authenticate.js +1 -1
  136. package/components/identity.passkeys/operations/challenge.js +6 -3
  137. package/components/identity.passkeys/operations/create.js +1 -1
  138. package/components/identity.passkeys/operations/delete.js +1 -1
  139. package/components/identity.passkeys/operations/list.js +1 -1
  140. package/components/identity.passkeys/operations/use.js +1 -1
  141. package/components/identity.passkeys/source/authenticate.ts +3 -4
  142. package/components/identity.passkeys/source/challenge.ts +29 -25
  143. package/components/identity.passkeys/source/create.ts +8 -6
  144. package/components/identity.passkeys/source/delete.ts +4 -1
  145. package/components/identity.passkeys/source/list.ts +4 -1
  146. package/components/identity.passkeys/source/types/Context.ts +1 -1
  147. package/components/identity.passkeys/source/use.ts +12 -10
  148. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
  149. package/components/identity.passkeys/types/toa.d.ts +5 -5
  150. package/components/identity.roles/manifest.toa.yaml +12 -16
  151. package/components/identity.roles/migrations/0001-system-properties.yaml +14 -0
  152. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  153. package/components/identity.roles/operations/grant.js +1 -1
  154. package/components/identity.roles/operations/list.js +1 -1
  155. package/components/identity.roles/operations/principal.js +2 -2
  156. package/components/identity.roles/source/grant.ts +7 -6
  157. package/components/identity.roles/source/list.ts +1 -1
  158. package/components/identity.roles/source/principal.ts +5 -7
  159. package/components/identity.roles/tsconfig.tsbuildinfo +1 -1
  160. package/components/identity.roles/types/toa.d.ts +5 -5
  161. package/components/identity.tokens/manifest.toa.yaml +17 -15
  162. package/components/identity.tokens/migrations/0001-system-properties.yaml +14 -0
  163. package/components/identity.tokens/operations/authenticate.js +2 -2
  164. package/components/identity.tokens/operations/decrypt.js +11 -5
  165. package/components/identity.tokens/operations/encrypt.js +2 -2
  166. package/components/identity.tokens/operations/issue.js +2 -4
  167. package/components/identity.tokens/operations/lib/form.js +1 -1
  168. package/components/identity.tokens/operations/lib/key.js +1 -1
  169. package/components/identity.tokens/operations/revoke.js +1 -1
  170. package/components/identity.tokens/source/authenticate.test.ts +22 -16
  171. package/components/identity.tokens/source/authenticate.ts +7 -10
  172. package/components/identity.tokens/source/decrypt.test.ts +62 -29
  173. package/components/identity.tokens/source/decrypt.ts +30 -27
  174. package/components/identity.tokens/source/encrypt.test.ts +21 -16
  175. package/components/identity.tokens/source/encrypt.ts +8 -11
  176. package/components/identity.tokens/source/issue.test.ts +4 -2
  177. package/components/identity.tokens/source/issue.ts +6 -8
  178. package/components/identity.tokens/source/lib/form.ts +5 -9
  179. package/components/identity.tokens/source/lib/jose.d.ts +1 -1
  180. package/components/identity.tokens/source/lib/key.ts +1 -1
  181. package/components/identity.tokens/source/lib/paseto.test.ts +17 -6
  182. package/components/identity.tokens/source/revoke.ts +1 -1
  183. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
  184. package/components/identity.tokens/types/index.d.ts +13 -4
  185. package/components/identity.tokens/types/toa.d.ts +5 -5
  186. package/context.toa.yaml +2 -2
  187. package/cucumber.mjs +3 -0
  188. package/documentation/access.md +4 -3
  189. package/documentation/cache.md +17 -3
  190. package/documentation/components.md +2 -2
  191. package/documentation/credentials.md +2 -2
  192. package/documentation/identity.md +7 -9
  193. package/documentation/map.md +2 -2
  194. package/documentation/mcp.md +16 -16
  195. package/documentation/notes/peers.md +1 -1
  196. package/documentation/notes/throttling.md +1 -1
  197. package/documentation/octets.md +4 -4
  198. package/documentation/protocol.md +3 -3
  199. package/documentation/query.md +14 -8
  200. package/documentation/rpc.md +31 -21
  201. package/documentation/tracing.md +3 -3
  202. package/documentation/tree.md +1 -1
  203. package/features/auth.assert.feature +2 -2
  204. package/features/auth.bearer.feature +1 -1
  205. package/features/auth.claims.feature +5 -5
  206. package/features/auth.incept.feature +2 -2
  207. package/features/authorities.federation.feature +1 -1
  208. package/features/configuration.feature +3 -4
  209. package/features/credentials.feature +9 -9
  210. package/features/dev.feature +1 -0
  211. package/features/dynamic.feature +1 -0
  212. package/features/errors.feature +21 -0
  213. package/features/etag.feature +0 -86
  214. package/features/identity.bans.feature +3 -3
  215. package/features/identity.basic.feature +9 -9
  216. package/features/identity.federation.feature +11 -11
  217. package/features/identity.tokens.custom.feature +5 -5
  218. package/features/identity.tokens.feature +2 -2
  219. package/features/interruptions.feature +1 -0
  220. package/features/introspection.map.feature +4 -4
  221. package/features/io.throttle.feature +1 -0
  222. package/features/map.feature +2 -2
  223. package/features/octets.cloudinary.feature +1 -1
  224. package/features/octets.download.feature +1 -0
  225. package/features/require.feature +1 -2
  226. package/features/steps/Captures.ts +1 -1
  227. package/features/steps/Cloudinary.ts +1 -2
  228. package/features/steps/Common.ts +4 -5
  229. package/features/steps/Components.ts +17 -12
  230. package/features/steps/Database.ts +42 -23
  231. package/features/steps/Gateway.ts +55 -72
  232. package/features/steps/HTTP.ts +12 -15
  233. package/features/steps/IDP.ts +118 -94
  234. package/features/steps/Identity.ts +3 -3
  235. package/features/steps/OTP.ts +3 -3
  236. package/features/steps/Parameters.ts +20 -10
  237. package/features/steps/Probe.ts +9 -7
  238. package/features/steps/Realtime.ts +40 -22
  239. package/features/steps/Workspace.ts +10 -7
  240. package/features/steps/components/audit/operations/record.js +1 -1
  241. package/features/steps/components/echo/operations/affect.js +1 -1
  242. package/features/steps/components/echo/operations/compute.js +1 -1
  243. package/features/steps/components/echo/operations/echo.js +1 -1
  244. package/features/steps/components/echo/operations/error.js +1 -1
  245. package/features/steps/components/echo/operations/identity.js +1 -1
  246. package/features/steps/components/echo/operations/parameters.js +1 -1
  247. package/features/steps/components/echo/operations/ping.js +1 -1
  248. package/features/steps/components/echo/operations/unwrap.js +1 -1
  249. package/features/steps/components/greeter/operations/greet.js +1 -1
  250. package/features/steps/components/notify/operations/send.js +1 -1
  251. package/features/steps/components/octets.tester/operations/authority.js +1 -1
  252. package/features/steps/components/octets.tester/operations/bar.js +1 -1
  253. package/features/steps/components/octets.tester/operations/baz.js +1 -1
  254. package/features/steps/components/octets.tester/operations/concat.js +1 -1
  255. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  256. package/features/steps/components/octets.tester/operations/err.js +1 -1
  257. package/features/steps/components/octets.tester/operations/foo.js +1 -1
  258. package/features/steps/components/octets.tester/operations/id.js +1 -1
  259. package/features/steps/components/octets.tester/operations/identity.js +1 -1
  260. package/features/steps/components/octets.tester/operations/redirect.js +6 -4
  261. package/features/steps/components/octets.tester/operations/yex.js +1 -1
  262. package/features/steps/components/octets.tester/operations/yield.js +1 -1
  263. package/features/steps/components/orders/manifest.toa.yaml +10 -12
  264. package/features/steps/components/orders/operations/create.js +4 -2
  265. package/features/steps/components/pots/manifest.toa.yaml +15 -20
  266. package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
  267. package/features/steps/components/pricing/operations/quote.js +1 -1
  268. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  269. package/features/steps/components/sequences/operations/numbers.js +1 -1
  270. package/features/steps/components/sequences/operations/tokens.js +3 -3
  271. package/features/steps/components/users/manifest.toa.yaml +3 -5
  272. package/features/steps/components/users/operations/create.js +1 -1
  273. package/features/steps/components/users.properties/manifest.toa.yaml +5 -6
  274. package/features/steps/map.ts +2 -2
  275. package/features/timestamps.feature +1 -1
  276. package/package.json +7 -7
  277. package/readme.md +11 -11
  278. package/schemas/annotation.cos.yaml +1 -3
  279. package/schemas/method.cos.yaml +2 -0
  280. package/source/Branch.test.ts +2 -2
  281. package/source/Branch.ts +3 -5
  282. package/source/Composition.ts +5 -5
  283. package/source/Directive.test.ts +38 -20
  284. package/source/Directive.ts +61 -47
  285. package/source/Endpoint.test.ts +1 -1
  286. package/source/Endpoint.ts +27 -92
  287. package/source/Factory.ts +26 -12
  288. package/source/Gateway.ts +87 -76
  289. package/source/HTTP/Context.ts +23 -30
  290. package/source/HTTP/Probe.ts +7 -9
  291. package/source/HTTP/Server.ts +88 -69
  292. package/source/HTTP/Timing.ts +6 -21
  293. package/source/HTTP/address.test.ts +8 -2
  294. package/source/HTTP/address.ts +2 -3
  295. package/source/HTTP/exceptions.ts +20 -18
  296. package/source/HTTP/formats/form.ts +1 -1
  297. package/source/HTTP/formats/json.ts +2 -2
  298. package/source/HTTP/formats/msgpack.ts +3 -4
  299. package/source/HTTP/formats/text.ts +2 -2
  300. package/source/HTTP/formats/yaml.test.ts +4 -1
  301. package/source/HTTP/formats/yaml.ts +14 -11
  302. package/source/HTTP/messages.test.ts +38 -28
  303. package/source/HTTP/messages.ts +44 -98
  304. package/source/Interception.ts +3 -4
  305. package/source/Introspection.ts +26 -14
  306. package/source/MCP/Server.ts +114 -54
  307. package/source/MCP/discover.ts +6 -7
  308. package/source/MCP/errors.ts +7 -8
  309. package/source/MCP/schema.test.ts +9 -3
  310. package/source/MCP/schema.ts +12 -16
  311. package/source/MCP/tools.ts +33 -28
  312. package/source/Mapping.ts +25 -27
  313. package/source/Query.ts +58 -44
  314. package/source/RPC/Context.ts +8 -11
  315. package/source/RPC/Dispatcher.ts +46 -26
  316. package/source/RPC/errors.test.ts +41 -16
  317. package/source/RPC/errors.ts +9 -10
  318. package/source/RPC/names.test.ts +35 -16
  319. package/source/RPC/names.ts +22 -29
  320. package/source/RTD/Directives.ts +21 -10
  321. package/source/RTD/Endpoint.ts +4 -1
  322. package/source/RTD/Method.ts +8 -6
  323. package/source/RTD/Node.ts +32 -34
  324. package/source/RTD/Route.ts +18 -21
  325. package/source/RTD/Tree.ts +18 -18
  326. package/source/RTD/factory.ts +13 -16
  327. package/source/RTD/segment.ts +12 -10
  328. package/source/RTD/syntax/parse.test.ts +12 -6
  329. package/source/RTD/syntax/parse.ts +30 -26
  330. package/source/RTD/syntax/types.ts +17 -1
  331. package/source/RTD/walk.test.ts +59 -22
  332. package/source/Remotes.test.ts +25 -4
  333. package/source/Remotes.ts +9 -4
  334. package/source/Tenant.ts +12 -12
  335. package/source/deployment.ts +20 -20
  336. package/source/directives/auth/Anonymous.test.ts +8 -2
  337. package/source/directives/auth/Anonymous.ts +5 -8
  338. package/source/directives/auth/Anyone.ts +3 -3
  339. package/source/directives/auth/Assert.ts +10 -10
  340. package/source/directives/auth/Authorization.ts +83 -69
  341. package/source/directives/auth/Delegate.test.ts +2 -2
  342. package/source/directives/auth/Delegate.ts +8 -10
  343. package/source/directives/auth/Echo.ts +5 -8
  344. package/source/directives/auth/Federation.ts +30 -21
  345. package/source/directives/auth/Id.ts +7 -4
  346. package/source/directives/auth/Incept.ts +32 -26
  347. package/source/directives/auth/Input.ts +36 -20
  348. package/source/directives/auth/Role.test.ts +49 -23
  349. package/source/directives/auth/Role.ts +29 -22
  350. package/source/directives/auth/Rule.ts +13 -8
  351. package/source/directives/auth/Scheme.ts +7 -7
  352. package/source/directives/auth/create.ts +1 -1
  353. package/source/directives/auth/schemes.ts +1 -1
  354. package/source/directives/auth/split.ts +2 -3
  355. package/source/directives/auth/types.ts +5 -2
  356. package/source/directives/cache/Cache.ts +44 -9
  357. package/source/directives/cache/Control.ts +25 -26
  358. package/source/directives/cache/Exact.ts +1 -1
  359. package/source/directives/cache/etag.ts +38 -0
  360. package/source/directives/cors/CORS.ts +9 -7
  361. package/source/directives/dev/Development.ts +3 -4
  362. package/source/directives/dev/Faulty.ts +11 -6
  363. package/source/directives/dev/Sleep.ts +5 -7
  364. package/source/directives/dev/Stub.ts +2 -2
  365. package/source/directives/dev/Throw.ts +2 -2
  366. package/source/directives/flow/Compose.ts +26 -20
  367. package/source/directives/flow/Fetch.ts +15 -15
  368. package/source/directives/flow/Flow.ts +9 -8
  369. package/source/directives/index.ts +11 -2
  370. package/source/directives/io/IO.ts +29 -20
  371. package/source/directives/io/Input.ts +9 -12
  372. package/source/directives/io/Output.ts +20 -23
  373. package/source/directives/io/Status.test.ts +12 -8
  374. package/source/directives/io/Status.ts +9 -8
  375. package/source/directives/io/Throttle.ts +6 -7
  376. package/source/directives/io/lib/throttle/Configuration.test.ts +32 -23
  377. package/source/directives/io/lib/throttle/Configuration.ts +14 -9
  378. package/source/directives/io/lib/throttle/Keys.ts +15 -10
  379. package/source/directives/io/lib/throttle/Quotas.test.ts +33 -17
  380. package/source/directives/io/lib/throttle/Quotas.ts +20 -26
  381. package/source/directives/io/lib/throttle/Sync.test.ts +14 -10
  382. package/source/directives/io/lib/throttle/Sync.ts +9 -12
  383. package/source/directives/io/lib/throttle/Warning.ts +3 -4
  384. package/source/directives/io/lib/throttle/components/IP.ts +4 -5
  385. package/source/directives/io/lib/throttle/components/Identity.ts +1 -1
  386. package/source/directives/io/lib/throttle/components/Path.ts +1 -1
  387. package/source/directives/io/lib/throttle/components/Route.ts +2 -2
  388. package/source/directives/io/lib/throttle/components/Segment.ts +2 -2
  389. package/source/directives/io/lib/throttle/conditions/Status.ts +2 -2
  390. package/source/directives/io/schemas.test.ts +12 -6
  391. package/source/directives/map/Authority.ts +2 -2
  392. package/source/directives/map/Buffer.ts +2 -2
  393. package/source/directives/map/Claims.ts +25 -20
  394. package/source/directives/map/Headers.ts +17 -13
  395. package/source/directives/map/Language.ts +8 -5
  396. package/source/directives/map/Languages.ts +9 -3
  397. package/source/directives/map/Map.ts +25 -12
  398. package/source/directives/map/Mapping.ts +9 -6
  399. package/source/directives/map/Properties.ts +1 -1
  400. package/source/directives/map/Segments.ts +22 -15
  401. package/source/directives/mcp/MCP.ts +9 -7
  402. package/source/directives/mcp/Tool.test.ts +21 -9
  403. package/source/directives/mcp/Tool.ts +23 -11
  404. package/source/directives/oauth/Discovery.ts +7 -11
  405. package/source/directives/oauth/documents.ts +11 -14
  406. package/source/directives/octets/Context.ts +6 -3
  407. package/source/directives/octets/Delete.ts +33 -25
  408. package/source/directives/octets/Directive.ts +5 -1
  409. package/source/directives/octets/Get.ts +13 -21
  410. package/source/directives/octets/Octets.ts +20 -15
  411. package/source/directives/octets/Put.ts +62 -27
  412. package/source/directives/octets/Workflow.ts +18 -12
  413. package/source/directives/octets/bytes.ts +1 -1
  414. package/source/directives/octets/schemas.test.ts +8 -14
  415. package/source/directives/octets/workflows/Execution.ts +19 -21
  416. package/source/directives/octets/workflows/Workflow.ts +10 -7
  417. package/source/directives/require/Headers.ts +3 -4
  418. package/source/directives/require/Require.ts +3 -4
  419. package/source/exceptions.ts +19 -12
  420. package/source/index.ts +1 -1
  421. package/source/manifest.test.ts +4 -1
  422. package/source/manifest.ts +19 -13
  423. package/source/octets.d.ts +1 -1
  424. package/source/root.ts +3 -2
  425. package/source/schemas.test.ts +17 -3
  426. package/transpiled/Branch.js.map +1 -1
  427. package/transpiled/Composition.js.map +1 -1
  428. package/transpiled/Directive.js +6 -2
  429. package/transpiled/Directive.js.map +1 -1
  430. package/transpiled/Endpoint.d.ts +0 -2
  431. package/transpiled/Endpoint.js +11 -52
  432. package/transpiled/Endpoint.js.map +1 -1
  433. package/transpiled/Factory.d.ts +2 -1
  434. package/transpiled/Factory.js +1 -0
  435. package/transpiled/Factory.js.map +1 -1
  436. package/transpiled/Gateway.d.ts +2 -1
  437. package/transpiled/Gateway.js +24 -15
  438. package/transpiled/Gateway.js.map +1 -1
  439. package/transpiled/HTTP/Context.d.ts +0 -3
  440. package/transpiled/HTTP/Context.js +7 -9
  441. package/transpiled/HTTP/Context.js.map +1 -1
  442. package/transpiled/HTTP/Probe.js.map +1 -1
  443. package/transpiled/HTTP/Server.js +19 -4
  444. package/transpiled/HTTP/Server.js.map +1 -1
  445. package/transpiled/HTTP/Timing.d.ts +1 -2
  446. package/transpiled/HTTP/Timing.js +2 -10
  447. package/transpiled/HTTP/Timing.js.map +1 -1
  448. package/transpiled/HTTP/address.js.map +1 -1
  449. package/transpiled/HTTP/exceptions.js.map +1 -1
  450. package/transpiled/HTTP/formats/form.js.map +1 -1
  451. package/transpiled/HTTP/formats/json.js.map +1 -1
  452. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  453. package/transpiled/HTTP/formats/text.js.map +1 -1
  454. package/transpiled/HTTP/formats/yaml.js +4 -1
  455. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  456. package/transpiled/HTTP/messages.d.ts +3 -2
  457. package/transpiled/HTTP/messages.js +1 -43
  458. package/transpiled/HTTP/messages.js.map +1 -1
  459. package/transpiled/Interception.js.map +1 -1
  460. package/transpiled/Introspection.js +13 -2
  461. package/transpiled/Introspection.js.map +1 -1
  462. package/transpiled/MCP/Server.js +15 -4
  463. package/transpiled/MCP/Server.js.map +1 -1
  464. package/transpiled/MCP/discover.js.map +1 -1
  465. package/transpiled/MCP/errors.js.map +1 -1
  466. package/transpiled/MCP/schema.js +1 -1
  467. package/transpiled/MCP/schema.js.map +1 -1
  468. package/transpiled/MCP/tools.js +10 -7
  469. package/transpiled/MCP/tools.js.map +1 -1
  470. package/transpiled/Mapping.d.ts +2 -2
  471. package/transpiled/Mapping.js +3 -5
  472. package/transpiled/Mapping.js.map +1 -1
  473. package/transpiled/Query.d.ts +6 -2
  474. package/transpiled/Query.js +23 -8
  475. package/transpiled/Query.js.map +1 -1
  476. package/transpiled/RPC/Context.js +0 -7
  477. package/transpiled/RPC/Context.js.map +1 -1
  478. package/transpiled/RPC/Dispatcher.js +4 -1
  479. package/transpiled/RPC/Dispatcher.js.map +1 -1
  480. package/transpiled/RPC/errors.js.map +1 -1
  481. package/transpiled/RPC/names.js.map +1 -1
  482. package/transpiled/RTD/Directives.d.ts +1 -1
  483. package/transpiled/RTD/Method.js +1 -3
  484. package/transpiled/RTD/Method.js.map +1 -1
  485. package/transpiled/RTD/Node.js +5 -4
  486. package/transpiled/RTD/Node.js.map +1 -1
  487. package/transpiled/RTD/Route.js +4 -1
  488. package/transpiled/RTD/Route.js.map +1 -1
  489. package/transpiled/RTD/Tree.js +1 -1
  490. package/transpiled/RTD/Tree.js.map +1 -1
  491. package/transpiled/RTD/factory.js.map +1 -1
  492. package/transpiled/RTD/segment.js.map +1 -1
  493. package/transpiled/RTD/syntax/parse.js.map +1 -1
  494. package/transpiled/RTD/syntax/types.d.ts +6 -0
  495. package/transpiled/RTD/syntax/types.js +10 -1
  496. package/transpiled/RTD/syntax/types.js.map +1 -1
  497. package/transpiled/Remotes.js.map +1 -1
  498. package/transpiled/Tenant.d.ts +1 -1
  499. package/transpiled/Tenant.js.map +1 -1
  500. package/transpiled/deployment.d.ts +3 -0
  501. package/transpiled/deployment.js +6 -1
  502. package/transpiled/deployment.js.map +1 -1
  503. package/transpiled/directives/auth/Anonymous.js +1 -3
  504. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  505. package/transpiled/directives/auth/Anyone.js.map +1 -1
  506. package/transpiled/directives/auth/Assert.js.map +1 -1
  507. package/transpiled/directives/auth/Authorization.js +7 -3
  508. package/transpiled/directives/auth/Authorization.js.map +1 -1
  509. package/transpiled/directives/auth/Delegate.js.map +1 -1
  510. package/transpiled/directives/auth/Echo.js +1 -3
  511. package/transpiled/directives/auth/Echo.js.map +1 -1
  512. package/transpiled/directives/auth/Federation.js +3 -7
  513. package/transpiled/directives/auth/Federation.js.map +1 -1
  514. package/transpiled/directives/auth/Id.js.map +1 -1
  515. package/transpiled/directives/auth/Incept.js +1 -1
  516. package/transpiled/directives/auth/Incept.js.map +1 -1
  517. package/transpiled/directives/auth/Input.js.map +1 -1
  518. package/transpiled/directives/auth/Role.js.map +1 -1
  519. package/transpiled/directives/auth/Rule.js.map +1 -1
  520. package/transpiled/directives/auth/Scheme.js +1 -2
  521. package/transpiled/directives/auth/Scheme.js.map +1 -1
  522. package/transpiled/directives/auth/create.js.map +1 -1
  523. package/transpiled/directives/auth/schemes.js.map +1 -1
  524. package/transpiled/directives/auth/split.js.map +1 -1
  525. package/transpiled/directives/auth/types.d.ts +3 -1
  526. package/transpiled/directives/cache/Cache.js +28 -2
  527. package/transpiled/directives/cache/Cache.js.map +1 -1
  528. package/transpiled/directives/cache/Control.js +1 -1
  529. package/transpiled/directives/cache/Control.js.map +1 -1
  530. package/transpiled/directives/cache/etag.d.ts +10 -0
  531. package/transpiled/directives/cache/etag.js +30 -0
  532. package/transpiled/directives/cache/etag.js.map +1 -0
  533. package/transpiled/directives/cors/CORS.js.map +1 -1
  534. package/transpiled/directives/dev/Development.js.map +1 -1
  535. package/transpiled/directives/dev/Faulty.js.map +1 -1
  536. package/transpiled/directives/dev/Sleep.js.map +1 -1
  537. package/transpiled/directives/dev/Stub.js.map +1 -1
  538. package/transpiled/directives/dev/Throw.js.map +1 -1
  539. package/transpiled/directives/flow/Compose.js +7 -3
  540. package/transpiled/directives/flow/Compose.js.map +1 -1
  541. package/transpiled/directives/flow/Fetch.js.map +1 -1
  542. package/transpiled/directives/flow/Flow.js.map +1 -1
  543. package/transpiled/directives/index.js +11 -1
  544. package/transpiled/directives/index.js.map +1 -1
  545. package/transpiled/directives/io/IO.d.ts +1 -1
  546. package/transpiled/directives/io/IO.js.map +1 -1
  547. package/transpiled/directives/io/Input.js +1 -1
  548. package/transpiled/directives/io/Input.js.map +1 -1
  549. package/transpiled/directives/io/Output.js +3 -3
  550. package/transpiled/directives/io/Output.js.map +1 -1
  551. package/transpiled/directives/io/Status.js.map +1 -1
  552. package/transpiled/directives/io/Throttle.js +1 -1
  553. package/transpiled/directives/io/Throttle.js.map +1 -1
  554. package/transpiled/directives/io/lib/throttle/Configuration.js +8 -2
  555. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -1
  556. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -1
  557. package/transpiled/directives/io/lib/throttle/Quotas.js +4 -3
  558. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -1
  559. package/transpiled/directives/io/lib/throttle/Sync.d.ts +1 -1
  560. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
  561. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -1
  562. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -1
  563. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -1
  564. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -1
  565. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -1
  566. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -1
  567. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -1
  568. package/transpiled/directives/map/Authority.js.map +1 -1
  569. package/transpiled/directives/map/Buffer.js.map +1 -1
  570. package/transpiled/directives/map/Claims.js.map +1 -1
  571. package/transpiled/directives/map/Headers.js.map +1 -1
  572. package/transpiled/directives/map/Language.js.map +1 -1
  573. package/transpiled/directives/map/Languages.js.map +1 -1
  574. package/transpiled/directives/map/Map.js.map +1 -1
  575. package/transpiled/directives/map/Mapping.js.map +1 -1
  576. package/transpiled/directives/map/Properties.js.map +1 -1
  577. package/transpiled/directives/map/Segments.js.map +1 -1
  578. package/transpiled/directives/mcp/MCP.js +1 -1
  579. package/transpiled/directives/mcp/MCP.js.map +1 -1
  580. package/transpiled/directives/mcp/Tool.js +3 -1
  581. package/transpiled/directives/mcp/Tool.js.map +1 -1
  582. package/transpiled/directives/oauth/Discovery.js.map +1 -1
  583. package/transpiled/directives/oauth/documents.js.map +1 -1
  584. package/transpiled/directives/octets/Context.js +1 -1
  585. package/transpiled/directives/octets/Context.js.map +1 -1
  586. package/transpiled/directives/octets/Delete.js.map +1 -1
  587. package/transpiled/directives/octets/Directive.js.map +1 -1
  588. package/transpiled/directives/octets/Get.js.map +1 -1
  589. package/transpiled/directives/octets/Octets.js +1 -1
  590. package/transpiled/directives/octets/Octets.js.map +1 -1
  591. package/transpiled/directives/octets/Put.js.map +1 -1
  592. package/transpiled/directives/octets/Workflow.js.map +1 -1
  593. package/transpiled/directives/octets/bytes.js.map +1 -1
  594. package/transpiled/directives/octets/workflows/Execution.js +1 -2
  595. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  596. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  597. package/transpiled/directives/require/Headers.js.map +1 -1
  598. package/transpiled/directives/require/Require.js.map +1 -1
  599. package/transpiled/exceptions.js.map +1 -1
  600. package/transpiled/index.d.ts +1 -1
  601. package/transpiled/index.js +1 -1
  602. package/transpiled/index.js.map +1 -1
  603. package/transpiled/manifest.js +5 -1
  604. package/transpiled/manifest.js.map +1 -1
  605. package/transpiled/root.js.map +1 -1
  606. package/tsconfig.tsbuildinfo +1 -1
  607. package/source/redact.test.ts +0 -27
  608. package/source/redact.ts +0 -21
  609. package/transpiled/redact.d.ts +0 -5
  610. package/transpiled/redact.js +0 -17
  611. package/transpiled/redact.js.map +0 -1
@@ -23,13 +23,13 @@ basic:
23
23
  federation:
24
24
  - id: 09200d0bcc2448c5863e3f50ae18af84
25
25
  iss: https://accounts.google.com
26
- _created: 1754899200000
26
+ CREATED: 1754899200000
27
27
  passkeys:
28
28
  - id: 54ed430804324e81b39756ea4708b546
29
29
  aid: adce0002-35bc-c60a-648b-0b25f1f05503
30
30
  synced: true
31
31
  label: Personal iPhone
32
- _created: 1754899200000
32
+ CREATED: 1754899200000
33
33
  ```
34
34
 
35
35
  `basic` is `null` when Basic credentials do not exist. `federation` and `passkeys` are always
@@ -209,11 +209,9 @@ This can be achieved by using the `auth:incept` directive as follows:
209
209
  name: users
210
210
 
211
211
  entity:
212
- schema:
213
- type: object
214
- properties:
215
- name:
216
- type: string
212
+ properties:
213
+ name:
214
+ type: string
217
215
 
218
216
  exposition:
219
217
  /:
@@ -266,10 +264,10 @@ The directive itself does not allow or deny access to the requested resource.
266
264
  > Used authentication scheme must support inception.
267
265
 
268
266
  ```yaml
269
- /accounts/echo:
270
- auth:assert: true
271
- auth:anyone: true
272
- endpoint: echo
267
+ /accounts/echo:
268
+ auth:assert: true
269
+ auth:anyone: true
270
+ endpoint: echo
273
271
  ```
274
272
 
275
273
  ```http
@@ -9,10 +9,10 @@ The `map` directive family is used to map HTTP request parts to operation call i
9
9
  ```yaml
10
10
  exposition:
11
11
  /:group:
12
- languages: [en, fr] # supported languages
12
+ languages: [en, fr] # supported languages
13
13
  GET:
14
14
  map:authority: hostname # request authority (e.g., hostname)
15
- map:language: lang # requested language
15
+ map:language: lang # requested language
16
16
  map:headers: # raw header values
17
17
  token: x-access-token
18
18
  map:buffer: body # unparsed request body
@@ -117,14 +117,14 @@ request is, is read from `MCP-Protocol-Version`, or from
117
117
  `_meta['io.modelcontextprotocol/protocolVersion']` where the header is absent; `initialize` is one
118
118
  by itself, and a request naming no version is of a revision that sent none.
119
119
 
120
- | method | |
121
- | --- | --- |
122
- | `server/discover` | what is served, and who serves it |
123
- | `tools/list` | every tool this caller may reach, in a stable order |
124
- | `tools/call` | the call the tool is |
125
- | `initialize` | the same as `server/discover`, in the shape a client of `2025-11-25` reads |
126
- | `notifications/initialized` | `202`, and nothing done |
127
- | `ping` | `{}` |
120
+ | method | |
121
+ | --------------------------- | -------------------------------------------------------------------------- |
122
+ | `server/discover` | what is served, and who serves it |
123
+ | `tools/list` | every tool this caller may reach, in a stable order |
124
+ | `tools/call` | the call the tool is |
125
+ | `initialize` | the same as `server/discover`, in the shape a client of `2025-11-25` reads |
126
+ | `notifications/initialized` | `202`, and nothing done |
127
+ | `ping` | `{}` |
128
128
 
129
129
  `POST` only, one message per request; `GET` and `DELETE` are `405`. An `Mcp-Session-Id` is ignored
130
130
  and none is minted, a `Last-Event-ID` is ignored, and `accept` is negotiated as everywhere else.
@@ -164,15 +164,15 @@ say it twice.
164
164
 
165
165
  ## What refuses
166
166
 
167
- | | |
168
- | --- | --- |
169
- | `-32700` | the body is not readable |
170
- | `-32600` | the body is not one JSON-RPC message |
171
- | `-32601` | no method of that name, at `404` |
167
+ | | |
168
+ | -------- | ------------------------------------------------------ |
169
+ | `-32700` | the body is not readable |
170
+ | `-32600` | the body is not one JSON-RPC message |
171
+ | `-32601` | no method of that name, at `404` |
172
172
  | `-32602` | the arguments do not fit, or `_meta` states too little |
173
- | `-32603` | anything the gateway did not mean to answer |
174
- | `-32020` | a header says one thing and the body another |
175
- | `-32022` | a revision neither served, naming both |
173
+ | `-32603` | anything the gateway did not mean to answer |
174
+ | `-32020` | a header says one thing and the body another |
175
+ | `-32022` | a revision neither served, naming both |
176
176
 
177
177
  The codes MCP reserves for itself are `-32020` to `-32099`, and it has an implementation use none of
178
178
  `-32000` to `-32019` — which is where [JSON-RPC](rpc.md#what-refuses) has this gateway's own, so none
@@ -9,7 +9,7 @@ and the own index of the current instance.
9
9
  ## Forces
10
10
 
11
11
  1. Static configuration is not an option (due to dynamic scaling / failover).
12
- 2. In a distributed system, there is no concept of a *global current time*.
12
+ 2. In a distributed system, there is no concept of a _global current time_.
13
13
 
14
14
  ## Solution
15
15
 
@@ -24,7 +24,7 @@ error.
24
24
  ## Forces
25
25
 
26
26
  1. No per request IO is allowed (centralized solutions do not fit).
27
- 2. In a distributed system, there is no concept of a *global current time*.
27
+ 2. In a distributed system, there is no concept of a _global current time_.
28
28
  3. Failure to retrieve the quota state should not result in Gateway failure.
29
29
 
30
30
  ## Solution
@@ -210,7 +210,7 @@ The value of the directive is an object with the following properties:
210
210
  GET:
211
211
  octets:get:
212
212
  blob: false # prevent access to the original BLOB
213
- meta: true # allow access to an Entry
213
+ meta: true # allow access to an Entry
214
214
  ```
215
215
 
216
216
  The `octets:get: ~` declaration is equivalent to defaults.
@@ -295,9 +295,9 @@ If it's an array, the workflow units are executed in sequence.
295
295
  ```yaml
296
296
  octets:put:
297
297
  workflow:
298
- - optimize: images.optimize # executed first
299
- - resize: images.resize # executed second
300
- analyze: images.analyze # executed in parallel with `resize`
298
+ - optimize: images.optimize # executed first
299
+ - resize: images.resize # executed second
300
+ analyze: images.analyze # executed in parallel with `resize`
301
301
  ```
302
302
 
303
303
  If one of the workflow units returns or throws an error,
@@ -36,7 +36,7 @@ corresponding to the type of
36
36
  the parts:
37
37
 
38
38
  | Response type | Part type |
39
- |---------------------|-----------------------|
39
+ | ------------------- | --------------------- |
40
40
  | `multipart/msgpack` | `application/msgpack` |
41
41
  | `multipart/yaml` | `application/yaml` |
42
42
  | `multipart/json` | `application/json` |
@@ -70,7 +70,7 @@ FIN
70
70
  See also:
71
71
 
72
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))
73
+ - [Content-Type: multipart](<https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/aa493937(v=exchg.140)>)
74
74
  at Microsoft
75
75
 
76
76
  ## HTTP version
@@ -82,7 +82,7 @@ exposition:
82
82
  protocol: h2c
83
83
  service:
84
84
  annotations:
85
- projectcontour.io/upstream-protocol.h2c: "8000"
85
+ projectcontour.io/upstream-protocol.h2c: '8000'
86
86
  ```
87
87
 
88
88
  `h2c` requires an ingress controller that proxies cleartext HTTP/2 upstream, and the
@@ -48,9 +48,13 @@ Undefined `query` denies any query arguments in requests.
48
48
 
49
49
  Search criteria in [RSQL](https://github.com/jirutka/rsql-parser) format.
50
50
 
51
- The `criteria` property is considered as *open* when it ends with a `;`, allowing the combination of
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
52
56
  request query criteria using `and` logic.
53
- Otherwise, criteria property is *closed*, that is, doesn't allow `criteria` in a request query.
57
+ Otherwise, criteria property is _closed_, that is, doesn't allow `criteria` in a request query.
54
58
 
55
59
  ```yaml
56
60
  # manifest.toa.yaml
@@ -151,7 +155,9 @@ rank: 5
151
155
 
152
156
  ## Text search
153
157
 
154
- For entities with `text` indexes, search queries can be enabled using the `search` property.
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.
155
161
 
156
162
  ```yaml
157
163
  # manifest.toa.yaml
@@ -223,7 +229,7 @@ sort: rank:asc
223
229
  sort: rank:desc;timestamp:asc
224
230
  ```
225
231
 
226
- If `sort` value ends with a semicolon `;` then the sorting is considered *open*
232
+ If `sort` value ends with a semicolon `;` then the sorting is considered _open_
227
233
  and can be extended using request query `sort` argument.
228
234
 
229
235
  ```yaml
@@ -274,10 +280,10 @@ GET /dummies/?foo=0&bar=baz
274
280
 
275
281
  ## Optimistic concurrency control
276
282
 
277
- If an operation returns an object with `_version` property,
278
- then its value is passed as the value of
279
- the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response
280
- (and removed from the object).
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).
281
287
 
282
288
  Client can use the `if-match` request header to perform an operation only if the corresponding
283
289
  object has not been modified since the last retrieval.
@@ -21,14 +21,14 @@ The separator is `.` and not `/` because a name is a tool's name too, and
21
21
  receives one outside that set may refuse the tool, and one that accepts it rewrites what it shows
22
22
  a model — so what is published has to be spellable as it stands.
23
23
 
24
- | route | verb | method |
25
- | --- | --- | --- |
26
- | `/pots` | `GET` | `pots.GET` |
27
- | `/pots` | `POST` | `pots.POST` |
28
- | `/pots/:id` | `GET` | `pots._id.GET` |
24
+ | route | verb | method |
25
+ | ---------------------------- | ------ | -------------------------------- |
26
+ | `/pots` | `GET` | `pots.GET` |
27
+ | `/pots` | `POST` | `pots.POST` |
28
+ | `/pots/:id` | `GET` | `pots._id.GET` |
29
29
  | `/identity/tokens/:identity` | `POST` | `identity.tokens._identity.POST` |
30
- | `/files/**` | `GET` | `files.__.GET` |
31
- | `/` | `GET` | `GET` |
30
+ | `/files/**` | `GET` | `files.__.GET` |
31
+ | `/` | `GET` | `GET` |
32
32
 
33
33
  The verb is always the last segment, so `/pots/GET` answering `POST` is `pots.GET.POST` and
34
34
  `/pots` answering `GET` is `pots.GET`. Nothing is declared to make a name: a re-mounted route is
@@ -55,17 +55,25 @@ A key the template names is a route variable, and is taken by the path. `query`
55
55
  querystring. Whatever is left is the body.
56
56
 
57
57
  ```json
58
- {"jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": {"id": "a1b2"}}
58
+ { "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } }
59
59
  ```
60
60
 
61
61
  ```json
62
- {"jsonrpc": "2.0", "id": 2, "method": "pots.POST",
63
- "params": {"title": "Kettle", "volume": 1.7}}
62
+ {
63
+ "jsonrpc": "2.0",
64
+ "id": 2,
65
+ "method": "pots.POST",
66
+ "params": { "title": "Kettle", "volume": 1.7 }
67
+ }
64
68
  ```
65
69
 
66
70
  ```json
67
- {"jsonrpc": "2.0", "id": 3, "method": "pots.GET",
68
- "params": {"query": {"criteria": "volume=gt=1", "limit": 10}}}
71
+ {
72
+ "jsonrpc": "2.0",
73
+ "id": 3,
74
+ "method": "pots.GET",
75
+ "params": { "query": { "criteria": "volume=gt=1", "limit": 10 } }
76
+ }
69
77
  ```
70
78
 
71
79
  The querystring has a name of its own because an operation's input is free to have an `id` or
@@ -91,8 +99,10 @@ A request may carry an array of calls instead of one, and answers an array of wh
91
99
  answered — shorter than what it was given, where some were notifications.
92
100
 
93
101
  ```json
94
- [{"jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": {"id": "a1b2"}},
95
- {"jsonrpc": "2.0", "method": "pots._id.DELETE", "params": {"id": "c3d4"}}]
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
+ ]
96
106
  ```
97
107
 
98
108
  They run one after another, in the order given. `batch` is how many one request may carry, 32
@@ -114,14 +124,14 @@ authenticate.
114
124
 
115
125
  Everything else a call runs into is a value, at `200`, because the request itself succeeded.
116
126
 
117
- | | |
118
- | --- | --- |
119
- | `-32601` | no route of that name, or no such verb on it |
120
- | `-32602` | a variable is missing, or a query is not one |
121
- | `-32000` | the identity is not authorized to make this call |
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 |
122
132
  | `-32001` | the operation refused, its own code in `data.code` |
123
- | `-32603` | anything the gateway did not mean to answer |
124
- | `-32002` | the request carries more calls than `batch` |
133
+ | `-32603` | anything the gateway did not mean to answer |
134
+ | `-32002` | the request carries more calls than `batch` |
125
135
 
126
136
  The first five codes JSON-RPC states mean the same to every client. `-32000` and `-32001` are
127
137
  this gateway's, from the block the specification reserves and leaves empty, so
@@ -32,7 +32,7 @@ clients instrumented with OpenTelemetry-compatible tooling, or by upstream proxi
32
32
  traceparent: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
33
33
  ```
34
34
 
35
- In addition to the trace ID, it carries the ID of the client span, which becomes the *parent* of
35
+ In addition to the trace ID, it carries the ID of the client span, which becomes the _parent_ of
36
36
  the gateway's server span, linking client-side and server-side spans into a single trace tree.
37
37
 
38
38
  ### `ray`
@@ -52,9 +52,9 @@ Headers with invalid values are ignored, and a new trace is started.
52
52
 
53
53
  ## Sampling
54
54
 
55
- The trace *context* (trace ID) is always created and propagated, so the `ray` header and
55
+ The trace _context_ (trace ID) is always created and propagated, so the `ray` header and
56
56
  `trace_id` in log entries are always present. The sampling decision only determines whether
57
- the *spans* of the trace are recorded.
57
+ the _spans_ of the trace are recorded.
58
58
 
59
59
  The decision is made once, by the process that starts the trace, and is propagated along with
60
60
  the trace context (the flags byte of `traceparent`), so a trace is either recorded as a whole
@@ -112,7 +112,7 @@ key.
112
112
  HTTP methods can only be mapped to operations of the corresponding types.
113
113
 
114
114
  | HTTP method | Operation type |
115
- |-------------|-----------------------------------------------|
115
+ | ----------- | --------------------------------------------- |
116
116
  | `POST` | **Transition** (without Query)<br/>**Effect** |
117
117
  | `PUT` | **Transition** (with Query)<br/>**Effect** |
118
118
  | `GET` | **Observation**<br/>**Computation** |
@@ -2,8 +2,8 @@ Feature: Identity assertion
2
2
 
3
3
  Scenario: Assert Identity
4
4
  Given the `identity.basic` database contains:
5
- | _id | authority | username | password | _version |
6
- | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
5
+ | _id | authority | username | password | VERSION |
6
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
7
7
  And the `echo` is running with the following manifest:
8
8
  """yaml
9
9
  exposition:
@@ -87,7 +87,7 @@ Feature: More than one provider claims Bearer
87
87
  Given the `identity.federation` configuration:
88
88
  """yaml
89
89
  trust:
90
- - iss: http://localhost:44444
90
+ - iss: http://localhost:31005
91
91
  aud: test
92
92
  """
93
93
  And the IDP token for User is issued
@@ -8,7 +8,7 @@ Feature: Federated identity authentication
8
8
  And the `identity.federation` configuration:
9
9
  """yaml
10
10
  trust:
11
- - iss: http://localhost:44444
11
+ - iss: http://localhost:31005
12
12
  aud: test
13
13
  """
14
14
 
@@ -18,7 +18,7 @@ Feature: Federated identity authentication
18
18
  /:
19
19
  GET:
20
20
  auth:claims:
21
- iss: http://localhost:44444
21
+ iss: http://localhost:31005
22
22
  aud: test
23
23
  sub: Bob
24
24
  dev:stub: ok
@@ -62,7 +62,7 @@ Feature: Federated identity authentication
62
62
  /:
63
63
  GET:
64
64
  auth:claims:
65
- iss: http://localhost:44444
65
+ iss: http://localhost:31005
66
66
  aud: test
67
67
  dev:stub: ok
68
68
  """
@@ -84,7 +84,7 @@ Feature: Federated identity authentication
84
84
  /:
85
85
  GET:
86
86
  auth:claims:
87
- iss: http://localhost:44444
87
+ iss: http://localhost:31005
88
88
  sub: Alice
89
89
  dev:stub: ok
90
90
  """
@@ -106,7 +106,7 @@ Feature: Federated identity authentication
106
106
  /:
107
107
  GET:
108
108
  auth:claims:
109
- iss: http://localhost:44444
109
+ iss: http://localhost:31005
110
110
  aud: goalkeepers
111
111
  dev:stub: ok
112
112
  """
@@ -121,8 +121,8 @@ Feature: Identity inception
121
121
 
122
122
  Scenario: Inception with a wrong password for existing credentials
123
123
  Given the `identity.basic` database contains:
124
- | _id | authority | username | password | _version |
125
- | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
124
+ | _id | authority | username | password | VERSION |
125
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
126
126
  And the `users` is running with the following manifest:
127
127
  """yaml
128
128
  exposition:
@@ -6,7 +6,7 @@ Feature: OIDC tokens with authorities
6
6
  And the `identity.federation` configuration:
7
7
  """yaml
8
8
  trust:
9
- - iss: http://localhost:44444
9
+ - iss: http://localhost:31005
10
10
  aud: test
11
11
  """
12
12
 
@@ -28,9 +28,9 @@ Feature: Configuration values
28
28
  type: string
29
29
  bar:
30
30
  type: string
31
- default: world
32
31
  defaults:
33
32
  foo: deployed
33
+ bar: world
34
34
  """
35
35
  And the configuration values are running
36
36
 
@@ -49,6 +49,7 @@ Feature: Configuration values
49
49
 
50
50
  configuration:
51
51
  foo: deployed
52
+ bar: world
52
53
  schema:
53
54
  type: object
54
55
  properties:
@@ -56,7 +57,6 @@ Feature: Configuration values
56
57
  type: string
57
58
  bar:
58
59
  type: string
59
- default: world
60
60
  epoch: e1
61
61
  """
62
62
 
@@ -82,9 +82,9 @@ Feature: Configuration values
82
82
  type: string
83
83
  bar:
84
84
  type: string
85
- default: world
86
85
  configuration:
87
86
  foo: deployed
87
+ bar: world
88
88
  """
89
89
 
90
90
  Scenario: Listing without the role
@@ -154,7 +154,6 @@ Feature: Configuration values
154
154
 
155
155
  configuration:
156
156
  foo: created
157
- bar: world
158
157
  epoch: e1
159
158
  """
160
159
 
@@ -7,12 +7,12 @@ Feature: Persistent credentials management
7
7
  | _id | authority | username | password |
8
8
  | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
9
9
  And the `identity.federation` database contains:
10
- | _id | authority | identity | iss | sub | _created |
11
- | fed3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://accounts.google.com | google | 1000 |
12
- | fed3a65ebbee47ed95a73edd911ea329 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://appleid.apple.com | apple | 900 |
10
+ | _id | authority | identity | iss | sub | CREATED |
11
+ | fed3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://accounts.google.com | google | 1000 |
12
+ | fed3a65ebbee47ed95a73edd911ea329 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://appleid.apple.com | apple | 900 |
13
13
  And the `identity.passkeys` database contains:
14
- | _id | authority | identity | kid | aid | synced | key | counter | label | _created |
15
- | ace3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | key-one | adce0002-35bc-c60a-648b-0b25f1f05503 | true | cHVibGlj | 0 | Personal iPhone | 2000 |
14
+ | _id | authority | identity | kid | aid | synced | key | counter | label | CREATED |
15
+ | ace3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | key-one | adce0002-35bc-c60a-648b-0b25f1f05503 | true | cHVibGlj | 0 | Personal iPhone | 2000 |
16
16
 
17
17
  Scenario: Listing all persistent credentials
18
18
  When the following request is received:
@@ -32,16 +32,16 @@ Feature: Persistent credentials management
32
32
  federation:
33
33
  - id: fed3a65ebbee47ed95a73edd911ea328
34
34
  iss: https://accounts.google.com
35
- _created: 1000
35
+ CREATED: 1000
36
36
  - id: fed3a65ebbee47ed95a73edd911ea329
37
37
  iss: https://appleid.apple.com
38
- _created: 900
38
+ CREATED: 900
39
39
  passkeys:
40
40
  - id: ace3a65ebbee47ed95a73edd911ea328
41
41
  aid: adce0002-35bc-c60a-648b-0b25f1f05503
42
42
  synced: true
43
43
  label: Personal iPhone
44
- _created: 2000
44
+ CREATED: 2000
45
45
  """
46
46
 
47
47
  Scenario: Deleting credentials through their components
@@ -101,6 +101,6 @@ Feature: Persistent credentials management
101
101
  federation:
102
102
  - id: fed3a65ebbee47ed95a73edd911ea329
103
103
  iss: https://appleid.apple.com
104
- _created: 900
104
+ CREATED: 900
105
105
  passkeys: []
106
106
  """
@@ -1,5 +1,6 @@
1
1
  Feature: Dev
2
2
 
3
+ @timing
3
4
  Scenario: Delays
4
5
  Given the annotation:
5
6
  """yaml
@@ -83,6 +83,7 @@ Feature: Dynamic tree updates
83
83
  200 OK
84
84
  """
85
85
 
86
+ @timing
86
87
  Scenario: Stale branch expires
87
88
  Given the branch TTL is 5 seconds
88
89
  And the Gateway is running
@@ -92,6 +92,27 @@ Feature: Errors
92
92
  must have required property 'title'
93
93
  """
94
94
 
95
+ Scenario: Criteria value the property cannot hold
96
+ Given the `pots` is running with the following manifest:
97
+ """yaml
98
+ exposition:
99
+ /:
100
+ GET: enumerate
101
+ """
102
+ When the following request is received:
103
+ """
104
+ GET /pots/?criteria=volume>abc HTTP/1.1
105
+ host: nex.toa.io
106
+ accept: text/plain
107
+ """
108
+ Then the following reply is sent:
109
+ """
110
+ 400 Bad Request
111
+ content-type: text/plain
112
+
113
+ Criteria selector 'volume' takes a number, and 'abc' is not one
114
+ """
115
+
95
116
  Scenario: Query limit out of range
96
117
  Given the `pots` is running with the following manifest:
97
118
  """yaml