@toa.io/extensions.exposition 1.0.0-alpha.2 → 1.0.0-alpha.200

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