@toa.io/extensions.exposition 1.0.0-alpha.23 → 1.0.0-alpha.231

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 (816) hide show
  1. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -1
  2. package/components/identity.basic/manifest.toa.yaml +71 -11
  3. package/components/identity.basic/operations/add.d.ts +3 -0
  4. package/components/identity.basic/operations/add.js +16 -0
  5. package/components/identity.basic/operations/add.js.map +1 -0
  6. package/components/identity.basic/operations/authenticate.js +7 -4
  7. package/components/identity.basic/operations/authenticate.js.map +1 -1
  8. package/components/identity.basic/operations/check.d.ts +7 -0
  9. package/components/identity.basic/operations/check.js +15 -0
  10. package/components/identity.basic/operations/check.js.map +1 -0
  11. package/components/identity.basic/operations/incept.d.ts +3 -2
  12. package/components/identity.basic/operations/incept.js +16 -3
  13. package/components/identity.basic/operations/incept.js.map +1 -1
  14. package/components/identity.basic/operations/transit.d.ts +2 -2
  15. package/components/identity.basic/operations/transit.js +9 -6
  16. package/components/identity.basic/operations/transit.js.map +1 -1
  17. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  18. package/components/identity.basic/operations/types.d.ts +14 -6
  19. package/components/identity.basic/source/add.ts +14 -0
  20. package/components/identity.basic/source/authenticate.ts +8 -4
  21. package/components/identity.basic/source/check.ts +20 -0
  22. package/components/identity.basic/source/incept.ts +21 -5
  23. package/components/identity.basic/source/transit.ts +12 -10
  24. package/components/identity.basic/source/types.ts +15 -6
  25. package/components/identity.federation/manifest.toa.yaml +63 -38
  26. package/components/identity.federation/operations/authenticate.d.ts +16 -3
  27. package/components/identity.federation/operations/authenticate.js +25 -16
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/decode.d.ts +3 -0
  30. package/components/identity.federation/operations/decode.js +12 -0
  31. package/components/identity.federation/operations/decode.js.map +1 -0
  32. package/components/identity.federation/operations/incept.d.ts +5 -5
  33. package/components/identity.federation/operations/incept.js +13 -5
  34. package/components/identity.federation/operations/incept.js.map +1 -1
  35. package/components/identity.federation/operations/lib/Configuration.d.ts +39 -0
  36. package/components/identity.federation/operations/lib/Configuration.js +3 -0
  37. package/components/identity.federation/operations/lib/Configuration.js.map +1 -0
  38. package/components/identity.federation/operations/lib/Ctx.d.ts +6 -0
  39. package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/lib/Ctx.js} +1 -1
  40. package/components/identity.federation/operations/lib/Ctx.js.map +1 -0
  41. package/components/identity.federation/operations/lib/Payload.d.ts +5 -0
  42. package/components/identity.federation/operations/lib/Payload.js +3 -0
  43. package/components/identity.federation/operations/lib/Payload.js.map +1 -0
  44. package/components/identity.federation/operations/lib/decode.d.ts +3 -0
  45. package/components/identity.federation/operations/lib/{assertions-as-values.js → decode.js} +19 -19
  46. package/components/identity.federation/operations/lib/decode.js.map +1 -0
  47. package/components/identity.federation/operations/lib/discovery.d.ts +4 -0
  48. package/components/identity.federation/operations/lib/discovery.js +49 -0
  49. package/components/identity.federation/operations/lib/discovery.js.map +1 -0
  50. package/components/identity.federation/operations/lib/errors.d.ts +11 -0
  51. package/components/identity.federation/operations/lib/errors.js +15 -0
  52. package/components/identity.federation/operations/lib/errors.js.map +1 -0
  53. package/components/identity.federation/operations/lib/exchange.d.ts +3 -0
  54. package/components/identity.federation/operations/lib/exchange.js +107 -0
  55. package/components/identity.federation/operations/lib/exchange.js.map +1 -0
  56. package/components/identity.federation/operations/lib/index.d.ts +3 -0
  57. package/components/identity.federation/operations/lib/index.js +8 -0
  58. package/components/identity.federation/operations/lib/index.js.map +1 -0
  59. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  60. package/components/identity.federation/operations/types/Scheme.d.ts +1 -0
  61. package/components/identity.federation/operations/types/Scheme.js +3 -0
  62. package/components/identity.federation/operations/types/Scheme.js.map +1 -0
  63. package/components/identity.federation/operations/types/configuration.d.ts +20 -0
  64. package/components/identity.federation/operations/types/configuration.js +3 -0
  65. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  66. package/components/identity.federation/operations/types/context.d.ts +36 -0
  67. package/components/identity.federation/operations/types/context.js +3 -0
  68. package/components/identity.federation/operations/types/context.js.map +1 -0
  69. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  70. package/components/identity.federation/operations/types/entity.js +3 -0
  71. package/components/identity.federation/operations/types/entity.js.map +1 -0
  72. package/components/identity.federation/operations/types/index.d.ts +4 -0
  73. package/components/identity.federation/operations/types/index.js +21 -0
  74. package/components/identity.federation/operations/types/index.js.map +1 -0
  75. package/components/identity.federation/source/authenticate.ts +43 -21
  76. package/components/identity.federation/source/decode.ts +10 -0
  77. package/components/identity.federation/source/incept.ts +20 -11
  78. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  79. package/components/identity.federation/source/lib/Ctx.ts +7 -0
  80. package/components/identity.federation/source/lib/Payload.ts +6 -0
  81. package/components/identity.federation/source/lib/decode.ts +28 -0
  82. package/components/identity.federation/source/lib/discovery.ts +30 -0
  83. package/components/identity.federation/source/lib/errors.ts +12 -0
  84. package/components/identity.federation/source/lib/exchange.ts +116 -0
  85. package/components/identity.federation/source/lib/index.ts +3 -0
  86. package/components/identity.federation/source/types/Scheme.ts +1 -0
  87. package/components/identity.federation/source/types/configuration.ts +21 -0
  88. package/components/identity.federation/source/types/context.ts +40 -0
  89. package/components/identity.federation/source/types/entity.ts +6 -0
  90. package/components/identity.federation/source/types/index.ts +4 -0
  91. package/components/identity.federation/tsconfig.json +5 -4
  92. package/components/identity.keys/manifest.toa.yaml +57 -0
  93. package/components/identity.keys/operations/create.d.ts +22 -0
  94. package/components/identity.keys/operations/create.js +16 -0
  95. package/components/identity.keys/operations/create.js.map +1 -0
  96. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
  97. package/components/identity.keys/source/create.ts +35 -0
  98. package/components/identity.keys/tsconfig.json +9 -0
  99. package/components/identity.otp/manifest.toa.yaml +69 -0
  100. package/components/identity.otp/operations/authenticate.d.ts +12 -0
  101. package/components/identity.otp/operations/authenticate.js +31 -0
  102. package/components/identity.otp/operations/authenticate.js.map +1 -0
  103. package/components/identity.otp/operations/issue.d.ts +12 -0
  104. package/components/identity.otp/operations/issue.js +22 -0
  105. package/components/identity.otp/operations/issue.js.map +1 -0
  106. package/components/identity.otp/operations/lib/Context.d.ts +13 -0
  107. package/components/identity.otp/operations/lib/Context.js +3 -0
  108. package/components/identity.otp/operations/lib/Context.js.map +1 -0
  109. package/components/identity.otp/operations/lib/Entity.d.ts +6 -0
  110. package/components/identity.otp/operations/lib/Entity.js +3 -0
  111. package/components/identity.otp/operations/lib/Entity.js.map +1 -0
  112. package/components/identity.otp/operations/lib/index.d.ts +1 -0
  113. package/components/identity.otp/operations/lib/index.js +3 -0
  114. package/components/identity.otp/operations/lib/index.js.map +1 -0
  115. package/components/identity.otp/operations/tsconfig.tsbuildinfo +1 -0
  116. package/components/identity.otp/source/authenticate.ts +48 -0
  117. package/components/identity.otp/source/issue.ts +34 -0
  118. package/components/identity.otp/source/lib/Context.ts +14 -0
  119. package/components/identity.otp/source/lib/Entity.ts +6 -0
  120. package/components/identity.otp/source/lib/index.ts +1 -0
  121. package/components/identity.otp/tsconfig.json +9 -0
  122. package/components/identity.passkeys/manifest.toa.yaml +276 -0
  123. package/components/identity.passkeys/operations/authenticate.d.ts +16 -0
  124. package/components/identity.passkeys/operations/authenticate.js +34 -0
  125. package/components/identity.passkeys/operations/authenticate.js.map +1 -0
  126. package/components/identity.passkeys/operations/challenge.d.ts +35 -0
  127. package/components/identity.passkeys/operations/challenge.js +73 -0
  128. package/components/identity.passkeys/operations/challenge.js.map +1 -0
  129. package/components/identity.passkeys/operations/create.d.ts +19 -0
  130. package/components/identity.passkeys/operations/create.js +58 -0
  131. package/components/identity.passkeys/operations/create.js.map +1 -0
  132. package/components/identity.passkeys/operations/delete.d.ts +8 -0
  133. package/components/identity.passkeys/operations/delete.js +12 -0
  134. package/components/identity.passkeys/operations/delete.js.map +1 -0
  135. package/components/identity.passkeys/operations/lib/const.d.ts +1 -0
  136. package/components/identity.passkeys/operations/lib/const.js +5 -0
  137. package/components/identity.passkeys/operations/lib/const.js.map +1 -0
  138. package/components/identity.passkeys/operations/list.d.ts +7 -0
  139. package/components/identity.passkeys/operations/list.js +15 -0
  140. package/components/identity.passkeys/operations/list.js.map +1 -0
  141. package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -0
  142. package/components/identity.passkeys/operations/types/Configuration.d.ts +6 -0
  143. package/components/identity.passkeys/operations/types/Configuration.js +3 -0
  144. package/components/identity.passkeys/operations/types/Configuration.js.map +1 -0
  145. package/components/identity.passkeys/operations/types/Context.d.ts +15 -0
  146. package/components/identity.passkeys/operations/types/Context.js +3 -0
  147. package/components/identity.passkeys/operations/types/Context.js.map +1 -0
  148. package/components/identity.passkeys/operations/types/Passkey.d.ts +13 -0
  149. package/components/identity.passkeys/operations/types/Passkey.js +3 -0
  150. package/components/identity.passkeys/operations/types/Passkey.js.map +1 -0
  151. package/components/identity.passkeys/operations/types/index.d.ts +2 -0
  152. package/components/identity.passkeys/operations/types/index.js +3 -0
  153. package/components/identity.passkeys/operations/types/index.js.map +1 -0
  154. package/components/identity.passkeys/operations/use.d.ts +16 -0
  155. package/components/identity.passkeys/operations/use.js +57 -0
  156. package/components/identity.passkeys/operations/use.js.map +1 -0
  157. package/components/identity.passkeys/source/authenticate.ts +48 -0
  158. package/components/identity.passkeys/source/challenge.ts +115 -0
  159. package/components/identity.passkeys/source/create.ts +77 -0
  160. package/components/identity.passkeys/source/delete.ts +15 -0
  161. package/components/identity.passkeys/source/lib/const.ts +1 -0
  162. package/components/identity.passkeys/source/list.ts +17 -0
  163. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  164. package/components/identity.passkeys/source/types/Context.ts +16 -0
  165. package/components/identity.passkeys/source/types/Passkey.ts +14 -0
  166. package/components/identity.passkeys/source/types/index.ts +2 -0
  167. package/components/identity.passkeys/source/use.ts +75 -0
  168. package/components/identity.passkeys/tsconfig.json +9 -0
  169. package/components/identity.roles/manifest.toa.yaml +4 -2
  170. package/components/identity.roles/operations/grant.js +2 -2
  171. package/components/identity.roles/operations/grant.js.map +1 -1
  172. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  173. package/components/identity.roles/source/grant.ts +2 -2
  174. package/components/identity.tokens/manifest.toa.yaml +93 -13
  175. package/components/identity.tokens/operations/authenticate.d.ts +2 -2
  176. package/components/identity.tokens/operations/authenticate.js +13 -12
  177. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  178. package/components/identity.tokens/operations/decrypt.d.ts +13 -3
  179. package/components/identity.tokens/operations/decrypt.js +65 -18
  180. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  181. package/components/identity.tokens/operations/encrypt.d.ts +3 -3
  182. package/components/identity.tokens/operations/encrypt.js +24 -8
  183. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  184. package/components/identity.tokens/operations/issue.d.ts +24 -0
  185. package/components/identity.tokens/operations/issue.js +59 -0
  186. package/components/identity.tokens/operations/issue.js.map +1 -0
  187. package/components/identity.tokens/operations/lib/index.d.ts +2 -0
  188. package/components/identity.tokens/operations/lib/index.js +19 -0
  189. package/components/identity.tokens/operations/lib/index.js.map +1 -0
  190. package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
  191. package/components/identity.tokens/operations/lib/pad.js +5 -0
  192. package/components/identity.tokens/operations/lib/pad.js.map +1 -0
  193. package/components/identity.tokens/operations/lib/types.d.ts +75 -0
  194. package/components/identity.tokens/operations/lib/types.js.map +1 -0
  195. package/components/identity.tokens/operations/revoke.d.ts +2 -2
  196. package/components/identity.tokens/operations/revoke.js.map +1 -1
  197. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  198. package/components/identity.tokens/source/authenticate.test.ts +13 -7
  199. package/components/identity.tokens/source/authenticate.ts +15 -14
  200. package/components/identity.tokens/source/decrypt.test.ts +29 -16
  201. package/components/identity.tokens/source/decrypt.ts +94 -20
  202. package/components/identity.tokens/source/encrypt.test.ts +48 -13
  203. package/components/identity.tokens/source/encrypt.ts +36 -12
  204. package/components/identity.tokens/source/issue.ts +82 -0
  205. package/components/identity.tokens/source/lib/index.ts +2 -0
  206. package/components/identity.tokens/source/lib/pad.ts +1 -0
  207. package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
  208. package/components/identity.tokens/source/{types.ts → lib/types.ts} +38 -7
  209. package/components/identity.tokens/source/revoke.ts +2 -2
  210. package/components/octets.storage/manifest.toa.yaml +13 -5
  211. package/components/octets.storage/operations/get.js +3 -3
  212. package/components/octets.storage/operations/head.js +7 -0
  213. package/components/octets.storage/operations/put.js +135 -0
  214. package/documentation/access.md +78 -27
  215. package/documentation/authorities.md +6 -11
  216. package/documentation/components.md +114 -39
  217. package/documentation/dev.md +30 -0
  218. package/documentation/flow.md +44 -0
  219. package/documentation/identity.md +115 -5
  220. package/documentation/introspection.md +82 -0
  221. package/documentation/io.md +42 -2
  222. package/documentation/map.md +115 -0
  223. package/documentation/notes/desync.jpg +0 -0
  224. package/documentation/notes/peers.md +59 -0
  225. package/documentation/notes/throttling.md +82 -0
  226. package/documentation/octets.md +122 -69
  227. package/documentation/passkeys.md +4 -0
  228. package/documentation/protocol.md +11 -4
  229. package/documentation/query.md +51 -4
  230. package/documentation/tree.md +13 -0
  231. package/features/access.feature +67 -2
  232. package/features/auth.assert.feature +57 -0
  233. package/features/auth.claims.feature +170 -0
  234. package/features/auth.incept.feature +120 -0
  235. package/features/auth.input.feature +59 -0
  236. package/features/auth.issue.feature +32 -0
  237. package/features/authorities.basic.feature +4 -3
  238. package/features/authorities.feature +3 -3
  239. package/features/authorities.federation.feature +20 -20
  240. package/features/authorities.tokens.feature +1 -2
  241. package/features/body.feature +27 -0
  242. package/features/cache.feature +92 -3
  243. package/features/cors.feature +28 -7
  244. package/features/debug.feature +34 -0
  245. package/features/dev.feature +87 -0
  246. package/features/dynamic.feature +44 -0
  247. package/features/errors.feature +17 -5
  248. package/features/etag.feature +134 -1
  249. package/features/flow.feature +148 -0
  250. package/features/identity.basic.feature +120 -6
  251. package/features/identity.feature +11 -4
  252. package/features/identity.federation.feature +122 -42
  253. package/features/identity.otp.feature +101 -0
  254. package/features/identity.roles.feature +52 -3
  255. package/features/identity.tokens.feature +1 -99
  256. package/features/identtiy.tokens.custom.feature +247 -0
  257. package/features/interruptions.feature +19 -0
  258. package/features/introspection.feature +153 -0
  259. package/features/io.feature +0 -1
  260. package/features/io.throttle.feature +40 -0
  261. package/features/map.feature +356 -0
  262. package/features/methods.feature +47 -0
  263. package/features/octets.cloudinary.feature +223 -0
  264. package/features/octets.download.feature +189 -0
  265. package/features/octets.entries.feature +8 -58
  266. package/features/octets.feature +58 -65
  267. package/features/octets.head.feature +40 -0
  268. package/features/octets.location.feature +83 -0
  269. package/features/octets.meta.feature +62 -15
  270. package/features/octets.workflows.feature +332 -67
  271. package/features/passkeys.feature +66 -0
  272. package/features/probes.feature +14 -0
  273. package/features/{queries.feature → query.feature} +134 -2
  274. package/features/realtime.feature +34 -0
  275. package/features/response.feature +29 -0
  276. package/features/routes.feature +86 -2
  277. package/features/server.feature +21 -0
  278. package/features/steps/.env.example +5 -0
  279. package/features/steps/Captures.ts +12 -0
  280. package/features/steps/Common.ts +4 -0
  281. package/features/steps/Gateway.ts +3 -1
  282. package/features/steps/HTTP.ts +27 -3
  283. package/features/steps/IDP.ts +334 -0
  284. package/features/steps/Identity.ts +51 -0
  285. package/features/steps/OTP.ts +39 -0
  286. package/features/steps/Parameters.ts +88 -2
  287. package/features/steps/Realtime.ts +151 -0
  288. package/features/steps/Workspace.ts +1 -2
  289. package/features/steps/components/echo/manifest.toa.yaml +17 -0
  290. package/features/steps/components/echo/operations/echo.js +7 -0
  291. package/features/steps/components/echo/operations/parameters.js +7 -0
  292. package/features/steps/components/echo/operations/ping.js +7 -0
  293. package/features/steps/components/echo/operations/unwrap.js +7 -0
  294. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  295. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  296. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  297. package/features/steps/components/octets.tester/manifest.toa.yaml +26 -3
  298. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  299. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  300. package/features/steps/components/octets.tester/operations/baz.js +1 -1
  301. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  302. package/features/steps/components/octets.tester/operations/foo.js +2 -2
  303. package/features/steps/components/octets.tester/operations/id.js +7 -0
  304. package/features/steps/components/octets.tester/operations/identity.js +7 -0
  305. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  306. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  307. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  308. package/features/steps/components/pots/manifest.toa.yaml +15 -4
  309. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  310. package/features/steps/components/users/manifest.toa.yaml +4 -2
  311. package/features/steps/components/users/operations/create.js +15 -0
  312. package/features/steps/components/users.properties/manifest.toa.yaml +0 -1
  313. package/features/streams.feature +4 -0
  314. package/features/timestamps.feature +41 -0
  315. package/features/timing.feature +1 -1
  316. package/package.json +34 -21
  317. package/schemas/annotation.cos.yaml +7 -0
  318. package/schemas/io/throttle.cos.yaml +36 -0
  319. package/schemas/method.cos.yaml +2 -1
  320. package/schemas/node.cos.yaml +2 -0
  321. package/schemas/octets/put.cos.yaml +28 -0
  322. package/schemas/query.cos.yaml +7 -10
  323. package/schemas/querystring.cos.yaml +1 -0
  324. package/source/Annotation.ts +3 -0
  325. package/source/Branch.ts +1 -0
  326. package/source/Composition.ts +0 -6
  327. package/source/Context.ts +1 -0
  328. package/source/Directive.test.ts +5 -3
  329. package/source/Directive.ts +30 -6
  330. package/source/Endpoint.ts +88 -23
  331. package/source/Factory.ts +15 -3
  332. package/source/Gateway.ts +76 -14
  333. package/source/HTTP/Context.ts +40 -8
  334. package/source/HTTP/Server.ts +173 -48
  335. package/source/HTTP/Timing.ts +1 -1
  336. package/source/HTTP/exceptions.ts +30 -12
  337. package/source/HTTP/formats/index.ts +4 -5
  338. package/source/HTTP/formats/json.ts +2 -4
  339. package/source/HTTP/formats/msgpack.ts +0 -1
  340. package/source/HTTP/formats/text.ts +2 -4
  341. package/source/HTTP/formats/yaml.ts +2 -3
  342. package/source/HTTP/messages.test.ts +70 -7
  343. package/source/HTTP/messages.ts +99 -19
  344. package/source/Introspection.ts +11 -0
  345. package/source/Mapping.ts +69 -21
  346. package/source/Query.test.ts +3 -3
  347. package/source/Query.ts +130 -33
  348. package/source/RTD/Context.ts +1 -1
  349. package/source/RTD/Directives.ts +4 -0
  350. package/source/RTD/Endpoint.ts +3 -0
  351. package/source/RTD/Method.ts +16 -0
  352. package/source/RTD/Node.ts +30 -15
  353. package/source/RTD/Route.ts +12 -5
  354. package/source/RTD/Tree.ts +7 -5
  355. package/source/RTD/factory.ts +4 -1
  356. package/source/RTD/segment.ts +2 -0
  357. package/source/RTD/syntax/parse.test.ts +1 -1
  358. package/source/RTD/syntax/parse.ts +37 -24
  359. package/source/RTD/syntax/types.ts +9 -4
  360. package/source/Remotes.ts +7 -6
  361. package/source/Tenant.ts +6 -12
  362. package/source/deployment.ts +14 -8
  363. package/source/directives/auth/Anonymous.ts +3 -3
  364. package/source/directives/auth/Anyone.ts +13 -0
  365. package/source/directives/auth/Assert.ts +35 -0
  366. package/source/directives/auth/Authorization.ts +58 -22
  367. package/source/directives/auth/Delegate.ts +9 -5
  368. package/source/directives/auth/Echo.ts +16 -6
  369. package/source/directives/auth/Federation.ts +84 -0
  370. package/source/directives/auth/Id.ts +1 -1
  371. package/source/directives/auth/Incept.ts +76 -24
  372. package/source/directives/auth/Input.ts +71 -0
  373. package/source/directives/auth/Role.test.ts +2 -3
  374. package/source/directives/auth/Role.ts +6 -11
  375. package/source/directives/auth/Rule.ts +3 -6
  376. package/source/directives/auth/Scheme.ts +5 -5
  377. package/source/directives/auth/create.ts +11 -0
  378. package/source/directives/auth/schemes.ts +5 -2
  379. package/source/directives/auth/split.ts +1 -1
  380. package/source/directives/auth/types.ts +12 -7
  381. package/source/directives/cache/Cache.ts +20 -7
  382. package/source/directives/cache/Control.ts +16 -16
  383. package/source/directives/cors/CORS.ts +9 -9
  384. package/source/directives/dev/Development.ts +14 -7
  385. package/source/directives/dev/Faulty.ts +26 -0
  386. package/source/directives/dev/Sleep.ts +55 -0
  387. package/source/directives/dev/types.ts +1 -1
  388. package/source/directives/flow/Compose.ts +92 -0
  389. package/source/directives/flow/Fetch.ts +86 -0
  390. package/source/directives/flow/Flow.ts +42 -0
  391. package/source/directives/flow/index.ts +3 -0
  392. package/source/directives/flow/types.ts +7 -0
  393. package/source/directives/index.ts +3 -2
  394. package/source/directives/io/Directive.ts +5 -2
  395. package/source/directives/io/IO.ts +18 -6
  396. package/source/directives/io/Input.ts +9 -6
  397. package/source/directives/io/Output.ts +6 -5
  398. package/source/directives/io/Throttle.ts +32 -0
  399. package/source/directives/io/lib/throttle/Configuration.test.ts +40 -0
  400. package/source/directives/io/lib/throttle/Configuration.ts +58 -0
  401. package/source/directives/io/lib/throttle/Interval.ts +31 -0
  402. package/source/directives/io/lib/throttle/Keys.ts +40 -0
  403. package/source/directives/io/lib/throttle/Quota.ts +22 -0
  404. package/source/directives/io/lib/throttle/Quotas.test.ts +136 -0
  405. package/source/directives/io/lib/throttle/Quotas.ts +83 -0
  406. package/source/directives/io/lib/throttle/components/Component.ts +5 -0
  407. package/source/directives/io/lib/throttle/components/IP.ts +40 -0
  408. package/source/directives/io/lib/throttle/components/Path.ts +8 -0
  409. package/source/directives/io/lib/throttle/components/index.ts +13 -0
  410. package/source/directives/io/lib/throttle/conditions/Condition.ts +5 -0
  411. package/source/directives/io/lib/throttle/conditions/Status.ts +17 -0
  412. package/source/directives/io/lib/throttle/conditions/index.ts +11 -0
  413. package/source/directives/io/lib/throttle/index.ts +2 -0
  414. package/source/directives/io/schemas.test.ts +9 -0
  415. package/source/directives/io/schemas.ts +3 -0
  416. package/source/directives/map/Authority.ts +15 -0
  417. package/source/directives/map/Buffer.ts +15 -0
  418. package/source/directives/map/Claims.ts +58 -0
  419. package/source/directives/map/Directive.ts +4 -0
  420. package/source/directives/map/Headers.ts +38 -0
  421. package/source/directives/map/Language.ts +42 -0
  422. package/source/directives/map/Languages.ts +11 -0
  423. package/source/directives/map/Map.ts +63 -0
  424. package/source/directives/map/Mapping.ts +19 -0
  425. package/source/directives/{vary → map}/Properties.ts +2 -4
  426. package/source/directives/map/Segments.ts +33 -0
  427. package/source/directives/map/index.ts +3 -0
  428. package/source/directives/octets/Context.ts +3 -2
  429. package/source/directives/octets/Delete.ts +22 -19
  430. package/source/directives/octets/Get.ts +96 -0
  431. package/source/directives/octets/Octets.ts +10 -12
  432. package/source/directives/octets/Put.ts +138 -0
  433. package/source/directives/octets/Workflow.ts +9 -3
  434. package/source/directives/octets/bytes.test.ts +30 -0
  435. package/source/directives/octets/bytes.ts +18 -0
  436. package/source/directives/octets/schemas.ts +4 -8
  437. package/source/directives/octets/types.ts +2 -0
  438. package/source/directives/octets/workflows/Execution.ts +62 -8
  439. package/source/directives/octets/workflows/Workflow.ts +18 -7
  440. package/source/directives/octets/workflows/index.ts +1 -1
  441. package/source/exceptions.ts +16 -4
  442. package/source/manifest.ts +10 -11
  443. package/source/root.ts +16 -1
  444. package/transpiled/Annotation.d.ts +2 -0
  445. package/transpiled/Branch.d.ts +1 -0
  446. package/transpiled/Composition.d.ts +0 -1
  447. package/transpiled/Composition.js +0 -4
  448. package/transpiled/Composition.js.map +1 -1
  449. package/transpiled/Context.d.ts +1 -0
  450. package/transpiled/Directive.d.ts +3 -0
  451. package/transpiled/Directive.js +24 -6
  452. package/transpiled/Directive.js.map +1 -1
  453. package/transpiled/Endpoint.d.ts +6 -4
  454. package/transpiled/Endpoint.js +63 -15
  455. package/transpiled/Endpoint.js.map +1 -1
  456. package/transpiled/Factory.d.ts +1 -1
  457. package/transpiled/Factory.js +11 -2
  458. package/transpiled/Factory.js.map +1 -1
  459. package/transpiled/Gateway.d.ts +3 -0
  460. package/transpiled/Gateway.js +57 -12
  461. package/transpiled/Gateway.js.map +1 -1
  462. package/transpiled/HTTP/Context.d.ts +13 -2
  463. package/transpiled/HTTP/Context.js +26 -6
  464. package/transpiled/HTTP/Context.js.map +1 -1
  465. package/transpiled/HTTP/Server.d.ts +9 -3
  466. package/transpiled/HTTP/Server.js +135 -38
  467. package/transpiled/HTTP/Server.js.map +1 -1
  468. package/transpiled/HTTP/Timing.js.map +1 -1
  469. package/transpiled/HTTP/exceptions.d.ts +16 -7
  470. package/transpiled/HTTP/exceptions.js +34 -16
  471. package/transpiled/HTTP/exceptions.js.map +1 -1
  472. package/transpiled/HTTP/formats/index.d.ts +2 -2
  473. package/transpiled/HTTP/formats/index.js +3 -3
  474. package/transpiled/HTTP/formats/index.js.map +1 -1
  475. package/transpiled/HTTP/formats/json.d.ts +2 -2
  476. package/transpiled/HTTP/formats/json.js +3 -4
  477. package/transpiled/HTTP/formats/json.js.map +1 -1
  478. package/transpiled/HTTP/formats/msgpack.d.ts +1 -1
  479. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  480. package/transpiled/HTTP/formats/text.d.ts +2 -2
  481. package/transpiled/HTTP/formats/text.js +3 -4
  482. package/transpiled/HTTP/formats/text.js.map +1 -1
  483. package/transpiled/HTTP/formats/yaml.d.ts +2 -2
  484. package/transpiled/HTTP/formats/yaml.js +3 -4
  485. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  486. package/transpiled/HTTP/messages.d.ts +4 -1
  487. package/transpiled/HTTP/messages.js +74 -13
  488. package/transpiled/HTTP/messages.js.map +1 -1
  489. package/transpiled/Introspection.d.ts +9 -0
  490. package/transpiled/Introspection.js +3 -0
  491. package/transpiled/Introspection.js.map +1 -0
  492. package/transpiled/Mapping.d.ts +11 -2
  493. package/transpiled/Mapping.js +51 -19
  494. package/transpiled/Mapping.js.map +1 -1
  495. package/transpiled/Query.d.ts +12 -1
  496. package/transpiled/Query.js +93 -28
  497. package/transpiled/Query.js.map +1 -1
  498. package/transpiled/RTD/Context.d.ts +1 -1
  499. package/transpiled/RTD/Directives.d.ts +3 -0
  500. package/transpiled/RTD/Endpoint.d.ts +1 -0
  501. package/transpiled/RTD/Method.d.ts +4 -0
  502. package/transpiled/RTD/Method.js +11 -0
  503. package/transpiled/RTD/Method.js.map +1 -1
  504. package/transpiled/RTD/Node.d.ts +4 -1
  505. package/transpiled/RTD/Node.js +23 -12
  506. package/transpiled/RTD/Node.js.map +1 -1
  507. package/transpiled/RTD/Route.d.ts +2 -1
  508. package/transpiled/RTD/Route.js +7 -3
  509. package/transpiled/RTD/Route.js.map +1 -1
  510. package/transpiled/RTD/Tree.d.ts +2 -1
  511. package/transpiled/RTD/Tree.js +3 -0
  512. package/transpiled/RTD/Tree.js.map +1 -1
  513. package/transpiled/RTD/factory.js +4 -1
  514. package/transpiled/RTD/factory.js.map +1 -1
  515. package/transpiled/RTD/segment.d.ts +1 -0
  516. package/transpiled/RTD/segment.js +2 -0
  517. package/transpiled/RTD/segment.js.map +1 -1
  518. package/transpiled/RTD/syntax/parse.js +34 -22
  519. package/transpiled/RTD/syntax/parse.js.map +1 -1
  520. package/transpiled/RTD/syntax/types.d.ts +8 -3
  521. package/transpiled/RTD/syntax/types.js +1 -1
  522. package/transpiled/RTD/syntax/types.js.map +1 -1
  523. package/transpiled/Remotes.d.ts +4 -4
  524. package/transpiled/Remotes.js +6 -5
  525. package/transpiled/Remotes.js.map +1 -1
  526. package/transpiled/Tenant.d.ts +5 -4
  527. package/transpiled/Tenant.js +2 -7
  528. package/transpiled/Tenant.js.map +1 -1
  529. package/transpiled/deployment.js +9 -3
  530. package/transpiled/deployment.js.map +1 -1
  531. package/transpiled/directives/auth/Anonymous.d.ts +2 -2
  532. package/transpiled/directives/auth/Anonymous.js +2 -2
  533. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  534. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  535. package/transpiled/directives/auth/Anyone.js +14 -0
  536. package/transpiled/directives/auth/Anyone.js.map +1 -0
  537. package/transpiled/directives/auth/Assert.d.ts +7 -0
  538. package/transpiled/directives/auth/Assert.js +57 -0
  539. package/transpiled/directives/auth/Assert.js.map +1 -0
  540. package/transpiled/directives/auth/Authorization.d.ts +4 -3
  541. package/transpiled/directives/auth/Authorization.js +48 -21
  542. package/transpiled/directives/auth/Authorization.js.map +1 -1
  543. package/transpiled/directives/auth/Delegate.d.ts +5 -4
  544. package/transpiled/directives/auth/Delegate.js +7 -3
  545. package/transpiled/directives/auth/Delegate.js.map +1 -1
  546. package/transpiled/directives/auth/Echo.d.ts +4 -4
  547. package/transpiled/directives/auth/Echo.js +11 -4
  548. package/transpiled/directives/auth/Echo.js.map +1 -1
  549. package/transpiled/directives/auth/Federation.d.ts +16 -0
  550. package/transpiled/directives/auth/Federation.js +57 -0
  551. package/transpiled/directives/auth/Federation.js.map +1 -0
  552. package/transpiled/directives/auth/Id.d.ts +1 -1
  553. package/transpiled/directives/auth/Id.js.map +1 -1
  554. package/transpiled/directives/auth/Incept.d.ts +8 -5
  555. package/transpiled/directives/auth/Incept.js +57 -19
  556. package/transpiled/directives/auth/Incept.js.map +1 -1
  557. package/transpiled/directives/auth/Input.d.ts +13 -0
  558. package/transpiled/directives/auth/Input.js +49 -0
  559. package/transpiled/directives/auth/Input.js.map +1 -0
  560. package/transpiled/directives/auth/Role.d.ts +1 -1
  561. package/transpiled/directives/auth/Role.js +4 -6
  562. package/transpiled/directives/auth/Role.js.map +1 -1
  563. package/transpiled/directives/auth/Rule.d.ts +2 -4
  564. package/transpiled/directives/auth/Rule.js +2 -2
  565. package/transpiled/directives/auth/Rule.js.map +1 -1
  566. package/transpiled/directives/auth/Scheme.d.ts +2 -2
  567. package/transpiled/directives/auth/Scheme.js +4 -4
  568. package/transpiled/directives/auth/Scheme.js.map +1 -1
  569. package/transpiled/directives/auth/create.d.ts +2 -0
  570. package/transpiled/directives/auth/create.js +14 -0
  571. package/transpiled/directives/auth/create.js.map +1 -0
  572. package/transpiled/directives/auth/schemes.d.ts +2 -1
  573. package/transpiled/directives/auth/schemes.js +5 -2
  574. package/transpiled/directives/auth/schemes.js.map +1 -1
  575. package/transpiled/directives/auth/split.js +1 -1
  576. package/transpiled/directives/auth/split.js.map +1 -1
  577. package/transpiled/directives/auth/types.d.ts +10 -7
  578. package/transpiled/directives/cache/Cache.d.ts +3 -3
  579. package/transpiled/directives/cache/Cache.js +15 -4
  580. package/transpiled/directives/cache/Cache.js.map +1 -1
  581. package/transpiled/directives/cache/Control.d.ts +2 -2
  582. package/transpiled/directives/cache/Control.js +12 -12
  583. package/transpiled/directives/cache/Control.js.map +1 -1
  584. package/transpiled/directives/cors/CORS.js +7 -7
  585. package/transpiled/directives/cors/CORS.js.map +1 -1
  586. package/transpiled/directives/dev/Development.d.ts +1 -1
  587. package/transpiled/directives/dev/Development.js +15 -7
  588. package/transpiled/directives/dev/Development.js.map +1 -1
  589. package/transpiled/directives/dev/Faulty.d.ts +8 -0
  590. package/transpiled/directives/dev/Faulty.js +26 -0
  591. package/transpiled/directives/dev/Faulty.js.map +1 -0
  592. package/transpiled/directives/dev/Sleep.d.ts +9 -0
  593. package/transpiled/directives/dev/Sleep.js +48 -0
  594. package/transpiled/directives/dev/Sleep.js.map +1 -0
  595. package/transpiled/directives/dev/types.d.ts +1 -1
  596. package/transpiled/directives/flow/Compose.d.ts +9 -0
  597. package/transpiled/directives/flow/Compose.js +94 -0
  598. package/transpiled/directives/flow/Compose.js.map +1 -0
  599. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  600. package/transpiled/directives/flow/Fetch.js +58 -0
  601. package/transpiled/directives/flow/Fetch.js.map +1 -0
  602. package/transpiled/directives/flow/Flow.d.ts +10 -0
  603. package/transpiled/directives/flow/Flow.js +33 -0
  604. package/transpiled/directives/flow/Flow.js.map +1 -0
  605. package/transpiled/directives/flow/index.d.ts +2 -0
  606. package/transpiled/directives/flow/index.js +6 -0
  607. package/transpiled/directives/flow/index.js.map +1 -0
  608. package/transpiled/directives/flow/types.d.ts +6 -0
  609. package/transpiled/directives/flow/types.js.map +1 -0
  610. package/transpiled/directives/index.js +3 -2
  611. package/transpiled/directives/index.js.map +1 -1
  612. package/transpiled/directives/io/Directive.d.ts +5 -2
  613. package/transpiled/directives/io/IO.d.ts +4 -2
  614. package/transpiled/directives/io/IO.js +14 -4
  615. package/transpiled/directives/io/IO.js.map +1 -1
  616. package/transpiled/directives/io/Input.d.ts +1 -1
  617. package/transpiled/directives/io/Input.js +5 -3
  618. package/transpiled/directives/io/Input.js.map +1 -1
  619. package/transpiled/directives/io/Output.d.ts +1 -1
  620. package/transpiled/directives/io/Output.js +3 -3
  621. package/transpiled/directives/io/Output.js.map +1 -1
  622. package/transpiled/directives/io/Throttle.d.ts +11 -0
  623. package/transpiled/directives/io/Throttle.js +51 -0
  624. package/transpiled/directives/io/Throttle.js.map +1 -0
  625. package/transpiled/directives/io/lib/throttle/Configuration.d.ts +23 -0
  626. package/transpiled/directives/io/lib/throttle/Configuration.js +27 -0
  627. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
  628. package/transpiled/directives/io/lib/throttle/Interval.d.ts +9 -0
  629. package/transpiled/directives/io/lib/throttle/Interval.js +31 -0
  630. package/transpiled/directives/io/lib/throttle/Interval.js.map +1 -0
  631. package/transpiled/directives/io/lib/throttle/Keys.d.ts +12 -0
  632. package/transpiled/directives/io/lib/throttle/Keys.js +34 -0
  633. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
  634. package/transpiled/directives/io/lib/throttle/Quota.d.ts +8 -0
  635. package/transpiled/directives/io/lib/throttle/Quota.js +22 -0
  636. package/transpiled/directives/io/lib/throttle/Quota.js.map +1 -0
  637. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +26 -0
  638. package/transpiled/directives/io/lib/throttle/Quotas.js +61 -0
  639. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
  640. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +4 -0
  641. package/transpiled/directives/io/lib/throttle/components/Component.js +3 -0
  642. package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
  643. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +6 -0
  644. package/transpiled/directives/io/lib/throttle/components/IP.js +33 -0
  645. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
  646. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
  647. package/transpiled/directives/io/lib/throttle/components/Path.js +10 -0
  648. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
  649. package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
  650. package/transpiled/directives/io/lib/throttle/components/index.js +10 -0
  651. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
  652. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
  653. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +3 -0
  654. package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
  655. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
  656. package/transpiled/directives/io/lib/throttle/conditions/Status.js +19 -0
  657. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
  658. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
  659. package/transpiled/directives/io/lib/throttle/conditions/index.js +8 -0
  660. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
  661. package/transpiled/directives/io/lib/throttle/index.d.ts +2 -0
  662. package/transpiled/directives/io/lib/throttle/index.js +8 -0
  663. package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
  664. package/transpiled/directives/io/schemas.d.ts +2 -0
  665. package/transpiled/directives/io/schemas.js +2 -1
  666. package/transpiled/directives/io/schemas.js.map +1 -1
  667. package/transpiled/directives/map/Authority.d.ts +6 -0
  668. package/transpiled/directives/map/Authority.js +19 -0
  669. package/transpiled/directives/map/Authority.js.map +1 -0
  670. package/transpiled/directives/map/Buffer.d.ts +6 -0
  671. package/transpiled/directives/map/Buffer.js +19 -0
  672. package/transpiled/directives/map/Buffer.js.map +1 -0
  673. package/transpiled/directives/map/Claims.d.ts +10 -0
  674. package/transpiled/directives/map/Claims.js +44 -0
  675. package/transpiled/directives/map/Claims.js.map +1 -0
  676. package/transpiled/directives/map/Directive.d.ts +3 -0
  677. package/transpiled/directives/map/Directive.js.map +1 -0
  678. package/transpiled/directives/map/Headers.d.ts +7 -0
  679. package/transpiled/directives/map/Headers.js +34 -0
  680. package/transpiled/directives/map/Headers.js.map +1 -0
  681. package/transpiled/directives/map/Language.d.ts +10 -0
  682. package/transpiled/directives/map/Language.js +38 -0
  683. package/transpiled/directives/map/Language.js.map +1 -0
  684. package/transpiled/directives/map/Languages.d.ts +4 -0
  685. package/transpiled/directives/map/Languages.js +17 -0
  686. package/transpiled/directives/map/Languages.js.map +1 -0
  687. package/transpiled/directives/map/Map.d.ts +13 -0
  688. package/transpiled/directives/map/Map.js +48 -0
  689. package/transpiled/directives/map/Map.js.map +1 -0
  690. package/transpiled/directives/map/Mapping.d.ts +13 -0
  691. package/transpiled/directives/map/Mapping.js +13 -0
  692. package/transpiled/directives/map/Mapping.js.map +1 -0
  693. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  694. package/transpiled/directives/{vary → map}/Properties.js +1 -3
  695. package/transpiled/directives/map/Properties.js.map +1 -0
  696. package/transpiled/directives/map/Segments.d.ts +6 -0
  697. package/transpiled/directives/map/Segments.js +30 -0
  698. package/transpiled/directives/map/Segments.js.map +1 -0
  699. package/transpiled/directives/map/index.d.ts +2 -0
  700. package/transpiled/directives/map/index.js +6 -0
  701. package/transpiled/directives/map/index.js.map +1 -0
  702. package/transpiled/directives/octets/Context.js +4 -24
  703. package/transpiled/directives/octets/Context.js.map +1 -1
  704. package/transpiled/directives/octets/Delete.js +15 -12
  705. package/transpiled/directives/octets/Delete.js.map +1 -1
  706. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  707. package/transpiled/directives/octets/{Fetch.js → Get.js} +34 -30
  708. package/transpiled/directives/octets/Get.js.map +1 -0
  709. package/transpiled/directives/octets/Octets.js +9 -10
  710. package/transpiled/directives/octets/Octets.js.map +1 -1
  711. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
  712. package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
  713. package/transpiled/directives/octets/Put.js.map +1 -0
  714. package/transpiled/directives/octets/Workflow.js +7 -2
  715. package/transpiled/directives/octets/Workflow.js.map +1 -1
  716. package/transpiled/directives/octets/bytes.d.ts +1 -0
  717. package/transpiled/directives/octets/bytes.js +21 -0
  718. package/transpiled/directives/octets/bytes.js.map +1 -0
  719. package/transpiled/directives/octets/schemas.d.ts +4 -8
  720. package/transpiled/directives/octets/schemas.js +3 -6
  721. package/transpiled/directives/octets/schemas.js.map +1 -1
  722. package/transpiled/directives/octets/types.d.ts +2 -0
  723. package/transpiled/directives/octets/workflows/Execution.d.ts +7 -1
  724. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  725. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  726. package/transpiled/directives/octets/workflows/Workflow.d.ts +8 -3
  727. package/transpiled/directives/octets/workflows/Workflow.js +10 -4
  728. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  729. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  730. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  731. package/transpiled/exceptions.js +11 -2
  732. package/transpiled/exceptions.js.map +1 -1
  733. package/transpiled/manifest.js +10 -11
  734. package/transpiled/manifest.js.map +1 -1
  735. package/transpiled/root.js +16 -1
  736. package/transpiled/root.js.map +1 -1
  737. package/transpiled/tsconfig.tsbuildinfo +1 -1
  738. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  739. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  740. package/components/identity.federation/operations/lib/jwt.d.ts +0 -20
  741. package/components/identity.federation/operations/lib/jwt.js +0 -136
  742. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  743. package/components/identity.federation/operations/schemas.d.ts +0 -63
  744. package/components/identity.federation/operations/schemas.js +0 -9
  745. package/components/identity.federation/operations/schemas.js.map +0 -1
  746. package/components/identity.federation/operations/types.d.ts +0 -56
  747. package/components/identity.federation/operations/types.js.map +0 -1
  748. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  749. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  750. package/components/identity.federation/source/lib/jwt.ts +0 -171
  751. package/components/identity.federation/source/schemas.ts +0 -65
  752. package/components/identity.federation/source/types.ts +0 -62
  753. package/components/identity.tokens/operations/types.d.ts +0 -46
  754. package/components/identity.tokens/operations/types.js.map +0 -1
  755. package/components/octets.storage/operations/fetch.js +0 -46
  756. package/components/octets.storage/operations/list.js +0 -7
  757. package/components/octets.storage/operations/store.js +0 -11
  758. package/documentation/vary.md +0 -69
  759. package/features/steps/IdP.ts +0 -154
  760. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  761. package/features/vary.feature +0 -252
  762. package/schemas/octets/context.cos.yaml +0 -1
  763. package/schemas/octets/fetch.cos.yaml +0 -3
  764. package/schemas/octets/permute.cos.yaml +0 -1
  765. package/schemas/octets/store.cos.yaml +0 -3
  766. package/source/directives/octets/Fetch.ts +0 -100
  767. package/source/directives/octets/List.ts +0 -72
  768. package/source/directives/octets/Store.ts +0 -126
  769. package/source/directives/vary/Directive.ts +0 -7
  770. package/source/directives/vary/Embed.ts +0 -68
  771. package/source/directives/vary/Vary.ts +0 -50
  772. package/source/directives/vary/embeddings/Authority.ts +0 -8
  773. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  774. package/source/directives/vary/embeddings/Header.ts +0 -32
  775. package/source/directives/vary/embeddings/Language.ts +0 -31
  776. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  777. package/source/directives/vary/embeddings/index.ts +0 -13
  778. package/source/directives/vary/index.ts +0 -3
  779. package/transpiled/directives/octets/Fetch.js.map +0 -1
  780. package/transpiled/directives/octets/List.d.ts +0 -16
  781. package/transpiled/directives/octets/List.js +0 -74
  782. package/transpiled/directives/octets/List.js.map +0 -1
  783. package/transpiled/directives/octets/Store.js.map +0 -1
  784. package/transpiled/directives/vary/Directive.d.ts +0 -6
  785. package/transpiled/directives/vary/Directive.js.map +0 -1
  786. package/transpiled/directives/vary/Embed.d.ts +0 -11
  787. package/transpiled/directives/vary/Embed.js +0 -51
  788. package/transpiled/directives/vary/Embed.js.map +0 -1
  789. package/transpiled/directives/vary/Properties.js.map +0 -1
  790. package/transpiled/directives/vary/Vary.d.ts +0 -10
  791. package/transpiled/directives/vary/Vary.js +0 -36
  792. package/transpiled/directives/vary/Vary.js.map +0 -1
  793. package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
  794. package/transpiled/directives/vary/embeddings/Authority.js +0 -10
  795. package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
  796. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  797. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  798. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  799. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  800. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  801. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  802. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  803. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  804. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  805. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  806. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  807. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  808. package/transpiled/directives/vary/embeddings/index.js +0 -14
  809. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  810. package/transpiled/directives/vary/index.d.ts +0 -2
  811. package/transpiled/directives/vary/index.js +0 -6
  812. package/transpiled/directives/vary/index.js.map +0 -1
  813. /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
  814. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  815. /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
  816. /package/transpiled/directives/{vary → map}/Directive.js +0 -0
@@ -0,0 +1,148 @@
1
+ Feature: Request flow
2
+
3
+ Scenario: Fetching URL
4
+ Given the `octets.tester` is running
5
+ And the annotation:
6
+ """yaml
7
+ /:
8
+ octets:context: octets
9
+ /:type:
10
+ GET:
11
+ anonymous: true
12
+ io:output: true
13
+ flow:fetch: octets.tester.redirect
14
+ """
15
+ When the following request is received:
16
+ """
17
+ GET /rfc HTTP/1.1
18
+ host: nex.toa.io
19
+ """
20
+ Then the following reply is sent:
21
+ """
22
+ 200 OK
23
+ content-type: text/plain
24
+
25
+ Faster Than Light Speed Protocol (FLIP)
26
+ """
27
+ When the following request is received:
28
+ """
29
+ GET /img HTTP/1.1
30
+ host: nex.toa.io
31
+ """
32
+ Then the following reply is sent:
33
+ """
34
+ 200 OK
35
+ content-type: image/svg+xml
36
+ """
37
+ When the following request is received:
38
+ """
39
+ GET /err HTTP/1.1
40
+ host: nex.toa.io
41
+ """
42
+ Then the following reply is sent:
43
+ """
44
+ 404 Not Found
45
+ """
46
+
47
+ Scenario: Composing a stream
48
+ Given the `sequences` is running with the following manifest:
49
+ """yaml
50
+ exposition:
51
+ /:
52
+ flow:compose:
53
+ a: $[0]
54
+ b: $[1]
55
+ c: $[2]
56
+ sum: $[0] + $[1] + $[2]
57
+ str: \hello
58
+ num: 1
59
+ arr:
60
+ - $[0]
61
+ - $[1]
62
+ - $[2]
63
+ - $[0] + $[1] + $[2]
64
+ copy: $
65
+ POST: numbers
66
+ """
67
+ When the following request is received:
68
+ """
69
+ POST /sequences/ HTTP/1.1
70
+ host: nex.toa.io
71
+ content-type: text/plain
72
+ accept: application/yaml
73
+
74
+ 3
75
+ """
76
+ Then the following reply is sent:
77
+ """
78
+ 201 Created
79
+ content-type: application/yaml
80
+
81
+ a: 0
82
+ b: 1
83
+ c: 2
84
+ sum: 3
85
+ str: hello
86
+ num: 1
87
+ arr:
88
+ - 0
89
+ - 1
90
+ - 2
91
+ - 3
92
+ copy:
93
+ - 0
94
+ - 1
95
+ - 2
96
+ """
97
+
98
+ Scenario: Composing with multiple possible shapes
99
+ Given the `sequences` is running with the following manifest:
100
+ """yaml
101
+ exposition:
102
+ /:
103
+ flow:compose:
104
+ - a: $[0].b.c
105
+ - b: $[0]
106
+ POST: numbers
107
+ """
108
+ When the following request is received:
109
+ """
110
+ POST /sequences/ HTTP/1.1
111
+ host: nex.toa.io
112
+ content-type: text/plain
113
+ accept: application/yaml
114
+
115
+ 3
116
+ """
117
+ Then the following reply is sent:
118
+ """
119
+ 201 Created
120
+ content-type: application/yaml
121
+
122
+ b: 0
123
+ """
124
+
125
+ Scenario: Composing with text value
126
+ Given the `sequences` is running with the following manifest:
127
+ """yaml
128
+ exposition:
129
+ /:
130
+ flow:compose: $[1]
131
+ POST: numbers
132
+ """
133
+ When the following request is received:
134
+ """
135
+ POST /sequences/ HTTP/1.1
136
+ host: nex.toa.io
137
+ content-type: text/plain
138
+ accept: application/yaml
139
+
140
+ 3
141
+ """
142
+ Then the following reply is sent:
143
+ """
144
+ 201 Created
145
+ content-type: application/yaml
146
+
147
+ 1
148
+ """
@@ -39,7 +39,7 @@ Feature: Basic authentication
39
39
  exposition:
40
40
  /:
41
41
  io:output: true
42
- anonymous: true # checking compatibility with anonymous access
42
+ anonymous: true # checking compatibility with anonymous access
43
43
  POST:
44
44
  incept: id
45
45
  endpoint: transit
@@ -87,6 +87,7 @@ Feature: Basic authentication
87
87
  """
88
88
  200 OK
89
89
  """
90
+
90
91
  # username is taken
91
92
  When the following request is received:
92
93
  """
@@ -102,6 +103,7 @@ Feature: Basic authentication
102
103
  """
103
104
  409 Conflict
104
105
  """
106
+
105
107
  # credentials already exists
106
108
  When the following request is received:
107
109
  """
@@ -205,7 +207,7 @@ Feature: Basic authentication
205
207
  422 Unprocessable Entity
206
208
 
207
209
  code: <code>
208
- message: <problem> is not meeting the requirements.
210
+ message: <problem> is not meeting the requirements
209
211
  """
210
212
  Examples:
211
213
  | username | password | problem | code |
@@ -316,12 +318,11 @@ Feature: Basic authentication
316
318
  422 Unprocessable Entity
317
319
 
318
320
  code: PRINCIPAL_LOCKED
319
- message: Principal username cannot be changed.
321
+ message: Principal username cannot be changed
320
322
  """
321
323
 
322
324
  Scenario: Creating an Identity using inception with existing credentials
323
- Given the `identity.basic` database is empty
324
- And the `users` is running with the following manifest:
325
+ Given the `users` is running with the following manifest:
325
326
  """yaml
326
327
  exposition:
327
328
  /:
@@ -329,6 +330,7 @@ Feature: Basic authentication
329
330
  anonymous: true
330
331
  POST:
331
332
  incept: id
333
+ query: false
332
334
  endpoint: transit
333
335
  """
334
336
  When the following request is received:
@@ -352,7 +354,7 @@ Feature: Basic authentication
352
354
  POST /users/ HTTP/1.1
353
355
  host: nex.toa.io
354
356
  authorization: Basic dXNlcjpwYXNzMTIzNA==
355
- content-type: text/plain
357
+ content-type: application/yaml
356
358
 
357
359
  name: Mary Louis
358
360
  """
@@ -360,3 +362,115 @@ Feature: Basic authentication
360
362
  """
361
363
  403 Forbidden
362
364
  """
365
+
366
+ Scenario: Incorrect credentials format
367
+ Given the `identity.basic` database is empty
368
+ And the `users` is running with the following manifest:
369
+ """yaml
370
+ exposition:
371
+ /:
372
+ io:output: true
373
+ anonymous: true
374
+ POST:
375
+ incept: id
376
+ endpoint: transit
377
+ """
378
+ When the following request is received:
379
+ """
380
+ GET /identity/ HTTP/1.1
381
+ host: nex.toa.io
382
+ authorization: Basic not-base64
383
+ """
384
+ Then the following reply is sent:
385
+ """
386
+ 401 Unauthorized
387
+ """
388
+ When the following request is received:
389
+ """
390
+ POST /users/ HTTP/1.1
391
+ host: nex.toa.io
392
+ authorization: Basic not-base64
393
+ accept: application/yaml
394
+ content-type: application/yaml
395
+
396
+ name: Bill Smith
397
+ """
398
+ Then the following reply is sent:
399
+ """
400
+ 422 Unprocessable Entity
401
+
402
+ code: INVALID_CREDENTIALS
403
+ """
404
+
405
+ Scenario: Check if username is available
406
+ Given the `identity.basic` database contains:
407
+ | _id | authority | username | password | _version |
408
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
409
+ When the following request is received:
410
+ """
411
+ GET /identity/basic/usernames/ZGV2ZWxvcGVy/ HTTP/1.1
412
+ host: nex.toa.io
413
+ """
414
+ Then the following reply is sent:
415
+ """
416
+ 204 No Content
417
+ """
418
+ When the following request is received:
419
+ """
420
+ GET /identity/basic/username/bWFuYWdlcg/ HTTP/1.1
421
+ host: nex.toa.io
422
+ """
423
+ Then the following reply is sent:
424
+ """
425
+ 404 Not Found
426
+ """
427
+
428
+ Scenario: Adding new basic credentials
429
+ Given transient identity
430
+ When the following request is received:
431
+ """
432
+ POST /identity/basic/${{ identity.id }}/ HTTP/1.1
433
+ host: nex.toa.io
434
+ authorization: Token ${{ identity.token }}
435
+ accept: application/yaml
436
+ content-type: application/yaml
437
+
438
+ username: developer
439
+ password: secret#1234
440
+ """
441
+ Then the following reply is sent:
442
+ """
443
+ 201 Created
444
+ """
445
+ When the following request is received:
446
+ """
447
+ GET /identity/ HTTP/1.1
448
+ host: nex.toa.io
449
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldCMxMjM0
450
+ accept: application/yaml
451
+ """
452
+ Then the following reply is sent:
453
+ """
454
+ 200 OK
455
+
456
+ id: ${{ id }}
457
+ """
458
+
459
+ # credentials already exist
460
+ When the following request is received:
461
+ """
462
+ POST /identity/basic/${{ identity.id }}/ HTTP/1.1
463
+ host: nex.toa.io
464
+ authorization: Token ${{ identity.token }}
465
+ accept: application/yaml
466
+ content-type: application/yaml
467
+
468
+ username: painter
469
+ password: secret#4321
470
+ """
471
+ Then the following reply is sent:
472
+ """
473
+ 422 Unprocessable Entity
474
+
475
+ code: EXISTS
476
+ """
@@ -59,22 +59,29 @@ Feature: Identity resource
59
59
  - system:identity
60
60
  """
61
61
 
62
- Scenario: Requesting Identity with non-existent credentials
63
- Given the `identity.basic` database is empty
62
+ Scenario: Getting transient Identity
64
63
  When the following request is received:
65
64
  """
66
65
  GET /identity/ HTTP/1.1
67
66
  host: nex.toa.io
68
- authorization: Basic dXNlcjpwYXNzMTIzNA==
67
+ accept: application/yaml
69
68
  """
70
69
  Then the following reply is sent:
71
70
  """
72
- 401 Unauthorized
71
+ 201 Created
72
+ authorization: Token ${{ token }}
73
+
74
+ id: ${{ id }}
75
+ roles: []
73
76
  """
77
+
78
+ Scenario: Requesting Identity with non-existent credentials
79
+ Given the `identity.basic` database is empty
74
80
  When the following request is received:
75
81
  """
76
82
  GET /identity/ HTTP/1.1
77
83
  host: nex.toa.io
84
+ authorization: Basic dXNlcjpwYXNzMTIzNA==
78
85
  """
79
86
  Then the following reply is sent:
80
87
  """
@@ -3,12 +3,11 @@ Feature: Identity Federation
3
3
 
4
4
  Background:
5
5
  Given the `identity.federation` database is empty
6
- Given local IDP is running
6
+ And local IDP is running
7
7
 
8
- Scenario: Getting identity for a new user
8
+ Scenario: Asymmetric tokens
9
9
  Given the `identity.federation` configuration:
10
10
  """yaml
11
- explicit_identity_creation: false
12
11
  trust:
13
12
  - iss: http://localhost:44444
14
13
  """
@@ -19,7 +18,6 @@ Feature: Identity Federation
19
18
  host: nex.toa.io
20
19
  authorization: Bearer ${{ User.id_token }}
21
20
  accept: application/yaml
22
- content-type: application/yaml
23
21
  """
24
22
  Then the following reply is sent:
25
23
  """
@@ -29,7 +27,6 @@ Feature: Identity Federation
29
27
  id: ${{ User.id }}
30
28
  roles: []
31
29
  """
32
- # validate TOKEN
33
30
  When the following request is received:
34
31
  """
35
32
  GET /identity/ HTTP/1.1
@@ -58,41 +55,12 @@ Feature: Identity Federation
58
55
  id: ${{ User.id }}
59
56
  """
60
57
 
61
- Scenario: Getting identity for a user with symmetric tokens
62
- Given the `identity.federation` configuration:
63
- """yaml
64
- explicit_identity_creation: false
65
- trust:
66
- - iss: http://localhost:44444
67
- secrets:
68
- HS384:
69
- k1: the-secret
70
- """
71
- And the IDP HS384 token for GoodUser is issued with following secret:
72
- """
73
- the-secret
74
- """
75
- When the following request is received:
76
- """
77
- GET /identity/ HTTP/1.1
78
- host: nex.toa.io
79
- authorization: Bearer ${{ GoodUser.id_token }}
80
- accept: application/yaml
81
- content-type: application/yaml
82
- """
83
- Then the following reply is sent:
84
- """
85
- 200 OK
86
- authorization: Token ${{ GoodUser.token }}
87
-
88
- id: ${{ GoodUser.id }}
89
- """
90
-
91
- Scenario: Creating an Identity using inception with existing credentials
58
+ Scenario: Creating an Identity using inception
92
59
  Given the `identity.federation` configuration:
93
60
  """yaml
94
61
  trust:
95
62
  - iss: http://localhost:44444
63
+ assert: false
96
64
  """
97
65
  Given the `users` is running with the following manifest:
98
66
  """yaml
@@ -100,8 +68,8 @@ Feature: Identity Federation
100
68
  /:
101
69
  anonymous: true
102
70
  POST:
103
- io:output: true
104
- incept: id
71
+ io:output: [id]
72
+ auth:incept: id
105
73
  endpoint: create
106
74
  """
107
75
  And the IDP token for Bill is issued
@@ -146,6 +114,7 @@ Feature: Identity Federation
146
114
  Then the following reply is sent:
147
115
  """
148
116
  200 OK
117
+
149
118
  id: ${{ Bill.id }}
150
119
  """
151
120
  And the following request is received:
@@ -154,7 +123,7 @@ Feature: Identity Federation
154
123
  POST /users/ HTTP/1.1
155
124
  host: nex.toa.io
156
125
  authorization: Bearer ${{ Bill.id_token }}
157
- content-type: text/plain
126
+ content-type: application/yaml
158
127
 
159
128
  name: Mary Louis
160
129
  """
@@ -166,14 +135,15 @@ Feature: Identity Federation
166
135
  Scenario: Granting a `system` role to a Principal
167
136
  Given the `identity.federation` configuration:
168
137
  """yaml
169
- explicit_identity_creation: false
170
138
  trust:
171
139
  - iss: http://localhost:44444
172
140
  principal:
173
141
  iss: http://localhost:44444
174
- sub: root-mock-id
142
+ sub: root
175
143
  """
176
144
  And the IDP token for root is issued
145
+
146
+ # create an identity
177
147
  When the following request is received:
178
148
  """
179
149
  GET /identity/ HTTP/1.1
@@ -182,7 +152,6 @@ Feature: Identity Federation
182
152
  accept: application/yaml
183
153
  content-type: application/yaml
184
154
  """
185
- # create an identity
186
155
  Then the following reply is sent:
187
156
  """
188
157
  200 OK
@@ -190,6 +159,9 @@ Feature: Identity Federation
190
159
 
191
160
  id: ${{ root.id }}
192
161
  """
162
+
163
+ Then after 0.2 seconds
164
+
193
165
  # check the role
194
166
  When the following request is received:
195
167
  """
@@ -206,3 +178,111 @@ Feature: Identity Federation
206
178
  roles:
207
179
  - system
208
180
  """
181
+
182
+ Scenario: Adding federation to an existing identity
183
+ Given the `identity.federation` configuration:
184
+ """yaml
185
+ trust:
186
+ - iss: http://localhost:44444
187
+ """
188
+ And the `identity.basic` database is empty
189
+
190
+ # create an identity
191
+ When the following request is received:
192
+ """
193
+ POST /identity/basic/ HTTP/1.1
194
+ host: nex.toa.io
195
+ content-type: application/yaml
196
+ accept: application/yaml
197
+
198
+ username: #{{ id | set Bob.username }}
199
+ password: #{{ password 8 | set Bob.password }}
200
+ """
201
+ Then the following reply is sent:
202
+ """
203
+ 201 Created
204
+
205
+ id: ${{ Bob.id }}
206
+ """
207
+
208
+ When the IDP token for Bob is issued
209
+
210
+ # add federation
211
+ When the following request is received:
212
+ """
213
+ POST /identity/federation/${{ Bob.id }}/ HTTP/1.1
214
+ host: nex.toa.io
215
+ authorization: Basic #{{ basic Bob }}
216
+ content-type: application/yaml
217
+ accept: application/yaml
218
+
219
+ credentials: ${{ Bob.id_token }}
220
+ """
221
+ Then the following reply is sent:
222
+ """
223
+ 201 Created
224
+ """
225
+ And the following request is received:
226
+ """
227
+ GET /identity/ HTTP/1.1
228
+ host: nex.toa.io
229
+ authorization: Bearer ${{ Bob.id_token }}
230
+ accept: application/yaml
231
+ """
232
+ Then the following reply is sent:
233
+ """
234
+ 200 OK
235
+
236
+ id: ${{ Bob.id }}
237
+ """
238
+
239
+ Scenario: Authorization code flow with secret
240
+ Given the `identity.federation` configuration:
241
+ """yaml
242
+ trust:
243
+ - iss: http://localhost:44444
244
+ aud: nex
245
+ secret: secret
246
+ """
247
+ And auth code for Alice is issued for https://web.toa.io/callback/
248
+ When the following request is received:
249
+ """
250
+ GET /identity/ HTTP/1.1
251
+ authorization: Code ${{ Alice.code_credentials }}
252
+ host: nex.toa.io
253
+ accept: application/yaml
254
+ """
255
+ Then the following reply is sent:
256
+ """
257
+ 200 OK
258
+ authorization: Token ${{ Alice.token }}
259
+
260
+ id: ${{ Alice.id }}
261
+ """
262
+
263
+ Scenario: Authorization code flow with signature
264
+ Given the `identity.federation` configuration:
265
+ """yaml
266
+ trust:
267
+ - iss: http://localhost:44444
268
+ aud: nex
269
+ signature:
270
+ iss: io.toa.nex.id
271
+ kid: key-id
272
+ key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZzl4OURhdHdIMEdaSFNDbzkKVE1IVFZYeWVZMFlROHFiNzNqSFYydjRNc3llaFJBTkNBQVF3YVlsbmEyaFNWM0cvUklsTkxWNDFsZzhQbTRLZgpIZkN1S0tpdzNCSUpUblNBckFNSkxTeTF2WXdTSU1IejcyMG1rbVdUcld1UWtranZrRHBaeGZSdgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t
273
+ """
274
+ And auth code for Bob is issued for https://web.toa.io/callback/
275
+ When the following request is received:
276
+ """
277
+ GET /identity/ HTTP/1.1
278
+ authorization: Code ${{ Bob.code_credentials }}
279
+ host: nex.toa.io
280
+ accept: application/yaml
281
+ """
282
+ Then the following reply is sent:
283
+ """
284
+ 200 OK
285
+ authorization: Token ${{ Bob.token }}
286
+
287
+ id: ${{ Bob.id }}
288
+ """
@@ -0,0 +1,101 @@
1
+ Feature: OTP authentication
2
+
3
+ OTP credentials format is base64(username:password)
4
+
5
+ Background:
6
+ Given the `identity.otp` configuration:
7
+ """yaml
8
+ lifetime: 1
9
+ """
10
+ And the Gateway is running
11
+
12
+ Scenario: Authenticate using OTP
13
+ Given OTP for `alice` in `nex` authority is issued
14
+ When the following request is received:
15
+ """
16
+ GET /identity/ HTTP/1.1
17
+ host: nex.toa.io
18
+ authorization: OTP ${{ alice.otp }}
19
+ accept: application/yaml
20
+ """
21
+ Then the following reply is sent:
22
+ """
23
+ 200 OK
24
+ authorization: Token ${{ token }}
25
+
26
+ id: ${{ id }}
27
+ """
28
+
29
+ # valid only once
30
+ When the following request is received:
31
+ """
32
+ GET /identity/ HTTP/1.1
33
+ host: nex.toa.io
34
+ authorization: OTP ${{ alice.otp }}
35
+ accept: application/yaml
36
+ """
37
+ Then the following reply is sent:
38
+ """
39
+ 401 Unauthorized
40
+ """
41
+
42
+ # same username is resolved to the same identity
43
+ Given OTP for `alice` in `nex` authority is issued
44
+ When the following request is received:
45
+ """
46
+ GET /identity/ HTTP/1.1
47
+ host: nex.toa.io
48
+ authorization: OTP ${{ alice.otp }}
49
+ accept: application/yaml
50
+ """
51
+ Then the following reply is sent:
52
+ """
53
+ 200 OK
54
+
55
+ id: ${{ id }}
56
+ """
57
+
58
+ # expiration
59
+ Given OTP for `alice` in `nex` authority is issued
60
+ And after 1 second
61
+ When the following request is received:
62
+ """
63
+ GET /identity/ HTTP/1.1
64
+ host: nex.toa.io
65
+ authorization: OTP ${{ alice.otp }}
66
+ accept: application/yaml
67
+ """
68
+ Then the following reply is sent:
69
+ """
70
+ 401 Unauthorized
71
+ """
72
+
73
+ Scenario: Generate own OTP
74
+ Given transient identity bob
75
+ When the following request is received:
76
+ """
77
+ POST /identity/otp/${{ bob.id }}/ HTTP/1.1
78
+ host: nex.toa.io
79
+ authorization: Token ${{ bob.token }}
80
+ accept: application/yaml
81
+ """
82
+ Then the following reply is sent:
83
+ """
84
+ 201 Created
85
+
86
+ code: '${{ bob.code }}'
87
+ """
88
+
89
+ When the following request is received:
90
+ """
91
+ GET /identity/ HTTP/1.1
92
+ host: nex.toa.io
93
+ authorization: OTP #{{ otp bob }}
94
+ accept: application/yaml
95
+ """
96
+ Then the following reply is sent:
97
+ """
98
+ 200 OK
99
+
100
+ id: ${{ bob.id }}
101
+ """