@toa.io/extensions.exposition 1.0.0-alpha.284 → 1.0.0-alpha.286

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 (620) hide show
  1. package/components/exposition.octets/operations/delete.js +1 -1
  2. package/components/exposition.octets/operations/get.js +5 -2
  3. package/components/exposition.octets/operations/head.js +1 -1
  4. package/components/exposition.octets/operations/put.js +29 -37
  5. package/components/exposition.octets/types/toa.d.ts +1 -1
  6. package/components/identity.bans/manifest.toa.yaml +12 -13
  7. package/components/identity.bans/migrations/0001-system-properties.yaml +14 -0
  8. package/components/identity.bans/operations/transit.js +1 -1
  9. package/components/identity.bans/source/transit.ts +1 -1
  10. package/components/identity.bans/tsconfig.tsbuildinfo +1 -1
  11. package/components/identity.bans/types/toa.d.ts +5 -5
  12. package/components/identity.basic/events/principal.js +3 -1
  13. package/components/identity.basic/manifest.toa.yaml +17 -23
  14. package/components/identity.basic/migrations/0001-system-properties.yaml +14 -0
  15. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  16. package/components/identity.basic/operations/add.js +1 -1
  17. package/components/identity.basic/operations/authenticate.js +2 -2
  18. package/components/identity.basic/operations/check.js +4 -2
  19. package/components/identity.basic/operations/delete.js +1 -1
  20. package/components/identity.basic/operations/incept.js +1 -1
  21. package/components/identity.basic/operations/info.js +1 -1
  22. package/components/identity.basic/operations/lib/credentials.js +1 -1
  23. package/components/identity.basic/operations/transit.js +7 -8
  24. package/components/identity.basic/source/add.ts +5 -2
  25. package/components/identity.basic/source/authenticate.ts +11 -13
  26. package/components/identity.basic/source/check.ts +9 -6
  27. package/components/identity.basic/source/delete.ts +4 -1
  28. package/components/identity.basic/source/incept.ts +13 -10
  29. package/components/identity.basic/source/info.ts +4 -1
  30. package/components/identity.basic/source/lib/credentials.ts +2 -3
  31. package/components/identity.basic/source/transit.ts +27 -21
  32. package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
  33. package/components/identity.basic/types/index.d.ts +7 -3
  34. package/components/identity.basic/types/toa.d.ts +5 -5
  35. package/components/identity.clients/manifest.toa.yaml +36 -40
  36. package/components/identity.clients/migrations/0001-system-properties.yaml +14 -0
  37. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  38. package/components/identity.clients/operations/describe.js +1 -1
  39. package/components/identity.clients/operations/lib/canonical.js +1 -1
  40. package/components/identity.clients/operations/lib/cimd.js +3 -2
  41. package/components/identity.clients/operations/lib/redirect.js +7 -4
  42. package/components/identity.clients/operations/register.js +2 -2
  43. package/components/identity.clients/source/describe.ts +6 -8
  44. package/components/identity.clients/source/lib/Context.ts +6 -3
  45. package/components/identity.clients/source/lib/Entity.ts +1 -1
  46. package/components/identity.clients/source/lib/canonical.ts +1 -1
  47. package/components/identity.clients/source/lib/cimd.test.ts +8 -6
  48. package/components/identity.clients/source/lib/cimd.ts +24 -19
  49. package/components/identity.clients/source/lib/redirect.test.ts +8 -2
  50. package/components/identity.clients/source/lib/redirect.ts +12 -8
  51. package/components/identity.clients/source/register.ts +18 -18
  52. package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
  53. package/components/identity.clients/types/toa.d.ts +5 -5
  54. package/components/identity.credentials/manifest.toa.yaml +4 -4
  55. package/components/identity.credentials/operations/list.js +8 -4
  56. package/components/identity.credentials/source/list.test.ts +39 -20
  57. package/components/identity.credentials/source/list.ts +12 -8
  58. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
  59. package/components/identity.credentials/types/toa.d.ts +2 -2
  60. package/components/identity.federation/manifest.toa.yaml +23 -32
  61. package/components/identity.federation/migrations/0001-system-properties.yaml +14 -0
  62. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  63. package/components/identity.federation/operations/authenticate.js +4 -2
  64. package/components/identity.federation/operations/create.js +2 -2
  65. package/components/identity.federation/operations/decode.js +1 -1
  66. package/components/identity.federation/operations/delete.js +1 -1
  67. package/components/identity.federation/operations/incept.js +1 -1
  68. package/components/identity.federation/operations/lib/decode.js +1 -1
  69. package/components/identity.federation/operations/lib/discovery.js +2 -2
  70. package/components/identity.federation/operations/lib/exchange.js +8 -4
  71. package/components/identity.federation/operations/lib/principal.js +1 -1
  72. package/components/identity.federation/operations/lib/resolve.js +1 -1
  73. package/components/identity.federation/operations/list.js +2 -2
  74. package/components/identity.federation/source/authenticate.ts +19 -17
  75. package/components/identity.federation/source/create.ts +6 -7
  76. package/components/identity.federation/source/decode.ts +4 -1
  77. package/components/identity.federation/source/delete.ts +4 -1
  78. package/components/identity.federation/source/incept.ts +2 -3
  79. package/components/identity.federation/source/lib/decode.ts +4 -7
  80. package/components/identity.federation/source/lib/discovery.test.ts +15 -5
  81. package/components/identity.federation/source/lib/discovery.ts +10 -9
  82. package/components/identity.federation/source/lib/exchange.ts +18 -15
  83. package/components/identity.federation/source/lib/jose.d.ts +1 -1
  84. package/components/identity.federation/source/lib/principal.ts +5 -3
  85. package/components/identity.federation/source/lib/resolve.ts +5 -1
  86. package/components/identity.federation/source/list.test.ts +26 -10
  87. package/components/identity.federation/source/list.ts +5 -2
  88. package/components/identity.federation/source/types/context.ts +5 -2
  89. package/components/identity.federation/source/types/entity.ts +2 -2
  90. package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
  91. package/components/identity.federation/types/toa.d.ts +5 -5
  92. package/components/identity.grants/manifest.toa.yaml +27 -31
  93. package/components/identity.grants/migrations/0001-system-properties.yaml +14 -0
  94. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  95. package/components/identity.grants/operations/authorize.js +1 -1
  96. package/components/identity.grants/operations/exchange.js +5 -2
  97. package/components/identity.grants/operations/lib/code.js +1 -1
  98. package/components/identity.grants/operations/lib/identify.js +1 -1
  99. package/components/identity.grants/operations/list.js +1 -1
  100. package/components/identity.grants/operations/revoke.js +3 -2
  101. package/components/identity.grants/source/authorize.ts +27 -19
  102. package/components/identity.grants/source/exchange.ts +15 -11
  103. package/components/identity.grants/source/lib/code.ts +20 -8
  104. package/components/identity.grants/source/lib/identify.ts +1 -1
  105. package/components/identity.grants/source/list.ts +2 -2
  106. package/components/identity.grants/source/revoke.ts +9 -7
  107. package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
  108. package/components/identity.grants/types/index.d.ts +3 -3
  109. package/components/identity.grants/types/toa.d.ts +5 -5
  110. package/components/identity.keys/manifest.toa.yaml +18 -23
  111. package/components/identity.keys/migrations/0001-system-properties.yaml +14 -0
  112. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  113. package/components/identity.keys/operations/create.js +1 -1
  114. package/components/identity.keys/operations/disable.js +1 -1
  115. package/components/identity.keys/operations/revoke.js +1 -1
  116. package/components/identity.keys/source/create.ts +2 -3
  117. package/components/identity.keys/source/disable.ts +1 -1
  118. package/components/identity.keys/source/revoke.ts +2 -2
  119. package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
  120. package/components/identity.keys/types/toa.d.ts +5 -5
  121. package/components/identity.otp/manifest.toa.yaml +16 -24
  122. package/components/identity.otp/migrations/0001-system-properties.yaml +14 -0
  123. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  124. package/components/identity.otp/operations/authenticate.js +1 -1
  125. package/components/identity.otp/operations/issue.js +1 -1
  126. package/components/identity.otp/source/authenticate.ts +4 -7
  127. package/components/identity.otp/source/issue.ts +1 -1
  128. package/components/identity.otp/source/lib/Context.ts +1 -1
  129. package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
  130. package/components/identity.otp/types/toa.d.ts +5 -5
  131. package/components/identity.passkeys/manifest.toa.yaml +45 -53
  132. package/components/identity.passkeys/migrations/0001-system-properties.yaml +14 -0
  133. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  134. package/components/identity.passkeys/operations/authenticate.js +1 -1
  135. package/components/identity.passkeys/operations/challenge.js +6 -3
  136. package/components/identity.passkeys/operations/create.js +1 -1
  137. package/components/identity.passkeys/operations/delete.js +1 -1
  138. package/components/identity.passkeys/operations/list.js +1 -1
  139. package/components/identity.passkeys/operations/use.js +1 -1
  140. package/components/identity.passkeys/source/authenticate.ts +3 -4
  141. package/components/identity.passkeys/source/challenge.ts +29 -25
  142. package/components/identity.passkeys/source/create.ts +8 -6
  143. package/components/identity.passkeys/source/delete.ts +4 -1
  144. package/components/identity.passkeys/source/list.ts +4 -1
  145. package/components/identity.passkeys/source/types/Context.ts +1 -1
  146. package/components/identity.passkeys/source/use.ts +12 -10
  147. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
  148. package/components/identity.passkeys/types/toa.d.ts +5 -5
  149. package/components/identity.roles/manifest.toa.yaml +12 -16
  150. package/components/identity.roles/migrations/0001-system-properties.yaml +14 -0
  151. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  152. package/components/identity.roles/operations/grant.js +1 -1
  153. package/components/identity.roles/operations/list.js +1 -1
  154. package/components/identity.roles/operations/principal.js +2 -2
  155. package/components/identity.roles/source/grant.ts +7 -6
  156. package/components/identity.roles/source/list.ts +1 -1
  157. package/components/identity.roles/source/principal.ts +5 -7
  158. package/components/identity.roles/tsconfig.tsbuildinfo +1 -1
  159. package/components/identity.roles/types/toa.d.ts +5 -5
  160. package/components/identity.tokens/manifest.toa.yaml +17 -15
  161. package/components/identity.tokens/migrations/0001-system-properties.yaml +14 -0
  162. package/components/identity.tokens/operations/authenticate.js +2 -2
  163. package/components/identity.tokens/operations/decrypt.js +11 -5
  164. package/components/identity.tokens/operations/encrypt.js +2 -2
  165. package/components/identity.tokens/operations/issue.js +2 -4
  166. package/components/identity.tokens/operations/lib/form.js +1 -1
  167. package/components/identity.tokens/operations/lib/key.js +1 -1
  168. package/components/identity.tokens/operations/revoke.js +1 -1
  169. package/components/identity.tokens/source/authenticate.test.ts +22 -16
  170. package/components/identity.tokens/source/authenticate.ts +7 -10
  171. package/components/identity.tokens/source/decrypt.test.ts +62 -29
  172. package/components/identity.tokens/source/decrypt.ts +30 -27
  173. package/components/identity.tokens/source/encrypt.test.ts +21 -16
  174. package/components/identity.tokens/source/encrypt.ts +8 -11
  175. package/components/identity.tokens/source/issue.test.ts +4 -2
  176. package/components/identity.tokens/source/issue.ts +6 -8
  177. package/components/identity.tokens/source/lib/form.ts +5 -9
  178. package/components/identity.tokens/source/lib/jose.d.ts +1 -1
  179. package/components/identity.tokens/source/lib/key.ts +1 -1
  180. package/components/identity.tokens/source/lib/paseto.test.ts +17 -6
  181. package/components/identity.tokens/source/revoke.ts +1 -1
  182. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
  183. package/components/identity.tokens/types/index.d.ts +13 -4
  184. package/components/identity.tokens/types/toa.d.ts +5 -5
  185. package/context.toa.yaml +2 -2
  186. package/cucumber.mjs +3 -0
  187. package/documentation/access.md +4 -3
  188. package/documentation/cache.md +17 -3
  189. package/documentation/components.md +2 -2
  190. package/documentation/credentials.md +2 -2
  191. package/documentation/identity.md +7 -9
  192. package/documentation/map.md +2 -2
  193. package/documentation/mcp.md +23 -17
  194. package/documentation/notes/peers.md +1 -1
  195. package/documentation/notes/throttling.md +1 -1
  196. package/documentation/octets.md +4 -4
  197. package/documentation/protocol.md +3 -3
  198. package/documentation/query.md +14 -8
  199. package/documentation/rpc.md +45 -31
  200. package/documentation/tracing.md +3 -3
  201. package/documentation/tree.md +1 -1
  202. package/features/auth.assert.feature +2 -2
  203. package/features/auth.bearer.feature +1 -1
  204. package/features/auth.claims.feature +5 -5
  205. package/features/auth.incept.feature +2 -2
  206. package/features/authorities.federation.feature +1 -1
  207. package/features/configuration.feature +3 -4
  208. package/features/credentials.feature +9 -9
  209. package/features/dev.feature +1 -0
  210. package/features/dynamic.feature +1 -0
  211. package/features/errors.feature +21 -0
  212. package/features/etag.feature +0 -86
  213. package/features/identity.bans.feature +3 -3
  214. package/features/identity.basic.feature +9 -9
  215. package/features/identity.federation.feature +11 -11
  216. package/features/identity.tokens.custom.feature +5 -5
  217. package/features/identity.tokens.feature +2 -2
  218. package/features/interruptions.feature +1 -0
  219. package/features/introspection.map.feature +4 -4
  220. package/features/io.throttle.feature +1 -0
  221. package/features/map.feature +2 -2
  222. package/features/mcp.feature +32 -28
  223. package/features/oauth.grants.feature +1 -1
  224. package/features/octets.cloudinary.feature +1 -1
  225. package/features/octets.download.feature +1 -0
  226. package/features/require.feature +1 -2
  227. package/features/rpc.feature +21 -21
  228. package/features/steps/Captures.ts +1 -1
  229. package/features/steps/Cloudinary.ts +1 -2
  230. package/features/steps/Common.ts +4 -5
  231. package/features/steps/Components.ts +17 -12
  232. package/features/steps/Database.ts +42 -23
  233. package/features/steps/Gateway.ts +55 -71
  234. package/features/steps/HTTP.ts +12 -15
  235. package/features/steps/IDP.ts +118 -94
  236. package/features/steps/Identity.ts +3 -3
  237. package/features/steps/OTP.ts +3 -3
  238. package/features/steps/Parameters.ts +20 -10
  239. package/features/steps/Probe.ts +9 -7
  240. package/features/steps/Realtime.ts +40 -22
  241. package/features/steps/Workspace.ts +10 -7
  242. package/features/steps/components/audit/operations/record.js +1 -1
  243. package/features/steps/components/echo/operations/affect.js +1 -1
  244. package/features/steps/components/echo/operations/compute.js +1 -1
  245. package/features/steps/components/echo/operations/echo.js +1 -1
  246. package/features/steps/components/echo/operations/error.js +1 -1
  247. package/features/steps/components/echo/operations/identity.js +1 -1
  248. package/features/steps/components/echo/operations/parameters.js +1 -1
  249. package/features/steps/components/echo/operations/ping.js +1 -1
  250. package/features/steps/components/echo/operations/unwrap.js +1 -1
  251. package/features/steps/components/greeter/operations/greet.js +1 -1
  252. package/features/steps/components/notify/operations/send.js +1 -1
  253. package/features/steps/components/octets.tester/operations/authority.js +1 -1
  254. package/features/steps/components/octets.tester/operations/bar.js +1 -1
  255. package/features/steps/components/octets.tester/operations/baz.js +1 -1
  256. package/features/steps/components/octets.tester/operations/concat.js +1 -1
  257. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  258. package/features/steps/components/octets.tester/operations/err.js +1 -1
  259. package/features/steps/components/octets.tester/operations/foo.js +1 -1
  260. package/features/steps/components/octets.tester/operations/id.js +1 -1
  261. package/features/steps/components/octets.tester/operations/identity.js +1 -1
  262. package/features/steps/components/octets.tester/operations/redirect.js +6 -4
  263. package/features/steps/components/octets.tester/operations/yex.js +1 -1
  264. package/features/steps/components/octets.tester/operations/yield.js +1 -1
  265. package/features/steps/components/orders/manifest.toa.yaml +10 -12
  266. package/features/steps/components/orders/operations/create.js +4 -2
  267. package/features/steps/components/pots/manifest.toa.yaml +15 -20
  268. package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
  269. package/features/steps/components/pricing/operations/quote.js +1 -1
  270. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  271. package/features/steps/components/sequences/operations/numbers.js +1 -1
  272. package/features/steps/components/sequences/operations/tokens.js +3 -3
  273. package/features/steps/components/users/manifest.toa.yaml +3 -5
  274. package/features/steps/components/users/operations/create.js +1 -1
  275. package/features/steps/components/users.properties/manifest.toa.yaml +5 -6
  276. package/features/steps/map.ts +2 -2
  277. package/features/timestamps.feature +1 -1
  278. package/package.json +7 -7
  279. package/readme.md +11 -11
  280. package/schemas/annotation.cos.yaml +1 -3
  281. package/schemas/method.cos.yaml +2 -0
  282. package/source/Branch.test.ts +2 -2
  283. package/source/Branch.ts +3 -5
  284. package/source/Composition.ts +5 -5
  285. package/source/Directive.test.ts +38 -20
  286. package/source/Directive.ts +61 -47
  287. package/source/Endpoint.test.ts +1 -1
  288. package/source/Endpoint.ts +27 -92
  289. package/source/Factory.ts +26 -12
  290. package/source/Gateway.ts +87 -76
  291. package/source/HTTP/Context.ts +23 -30
  292. package/source/HTTP/Probe.ts +7 -9
  293. package/source/HTTP/Server.ts +88 -69
  294. package/source/HTTP/Timing.ts +6 -21
  295. package/source/HTTP/address.test.ts +8 -2
  296. package/source/HTTP/address.ts +2 -3
  297. package/source/HTTP/exceptions.ts +20 -18
  298. package/source/HTTP/formats/form.ts +1 -1
  299. package/source/HTTP/formats/json.ts +2 -2
  300. package/source/HTTP/formats/msgpack.ts +3 -4
  301. package/source/HTTP/formats/text.ts +2 -2
  302. package/source/HTTP/formats/yaml.test.ts +4 -1
  303. package/source/HTTP/formats/yaml.ts +14 -11
  304. package/source/HTTP/messages.test.ts +38 -28
  305. package/source/HTTP/messages.ts +44 -98
  306. package/source/Interception.ts +3 -4
  307. package/source/Introspection.ts +29 -14
  308. package/source/MCP/Server.ts +114 -54
  309. package/source/MCP/discover.ts +6 -7
  310. package/source/MCP/errors.ts +7 -8
  311. package/source/MCP/schema.test.ts +9 -3
  312. package/source/MCP/schema.ts +12 -16
  313. package/source/MCP/tools.ts +33 -27
  314. package/source/MCP/types.ts +4 -1
  315. package/source/Mapping.ts +25 -27
  316. package/source/Query.ts +58 -44
  317. package/source/RPC/Context.ts +8 -11
  318. package/source/RPC/Dispatcher.ts +46 -26
  319. package/source/RPC/errors.test.ts +41 -16
  320. package/source/RPC/errors.ts +9 -10
  321. package/source/RPC/names.test.ts +51 -32
  322. package/source/RPC/names.ts +26 -32
  323. package/source/RTD/Directives.ts +21 -10
  324. package/source/RTD/Endpoint.ts +4 -1
  325. package/source/RTD/Method.ts +8 -6
  326. package/source/RTD/Node.ts +32 -34
  327. package/source/RTD/Route.ts +18 -21
  328. package/source/RTD/Tree.ts +18 -18
  329. package/source/RTD/factory.ts +13 -16
  330. package/source/RTD/segment.ts +12 -10
  331. package/source/RTD/syntax/parse.test.ts +12 -6
  332. package/source/RTD/syntax/parse.ts +30 -26
  333. package/source/RTD/syntax/types.ts +17 -1
  334. package/source/RTD/walk.test.ts +64 -27
  335. package/source/Remotes.test.ts +25 -4
  336. package/source/Remotes.ts +9 -4
  337. package/source/Tenant.ts +12 -12
  338. package/source/deployment.ts +20 -20
  339. package/source/directives/auth/Anonymous.test.ts +8 -2
  340. package/source/directives/auth/Anonymous.ts +5 -8
  341. package/source/directives/auth/Anyone.ts +3 -3
  342. package/source/directives/auth/Assert.ts +10 -10
  343. package/source/directives/auth/Authorization.ts +83 -69
  344. package/source/directives/auth/Delegate.test.ts +2 -2
  345. package/source/directives/auth/Delegate.ts +8 -10
  346. package/source/directives/auth/Echo.ts +5 -8
  347. package/source/directives/auth/Federation.ts +30 -21
  348. package/source/directives/auth/Id.ts +7 -4
  349. package/source/directives/auth/Incept.ts +32 -26
  350. package/source/directives/auth/Input.ts +36 -20
  351. package/source/directives/auth/Role.test.ts +49 -23
  352. package/source/directives/auth/Role.ts +29 -22
  353. package/source/directives/auth/Rule.ts +13 -8
  354. package/source/directives/auth/Scheme.ts +7 -7
  355. package/source/directives/auth/create.ts +1 -1
  356. package/source/directives/auth/schemes.ts +1 -1
  357. package/source/directives/auth/split.ts +2 -3
  358. package/source/directives/auth/types.ts +5 -2
  359. package/source/directives/cache/Cache.ts +44 -9
  360. package/source/directives/cache/Control.ts +25 -26
  361. package/source/directives/cache/Exact.ts +1 -1
  362. package/source/directives/cache/etag.ts +38 -0
  363. package/source/directives/cors/CORS.ts +9 -7
  364. package/source/directives/dev/Development.ts +3 -4
  365. package/source/directives/dev/Faulty.ts +11 -6
  366. package/source/directives/dev/Sleep.ts +5 -7
  367. package/source/directives/dev/Stub.ts +2 -2
  368. package/source/directives/dev/Throw.ts +2 -2
  369. package/source/directives/flow/Compose.ts +26 -20
  370. package/source/directives/flow/Fetch.ts +15 -15
  371. package/source/directives/flow/Flow.ts +9 -8
  372. package/source/directives/index.ts +11 -2
  373. package/source/directives/io/IO.ts +29 -20
  374. package/source/directives/io/Input.ts +9 -12
  375. package/source/directives/io/Output.ts +20 -23
  376. package/source/directives/io/Status.test.ts +12 -8
  377. package/source/directives/io/Status.ts +9 -8
  378. package/source/directives/io/Throttle.ts +6 -7
  379. package/source/directives/io/lib/throttle/Configuration.test.ts +32 -23
  380. package/source/directives/io/lib/throttle/Configuration.ts +14 -9
  381. package/source/directives/io/lib/throttle/Keys.ts +15 -10
  382. package/source/directives/io/lib/throttle/Quotas.test.ts +33 -17
  383. package/source/directives/io/lib/throttle/Quotas.ts +20 -26
  384. package/source/directives/io/lib/throttle/Sync.test.ts +14 -10
  385. package/source/directives/io/lib/throttle/Sync.ts +9 -12
  386. package/source/directives/io/lib/throttle/Warning.ts +3 -4
  387. package/source/directives/io/lib/throttle/components/IP.ts +4 -5
  388. package/source/directives/io/lib/throttle/components/Identity.ts +1 -1
  389. package/source/directives/io/lib/throttle/components/Path.ts +1 -1
  390. package/source/directives/io/lib/throttle/components/Route.ts +2 -2
  391. package/source/directives/io/lib/throttle/components/Segment.ts +2 -2
  392. package/source/directives/io/lib/throttle/conditions/Status.ts +2 -2
  393. package/source/directives/io/schemas.test.ts +12 -6
  394. package/source/directives/map/Authority.ts +2 -2
  395. package/source/directives/map/Buffer.ts +2 -2
  396. package/source/directives/map/Claims.ts +25 -20
  397. package/source/directives/map/Headers.ts +17 -13
  398. package/source/directives/map/Language.ts +8 -5
  399. package/source/directives/map/Languages.ts +9 -3
  400. package/source/directives/map/Map.ts +25 -12
  401. package/source/directives/map/Mapping.ts +9 -6
  402. package/source/directives/map/Properties.ts +1 -1
  403. package/source/directives/map/Segments.ts +22 -15
  404. package/source/directives/mcp/MCP.ts +14 -5
  405. package/source/directives/mcp/Tool.test.ts +42 -6
  406. package/source/directives/mcp/Tool.ts +38 -7
  407. package/source/directives/oauth/Discovery.ts +7 -11
  408. package/source/directives/oauth/documents.ts +11 -14
  409. package/source/directives/octets/Context.ts +6 -3
  410. package/source/directives/octets/Delete.ts +33 -25
  411. package/source/directives/octets/Directive.ts +5 -1
  412. package/source/directives/octets/Get.ts +13 -21
  413. package/source/directives/octets/Octets.ts +20 -15
  414. package/source/directives/octets/Put.ts +62 -27
  415. package/source/directives/octets/Workflow.ts +18 -12
  416. package/source/directives/octets/bytes.ts +1 -1
  417. package/source/directives/octets/schemas.test.ts +8 -14
  418. package/source/directives/octets/workflows/Execution.ts +19 -21
  419. package/source/directives/octets/workflows/Workflow.ts +10 -7
  420. package/source/directives/require/Headers.ts +3 -4
  421. package/source/directives/require/Require.ts +3 -4
  422. package/source/exceptions.ts +19 -12
  423. package/source/index.ts +1 -1
  424. package/source/manifest.test.ts +4 -1
  425. package/source/manifest.ts +19 -13
  426. package/source/octets.d.ts +1 -1
  427. package/source/root.ts +3 -2
  428. package/source/schemas.test.ts +17 -3
  429. package/transpiled/Branch.js.map +1 -1
  430. package/transpiled/Composition.js.map +1 -1
  431. package/transpiled/Directive.js +6 -2
  432. package/transpiled/Directive.js.map +1 -1
  433. package/transpiled/Endpoint.d.ts +0 -2
  434. package/transpiled/Endpoint.js +11 -52
  435. package/transpiled/Endpoint.js.map +1 -1
  436. package/transpiled/Factory.d.ts +2 -1
  437. package/transpiled/Factory.js +1 -0
  438. package/transpiled/Factory.js.map +1 -1
  439. package/transpiled/Gateway.d.ts +2 -1
  440. package/transpiled/Gateway.js +24 -15
  441. package/transpiled/Gateway.js.map +1 -1
  442. package/transpiled/HTTP/Context.d.ts +0 -3
  443. package/transpiled/HTTP/Context.js +7 -9
  444. package/transpiled/HTTP/Context.js.map +1 -1
  445. package/transpiled/HTTP/Probe.js.map +1 -1
  446. package/transpiled/HTTP/Server.js +19 -4
  447. package/transpiled/HTTP/Server.js.map +1 -1
  448. package/transpiled/HTTP/Timing.d.ts +1 -2
  449. package/transpiled/HTTP/Timing.js +2 -10
  450. package/transpiled/HTTP/Timing.js.map +1 -1
  451. package/transpiled/HTTP/address.js.map +1 -1
  452. package/transpiled/HTTP/exceptions.js.map +1 -1
  453. package/transpiled/HTTP/formats/form.js.map +1 -1
  454. package/transpiled/HTTP/formats/json.js.map +1 -1
  455. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  456. package/transpiled/HTTP/formats/text.js.map +1 -1
  457. package/transpiled/HTTP/formats/yaml.js +4 -1
  458. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  459. package/transpiled/HTTP/messages.d.ts +3 -2
  460. package/transpiled/HTTP/messages.js +1 -43
  461. package/transpiled/HTTP/messages.js.map +1 -1
  462. package/transpiled/Interception.js.map +1 -1
  463. package/transpiled/Introspection.d.ts +2 -0
  464. package/transpiled/Introspection.js +13 -2
  465. package/transpiled/Introspection.js.map +1 -1
  466. package/transpiled/MCP/Server.js +15 -4
  467. package/transpiled/MCP/Server.js.map +1 -1
  468. package/transpiled/MCP/discover.js.map +1 -1
  469. package/transpiled/MCP/errors.js.map +1 -1
  470. package/transpiled/MCP/schema.js +1 -1
  471. package/transpiled/MCP/schema.js.map +1 -1
  472. package/transpiled/MCP/tools.js +10 -6
  473. package/transpiled/MCP/tools.js.map +1 -1
  474. package/transpiled/MCP/types.d.ts +3 -1
  475. package/transpiled/Mapping.d.ts +2 -2
  476. package/transpiled/Mapping.js +3 -5
  477. package/transpiled/Mapping.js.map +1 -1
  478. package/transpiled/Query.d.ts +6 -2
  479. package/transpiled/Query.js +23 -8
  480. package/transpiled/Query.js.map +1 -1
  481. package/transpiled/RPC/Context.js +0 -7
  482. package/transpiled/RPC/Context.js.map +1 -1
  483. package/transpiled/RPC/Dispatcher.js +4 -1
  484. package/transpiled/RPC/Dispatcher.js.map +1 -1
  485. package/transpiled/RPC/errors.js.map +1 -1
  486. package/transpiled/RPC/names.d.ts +3 -2
  487. package/transpiled/RPC/names.js +1 -1
  488. package/transpiled/RPC/names.js.map +1 -1
  489. package/transpiled/RTD/Directives.d.ts +1 -1
  490. package/transpiled/RTD/Method.js +1 -3
  491. package/transpiled/RTD/Method.js.map +1 -1
  492. package/transpiled/RTD/Node.js +5 -4
  493. package/transpiled/RTD/Node.js.map +1 -1
  494. package/transpiled/RTD/Route.js +4 -1
  495. package/transpiled/RTD/Route.js.map +1 -1
  496. package/transpiled/RTD/Tree.js +1 -1
  497. package/transpiled/RTD/Tree.js.map +1 -1
  498. package/transpiled/RTD/factory.js.map +1 -1
  499. package/transpiled/RTD/segment.js.map +1 -1
  500. package/transpiled/RTD/syntax/parse.js.map +1 -1
  501. package/transpiled/RTD/syntax/types.d.ts +6 -0
  502. package/transpiled/RTD/syntax/types.js +10 -1
  503. package/transpiled/RTD/syntax/types.js.map +1 -1
  504. package/transpiled/Remotes.js.map +1 -1
  505. package/transpiled/Tenant.d.ts +1 -1
  506. package/transpiled/Tenant.js.map +1 -1
  507. package/transpiled/deployment.d.ts +3 -0
  508. package/transpiled/deployment.js +6 -1
  509. package/transpiled/deployment.js.map +1 -1
  510. package/transpiled/directives/auth/Anonymous.js +1 -3
  511. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  512. package/transpiled/directives/auth/Anyone.js.map +1 -1
  513. package/transpiled/directives/auth/Assert.js.map +1 -1
  514. package/transpiled/directives/auth/Authorization.js +7 -3
  515. package/transpiled/directives/auth/Authorization.js.map +1 -1
  516. package/transpiled/directives/auth/Delegate.js.map +1 -1
  517. package/transpiled/directives/auth/Echo.js +1 -3
  518. package/transpiled/directives/auth/Echo.js.map +1 -1
  519. package/transpiled/directives/auth/Federation.js +3 -7
  520. package/transpiled/directives/auth/Federation.js.map +1 -1
  521. package/transpiled/directives/auth/Id.js.map +1 -1
  522. package/transpiled/directives/auth/Incept.js +1 -1
  523. package/transpiled/directives/auth/Incept.js.map +1 -1
  524. package/transpiled/directives/auth/Input.js.map +1 -1
  525. package/transpiled/directives/auth/Role.js.map +1 -1
  526. package/transpiled/directives/auth/Rule.js.map +1 -1
  527. package/transpiled/directives/auth/Scheme.js +1 -2
  528. package/transpiled/directives/auth/Scheme.js.map +1 -1
  529. package/transpiled/directives/auth/create.js.map +1 -1
  530. package/transpiled/directives/auth/schemes.js.map +1 -1
  531. package/transpiled/directives/auth/split.js.map +1 -1
  532. package/transpiled/directives/auth/types.d.ts +3 -1
  533. package/transpiled/directives/cache/Cache.js +28 -2
  534. package/transpiled/directives/cache/Cache.js.map +1 -1
  535. package/transpiled/directives/cache/Control.js +1 -1
  536. package/transpiled/directives/cache/Control.js.map +1 -1
  537. package/transpiled/directives/cache/etag.d.ts +10 -0
  538. package/transpiled/directives/cache/etag.js +30 -0
  539. package/transpiled/directives/cache/etag.js.map +1 -0
  540. package/transpiled/directives/cors/CORS.js.map +1 -1
  541. package/transpiled/directives/dev/Development.js.map +1 -1
  542. package/transpiled/directives/dev/Faulty.js.map +1 -1
  543. package/transpiled/directives/dev/Sleep.js.map +1 -1
  544. package/transpiled/directives/dev/Stub.js.map +1 -1
  545. package/transpiled/directives/dev/Throw.js.map +1 -1
  546. package/transpiled/directives/flow/Compose.js +7 -3
  547. package/transpiled/directives/flow/Compose.js.map +1 -1
  548. package/transpiled/directives/flow/Fetch.js.map +1 -1
  549. package/transpiled/directives/flow/Flow.js.map +1 -1
  550. package/transpiled/directives/index.js +11 -1
  551. package/transpiled/directives/index.js.map +1 -1
  552. package/transpiled/directives/io/IO.d.ts +1 -1
  553. package/transpiled/directives/io/IO.js.map +1 -1
  554. package/transpiled/directives/io/Input.js +1 -1
  555. package/transpiled/directives/io/Input.js.map +1 -1
  556. package/transpiled/directives/io/Output.js +3 -3
  557. package/transpiled/directives/io/Output.js.map +1 -1
  558. package/transpiled/directives/io/Status.js.map +1 -1
  559. package/transpiled/directives/io/Throttle.js +1 -1
  560. package/transpiled/directives/io/Throttle.js.map +1 -1
  561. package/transpiled/directives/io/lib/throttle/Configuration.js +8 -2
  562. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -1
  563. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -1
  564. package/transpiled/directives/io/lib/throttle/Quotas.js +4 -3
  565. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -1
  566. package/transpiled/directives/io/lib/throttle/Sync.d.ts +1 -1
  567. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
  568. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -1
  569. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -1
  570. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -1
  571. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -1
  572. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -1
  573. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -1
  574. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -1
  575. package/transpiled/directives/map/Authority.js.map +1 -1
  576. package/transpiled/directives/map/Buffer.js.map +1 -1
  577. package/transpiled/directives/map/Claims.js.map +1 -1
  578. package/transpiled/directives/map/Headers.js.map +1 -1
  579. package/transpiled/directives/map/Language.js.map +1 -1
  580. package/transpiled/directives/map/Languages.js.map +1 -1
  581. package/transpiled/directives/map/Map.js.map +1 -1
  582. package/transpiled/directives/map/Mapping.js.map +1 -1
  583. package/transpiled/directives/map/Properties.js.map +1 -1
  584. package/transpiled/directives/map/Segments.js.map +1 -1
  585. package/transpiled/directives/mcp/MCP.js +7 -1
  586. package/transpiled/directives/mcp/MCP.js.map +1 -1
  587. package/transpiled/directives/mcp/Tool.d.ts +6 -1
  588. package/transpiled/directives/mcp/Tool.js +16 -3
  589. package/transpiled/directives/mcp/Tool.js.map +1 -1
  590. package/transpiled/directives/oauth/Discovery.js.map +1 -1
  591. package/transpiled/directives/oauth/documents.js.map +1 -1
  592. package/transpiled/directives/octets/Context.js +1 -1
  593. package/transpiled/directives/octets/Context.js.map +1 -1
  594. package/transpiled/directives/octets/Delete.js.map +1 -1
  595. package/transpiled/directives/octets/Directive.js.map +1 -1
  596. package/transpiled/directives/octets/Get.js.map +1 -1
  597. package/transpiled/directives/octets/Octets.js +1 -1
  598. package/transpiled/directives/octets/Octets.js.map +1 -1
  599. package/transpiled/directives/octets/Put.js.map +1 -1
  600. package/transpiled/directives/octets/Workflow.js.map +1 -1
  601. package/transpiled/directives/octets/bytes.js.map +1 -1
  602. package/transpiled/directives/octets/workflows/Execution.js +1 -2
  603. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  604. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  605. package/transpiled/directives/require/Headers.js.map +1 -1
  606. package/transpiled/directives/require/Require.js.map +1 -1
  607. package/transpiled/exceptions.js.map +1 -1
  608. package/transpiled/index.d.ts +1 -1
  609. package/transpiled/index.js +1 -1
  610. package/transpiled/index.js.map +1 -1
  611. package/transpiled/manifest.js +5 -1
  612. package/transpiled/manifest.js.map +1 -1
  613. package/transpiled/root.js.map +1 -1
  614. package/tsconfig.tsbuildinfo +1 -1
  615. package/CHANGELOG.md +0 -541
  616. package/source/redact.test.ts +0 -27
  617. package/source/redact.ts +0 -21
  618. package/transpiled/redact.d.ts +0 -5
  619. package/transpiled/redact.js +0 -17
  620. package/transpiled/redact.js.map +0 -1
@@ -24,7 +24,6 @@ Feature: Optimistic concurrency control
24
24
  Then the following reply is sent:
25
25
  """
26
26
  201 Created
27
- etag: "1"
28
27
 
29
28
  id: ${{ id }}
30
29
  """
@@ -74,88 +73,6 @@ Feature: Optimistic concurrency control
74
73
  Then the following reply is sent:
75
74
  """
76
75
  200 OK
77
- etag: "2"
78
- """
79
-
80
- Scenario: Using etag with enumeration
81
- Given the `pots` is running with the following manifest:
82
- """yaml
83
- exposition:
84
- /:
85
- io:output: true
86
- GET: enumerate
87
- """
88
- # sorted and bounded, or the collection does not enumerate the same way twice
89
- When the following request is received:
90
- """
91
- GET /pots/?sort=id:asc&limit=2 HTTP/1.1
92
- host: nex.toa.io
93
- accept: application/yaml
94
- """
95
- Then the following reply is sent:
96
- """
97
- 200 OK
98
- etag: "${{ etag }}"
99
- """
100
- # the same representation must be asked for, the tag identifies it
101
- When the following request is received:
102
- """
103
- GET /pots/?sort=id:asc&limit=2 HTTP/1.1
104
- host: nex.toa.io
105
- accept: application/yaml
106
- if-none-match: "${{ etag }}"
107
- """
108
- Then the following reply is sent:
109
- """
110
- 304 Not Modified
111
- etag: "${{ etag }}"
112
- """
113
-
114
- Scenario: `etag` of a reply that carries no version
115
- Given the `echo` is running with the following manifest:
116
- """yaml
117
- exposition:
118
- /:name:
119
- io:output: true
120
- GET: compute
121
- """
122
- When the following request is received:
123
- """
124
- GET /echo/Bob/ HTTP/1.1
125
- host: nex.toa.io
126
- accept: text/plain
127
- """
128
- Then the following reply is sent:
129
- """
130
- 200 OK
131
- etag: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
132
-
133
- Hello Bob
134
- """
135
- When the following request is received:
136
- """
137
- GET /echo/Bob/ HTTP/1.1
138
- host: nex.toa.io
139
- accept: text/plain
140
- if-none-match: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
141
- """
142
- Then the following reply is sent:
143
- """
144
- 304 Not Modified
145
- etag: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
146
- """
147
- # the tag identifies the representation, which is what `vary: accept` says
148
- When the following request is received:
149
- """
150
- GET /echo/Bob/ HTTP/1.1
151
- host: nex.toa.io
152
- accept: application/yaml
153
- if-none-match: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
154
- """
155
- Then the following reply is sent:
156
- """
157
- 200 OK
158
- etag: "360c52c694c418b4a793a4815e611206ab17fe04836351a65638a15d1491810b"
159
76
  """
160
77
 
161
78
  Scenario: Weak `etag`
@@ -182,7 +99,6 @@ Feature: Optimistic concurrency control
182
99
  Then the following reply is sent:
183
100
  """
184
101
  201 Created
185
- etag: "1"
186
102
 
187
103
  id: ${{ id }}
188
104
  """
@@ -232,7 +148,6 @@ Feature: Optimistic concurrency control
232
148
  Then the following reply is sent:
233
149
  """
234
150
  200 OK
235
- etag: "2"
236
151
  """
237
152
 
238
153
  Scenario: Hash `if-none-match` on versioned resource
@@ -258,7 +173,6 @@ Feature: Optimistic concurrency control
258
173
  Then the following reply is sent:
259
174
  """
260
175
  201 Created
261
- etag: "1"
262
176
 
263
177
  id: ${{ id }}
264
178
  """
@@ -5,9 +5,9 @@ Feature: Bans
5
5
  Given the `identity.basic` database contains:
6
6
  # developer:secret
7
7
  # user:12345
8
- | _id | authority | username | password | _deleted |
9
- | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | null |
10
- | e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK | null |
8
+ | _id | authority | username | password | DELETED |
9
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | null |
10
+ | e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK | null |
11
11
  And the `identity.bans` database is empty
12
12
 
13
13
  Scenario: Banning an Identity
@@ -132,8 +132,8 @@ Feature: Basic authentication
132
132
  access: granted!
133
133
  """
134
134
  And the `identity.basic` database contains:
135
- | _id | _version | authority | username | password |
136
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
135
+ | _id | VERSION | authority | username | password |
136
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
137
137
  When the following request is received:
138
138
  """
139
139
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
@@ -173,9 +173,9 @@ Feature: Basic authentication
173
173
 
174
174
  Scenario: Changing other identity's password
175
175
  Given the `identity.basic` database contains:
176
- | _id | authority | username | password | _version |
177
- | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
178
- | 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
176
+ | _id | authority | username | password | VERSION |
177
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
178
+ | 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
179
179
  When the following request is received:
180
180
  """
181
181
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
@@ -222,8 +222,8 @@ Feature: Basic authentication
222
222
  - ^[^A]{1,16}$ # should not contain 'A'
223
223
  """
224
224
  And the `identity.basic` database contains:
225
- | _id | _version | authority | username | password |
226
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
225
+ | _id | VERSION | authority | username | password |
226
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
227
227
  When the following request is received:
228
228
  """
229
229
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
@@ -508,8 +508,8 @@ Feature: Basic authentication
508
508
 
509
509
  Scenario: Check if username is available
510
510
  Given the `identity.basic` database contains:
511
- | _id | authority | username | password | _version |
512
- | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
511
+ | _id | authority | username | password | VERSION |
512
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
513
513
  When the following request is received:
514
514
  """
515
515
  GET /identity/basic/usernames/ZGV2ZWxvcGVy/ HTTP/1.1
@@ -9,7 +9,7 @@ Feature: Identity Federation
9
9
  Given the `identity.federation` configuration:
10
10
  """yaml
11
11
  trust:
12
- - iss: http://localhost:44444
12
+ - iss: http://localhost:31005
13
13
  aud: test
14
14
  """
15
15
  And the IDP token for User is issued
@@ -68,14 +68,14 @@ Feature: Identity Federation
68
68
  200 OK
69
69
 
70
70
  - id: ${{ User.credential }}
71
- iss: http://localhost:44444
71
+ iss: http://localhost:31005
72
72
  """
73
73
 
74
74
  Scenario: Creating an Identity using inception
75
75
  Given the `identity.federation` configuration:
76
76
  """yaml
77
77
  trust:
78
- - iss: http://localhost:44444
78
+ - iss: http://localhost:31005
79
79
  aud: test
80
80
  assert: false
81
81
  """
@@ -150,7 +150,7 @@ Feature: Identity Federation
150
150
  200 OK
151
151
 
152
152
  - id: ${{ Bill.credential }}
153
- iss: http://localhost:44444
153
+ iss: http://localhost:31005
154
154
  """
155
155
  And the following request is received:
156
156
  # same credentials
@@ -171,11 +171,11 @@ Feature: Identity Federation
171
171
  Given the `identity.federation` configuration:
172
172
  """yaml
173
173
  trust:
174
- - iss: http://localhost:44444
174
+ - iss: http://localhost:31005
175
175
  aud: test
176
176
  principal:
177
177
  authority: nex
178
- iss: http://localhost:44444
178
+ iss: http://localhost:31005
179
179
  sub: root
180
180
  """
181
181
  And the IDP token for root is issued
@@ -218,7 +218,7 @@ Feature: Identity Federation
218
218
  Given the `identity.federation` configuration:
219
219
  """yaml
220
220
  trust:
221
- - iss: http://localhost:44444
221
+ - iss: http://localhost:31005
222
222
  aud: test
223
223
  """
224
224
  And the `identity.basic` database is empty
@@ -260,7 +260,7 @@ Feature: Identity Federation
260
260
  201 Created
261
261
 
262
262
  id: ${{ Bob.credential }}
263
- iss: http://localhost:44444
263
+ iss: http://localhost:31005
264
264
  """
265
265
  # the created credential is listed as is
266
266
  When the following request is received:
@@ -275,7 +275,7 @@ Feature: Identity Federation
275
275
  200 OK
276
276
 
277
277
  - id: ${{ Bob.credential }}
278
- iss: http://localhost:44444
278
+ iss: http://localhost:31005
279
279
  """
280
280
  And the following request is received:
281
281
  """
@@ -335,7 +335,7 @@ Feature: Identity Federation
335
335
  Given the `identity.federation` configuration:
336
336
  """yaml
337
337
  trust:
338
- - iss: http://localhost:44444
338
+ - iss: http://localhost:31005
339
339
  aud: nex
340
340
  secret: $IDP_SECRET
341
341
  """
@@ -363,7 +363,7 @@ Feature: Identity Federation
363
363
  Given the `identity.federation` configuration:
364
364
  """yaml
365
365
  trust:
366
- - iss: http://localhost:44444
366
+ - iss: http://localhost:31005
367
367
  aud: nex
368
368
  signature:
369
369
  iss: io.toa.nex.id
@@ -82,8 +82,8 @@ Feature: Custom tokens
82
82
  | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
83
83
  | e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK |
84
84
  And the `identity.roles` database contains:
85
- | _id | identity | role |
86
- | 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:tokens |
85
+ | _id | identity | role |
86
+ | 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:tokens |
87
87
  When the following request is received:
88
88
  """
89
89
  POST /identity/tokens/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
@@ -258,7 +258,7 @@ Feature: Custom tokens
258
258
  200 OK
259
259
 
260
260
  - id: ${{ kid }}
261
- _created: ${{ created }}
261
+ CREATED: ${{ created }}
262
262
  label: One-time token
263
263
  expires: ${{ expires }}
264
264
  """
@@ -369,8 +369,8 @@ Feature: Custom tokens
369
369
 
370
370
  Scenario: Changing the password revokes custom tokens
371
371
  Given the `identity.basic` database contains:
372
- | _id | _version | authority | username | password |
373
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
372
+ | _id | VERSION | authority | username | password |
373
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
374
374
  And the `identity.tokens` configuration:
375
375
  """yaml
376
376
  cache:
@@ -92,8 +92,8 @@ Feature: Tokens lifecycle
92
92
  refresh: 1
93
93
  """
94
94
  And the `identity.basic` database contains:
95
- | _id | _version | authority | username | password |
96
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
95
+ | _id | VERSION | authority | username | password |
96
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
97
97
  When the following request is received:
98
98
  """
99
99
  GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
@@ -1,3 +1,4 @@
1
+ @timing
1
2
  Feature: Request interruptions
2
3
 
3
4
  Scenario: Connection reset while processing a request
@@ -20,8 +20,8 @@ Feature: Reading the introspection map
20
20
 
21
21
  Scenario: Reading the nodes
22
22
  Given the `introspection.nodes` database contains:
23
- | _id | namespace | component | version | _version | _deleted |
24
- | 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
23
+ | _id | namespace | component | version | VERSION | DELETED |
24
+ | 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
25
25
  When the following request is received:
26
26
  """
27
27
  GET /introspection/nodes/ HTTP/1.1
@@ -42,8 +42,8 @@ Feature: Reading the introspection map
42
42
 
43
43
  Scenario: Reading one node
44
44
  Given the `introspection.nodes` database contains:
45
- | _id | namespace | component | version | _version | _deleted |
46
- | 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
45
+ | _id | namespace | component | version | VERSION | DELETED |
46
+ | 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
47
47
  When the following request is received:
48
48
  """
49
49
  GET /introspection/nodes/70e1a6551346c6932657cdb2526df0fa/ HTTP/1.1
@@ -1,3 +1,4 @@
1
+ @timing
1
2
  Feature: Request throttling
2
3
 
3
4
  Scenario: Throttle requests to a path
@@ -234,7 +234,7 @@ Feature: HTTP context mapping
234
234
  And the `identity.federation` configuration:
235
235
  """yaml
236
236
  trust:
237
- - iss: http://localhost:44444
237
+ - iss: http://localhost:31005
238
238
  aud: test
239
239
  """
240
240
  And the `echo` is running with the following manifest:
@@ -269,7 +269,7 @@ Feature: HTTP context mapping
269
269
  And the `identity.federation` configuration:
270
270
  """yaml
271
271
  trust:
272
- - iss: http://localhost:44444
272
+ - iss: http://localhost:31005
273
273
  aud: test
274
274
  assert: false
275
275
  """
@@ -8,7 +8,8 @@ Feature: Model Context Protocol
8
8
  says.
9
9
 
10
10
  What a tool is, is stated on the route and nowhere else. The operation states what it is
11
- too, and that is not this: one operation mounted on two routes is two tools.
11
+ too, and that is not this: one operation mounted on two routes is two tools. A `title`
12
+ beside the description is what a person is shown where a client lists what it may call.
12
13
 
13
14
  Two revisions are answered from one endpoint that remembers nothing between requests: the
14
15
  modern one, where every request carries its own version and capabilities, and the one
@@ -42,7 +43,9 @@ Feature: Model Context Protocol
42
43
  GET:
43
44
  query:
44
45
  criteria: volume>=100
45
- mcp:tool: The pots that hold a hundred or more, newest first.
46
+ mcp:tool:
47
+ title: Large pots
48
+ description: The pots that hold a hundred or more, newest first.
46
49
  endpoint: enumerate
47
50
  /unpublished:
48
51
  GET: enumerate
@@ -160,7 +163,7 @@ Feature: Model Context Protocol
160
163
  id: 2
161
164
  result:
162
165
  tools:
163
- - name: pots/GET
166
+ - name: pots.GET
164
167
  description: All the pots, newest first.
165
168
  inputSchema:
166
169
  type: object
@@ -178,7 +181,7 @@ Feature: Model Context Protocol
178
181
  additionalProperties: false
179
182
  annotations:
180
183
  readOnlyHint: true
181
- - name: pots/POST
184
+ - name: pots.POST
182
185
  description: Start a new pot brewing.
183
186
  inputSchema:
184
187
  type: object
@@ -192,7 +195,7 @@ Feature: Model Context Protocol
192
195
  - title
193
196
  - volume
194
197
  additionalProperties: false
195
- - name: pots/_id/GET
198
+ - name: pots._id.GET
196
199
  description: One pot, by its id.
197
200
  inputSchema:
198
201
  type: object
@@ -202,7 +205,8 @@ Feature: Model Context Protocol
202
205
  required:
203
206
  - id
204
207
  additionalProperties: false
205
- - name: pots/large/GET
208
+ - name: pots.large.GET
209
+ title: Large pots
206
210
  description: The pots that hold a hundred or more, newest first.
207
211
  annotations:
208
212
  readOnlyHint: true
@@ -212,11 +216,11 @@ Feature: Model Context Protocol
212
216
  """
213
217
  And the reply does not contain:
214
218
  """
215
- pots/guarded/GET
219
+ pots.guarded.GET
216
220
  """
217
221
  And the reply does not contain:
218
222
  """
219
- pots/unpublished/GET
223
+ pots.unpublished.GET
220
224
  """
221
225
  And the reply does not contain:
222
226
  """
@@ -235,10 +239,10 @@ Feature: Model Context Protocol
235
239
  content-type: application/json
236
240
  mcp-protocol-version: 2026-07-28
237
241
  mcp-method: tools/call
238
- mcp-name: pots/unpublished/GET
242
+ mcp-name: pots.unpublished.GET
239
243
 
240
244
  {"jsonrpc": "2.0", "id": 30, "method": "tools/call",
241
- "params": {"name": "pots/unpublished/GET", "arguments": {},
245
+ "params": {"name": "pots.unpublished.GET", "arguments": {},
242
246
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
243
247
  "io.modelcontextprotocol/clientCapabilities": {}}}}
244
248
  """
@@ -283,7 +287,7 @@ Feature: Model Context Protocol
283
287
  id: 20
284
288
  result:
285
289
  tools:
286
- - name: pots/GET
290
+ - name: pots.GET
287
291
  """
288
292
 
289
293
  Scenario: A tool takes what the procedure takes
@@ -295,10 +299,10 @@ Feature: Model Context Protocol
295
299
  content-type: application/json
296
300
  mcp-protocol-version: 2026-07-28
297
301
  mcp-method: tools/call
298
- mcp-name: pots/_id/GET
302
+ mcp-name: pots._id.GET
299
303
 
300
304
  {"jsonrpc": "2.0", "id": 3, "method": "tools/call",
301
- "params": {"name": "pots/_id/GET",
305
+ "params": {"name": "pots._id.GET",
302
306
  "arguments": {"id": "4c4759e6f9c74da989d64511df42d6f4"},
303
307
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
304
308
  "io.modelcontextprotocol/clientCapabilities": {}}}}
@@ -326,10 +330,10 @@ Feature: Model Context Protocol
326
330
  content-type: application/json
327
331
  mcp-protocol-version: 2026-07-28
328
332
  mcp-method: tools/call
329
- mcp-name: pots/POST
333
+ mcp-name: pots.POST
330
334
 
331
335
  {"jsonrpc": "2.0", "id": 4, "method": "tools/call",
332
- "params": {"name": "pots/POST", "arguments": {"title": "Kettle", "volume": 1.7},
336
+ "params": {"name": "pots.POST", "arguments": {"title": "Kettle", "volume": 1.7},
333
337
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
334
338
  "io.modelcontextprotocol/clientCapabilities": {}}}}
335
339
  """
@@ -354,10 +358,10 @@ Feature: Model Context Protocol
354
358
  content-type: application/json
355
359
  mcp-protocol-version: 2026-07-28
356
360
  mcp-method: tools/call
357
- mcp-name: kettles/GET
361
+ mcp-name: kettles.GET
358
362
 
359
363
  {"jsonrpc": "2.0", "id": 5, "method": "tools/call",
360
- "params": {"name": "kettles/GET", "arguments": {},
364
+ "params": {"name": "kettles.GET", "arguments": {},
361
365
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
362
366
  "io.modelcontextprotocol/clientCapabilities": {}}}}
363
367
  """
@@ -403,10 +407,10 @@ Feature: Model Context Protocol
403
407
  content-type: application/json
404
408
  mcp-protocol-version: 2026-07-28
405
409
  mcp-method: tools/call
406
- mcp-name: pots/GET
410
+ mcp-name: pots.GET
407
411
 
408
412
  {"jsonrpc": "2.0", "id": 7, "method": "tools/call",
409
- "params": {"name": "pots/POST", "arguments": {},
413
+ "params": {"name": "pots.POST", "arguments": {},
410
414
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
411
415
  "io.modelcontextprotocol/clientCapabilities": {}}}}
412
416
  """
@@ -484,7 +488,7 @@ Feature: Model Context Protocol
484
488
  named a record that is not the caller's, which it may correct itself by naming another.
485
489
  A challenge here would send the client to ask for a scope that would not help.
486
490
 
487
- # developer:secret, who is not an `admin` and so may not reach `pots/guarded/GET`
491
+ # developer:secret, who is not an `admin` and so may not reach `pots.guarded.GET`
488
492
  Given the `identity.basic` database contains:
489
493
  | _id | authority | username | password |
490
494
  | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
@@ -498,10 +502,10 @@ Feature: Model Context Protocol
498
502
  content-type: application/json
499
503
  mcp-protocol-version: 2026-07-28
500
504
  mcp-method: tools/call
501
- mcp-name: pots/guarded/GET
505
+ mcp-name: pots.guarded.GET
502
506
 
503
507
  {"jsonrpc": "2.0", "id": 31, "method": "tools/call",
504
- "params": {"name": "pots/guarded/GET", "arguments": {},
508
+ "params": {"name": "pots.guarded.GET", "arguments": {},
505
509
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
506
510
  "io.modelcontextprotocol/clientCapabilities": {}}}}
507
511
  """
@@ -531,10 +535,10 @@ Feature: Model Context Protocol
531
535
  content-type: application/json
532
536
  mcp-protocol-version: 2026-07-28
533
537
  mcp-method: tools/call
534
- mcp-name: pots/_id/GET
538
+ mcp-name: pots._id.GET
535
539
 
536
540
  {"jsonrpc": "2.0", "id": 32, "method": "tools/call",
537
- "params": {"name": "pots/_id/GET",
541
+ "params": {"name": "pots._id.GET",
538
542
  "arguments": {"id": "not-an-id"},
539
543
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
540
544
  "io.modelcontextprotocol/clientCapabilities": {}}}}
@@ -570,10 +574,10 @@ Feature: Model Context Protocol
570
574
  content-type: application/json
571
575
  mcp-protocol-version: 2026-07-28
572
576
  mcp-method: tools/call
573
- mcp-name: echo/GET
577
+ mcp-name: echo.GET
574
578
 
575
579
  {"jsonrpc": "2.0", "id": 10, "method": "tools/call",
576
- "params": {"name": "echo/GET", "arguments": {},
580
+ "params": {"name": "echo.GET", "arguments": {},
577
581
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
578
582
  "io.modelcontextprotocol/clientCapabilities": {}}}}
579
583
  """
@@ -612,10 +616,10 @@ Feature: Model Context Protocol
612
616
  content-type: application/json
613
617
  mcp-protocol-version: 2026-07-28
614
618
  mcp-method: tools/call
615
- mcp-name: echo/GET
619
+ mcp-name: echo.GET
616
620
 
617
621
  {"jsonrpc": "2.0", "id": 11, "method": "tools/call",
618
- "params": {"name": "echo/GET", "arguments": {"greeting": "hello"},
622
+ "params": {"name": "echo.GET", "arguments": {"greeting": "hello"},
619
623
  "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
620
624
  "io.modelcontextprotocol/clientCapabilities": {}}}}
621
625
  """
@@ -119,7 +119,7 @@ Feature: Authorization code flow
119
119
  id: 1
120
120
  result:
121
121
  tools:
122
- - name: pots/GET
122
+ - name: pots.GET
123
123
  """
124
124
 
125
125
  Scenario: A code is spent once
@@ -1,4 +1,4 @@
1
- @cloudinary
1
+ @manual @cloudinary
2
2
  Feature: Octets with Cloudinary storage
3
3
 
4
4
  Background:
@@ -1,3 +1,4 @@
1
+ @network
1
2
  Feature: Download external resources
2
3
 
3
4
  Scenario Outline: Download from trusted location defined as <type>
@@ -27,7 +27,6 @@ Feature: Request requirements
27
27
  Then the following reply is sent:
28
28
  """
29
29
  201 Created
30
- etag: "${{ etag }}"
31
30
 
32
31
  id: ${{ id }}
33
32
  """
@@ -53,7 +52,7 @@ Feature: Request requirements
53
52
  host: nex.toa.io
54
53
  content-type: application/yaml
55
54
  accept: text/plain
56
- if-match: "${{ etag }}"
55
+ if-match: "1"
57
56
 
58
57
  title: Bye
59
58
  """