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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/components/identity.basic/package.json +8 -0
  2. package/components/identity.federation/package.json +8 -0
  3. package/components/identity.passkeys/package.json +8 -0
  4. package/components/identity.tokens/package.json +10 -0
  5. package/package.json +25 -13
  6. package/transpiled/Discovery/Explorer.js +1 -1
  7. package/transpiled/Discovery/Explorer.js.map +1 -1
  8. package/transpiled/Discovery/Site.js +1 -1
  9. package/transpiled/Discovery/Site.js.map +1 -1
  10. package/transpiled/Discovery/trunk.js +1 -1
  11. package/transpiled/Discovery/trunk.js.map +1 -1
  12. package/transpiled/Endpoint.js +3 -0
  13. package/transpiled/Endpoint.js.map +1 -1
  14. package/transpiled/Factory.js +1 -1
  15. package/transpiled/Factory.js.map +1 -1
  16. package/transpiled/Gateway.js +1 -1
  17. package/transpiled/Gateway.js.map +1 -1
  18. package/transpiled/HTTP/Server.d.ts +1 -1
  19. package/transpiled/HTTP/Server.js +1 -1
  20. package/transpiled/HTTP/Server.js.map +1 -1
  21. package/transpiled/Introspection.d.ts +6 -0
  22. package/transpiled/Introspection.js +1 -0
  23. package/transpiled/Introspection.js.map +1 -1
  24. package/transpiled/MCP/Server.d.ts +1 -1
  25. package/transpiled/MCP/Server.js +1 -1
  26. package/transpiled/MCP/Server.js.map +1 -1
  27. package/transpiled/MCP/discover.d.ts +1 -1
  28. package/transpiled/MCP/schema.js +2 -2
  29. package/transpiled/Query.d.ts +2 -12
  30. package/transpiled/Query.js +3 -13
  31. package/transpiled/Query.js.map +1 -1
  32. package/transpiled/RPC/Dispatcher.d.ts +1 -1
  33. package/transpiled/RPC/Dispatcher.js +2 -2
  34. package/transpiled/RPC/Dispatcher.js.map +1 -1
  35. package/transpiled/RTD/Endpoint.d.ts +2 -3
  36. package/transpiled/RTD/Tree.js +1 -1
  37. package/transpiled/RTD/Tree.js.map +1 -1
  38. package/transpiled/RTD/factory.js +1 -1
  39. package/transpiled/RTD/factory.js.map +1 -1
  40. package/transpiled/RTD/syntax/index.d.ts +1 -2
  41. package/transpiled/RTD/syntax/index.js +1 -2
  42. package/transpiled/RTD/syntax/index.js.map +1 -1
  43. package/transpiled/Tenant.js +1 -1
  44. package/transpiled/Tenant.js.map +1 -1
  45. package/transpiled/directives/auth/Authorization.js +1 -1
  46. package/transpiled/directives/auth/Authorization.js.map +1 -1
  47. package/transpiled/directives/io/IO.js +1 -1
  48. package/transpiled/directives/io/IO.js.map +1 -1
  49. package/transpiled/directives/oauth/documents.d.ts +1 -1
  50. package/transpiled/index.d.ts +0 -2
  51. package/transpiled/index.js +0 -2
  52. package/transpiled/index.js.map +1 -1
  53. package/transpiled/service.js +1 -1
  54. package/transpiled/service.js.map +1 -1
  55. package/ui/dist/_app/immutable/assets/0.Cu0AnR_8.css +2 -0
  56. package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
  57. package/ui/dist/_app/immutable/assets/ui.C8aD6zzF.css +1 -0
  58. package/ui/dist/_app/immutable/chunks/B8GvXrmq.js +1 -0
  59. package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
  60. package/ui/dist/_app/immutable/chunks/D6q28_Ok.js +86 -0
  61. package/ui/dist/_app/immutable/chunks/{D9tE1yyO.js → DVlaUfVU.js} +1 -1
  62. package/ui/dist/_app/immutable/chunks/DpB73ZB6.js +6 -0
  63. package/ui/dist/_app/immutable/entry/app.CTava8yn.js +2 -0
  64. package/ui/dist/_app/immutable/entry/start.yWN0gSLA.js +1 -0
  65. package/ui/dist/_app/immutable/nodes/0.HKRDBYrC.js +1 -0
  66. package/ui/dist/_app/immutable/nodes/1.CLa0ydOi.js +1 -0
  67. package/ui/dist/_app/immutable/nodes/2.C9Kaym8C.js +8 -0
  68. package/ui/dist/_app/immutable/nodes/3.C1X4_rXZ.js +1 -0
  69. package/ui/dist/_app/immutable/nodes/4.DdzDIi9E.js +1 -0
  70. package/ui/dist/_app/immutable/nodes/5.DpbmCMdw.js +1 -0
  71. package/ui/dist/_app/version.json +1 -1
  72. package/ui/dist/index.html +12 -12
  73. package/CHANGELOG.md +0 -35
  74. package/components/identity.bans/tsconfig.tsbuildinfo +0 -1
  75. package/components/identity.basic/source/lib/credentials.test.ts +0 -18
  76. package/components/identity.basic/tsconfig.tsbuildinfo +0 -1
  77. package/components/identity.clients/source/lib/canonical.test.ts +0 -43
  78. package/components/identity.clients/source/lib/cimd.test.ts +0 -122
  79. package/components/identity.clients/source/lib/redirect.test.ts +0 -47
  80. package/components/identity.clients/tsconfig.tsbuildinfo +0 -1
  81. package/components/identity.credentials/source/list.test.ts +0 -70
  82. package/components/identity.credentials/tsconfig.tsbuildinfo +0 -1
  83. package/components/identity.federation/source/lib/discovery.test.ts +0 -60
  84. package/components/identity.federation/source/list.test.ts +0 -41
  85. package/components/identity.federation/tsconfig.tsbuildinfo +0 -1
  86. package/components/identity.grants/tsconfig.tsbuildinfo +0 -1
  87. package/components/identity.keys/tsconfig.tsbuildinfo +0 -1
  88. package/components/identity.otp/tsconfig.tsbuildinfo +0 -1
  89. package/components/identity.passkeys/source/errors.test.ts +0 -34
  90. package/components/identity.passkeys/source/webauthn.test.ts +0 -26
  91. package/components/identity.passkeys/tsconfig.tsbuildinfo +0 -1
  92. package/components/identity.roles/tsconfig.tsbuildinfo +0 -1
  93. package/components/identity.tokens/source/authenticate.test.ts +0 -112
  94. package/components/identity.tokens/source/decrypt.test.ts +0 -216
  95. package/components/identity.tokens/source/encrypt.test.ts +0 -150
  96. package/components/identity.tokens/source/issue.test.ts +0 -73
  97. package/components/identity.tokens/source/lib/form.test.ts +0 -25
  98. package/components/identity.tokens/source/lib/paseto.test.ts +0 -62
  99. package/components/identity.tokens/tsconfig.tsbuildinfo +0 -1
  100. package/context.toa.yaml +0 -31
  101. package/cucumber.mjs +0 -7
  102. package/documentation/.assets/ia3-dark.jpg +0 -0
  103. package/documentation/.assets/ia3-light.jpg +0 -0
  104. package/documentation/.assets/overview-dark.jpg +0 -0
  105. package/documentation/.assets/overview-light.jpg +0 -0
  106. package/documentation/.assets/role-scopes-dark.jpg +0 -0
  107. package/documentation/.assets/role-scopes-light.jpg +0 -0
  108. package/documentation/.assets/rtd-dark.jpg +0 -0
  109. package/documentation/.assets/rtd-light.jpg +0 -0
  110. package/documentation/access.md +0 -350
  111. package/documentation/authorities.md +0 -51
  112. package/documentation/cache.md +0 -72
  113. package/documentation/components.md +0 -472
  114. package/documentation/consent.md +0 -101
  115. package/documentation/credentials.md +0 -88
  116. package/documentation/dev.md +0 -30
  117. package/documentation/discovery.md +0 -81
  118. package/documentation/flow.md +0 -44
  119. package/documentation/help.md +0 -122
  120. package/documentation/identity.md +0 -304
  121. package/documentation/introspection.md +0 -123
  122. package/documentation/io.md +0 -167
  123. package/documentation/ip.md +0 -24
  124. package/documentation/map.md +0 -123
  125. package/documentation/mcp.md +0 -183
  126. package/documentation/notes/desync.jpg +0 -0
  127. package/documentation/notes/peers.md +0 -59
  128. package/documentation/notes/sse.md +0 -71
  129. package/documentation/notes/throttling.md +0 -122
  130. package/documentation/oauth.md +0 -180
  131. package/documentation/octets.md +0 -334
  132. package/documentation/passkeys.md +0 -11
  133. package/documentation/protocol.md +0 -120
  134. package/documentation/query.md +0 -324
  135. package/documentation/require.md +0 -15
  136. package/documentation/rpc.md +0 -154
  137. package/documentation/tracing.md +0 -70
  138. package/documentation/tree.md +0 -199
  139. package/features/access.feature +0 -596
  140. package/features/annotation.feature +0 -32
  141. package/features/auth.assert.feature +0 -55
  142. package/features/auth.bearer.feature +0 -120
  143. package/features/auth.claims.feature +0 -171
  144. package/features/auth.incept.feature +0 -166
  145. package/features/auth.input.feature +0 -59
  146. package/features/authorities.basic.feature +0 -141
  147. package/features/authorities.feature +0 -71
  148. package/features/authorities.federation.feature +0 -100
  149. package/features/authorities.tokens.feature +0 -117
  150. package/features/body.feature +0 -76
  151. package/features/cache.feature +0 -368
  152. package/features/configuration.feature +0 -206
  153. package/features/cors.feature +0 -127
  154. package/features/credentials.feature +0 -106
  155. package/features/debug.feature +0 -34
  156. package/features/dev.feature +0 -90
  157. package/features/directives.feature +0 -61
  158. package/features/discovery.feature +0 -213
  159. package/features/discovery.ui.feature +0 -213
  160. package/features/dynamic.feature +0 -192
  161. package/features/errors.feature +0 -258
  162. package/features/etag.feature +0 -239
  163. package/features/flow.feature +0 -148
  164. package/features/help.feature +0 -512
  165. package/features/identity.bans.feature +0 -200
  166. package/features/identity.basic.feature +0 -666
  167. package/features/identity.feature +0 -240
  168. package/features/identity.federation.feature +0 -396
  169. package/features/identity.otp.feature +0 -142
  170. package/features/identity.roles.feature +0 -568
  171. package/features/identity.tokens.custom.feature +0 -430
  172. package/features/identity.tokens.feature +0 -131
  173. package/features/interruptions.feature +0 -20
  174. package/features/introspection.feature +0 -565
  175. package/features/introspection.map.feature +0 -108
  176. package/features/io.feature +0 -204
  177. package/features/io.throttle.feature +0 -166
  178. package/features/map.feature +0 -360
  179. package/features/mcp.feature +0 -753
  180. package/features/methods.feature +0 -48
  181. package/features/oauth.clients.feature +0 -195
  182. package/features/oauth.discovery.feature +0 -164
  183. package/features/oauth.grants.feature +0 -301
  184. package/features/octets.cloudinary.feature +0 -233
  185. package/features/octets.download.feature +0 -194
  186. package/features/octets.entries.feature +0 -83
  187. package/features/octets.feature +0 -306
  188. package/features/octets.head.feature +0 -40
  189. package/features/octets.location.feature +0 -83
  190. package/features/octets.meta.feature +0 -117
  191. package/features/octets.workflows.feature +0 -565
  192. package/features/passkeys.feature +0 -66
  193. package/features/probes.feature +0 -18
  194. package/features/query.feature +0 -389
  195. package/features/realtime.feature +0 -34
  196. package/features/require.feature +0 -66
  197. package/features/response.feature +0 -103
  198. package/features/routes.feature +0 -224
  199. package/features/rpc.feature +0 -429
  200. package/features/server.feature +0 -21
  201. package/features/site/_app/immutable/asset.js +0 -1
  202. package/features/site/favicon.ico +0 -0
  203. package/features/site/index.html +0 -10
  204. package/features/steps/.env.example +0 -5
  205. package/features/steps/Captures.ts +0 -20
  206. package/features/steps/Cloudinary.ts +0 -12
  207. package/features/steps/Common.ts +0 -38
  208. package/features/steps/Components.ts +0 -115
  209. package/features/steps/Database.ts +0 -106
  210. package/features/steps/Gateway.ts +0 -240
  211. package/features/steps/HTTP.ts +0 -96
  212. package/features/steps/IDP.ts +0 -361
  213. package/features/steps/Identity.ts +0 -54
  214. package/features/steps/OTP.ts +0 -42
  215. package/features/steps/Parameters.ts +0 -162
  216. package/features/steps/Probe.ts +0 -38
  217. package/features/steps/Realtime.ts +0 -175
  218. package/features/steps/Workspace.ts +0 -48
  219. package/features/steps/components/audit/manifest.toa.yaml +0 -20
  220. package/features/steps/components/audit/operations/record.js +0 -5
  221. package/features/steps/components/echo/manifest.toa.yaml +0 -59
  222. package/features/steps/components/echo/operations/affect.js +0 -3
  223. package/features/steps/components/echo/operations/compute.js +0 -3
  224. package/features/steps/components/echo/operations/echo.js +0 -3
  225. package/features/steps/components/echo/operations/error.js +0 -7
  226. package/features/steps/components/echo/operations/identity.js +0 -3
  227. package/features/steps/components/echo/operations/parameters.js +0 -3
  228. package/features/steps/components/echo/operations/ping.js +0 -3
  229. package/features/steps/components/echo/operations/unwrap.js +0 -3
  230. package/features/steps/components/echo.beacon/manifest.toa.yaml +0 -2
  231. package/features/steps/components/echo.beacon/operations/hello.js +0 -3
  232. package/features/steps/components/greeter/manifest.toa.yaml +0 -5
  233. package/features/steps/components/greeter/operations/greet.js +0 -3
  234. package/features/steps/components/notify/manifest.toa.yaml +0 -20
  235. package/features/steps/components/notify/operations/send.js +0 -5
  236. package/features/steps/components/octets.tester/manifest.toa.yaml +0 -73
  237. package/features/steps/components/octets.tester/operations/authority.js +0 -3
  238. package/features/steps/components/octets.tester/operations/bar.js +0 -9
  239. package/features/steps/components/octets.tester/operations/baz.js +0 -9
  240. package/features/steps/components/octets.tester/operations/concat.js +0 -5
  241. package/features/steps/components/octets.tester/operations/echo.js +0 -5
  242. package/features/steps/components/octets.tester/operations/err.js +0 -14
  243. package/features/steps/components/octets.tester/operations/foo.js +0 -5
  244. package/features/steps/components/octets.tester/operations/id.js +0 -5
  245. package/features/steps/components/octets.tester/operations/identity.js +0 -5
  246. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  247. package/features/steps/components/octets.tester/operations/redirect.js +0 -17
  248. package/features/steps/components/octets.tester/operations/yex.js +0 -14
  249. package/features/steps/components/octets.tester/operations/yield.js +0 -11
  250. package/features/steps/components/orders/manifest.toa.yaml +0 -30
  251. package/features/steps/components/orders/operations/create.js +0 -7
  252. package/features/steps/components/pots/manifest.toa.yaml +0 -91
  253. package/features/steps/components/pots/migrations/0002-indexes.yaml +0 -4
  254. package/features/steps/components/pricing/manifest.toa.yaml +0 -13
  255. package/features/steps/components/pricing/operations/quote.js +0 -3
  256. package/features/steps/components/sequences/manifest.toa.yaml +0 -11
  257. package/features/steps/components/sequences/operations/numbers.js +0 -5
  258. package/features/steps/components/sequences/operations/tokens.js +0 -14
  259. package/features/steps/components/users/manifest.toa.yaml +0 -30
  260. package/features/steps/components/users/operations/create.js +0 -11
  261. package/features/steps/components/users.properties/manifest.toa.yaml +0 -22
  262. package/features/steps/map.ts +0 -30
  263. package/features/steps/tsconfig.json +0 -9
  264. package/features/streams.feature +0 -35
  265. package/features/timestamps.feature +0 -41
  266. package/features/timing.feature +0 -49
  267. package/features/tracing.feature +0 -123
  268. package/schemas/annotation.cos.yaml +0 -125
  269. package/schemas/call.cos.yaml +0 -18
  270. package/schemas/directive.cos.yaml +0 -7
  271. package/schemas/method.cos.yaml +0 -23
  272. package/schemas/node.cos.yaml +0 -22
  273. package/schemas/query.cos.yaml +0 -31
  274. package/schemas/querystring.cos.yaml +0 -19
  275. package/schemas/range.cos.yaml +0 -10
  276. package/schemas/route.cos.yaml +0 -6
  277. package/source/Annotation.ts +0 -89
  278. package/source/Branch.test.ts +0 -40
  279. package/source/Branch.ts +0 -44
  280. package/source/Composition.ts +0 -51
  281. package/source/Context.ts +0 -11
  282. package/source/Directive.test.ts +0 -199
  283. package/source/Directive.ts +0 -248
  284. package/source/Discovery/Explorer.ts +0 -34
  285. package/source/Discovery/Site.test.ts +0 -147
  286. package/source/Discovery/Site.ts +0 -202
  287. package/source/Discovery/index.ts +0 -3
  288. package/source/Discovery/tree.test.ts +0 -175
  289. package/source/Discovery/tree.ts +0 -77
  290. package/source/Discovery/trunk.ts +0 -33
  291. package/source/Endpoint.test.ts +0 -67
  292. package/source/Endpoint.ts +0 -157
  293. package/source/Factory.ts +0 -42
  294. package/source/Gateway.ts +0 -390
  295. package/source/HTTP/Context.ts +0 -143
  296. package/source/HTTP/Probe.ts +0 -99
  297. package/source/HTTP/Server.ts +0 -430
  298. package/source/HTTP/Timing.ts +0 -14
  299. package/source/HTTP/address.test.ts +0 -28
  300. package/source/HTTP/address.ts +0 -16
  301. package/source/HTTP/exceptions.ts +0 -99
  302. package/source/HTTP/formats/form.ts +0 -21
  303. package/source/HTTP/formats/index.ts +0 -36
  304. package/source/HTTP/formats/json.ts +0 -14
  305. package/source/HTTP/formats/msgpack.ts +0 -14
  306. package/source/HTTP/formats/text.ts +0 -10
  307. package/source/HTTP/formats/yaml.test.ts +0 -22
  308. package/source/HTTP/formats/yaml.ts +0 -40
  309. package/source/HTTP/index.ts +0 -6
  310. package/source/HTTP/messages.test.ts +0 -196
  311. package/source/HTTP/messages.ts +0 -186
  312. package/source/HTTP/types.ts +0 -39
  313. package/source/Interception.ts +0 -37
  314. package/source/Introspection.ts +0 -179
  315. package/source/MCP/Server.ts +0 -335
  316. package/source/MCP/discover.ts +0 -51
  317. package/source/MCP/errors.ts +0 -80
  318. package/source/MCP/index.ts +0 -1
  319. package/source/MCP/schema.test.ts +0 -91
  320. package/source/MCP/schema.ts +0 -94
  321. package/source/MCP/tools.ts +0 -144
  322. package/source/MCP/types.ts +0 -84
  323. package/source/Mapping.ts +0 -101
  324. package/source/Query.test.ts +0 -54
  325. package/source/Query.ts +0 -277
  326. package/source/RPC/Context.ts +0 -75
  327. package/source/RPC/Dispatcher.ts +0 -150
  328. package/source/RPC/errors.test.ts +0 -77
  329. package/source/RPC/errors.ts +0 -82
  330. package/source/RPC/index.ts +0 -1
  331. package/source/RPC/names.test.ts +0 -141
  332. package/source/RPC/names.ts +0 -176
  333. package/source/RPC/types.ts +0 -34
  334. package/source/RTD/Context.ts +0 -16
  335. package/source/RTD/Directives.ts +0 -126
  336. package/source/RTD/Endpoint.ts +0 -27
  337. package/source/RTD/Match.ts +0 -11
  338. package/source/RTD/Method.ts +0 -39
  339. package/source/RTD/Node.ts +0 -169
  340. package/source/RTD/Route.ts +0 -93
  341. package/source/RTD/Tree.ts +0 -137
  342. package/source/RTD/expiration.test.ts +0 -81
  343. package/source/RTD/factory.ts +0 -105
  344. package/source/RTD/index.ts +0 -8
  345. package/source/RTD/segment.test.ts +0 -35
  346. package/source/RTD/segment.ts +0 -51
  347. package/source/RTD/syntax/index.ts +0 -2
  348. package/source/RTD/syntax/parse.test.ts +0 -196
  349. package/source/RTD/syntax/parse.ts +0 -171
  350. package/source/RTD/syntax/types.ts +0 -69
  351. package/source/RTD/walk.test.ts +0 -147
  352. package/source/Remotes.test.ts +0 -79
  353. package/source/Remotes.ts +0 -39
  354. package/source/Tenant.ts +0 -73
  355. package/source/const.ts +0 -45
  356. package/source/deployment.ts +0 -96
  357. package/source/directives/auth/Anonymous.test.ts +0 -70
  358. package/source/directives/auth/Anonymous.ts +0 -36
  359. package/source/directives/auth/Anyone.ts +0 -23
  360. package/source/directives/auth/Assert.ts +0 -43
  361. package/source/directives/auth/Authorization.test.ts +0 -24
  362. package/source/directives/auth/Authorization.ts +0 -388
  363. package/source/directives/auth/Delegate.test.ts +0 -36
  364. package/source/directives/auth/Delegate.ts +0 -54
  365. package/source/directives/auth/Echo.ts +0 -24
  366. package/source/directives/auth/Federation.ts +0 -104
  367. package/source/directives/auth/Id.ts +0 -37
  368. package/source/directives/auth/Incept.ts +0 -117
  369. package/source/directives/auth/Input.ts +0 -92
  370. package/source/directives/auth/Role.test.ts +0 -147
  371. package/source/directives/auth/Role.ts +0 -99
  372. package/source/directives/auth/Rule.ts +0 -59
  373. package/source/directives/auth/Scheme.ts +0 -31
  374. package/source/directives/auth/create.ts +0 -11
  375. package/source/directives/auth/index.ts +0 -3
  376. package/source/directives/auth/schemes.test.ts +0 -18
  377. package/source/directives/auth/schemes.ts +0 -39
  378. package/source/directives/auth/split.ts +0 -14
  379. package/source/directives/auth/types.ts +0 -75
  380. package/source/directives/cache/Cache.ts +0 -92
  381. package/source/directives/cache/Control.ts +0 -81
  382. package/source/directives/cache/Exact.ts +0 -7
  383. package/source/directives/cache/etag.ts +0 -38
  384. package/source/directives/cache/index.ts +0 -3
  385. package/source/directives/cache/types.ts +0 -9
  386. package/source/directives/cors/CORS.test.ts +0 -75
  387. package/source/directives/cors/CORS.ts +0 -88
  388. package/source/directives/cors/index.ts +0 -3
  389. package/source/directives/dev/Development.ts +0 -41
  390. package/source/directives/dev/Faulty.ts +0 -31
  391. package/source/directives/dev/Sleep.ts +0 -53
  392. package/source/directives/dev/Stub.ts +0 -14
  393. package/source/directives/dev/Throw.ts +0 -14
  394. package/source/directives/dev/index.ts +0 -3
  395. package/source/directives/dev/types.ts +0 -5
  396. package/source/directives/flow/Compose.ts +0 -98
  397. package/source/directives/flow/Fetch.ts +0 -86
  398. package/source/directives/flow/Flow.ts +0 -43
  399. package/source/directives/flow/index.ts +0 -3
  400. package/source/directives/flow/types.ts +0 -7
  401. package/source/directives/help/Family.ts +0 -122
  402. package/source/directives/help/Help.test.ts +0 -227
  403. package/source/directives/help/Help.ts +0 -47
  404. package/source/directives/help/Parameters.ts +0 -47
  405. package/source/directives/help/described.ts +0 -57
  406. package/source/directives/help/index.ts +0 -45
  407. package/source/directives/index.ts +0 -33
  408. package/source/directives/io/Directive.ts +0 -17
  409. package/source/directives/io/IO.ts +0 -118
  410. package/source/directives/io/Input.ts +0 -55
  411. package/source/directives/io/Message.ts +0 -1
  412. package/source/directives/io/Output.ts +0 -81
  413. package/source/directives/io/Status.test.ts +0 -88
  414. package/source/directives/io/Status.ts +0 -47
  415. package/source/directives/io/Throttle.ts +0 -30
  416. package/source/directives/io/index.ts +0 -3
  417. package/source/directives/io/lib/throttle/Configuration.test.ts +0 -72
  418. package/source/directives/io/lib/throttle/Configuration.ts +0 -68
  419. package/source/directives/io/lib/throttle/Keys.ts +0 -53
  420. package/source/directives/io/lib/throttle/Quotas.test.ts +0 -411
  421. package/source/directives/io/lib/throttle/Quotas.ts +0 -190
  422. package/source/directives/io/lib/throttle/Sync.test.ts +0 -163
  423. package/source/directives/io/lib/throttle/Sync.ts +0 -93
  424. package/source/directives/io/lib/throttle/Warning.test.ts +0 -32
  425. package/source/directives/io/lib/throttle/Warning.ts +0 -29
  426. package/source/directives/io/lib/throttle/components/Component.ts +0 -7
  427. package/source/directives/io/lib/throttle/components/IP.ts +0 -30
  428. package/source/directives/io/lib/throttle/components/Identity.ts +0 -19
  429. package/source/directives/io/lib/throttle/components/Path.ts +0 -8
  430. package/source/directives/io/lib/throttle/components/Route.ts +0 -19
  431. package/source/directives/io/lib/throttle/components/Segment.ts +0 -19
  432. package/source/directives/io/lib/throttle/components/index.ts +0 -19
  433. package/source/directives/io/lib/throttle/conditions/Condition.ts +0 -5
  434. package/source/directives/io/lib/throttle/conditions/Status.ts +0 -17
  435. package/source/directives/io/lib/throttle/conditions/index.ts +0 -11
  436. package/source/directives/io/lib/throttle/index.ts +0 -4
  437. package/source/directives/io/schemas.test.ts +0 -40
  438. package/source/directives/io/schemas.ts +0 -16
  439. package/source/directives/map/Authority.ts +0 -15
  440. package/source/directives/map/Buffer.ts +0 -15
  441. package/source/directives/map/Claims.ts +0 -63
  442. package/source/directives/map/Directive.ts +0 -4
  443. package/source/directives/map/Headers.ts +0 -60
  444. package/source/directives/map/Language.ts +0 -45
  445. package/source/directives/map/Languages.ts +0 -17
  446. package/source/directives/map/Map.ts +0 -85
  447. package/source/directives/map/Mapping.ts +0 -45
  448. package/source/directives/map/Properties.ts +0 -15
  449. package/source/directives/map/Segments.ts +0 -52
  450. package/source/directives/map/index.ts +0 -3
  451. package/source/directives/mcp/MCP.ts +0 -33
  452. package/source/directives/mcp/Tool.test.ts +0 -56
  453. package/source/directives/mcp/Tool.ts +0 -32
  454. package/source/directives/mcp/index.ts +0 -6
  455. package/source/directives/oauth/Discovery.ts +0 -66
  456. package/source/directives/oauth/documents.ts +0 -110
  457. package/source/directives/oauth/index.ts +0 -3
  458. package/source/directives/octets/Context.ts +0 -23
  459. package/source/directives/octets/Delete.ts +0 -96
  460. package/source/directives/octets/Directive.ts +0 -21
  461. package/source/directives/octets/Get.ts +0 -88
  462. package/source/directives/octets/Octets.ts +0 -82
  463. package/source/directives/octets/Put.ts +0 -186
  464. package/source/directives/octets/Workflow.ts +0 -60
  465. package/source/directives/octets/bytes.test.ts +0 -33
  466. package/source/directives/octets/bytes.ts +0 -18
  467. package/source/directives/octets/index.ts +0 -3
  468. package/source/directives/octets/schemas.test.ts +0 -20
  469. package/source/directives/octets/schemas.ts +0 -15
  470. package/source/directives/octets/types.ts +0 -9
  471. package/source/directives/octets/workflows/Execution.ts +0 -130
  472. package/source/directives/octets/workflows/Workflow.ts +0 -51
  473. package/source/directives/octets/workflows/index.ts +0 -1
  474. package/source/directives/require/Directive.ts +0 -5
  475. package/source/directives/require/Headers.ts +0 -19
  476. package/source/directives/require/Require.ts +0 -27
  477. package/source/directives/require/index.ts +0 -3
  478. package/source/discovery.ts +0 -1
  479. package/source/exceptions.ts +0 -47
  480. package/source/index.ts +0 -12
  481. package/source/io.ts +0 -4
  482. package/source/manifest.test.ts +0 -56
  483. package/source/manifest.ts +0 -56
  484. package/source/octets.d.ts +0 -17
  485. package/source/root.ts +0 -59
  486. package/source/schemas.test.ts +0 -31
  487. package/source/schemas.ts +0 -15
  488. package/source/service.ts +0 -94
  489. package/source/shortcuts.ts +0 -14
  490. package/source/userland.ts +0 -47
  491. package/transpiled/Annotation.d.ts +0 -70
  492. package/transpiled/Annotation.js +0 -2
  493. package/transpiled/Annotation.js.map +0 -1
  494. package/transpiled/RTD/syntax/parse.d.ts +0 -4
  495. package/transpiled/RTD/syntax/parse.js +0 -112
  496. package/transpiled/RTD/syntax/parse.js.map +0 -1
  497. package/transpiled/RTD/syntax/types.d.ts +0 -52
  498. package/transpiled/RTD/syntax/types.js +0 -11
  499. package/transpiled/RTD/syntax/types.js.map +0 -1
  500. package/transpiled/const.d.ts +0 -36
  501. package/transpiled/const.js +0 -37
  502. package/transpiled/const.js.map +0 -1
  503. package/transpiled/deployment.d.ts +0 -6
  504. package/transpiled/deployment.js +0 -76
  505. package/transpiled/deployment.js.map +0 -1
  506. package/transpiled/manifest.d.ts +0 -3
  507. package/transpiled/manifest.js +0 -39
  508. package/transpiled/manifest.js.map +0 -1
  509. package/transpiled/schemas.d.ts +0 -9
  510. package/transpiled/schemas.js +0 -9
  511. package/transpiled/schemas.js.map +0 -1
  512. package/transpiled/shortcuts.d.ts +0 -3
  513. package/transpiled/shortcuts.js +0 -13
  514. package/transpiled/shortcuts.js.map +0 -1
  515. package/tsconfig.json +0 -13
  516. package/tsconfig.tsbuildinfo +0 -1
  517. package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +0 -2
  518. package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +0 -1
  519. package/ui/dist/_app/immutable/chunks/B_pK3U1C.js +0 -6
  520. package/ui/dist/_app/immutable/chunks/CiKbPLyY.js +0 -1
  521. package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +0 -3
  522. package/ui/dist/_app/immutable/entry/app.DMqmL4NY.js +0 -2
  523. package/ui/dist/_app/immutable/entry/start.CRe7HWBI.js +0 -1
  524. package/ui/dist/_app/immutable/nodes/0.D9m-6cbM.js +0 -1
  525. package/ui/dist/_app/immutable/nodes/1.Cgi_RcSO.js +0 -1
  526. package/ui/dist/_app/immutable/nodes/2.D_Cbxgz4.js +0 -14
@@ -1,512 +0,0 @@
1
- Feature: Help
2
-
3
- What a resource and its methods are, in the words an application chooses for them. One
4
- declaration, read by everything that describes a resource: `OPTIONS`, discovery, and the
5
- tools MCP publishes.
6
-
7
- Scenario: What a method is
8
- A bare value is the title, which is the short thing. A sentence is written beside it.
9
-
10
- Given the `pots` is running with the following manifest:
11
- """yaml
12
- exposition:
13
- /:
14
- io:output: [id]
15
- GET:
16
- help:method: Every pot
17
- endpoint: enumerate
18
- POST:
19
- help:method:
20
- title: Put a pot on
21
- description: Start a new pot brewing.
22
- endpoint: create
23
- """
24
- When the following request is received:
25
- """
26
- OPTIONS /pots/ HTTP/1.1
27
- host: nex.toa.io
28
- accept: application/yaml
29
- """
30
- Then the following reply is sent:
31
- """
32
- 200 OK
33
- Allow: GET, POST
34
-
35
- GET:
36
- title: Every pot
37
- POST:
38
- title: Put a pot on
39
- description: Start a new pot brewing.
40
- """
41
-
42
- Scenario: What a resource is
43
- A resource is described beside the methods it serves, and a verb is upper case — so
44
- neither key can be mistaken for the other.
45
-
46
- Given the `pots` is running with the following manifest:
47
- """yaml
48
- exposition:
49
- /:
50
- help:node: Pots
51
- io:output: [id]
52
- GET: enumerate
53
- """
54
- When the following request is received:
55
- """
56
- OPTIONS /pots/ HTTP/1.1
57
- host: nex.toa.io
58
- accept: application/yaml
59
- """
60
- Then the following reply is sent:
61
- """
62
- 200 OK
63
- Allow: GET
64
-
65
- title: Pots
66
- GET:
67
- """
68
-
69
- Scenario: A resource says what a method does, in the same words
70
- Both take the same value: a bare one is the title, a sentence is written beside it.
71
-
72
- Given the `pots` is running with the following manifest:
73
- """yaml
74
- exposition:
75
- /:
76
- help:node:
77
- title: Pots
78
- description: What is brewing, and what is in it.
79
- io:output: [id]
80
- GET: enumerate
81
- """
82
- When the following request is received:
83
- """
84
- OPTIONS /pots/ HTTP/1.1
85
- host: nex.toa.io
86
- accept: application/yaml
87
- """
88
- Then the following reply is sent:
89
- """
90
- 200 OK
91
- Allow: GET
92
-
93
- title: Pots
94
- description: What is brewing, and what is in it.
95
- GET:
96
- """
97
-
98
- Scenario: What a resource is, is not said of what is under it
99
- Every other directive is inherited. This one is not: a description carried downward
100
- would say of every resource below that it is the one it was written for.
101
-
102
- Given the `pots` is running with the following manifest:
103
- """yaml
104
- exposition:
105
- /:
106
- help:node: Pots
107
- io:output: [id]
108
- GET: enumerate
109
- /:id:
110
- GET: observe
111
- """
112
- When the following request is received:
113
- """
114
- OPTIONS /pots/:id/ HTTP/1.1
115
- host: nex.toa.io
116
- accept: application/yaml
117
- """
118
- Then the following reply is sent:
119
- """
120
- 200 OK
121
- Allow: GET
122
- """
123
- And the reply does not contain:
124
- """
125
- Pots
126
- """
127
-
128
- Scenario: A resource that answers in another's place is described by it
129
- An intermediate node is never what a path matches — its `/` answers there instead — so
130
- the two are one resource, and what describes it carries.
131
-
132
- Given the `pots` is running with the following manifest:
133
- """yaml
134
- exposition:
135
- /:
136
- help:node: Pots
137
- /:
138
- io:output: [id]
139
- GET: enumerate
140
- """
141
- When the following request is received:
142
- """
143
- OPTIONS /pots/ HTTP/1.1
144
- host: nex.toa.io
145
- accept: application/yaml
146
- """
147
- Then the following reply is sent:
148
- """
149
- 200 OK
150
- Allow: GET
151
-
152
- title: Pots
153
- """
154
-
155
- Scenario: The whole tree carries it
156
- Given the `pots` is running with the following manifest:
157
- """yaml
158
- exposition:
159
- /:
160
- help:node: Pots
161
- io:output: [id]
162
- GET:
163
- help:method: Every pot
164
- endpoint: enumerate
165
- """
166
- When the following request is received:
167
- """
168
- OPTIONS /.discovery HTTP/1.1
169
- host: nex.toa.io
170
- accept: application/yaml
171
- """
172
- Then the following reply is sent:
173
- """
174
- 200 OK
175
-
176
- routes:
177
- /pots:
178
- title: Pots
179
- GET:
180
- title: Every pot
181
- """
182
-
183
- Scenario: What the parameters are
184
- A schema says `title` and `description` of what it describes, which is where these go.
185
-
186
- Given the `echo` is running with the following manifest:
187
- """yaml
188
- exposition:
189
- /:first:
190
- io:output: true
191
- PATCH:
192
- query:
193
- parameters: [a]
194
- help:route:
195
- first: Which one
196
- help:query:
197
- a:
198
- title: The one to greet
199
- description: A name, or nothing to greet the world.
200
- endpoint: parameters
201
- """
202
- When the following request is received:
203
- """
204
- OPTIONS /echo/:first/ HTTP/1.1
205
- host: nex.toa.io
206
- accept: application/yaml
207
- """
208
- Then the following reply is sent:
209
- """
210
- 200 OK
211
- Allow: PATCH
212
-
213
- PATCH:
214
- route:
215
- first:
216
- title: Which one
217
- query:
218
- a:
219
- type: string
220
- title: The one to greet
221
- description: A name, or nothing to greet the world.
222
- """
223
-
224
- Scenario: A segment a mapping renamed
225
- `map:segments` answers a variable under the property it fills, so that is the name it
226
- is described by — the template's is nowhere in the answer.
227
-
228
- Given the `echo` is running with the following manifest:
229
- """yaml
230
- exposition:
231
- /:first:
232
- io:output: true
233
- PATCH:
234
- map:segments:
235
- a: first
236
- help:route:
237
- a: Which one
238
- endpoint: parameters
239
- """
240
- When the following request is received:
241
- """
242
- OPTIONS /echo/:first/ HTTP/1.1
243
- host: nex.toa.io
244
- accept: application/yaml
245
- """
246
- Then the following reply is sent:
247
- """
248
- 200 OK
249
- Allow: PATCH
250
-
251
- PATCH:
252
- route:
253
- a:
254
- type: string
255
- title: Which one
256
- """
257
- And the reply does not contain:
258
- """
259
- first:
260
- """
261
-
262
- Scenario: A parameter nothing answers
263
- A name that is nobody's is not answered. The template is not what says them all, so
264
- there is nothing to check it against where it is written.
265
-
266
- Given the `pots` is running with the following manifest:
267
- """yaml
268
- exposition:
269
- /:id:
270
- io:output: [id]
271
- GET:
272
- help:route:
273
- pot: Which pot
274
- help:query:
275
- nothing: Nobody
276
- endpoint: observe
277
- """
278
- When the following request is received:
279
- """
280
- OPTIONS /pots/:id/ HTTP/1.1
281
- host: nex.toa.io
282
- accept: application/yaml
283
- """
284
- Then the following reply is sent:
285
- """
286
- 200 OK
287
- Allow: GET
288
- """
289
- And the reply does not contain:
290
- """
291
- Which pot
292
- """
293
-
294
- Scenario: What guards a resource
295
- `auth` says what reaching one takes, so that a reader is not offered what is not theirs
296
- and can tell the machinery from what the application serves.
297
-
298
- Given the annotation:
299
- """yaml
300
- /:
301
- anonymous: true
302
- /pots:
303
- GET:
304
- auth:anyone: true
305
- dev:stub: []
306
- /accounts/:id:
307
- GET:
308
- auth:id: id
309
- dev:stub: []
310
- /admin:
311
- GET:
312
- auth:role: operator
313
- dev:stub: []
314
- /introspection:
315
- GET:
316
- auth:role: system:introspection
317
- dev:stub: []
318
- """
319
- When the following request is received:
320
- """
321
- OPTIONS /.discovery HTTP/1.1
322
- host: nex.toa.io
323
- accept: application/yaml
324
- """
325
- Then the following reply is sent:
326
- """
327
- 200 OK
328
-
329
- routes:
330
- /accounts/:id:
331
- private: true
332
- GET:
333
- private: true
334
- /admin:
335
- protected: true
336
- GET:
337
- protected: true
338
- /introspection:
339
- protected: true
340
- system: true
341
- GET:
342
- protected: true
343
- system: true
344
- /pots:
345
- authenticated: true
346
- GET:
347
- authenticated: true
348
- """
349
-
350
- Scenario: A rule says what each of its own says
351
- `auth:rule` is the directives it composes, and describing one is describing them.
352
-
353
- Given the annotation:
354
- """yaml
355
- /:
356
- anonymous: true
357
- /papers/:id:
358
- GET:
359
- auth:rule:
360
- id: id
361
- role: system:archive
362
- dev:stub: []
363
- """
364
- When the following request is received:
365
- """
366
- OPTIONS /papers/:id/ HTTP/1.1
367
- host: nex.toa.io
368
- accept: application/yaml
369
- """
370
- Then the following reply is sent:
371
- """
372
- 200 OK
373
- Allow: GET
374
-
375
- private: true
376
- protected: true
377
- system: true
378
- GET:
379
- private: true
380
- protected: true
381
- system: true
382
- """
383
-
384
- Scenario: A tool is called what the method is called
385
- `mcp:tool` says only whether the method is published; what it is, is `help:method`.
386
-
387
- Given the annotation:
388
- """yaml
389
- mcp:
390
- name: Pots
391
- anonymous: true
392
- /:
393
- anonymous: true
394
- /pots:
395
- GET:
396
- mcp:tool: true
397
- help:method:
398
- title: Hot pots
399
- description: The pots that are too hot to pour.
400
- dev:stub: []
401
- """
402
- When the following request is received:
403
- """
404
- POST /.mcp HTTP/1.1
405
- host: nex.toa.io
406
- content-type: application/json
407
- accept: application/yaml
408
- mcp-protocol-version: 2026-07-28
409
- mcp-method: tools/list
410
-
411
- {"jsonrpc": "2.0", "id": 1, "method": "tools/list",
412
- "params": {"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
413
- "io.modelcontextprotocol/clientCapabilities": {}}}}
414
- """
415
- Then the following reply is sent:
416
- """
417
- 200 OK
418
-
419
- - name: pots.GET
420
- title: Hot pots
421
- description: The pots that are too hot to pour.
422
- """
423
- # and the resource says of itself that it publishes one
424
- When the following request is received:
425
- """
426
- OPTIONS /pots/ HTTP/1.1
427
- host: nex.toa.io
428
- accept: application/yaml
429
- """
430
- Then the following reply is sent:
431
- """
432
- 200 OK
433
- Allow: GET
434
-
435
- GET:
436
- title: Hot pots
437
- description: The pots that are too hot to pour.
438
- mcp: true
439
- """
440
-
441
- Scenario: A resource that serves nothing cannot be described
442
- Nothing would carry what it says, so the declaration is refused where it is written
443
- rather than found missing from the answer.
444
-
445
- Given the `pots` is running with the following manifest:
446
- """yaml
447
- exposition:
448
- /:
449
- io:output: [id]
450
- GET: enumerate
451
- /brewing:
452
- help:node: Brewing
453
- /:id:
454
- GET: observe
455
- """
456
- # a route only this declaration serves: a refused branch leaves the one before it
457
- When the following request is received:
458
- """
459
- OPTIONS /pots/brewing/:id/ HTTP/1.1
460
- host: nex.toa.io
461
- accept: application/yaml
462
- """
463
- Then the following reply is sent:
464
- """
465
- 404 Not Found
466
- """
467
-
468
- Scenario: A method nobody is meant to find
469
- `help:method: null` takes the method out of every answer and leaves it as callable as it
470
- was — what a monitor reaches for, and what a person has no business going looking for.
471
-
472
- Given the annotation:
473
- """yaml
474
- /:
475
- anonymous: true
476
- /hello:
477
- GET:
478
- dev:stub: hi
479
- /agent:
480
- GET:
481
- help:method: null
482
- dev:stub: hi
483
- """
484
- When the following request is received:
485
- """
486
- OPTIONS /.discovery HTTP/1.1
487
- host: nex.toa.io
488
- accept: application/yaml
489
- """
490
- Then the following reply is sent:
491
- """
492
- 200 OK
493
-
494
- routes:
495
- /hello:
496
- GET:
497
- anonymous: true
498
- """
499
- And the reply does not contain:
500
- """
501
- /hello/agent
502
- """
503
- # and it answers as it always did
504
- When the following request is received:
505
- """
506
- GET /hello/agent/ HTTP/1.1
507
- host: nex.toa.io
508
- """
509
- Then the following reply is sent:
510
- """
511
- 200 OK
512
- """
@@ -1,200 +0,0 @@
1
- @security
2
- Feature: Bans
3
-
4
- Background:
5
- Given the `identity.basic` database contains:
6
- # developer:secret
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 |
11
- And the `identity.bans` database is empty
12
-
13
- Scenario: Banning an Identity
14
- Given the `identity.roles` database contains:
15
- | _id | identity | role |
16
- | 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:bans |
17
- And the annotation:
18
- """yaml
19
- /:
20
- /:id:
21
- io:output: true
22
- auth:id: id
23
- GET:
24
- dev:stub:
25
- access: granted!
26
- """
27
- And the `identity.tokens` configuration:
28
- """yaml
29
- refresh: 1
30
- """
31
- When the following request is received:
32
- """
33
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
34
- host: nex.toa.io
35
- authorization: Basic dXNlcjoxMjM0NQ==
36
- """
37
- Then the following reply is sent:
38
- """
39
- 200 OK
40
- authorization: Token ${{ token }}
41
- """
42
- When the following request is received:
43
- """
44
- PUT /identity/bans/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
45
- host: nex.toa.io
46
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
47
- content-type: application/yaml
48
-
49
- banned: true
50
- comment: Bye bye
51
- """
52
- Then the following reply is sent:
53
- """
54
- 200 OK
55
- """
56
- # accessing a resource with a banned Identity
57
- When the following request is received:
58
- """
59
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
60
- host: nex.toa.io
61
- authorization: Basic dXNlcjoxMjM0NQ==
62
- """
63
- Then the following reply is sent:
64
- """
65
- 401 Unauthorized
66
- """
67
- Then after 1 second
68
- When the following request is received:
69
- """
70
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
71
- host: nex.toa.io
72
- authorization: Token ${{ token }}
73
- """
74
- Then the following reply is sent:
75
- """
76
- 401 Unauthorized
77
- """
78
- When the following request is received:
79
- """
80
- PUT /identity/bans/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
81
- host: nex.toa.io
82
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
83
- content-type: application/yaml
84
-
85
- banned: false
86
- """
87
- Then the following reply is sent:
88
- """
89
- 200 OK
90
- """
91
- When the following request is received:
92
- """
93
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
94
- host: nex.toa.io
95
- authorization: Basic dXNlcjoxMjM0NQ==
96
- """
97
- Then the following reply is sent:
98
- """
99
- 200 OK
100
-
101
- authorization: Token ${{ new_token }}
102
- """
103
- # re-ban
104
- When the following request is received:
105
- """
106
- PUT /identity/bans/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
107
- host: nex.toa.io
108
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
109
- content-type: application/yaml
110
-
111
- banned: true
112
- """
113
- Then the following reply is sent:
114
- """
115
- 200 OK
116
- """
117
- When the following request is received:
118
- """
119
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
120
- host: nex.toa.io
121
- authorization: Basic dXNlcjoxMjM0NQ==
122
- """
123
- Then the following reply is sent:
124
- """
125
- 401 Unauthorized
126
- """
127
- Then after 1 second
128
- When the following request is received:
129
- """
130
- GET /e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
131
- host: nex.toa.io
132
- authorization: Token ${{ new_token }}
133
- """
134
- Then the following reply is sent:
135
- """
136
- 401 Unauthorized
137
- """
138
-
139
- Scenario: Banning an Identity revokes its custom tokens
140
- Given the `identity.roles` database contains:
141
- | _id | identity | role |
142
- | 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:bans |
143
- And the `identity.keys` database is empty
144
- And the `identity.tokens` configuration:
145
- """yaml
146
- cache:
147
- ttl: 1
148
- """
149
- When the following request is received:
150
- """
151
- POST /identity/tokens/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
152
- host: nex.toa.io
153
- authorization: Basic dXNlcjoxMjM0NQ==
154
- accept: application/yaml
155
- content-type: application/yaml
156
-
157
- label: Forever token
158
- lifetime: 0
159
- """
160
- Then the following reply is sent:
161
- """
162
- 201 Created
163
-
164
- token: ${{ token }}
165
- """
166
- When the following request is received:
167
- """
168
- GET /identity/ HTTP/1.1
169
- host: nex.toa.io
170
- authorization: Token ${{ token }}
171
- """
172
- Then the following reply is sent:
173
- """
174
- 200 OK
175
- """
176
- When the following request is received:
177
- """
178
- PUT /identity/bans/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
179
- host: nex.toa.io
180
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
181
- content-type: application/yaml
182
-
183
- banned: true
184
- """
185
- Then the following reply is sent:
186
- """
187
- 200 OK
188
- """
189
- # the key is revoked eventually, and the runtime forgets it after `cache.ttl`
190
- Then after 2 seconds
191
- When the following request is received:
192
- """
193
- GET /identity/ HTTP/1.1
194
- host: nex.toa.io
195
- authorization: Token ${{ token }}
196
- """
197
- Then the following reply is sent:
198
- """
199
- 401 Unauthorized
200
- """