@toa.io/extensions.exposition 1.0.0-alpha.14 → 1.0.0-alpha.143

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 (675) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +1 -1
  3. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -1
  4. package/components/identity.basic/manifest.toa.yaml +43 -10
  5. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  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 +12 -0
  12. package/components/identity.basic/operations/incept.js +26 -0
  13. package/components/identity.basic/operations/incept.js.map +1 -0
  14. package/components/identity.basic/operations/transit.d.ts +4 -4
  15. package/components/identity.basic/operations/transit.js +8 -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 +8 -4
  19. package/components/identity.basic/source/authenticate.ts +18 -7
  20. package/components/identity.basic/source/check.ts +20 -0
  21. package/components/identity.basic/source/incept.ts +38 -0
  22. package/components/identity.basic/source/transit.ts +11 -9
  23. package/components/identity.basic/source/types.ts +8 -4
  24. package/components/identity.federation/manifest.toa.yaml +65 -19
  25. package/components/identity.federation/operations/authenticate.d.ts +13 -2
  26. package/components/identity.federation/operations/authenticate.js +11 -10
  27. package/components/identity.federation/operations/authenticate.js.map +1 -1
  28. package/components/identity.federation/operations/decode.d.ts +2 -0
  29. package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/decode.js} +7 -32
  30. package/components/identity.federation/operations/decode.js.map +1 -0
  31. package/components/identity.federation/operations/incept.d.ts +10 -0
  32. package/components/identity.federation/operations/incept.js +14 -0
  33. package/components/identity.federation/operations/incept.js.map +1 -0
  34. package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
  35. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
  36. package/components/identity.federation/operations/lib/get.d.ts +1 -0
  37. package/components/identity.federation/operations/lib/get.js +64 -0
  38. package/components/identity.federation/operations/lib/get.js.map +1 -0
  39. package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
  40. package/components/identity.federation/operations/lib/jwt.js +35 -19
  41. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  42. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  43. package/components/identity.federation/operations/types/configuration.d.ts +15 -0
  44. package/components/identity.federation/operations/types/configuration.js +3 -0
  45. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  46. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -13
  47. package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/types/context.js} +1 -1
  48. package/components/identity.federation/operations/types/context.js.map +1 -0
  49. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  50. package/components/identity.federation/operations/types/entity.js +3 -0
  51. package/components/identity.federation/operations/types/entity.js.map +1 -0
  52. package/components/identity.federation/operations/types/index.d.ts +3 -0
  53. package/components/identity.federation/operations/types/index.js +20 -0
  54. package/components/identity.federation/operations/types/index.js.map +1 -0
  55. package/components/identity.federation/source/authenticate.ts +26 -16
  56. package/components/identity.federation/source/decode.ts +9 -0
  57. package/components/identity.federation/source/incept.ts +26 -0
  58. package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
  59. package/components/identity.federation/source/lib/get.ts +82 -0
  60. package/components/identity.federation/source/lib/jwt.test.ts +127 -4
  61. package/components/identity.federation/source/lib/jwt.ts +48 -21
  62. package/components/identity.federation/source/types/configuration.ts +16 -0
  63. package/components/identity.federation/source/{types.ts → types/context.ts} +16 -13
  64. package/components/identity.federation/source/types/entity.ts +6 -0
  65. package/components/identity.federation/source/types/index.ts +3 -0
  66. package/components/identity.federation/tsconfig.json +5 -4
  67. package/components/identity.keys/manifest.toa.yaml +57 -0
  68. package/components/identity.keys/operations/create.d.ts +22 -0
  69. package/components/identity.keys/operations/create.js +16 -0
  70. package/components/identity.keys/operations/create.js.map +1 -0
  71. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
  72. package/components/identity.keys/source/create.ts +35 -0
  73. package/components/identity.keys/tsconfig.json +9 -0
  74. package/components/identity.passkeys/manifest.toa.yaml +268 -0
  75. package/components/identity.passkeys/operations/authenticate.d.ts +16 -0
  76. package/components/identity.passkeys/operations/authenticate.js +34 -0
  77. package/components/identity.passkeys/operations/authenticate.js.map +1 -0
  78. package/components/identity.passkeys/operations/challenge.d.ts +35 -0
  79. package/components/identity.passkeys/operations/challenge.js +73 -0
  80. package/components/identity.passkeys/operations/challenge.js.map +1 -0
  81. package/components/identity.passkeys/operations/create.d.ts +19 -0
  82. package/components/identity.passkeys/operations/create.js +58 -0
  83. package/components/identity.passkeys/operations/create.js.map +1 -0
  84. package/components/identity.passkeys/operations/delete.d.ts +8 -0
  85. package/components/identity.passkeys/operations/delete.js +12 -0
  86. package/components/identity.passkeys/operations/delete.js.map +1 -0
  87. package/components/identity.passkeys/operations/lib/const.d.ts +1 -0
  88. package/components/identity.passkeys/operations/lib/const.js +5 -0
  89. package/components/identity.passkeys/operations/lib/const.js.map +1 -0
  90. package/components/identity.passkeys/operations/list.d.ts +7 -0
  91. package/components/identity.passkeys/operations/list.js +15 -0
  92. package/components/identity.passkeys/operations/list.js.map +1 -0
  93. package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -0
  94. package/components/identity.passkeys/operations/types/Configuration.d.ts +6 -0
  95. package/components/identity.passkeys/operations/types/Configuration.js +3 -0
  96. package/components/identity.passkeys/operations/types/Configuration.js.map +1 -0
  97. package/components/identity.passkeys/operations/types/Context.d.ts +16 -0
  98. package/components/identity.passkeys/operations/types/Context.js +3 -0
  99. package/components/identity.passkeys/operations/types/Context.js.map +1 -0
  100. package/components/identity.passkeys/operations/types/Passkey.d.ts +13 -0
  101. package/components/identity.passkeys/operations/types/Passkey.js +3 -0
  102. package/components/identity.passkeys/operations/types/Passkey.js.map +1 -0
  103. package/components/identity.passkeys/operations/types/index.d.ts +2 -0
  104. package/components/identity.passkeys/operations/types/index.js +3 -0
  105. package/components/identity.passkeys/operations/types/index.js.map +1 -0
  106. package/components/identity.passkeys/operations/use.d.ts +16 -0
  107. package/components/identity.passkeys/operations/use.js +57 -0
  108. package/components/identity.passkeys/operations/use.js.map +1 -0
  109. package/components/identity.passkeys/source/authenticate.ts +48 -0
  110. package/components/identity.passkeys/source/challenge.ts +115 -0
  111. package/components/identity.passkeys/source/create.ts +77 -0
  112. package/components/identity.passkeys/source/delete.ts +15 -0
  113. package/components/identity.passkeys/source/lib/const.ts +1 -0
  114. package/components/identity.passkeys/source/list.ts +17 -0
  115. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  116. package/components/identity.passkeys/source/types/Context.ts +17 -0
  117. package/components/identity.passkeys/source/types/Passkey.ts +14 -0
  118. package/components/identity.passkeys/source/types/index.ts +2 -0
  119. package/components/identity.passkeys/source/use.ts +75 -0
  120. package/components/identity.passkeys/tsconfig.json +9 -0
  121. package/components/identity.roles/manifest.toa.yaml +3 -1
  122. package/components/identity.roles/operations/grant.js +2 -2
  123. package/components/identity.roles/operations/grant.js.map +1 -1
  124. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  125. package/components/identity.roles/source/grant.ts +2 -2
  126. package/components/identity.tokens/manifest.toa.yaml +97 -13
  127. package/components/identity.tokens/operations/authenticate.d.ts +3 -3
  128. package/components/identity.tokens/operations/authenticate.js +15 -11
  129. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  130. package/components/identity.tokens/operations/decrypt.d.ts +12 -3
  131. package/components/identity.tokens/operations/decrypt.js +62 -17
  132. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  133. package/components/identity.tokens/operations/encrypt.d.ts +3 -3
  134. package/components/identity.tokens/operations/encrypt.js +24 -7
  135. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  136. package/components/identity.tokens/operations/issue.d.ts +24 -0
  137. package/components/identity.tokens/operations/issue.js +59 -0
  138. package/components/identity.tokens/operations/issue.js.map +1 -0
  139. package/components/identity.tokens/operations/lib/index.d.ts +2 -0
  140. package/components/identity.tokens/operations/lib/index.js +19 -0
  141. package/components/identity.tokens/operations/lib/index.js.map +1 -0
  142. package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
  143. package/components/identity.tokens/operations/lib/pad.js +5 -0
  144. package/components/identity.tokens/operations/lib/pad.js.map +1 -0
  145. package/components/identity.tokens/operations/lib/types.d.ts +74 -0
  146. package/components/identity.tokens/operations/lib/types.js.map +1 -0
  147. package/components/identity.tokens/operations/revoke.d.ts +2 -2
  148. package/components/identity.tokens/operations/revoke.js.map +1 -1
  149. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  150. package/components/identity.tokens/source/authenticate.test.ts +22 -9
  151. package/components/identity.tokens/source/authenticate.ts +18 -13
  152. package/components/identity.tokens/source/decrypt.test.ts +33 -18
  153. package/components/identity.tokens/source/decrypt.ts +91 -20
  154. package/components/identity.tokens/source/encrypt.test.ts +47 -13
  155. package/components/identity.tokens/source/encrypt.ts +36 -11
  156. package/components/identity.tokens/source/issue.ts +82 -0
  157. package/components/identity.tokens/source/lib/index.ts +2 -0
  158. package/components/identity.tokens/source/lib/pad.ts +1 -0
  159. package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
  160. package/components/identity.tokens/source/lib/types.ts +85 -0
  161. package/components/identity.tokens/source/revoke.ts +2 -2
  162. package/components/octets.storage/manifest.toa.yaml +11 -11
  163. package/components/octets.storage/operations/get.js +3 -3
  164. package/components/octets.storage/operations/head.js +7 -0
  165. package/components/octets.storage/operations/put.js +135 -0
  166. package/documentation/access.md +83 -31
  167. package/documentation/authorities.md +48 -0
  168. package/documentation/cache.md +8 -1
  169. package/documentation/components.md +123 -51
  170. package/documentation/dev.md +30 -0
  171. package/documentation/flow.md +44 -0
  172. package/documentation/identity.md +55 -23
  173. package/documentation/introspection.md +82 -0
  174. package/documentation/map.md +86 -0
  175. package/documentation/octets.md +122 -69
  176. package/documentation/passkeys.md +4 -0
  177. package/documentation/protocol.md +11 -4
  178. package/documentation/query.md +29 -4
  179. package/documentation/require.md +15 -0
  180. package/documentation/tree.md +13 -0
  181. package/features/access.feature +122 -9
  182. package/features/annotation.feature +1 -0
  183. package/features/auth.assert.feature +57 -0
  184. package/features/auth.claims.feature +171 -0
  185. package/features/auth.incept.feature +120 -0
  186. package/features/auth.input.feature +59 -0
  187. package/features/auth.issue.feature +32 -0
  188. package/features/authorities.basic.feature +141 -0
  189. package/features/authorities.feature +32 -0
  190. package/features/authorities.federation.feature +100 -0
  191. package/features/authorities.tokens.feature +117 -0
  192. package/features/body.feature +2 -0
  193. package/features/cache.feature +164 -5
  194. package/features/cors.feature +8 -2
  195. package/features/debug.feature +34 -0
  196. package/features/dev.feature +56 -0
  197. package/features/directives.feature +3 -0
  198. package/features/dynamic.feature +48 -0
  199. package/features/errors.feature +29 -6
  200. package/features/etag.feature +109 -1
  201. package/features/flow.feature +148 -0
  202. package/features/identity.bans.feature +12 -3
  203. package/features/identity.basic.feature +104 -21
  204. package/features/identity.feature +18 -6
  205. package/features/identity.federation.feature +125 -18
  206. package/features/identity.roles.feature +60 -20
  207. package/features/identity.tokens.feature +12 -44
  208. package/features/identtiy.tokens.custom.feature +247 -0
  209. package/features/interruptions.feature +19 -0
  210. package/features/introspection.feature +153 -0
  211. package/features/io.feature +9 -1
  212. package/features/map.feature +305 -0
  213. package/features/methods.feature +47 -0
  214. package/features/octets.cloudinary.feature +71 -0
  215. package/features/octets.download.feature +189 -0
  216. package/features/octets.entries.feature +13 -55
  217. package/features/octets.feature +90 -114
  218. package/features/octets.head.feature +40 -0
  219. package/features/octets.location.feature +83 -0
  220. package/features/octets.meta.feature +65 -15
  221. package/features/octets.workflows.feature +339 -66
  222. package/features/passkeys.feature +66 -0
  223. package/features/probes.feature +14 -0
  224. package/features/{queries.feature → query.feature} +77 -2
  225. package/features/realtime.feature +34 -0
  226. package/features/require.feature +67 -0
  227. package/features/response.feature +34 -2
  228. package/features/routes.feature +93 -2
  229. package/features/server.feature +21 -0
  230. package/features/steps/.env.example +3 -0
  231. package/features/steps/Common.ts +4 -0
  232. package/features/steps/Gateway.ts +26 -7
  233. package/features/steps/HTTP.ts +25 -2
  234. package/features/steps/IdP.ts +64 -2
  235. package/features/steps/Identity.ts +51 -0
  236. package/features/steps/Parameters.ts +45 -2
  237. package/features/steps/Realtime.ts +151 -0
  238. package/features/steps/components/echo/manifest.toa.yaml +12 -0
  239. package/features/steps/components/echo/operations/echo.js +7 -0
  240. package/features/steps/components/echo/operations/parameters.js +7 -0
  241. package/features/steps/components/echo/operations/ping.js +7 -0
  242. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  243. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  244. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  245. package/features/steps/components/octets.tester/manifest.toa.yaml +25 -3
  246. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  247. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  248. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  249. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  250. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  251. package/features/steps/components/octets.tester/operations/id.js +7 -0
  252. package/features/steps/components/octets.tester/operations/identity.js +7 -0
  253. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  254. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  255. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  256. package/features/steps/components/pots/manifest.toa.yaml +12 -4
  257. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  258. package/features/steps/components/users/manifest.toa.yaml +4 -2
  259. package/features/steps/components/users/operations/create.js +15 -0
  260. package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
  261. package/features/streams.feature +5 -0
  262. package/features/timestamps.feature +41 -0
  263. package/features/timing.feature +4 -1
  264. package/package.json +25 -13
  265. package/readme.md +19 -14
  266. package/schemas/annotation.cos.yaml +1 -1
  267. package/schemas/method.cos.yaml +2 -1
  268. package/schemas/node.cos.yaml +2 -0
  269. package/schemas/octets/put.cos.yaml +28 -0
  270. package/schemas/query.cos.yaml +4 -10
  271. package/source/Annotation.ts +3 -3
  272. package/source/Branch.ts +1 -0
  273. package/source/Composition.ts +0 -6
  274. package/source/Context.ts +1 -0
  275. package/source/Directive.test.ts +1 -1
  276. package/source/Directive.ts +14 -8
  277. package/source/Endpoint.ts +70 -17
  278. package/source/Factory.ts +22 -13
  279. package/source/Gateway.ts +73 -19
  280. package/source/HTTP/Context.ts +29 -7
  281. package/source/HTTP/Server.ts +119 -49
  282. package/source/HTTP/exceptions.ts +12 -0
  283. package/source/HTTP/formats/index.ts +3 -3
  284. package/source/HTTP/messages.test.ts +46 -2
  285. package/source/HTTP/messages.ts +44 -9
  286. package/source/Introspection.ts +11 -0
  287. package/source/Mapping.ts +68 -21
  288. package/source/Query.test.ts +3 -3
  289. package/source/Query.ts +123 -33
  290. package/source/RTD/Context.ts +1 -1
  291. package/source/RTD/Endpoint.ts +3 -0
  292. package/source/RTD/Method.ts +16 -0
  293. package/source/RTD/Node.ts +29 -13
  294. package/source/RTD/Route.ts +5 -4
  295. package/source/RTD/Tree.ts +2 -2
  296. package/source/RTD/factory.ts +4 -1
  297. package/source/RTD/syntax/parse.test.ts +1 -1
  298. package/source/RTD/syntax/parse.ts +37 -24
  299. package/source/RTD/syntax/types.ts +6 -4
  300. package/source/Remotes.ts +7 -6
  301. package/source/Tenant.ts +6 -12
  302. package/source/deployment.ts +33 -23
  303. package/source/directives/auth/Anonymous.ts +3 -3
  304. package/source/directives/auth/Anyone.ts +13 -0
  305. package/source/directives/auth/Assert.ts +30 -0
  306. package/source/directives/auth/Authorization.ts +68 -26
  307. package/source/directives/auth/Delegate.ts +9 -5
  308. package/source/directives/auth/Echo.ts +16 -6
  309. package/source/directives/auth/Federation.ts +84 -0
  310. package/source/directives/auth/Id.ts +1 -1
  311. package/source/directives/auth/Incept.ts +62 -24
  312. package/source/directives/auth/Input.ts +72 -0
  313. package/source/directives/auth/Role.ts +5 -19
  314. package/source/directives/auth/Rule.ts +3 -5
  315. package/source/directives/auth/Scheme.ts +5 -5
  316. package/source/directives/auth/create.ts +11 -0
  317. package/source/directives/auth/schemes.ts +2 -0
  318. package/source/directives/auth/split.ts +1 -1
  319. package/source/directives/auth/types.ts +10 -5
  320. package/source/directives/cache/Cache.ts +15 -6
  321. package/source/directives/cache/Control.ts +45 -19
  322. package/source/directives/cors/CORS.ts +3 -2
  323. package/source/directives/dev/Development.ts +12 -7
  324. package/source/directives/dev/Sleep.ts +40 -0
  325. package/source/directives/dev/types.ts +1 -1
  326. package/source/directives/flow/Compose.ts +92 -0
  327. package/source/directives/flow/Fetch.ts +86 -0
  328. package/source/directives/flow/Flow.ts +42 -0
  329. package/source/directives/flow/index.ts +3 -0
  330. package/source/directives/flow/types.ts +7 -0
  331. package/source/directives/index.ts +4 -2
  332. package/source/directives/io/IO.ts +1 -1
  333. package/source/directives/io/Input.ts +8 -5
  334. package/source/directives/io/Output.ts +5 -4
  335. package/source/directives/map/Authority.ts +15 -0
  336. package/source/directives/map/Claims.ts +58 -0
  337. package/source/directives/map/Directive.ts +4 -0
  338. package/source/directives/map/Headers.ts +38 -0
  339. package/source/directives/map/Language.ts +42 -0
  340. package/source/directives/map/Languages.ts +11 -0
  341. package/source/directives/map/Map.ts +61 -0
  342. package/source/directives/map/Mapping.ts +19 -0
  343. package/source/directives/{vary → map}/Properties.ts +2 -4
  344. package/source/directives/map/Segments.ts +33 -0
  345. package/source/directives/map/index.ts +3 -0
  346. package/source/directives/octets/Context.ts +3 -2
  347. package/source/directives/octets/Delete.ts +21 -17
  348. package/source/directives/octets/Get.ts +86 -0
  349. package/source/directives/octets/Octets.ts +9 -12
  350. package/source/directives/octets/{Store.ts → Put.ts} +52 -38
  351. package/source/directives/octets/Workflow.ts +9 -3
  352. package/source/directives/octets/bytes.test.ts +30 -0
  353. package/source/directives/octets/bytes.ts +18 -0
  354. package/source/directives/octets/schemas.ts +4 -8
  355. package/source/directives/octets/types.ts +2 -0
  356. package/source/directives/octets/workflows/Execution.ts +61 -8
  357. package/source/directives/octets/workflows/Workflow.ts +17 -7
  358. package/source/directives/octets/workflows/index.ts +1 -1
  359. package/source/directives/require/Directive.ts +5 -0
  360. package/source/directives/require/Headers.ts +20 -0
  361. package/source/directives/require/Require.ts +28 -0
  362. package/source/directives/require/index.ts +3 -0
  363. package/source/exceptions.ts +2 -1
  364. package/source/manifest.ts +10 -11
  365. package/source/root.ts +16 -1
  366. package/source/schemas.ts +1 -1
  367. package/transpiled/Annotation.d.ts +3 -3
  368. package/transpiled/Branch.d.ts +1 -0
  369. package/transpiled/Composition.d.ts +0 -1
  370. package/transpiled/Composition.js +0 -4
  371. package/transpiled/Composition.js.map +1 -1
  372. package/transpiled/Context.d.ts +1 -0
  373. package/transpiled/Directive.js +13 -8
  374. package/transpiled/Directive.js.map +1 -1
  375. package/transpiled/Endpoint.d.ts +6 -4
  376. package/transpiled/Endpoint.js +46 -9
  377. package/transpiled/Endpoint.js.map +1 -1
  378. package/transpiled/Factory.d.ts +3 -2
  379. package/transpiled/Factory.js +18 -10
  380. package/transpiled/Factory.js.map +1 -1
  381. package/transpiled/Gateway.d.ts +3 -0
  382. package/transpiled/Gateway.js +55 -12
  383. package/transpiled/Gateway.js.map +1 -1
  384. package/transpiled/HTTP/Context.d.ts +9 -2
  385. package/transpiled/HTTP/Context.js +19 -6
  386. package/transpiled/HTTP/Context.js.map +1 -1
  387. package/transpiled/HTTP/Server.d.ts +15 -4
  388. package/transpiled/HTTP/Server.js +86 -42
  389. package/transpiled/HTTP/Server.js.map +1 -1
  390. package/transpiled/HTTP/exceptions.d.ts +6 -0
  391. package/transpiled/HTTP/exceptions.js +13 -1
  392. package/transpiled/HTTP/exceptions.js.map +1 -1
  393. package/transpiled/HTTP/formats/index.js +3 -3
  394. package/transpiled/HTTP/formats/index.js.map +1 -1
  395. package/transpiled/HTTP/messages.d.ts +2 -1
  396. package/transpiled/HTTP/messages.js +40 -8
  397. package/transpiled/HTTP/messages.js.map +1 -1
  398. package/transpiled/Introspection.d.ts +9 -0
  399. package/transpiled/Introspection.js +3 -0
  400. package/transpiled/Introspection.js.map +1 -0
  401. package/transpiled/Mapping.d.ts +11 -2
  402. package/transpiled/Mapping.js +50 -19
  403. package/transpiled/Mapping.js.map +1 -1
  404. package/transpiled/Query.d.ts +10 -1
  405. package/transpiled/Query.js +87 -30
  406. package/transpiled/Query.js.map +1 -1
  407. package/transpiled/RTD/Context.d.ts +1 -1
  408. package/transpiled/RTD/Endpoint.d.ts +1 -0
  409. package/transpiled/RTD/Method.d.ts +4 -0
  410. package/transpiled/RTD/Method.js +11 -0
  411. package/transpiled/RTD/Method.js.map +1 -1
  412. package/transpiled/RTD/Node.d.ts +4 -1
  413. package/transpiled/RTD/Node.js +23 -12
  414. package/transpiled/RTD/Node.js.map +1 -1
  415. package/transpiled/RTD/Route.d.ts +1 -1
  416. package/transpiled/RTD/Route.js +0 -1
  417. package/transpiled/RTD/Route.js.map +1 -1
  418. package/transpiled/RTD/Tree.d.ts +1 -1
  419. package/transpiled/RTD/Tree.js.map +1 -1
  420. package/transpiled/RTD/factory.js +4 -1
  421. package/transpiled/RTD/factory.js.map +1 -1
  422. package/transpiled/RTD/syntax/parse.js +34 -22
  423. package/transpiled/RTD/syntax/parse.js.map +1 -1
  424. package/transpiled/RTD/syntax/types.d.ts +5 -3
  425. package/transpiled/RTD/syntax/types.js +1 -1
  426. package/transpiled/RTD/syntax/types.js.map +1 -1
  427. package/transpiled/Remotes.d.ts +4 -4
  428. package/transpiled/Remotes.js +6 -5
  429. package/transpiled/Remotes.js.map +1 -1
  430. package/transpiled/Tenant.d.ts +5 -4
  431. package/transpiled/Tenant.js +2 -7
  432. package/transpiled/Tenant.js.map +1 -1
  433. package/transpiled/deployment.d.ts +1 -1
  434. package/transpiled/deployment.js +28 -20
  435. package/transpiled/deployment.js.map +1 -1
  436. package/transpiled/directives/auth/Anonymous.d.ts +2 -2
  437. package/transpiled/directives/auth/Anonymous.js +2 -2
  438. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  439. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  440. package/transpiled/directives/auth/Anyone.js +14 -0
  441. package/transpiled/directives/auth/Anyone.js.map +1 -0
  442. package/transpiled/directives/auth/Assert.d.ts +6 -0
  443. package/transpiled/directives/auth/Assert.js +53 -0
  444. package/transpiled/directives/auth/Assert.js.map +1 -0
  445. package/transpiled/directives/auth/Authorization.d.ts +4 -3
  446. package/transpiled/directives/auth/Authorization.js +52 -23
  447. package/transpiled/directives/auth/Authorization.js.map +1 -1
  448. package/transpiled/directives/auth/Delegate.d.ts +5 -4
  449. package/transpiled/directives/auth/Delegate.js +7 -3
  450. package/transpiled/directives/auth/Delegate.js.map +1 -1
  451. package/transpiled/directives/auth/Echo.d.ts +4 -4
  452. package/transpiled/directives/auth/Echo.js +11 -4
  453. package/transpiled/directives/auth/Echo.js.map +1 -1
  454. package/transpiled/directives/auth/Federation.d.ts +16 -0
  455. package/transpiled/directives/auth/Federation.js +57 -0
  456. package/transpiled/directives/auth/Federation.js.map +1 -0
  457. package/transpiled/directives/auth/Id.d.ts +1 -1
  458. package/transpiled/directives/auth/Id.js.map +1 -1
  459. package/transpiled/directives/auth/Incept.d.ts +7 -5
  460. package/transpiled/directives/auth/Incept.js +47 -18
  461. package/transpiled/directives/auth/Incept.js.map +1 -1
  462. package/transpiled/directives/auth/Input.d.ts +13 -0
  463. package/transpiled/directives/auth/Input.js +49 -0
  464. package/transpiled/directives/auth/Input.js.map +1 -0
  465. package/transpiled/directives/auth/Role.d.ts +1 -1
  466. package/transpiled/directives/auth/Role.js +5 -15
  467. package/transpiled/directives/auth/Role.js.map +1 -1
  468. package/transpiled/directives/auth/Rule.d.ts +2 -4
  469. package/transpiled/directives/auth/Rule.js +2 -2
  470. package/transpiled/directives/auth/Rule.js.map +1 -1
  471. package/transpiled/directives/auth/Scheme.d.ts +2 -2
  472. package/transpiled/directives/auth/Scheme.js +4 -4
  473. package/transpiled/directives/auth/Scheme.js.map +1 -1
  474. package/transpiled/directives/auth/create.d.ts +2 -0
  475. package/transpiled/directives/auth/create.js +14 -0
  476. package/transpiled/directives/auth/create.js.map +1 -0
  477. package/transpiled/directives/auth/schemes.d.ts +1 -0
  478. package/transpiled/directives/auth/schemes.js +2 -1
  479. package/transpiled/directives/auth/schemes.js.map +1 -1
  480. package/transpiled/directives/auth/split.js +1 -1
  481. package/transpiled/directives/auth/split.js.map +1 -1
  482. package/transpiled/directives/auth/types.d.ts +8 -5
  483. package/transpiled/directives/cache/Cache.d.ts +3 -3
  484. package/transpiled/directives/cache/Cache.js +12 -4
  485. package/transpiled/directives/cache/Cache.js.map +1 -1
  486. package/transpiled/directives/cache/Control.d.ts +3 -2
  487. package/transpiled/directives/cache/Control.js +32 -15
  488. package/transpiled/directives/cache/Control.js.map +1 -1
  489. package/transpiled/directives/cors/CORS.js +3 -2
  490. package/transpiled/directives/cors/CORS.js.map +1 -1
  491. package/transpiled/directives/dev/Development.d.ts +1 -1
  492. package/transpiled/directives/dev/Development.js +13 -7
  493. package/transpiled/directives/dev/Development.js.map +1 -1
  494. package/transpiled/directives/dev/Sleep.d.ts +8 -0
  495. package/transpiled/directives/dev/Sleep.js +36 -0
  496. package/transpiled/directives/dev/Sleep.js.map +1 -0
  497. package/transpiled/directives/dev/types.d.ts +1 -1
  498. package/transpiled/directives/flow/Compose.d.ts +9 -0
  499. package/transpiled/directives/flow/Compose.js +94 -0
  500. package/transpiled/directives/flow/Compose.js.map +1 -0
  501. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  502. package/transpiled/directives/flow/Fetch.js +58 -0
  503. package/transpiled/directives/flow/Fetch.js.map +1 -0
  504. package/transpiled/directives/flow/Flow.d.ts +10 -0
  505. package/transpiled/directives/flow/Flow.js +33 -0
  506. package/transpiled/directives/flow/Flow.js.map +1 -0
  507. package/transpiled/directives/flow/index.d.ts +2 -0
  508. package/transpiled/directives/flow/index.js +6 -0
  509. package/transpiled/directives/flow/index.js.map +1 -0
  510. package/transpiled/directives/flow/types.d.ts +6 -0
  511. package/transpiled/directives/flow/types.js.map +1 -0
  512. package/transpiled/directives/index.js +4 -2
  513. package/transpiled/directives/index.js.map +1 -1
  514. package/transpiled/directives/io/IO.js +1 -1
  515. package/transpiled/directives/io/IO.js.map +1 -1
  516. package/transpiled/directives/io/Input.js +4 -2
  517. package/transpiled/directives/io/Input.js.map +1 -1
  518. package/transpiled/directives/io/Output.js +2 -2
  519. package/transpiled/directives/io/Output.js.map +1 -1
  520. package/transpiled/directives/map/Authority.d.ts +6 -0
  521. package/transpiled/directives/map/Authority.js +19 -0
  522. package/transpiled/directives/map/Authority.js.map +1 -0
  523. package/transpiled/directives/map/Claims.d.ts +10 -0
  524. package/transpiled/directives/map/Claims.js +44 -0
  525. package/transpiled/directives/map/Claims.js.map +1 -0
  526. package/transpiled/directives/map/Directive.d.ts +3 -0
  527. package/transpiled/directives/map/Directive.js.map +1 -0
  528. package/transpiled/directives/map/Headers.d.ts +7 -0
  529. package/transpiled/directives/map/Headers.js +34 -0
  530. package/transpiled/directives/map/Headers.js.map +1 -0
  531. package/transpiled/directives/map/Language.d.ts +10 -0
  532. package/transpiled/directives/map/Language.js +38 -0
  533. package/transpiled/directives/map/Language.js.map +1 -0
  534. package/transpiled/directives/map/Languages.d.ts +4 -0
  535. package/transpiled/directives/map/Languages.js +17 -0
  536. package/transpiled/directives/map/Languages.js.map +1 -0
  537. package/transpiled/directives/map/Map.d.ts +13 -0
  538. package/transpiled/directives/map/Map.js +46 -0
  539. package/transpiled/directives/map/Map.js.map +1 -0
  540. package/transpiled/directives/map/Mapping.d.ts +13 -0
  541. package/transpiled/directives/map/Mapping.js +13 -0
  542. package/transpiled/directives/map/Mapping.js.map +1 -0
  543. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  544. package/transpiled/directives/{vary → map}/Properties.js +1 -3
  545. package/transpiled/directives/map/Properties.js.map +1 -0
  546. package/transpiled/directives/map/Segments.d.ts +6 -0
  547. package/transpiled/directives/map/Segments.js +30 -0
  548. package/transpiled/directives/map/Segments.js.map +1 -0
  549. package/transpiled/directives/map/index.d.ts +2 -0
  550. package/transpiled/directives/map/index.js +6 -0
  551. package/transpiled/directives/map/index.js.map +1 -0
  552. package/transpiled/directives/octets/Context.js +4 -24
  553. package/transpiled/directives/octets/Context.js.map +1 -1
  554. package/transpiled/directives/octets/Delete.js +15 -12
  555. package/transpiled/directives/octets/Delete.js.map +1 -1
  556. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  557. package/transpiled/directives/octets/{Fetch.js → Get.js} +25 -29
  558. package/transpiled/directives/octets/Get.js.map +1 -0
  559. package/transpiled/directives/octets/Octets.js +9 -12
  560. package/transpiled/directives/octets/Octets.js.map +1 -1
  561. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
  562. package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
  563. package/transpiled/directives/octets/Put.js.map +1 -0
  564. package/transpiled/directives/octets/Workflow.js +7 -2
  565. package/transpiled/directives/octets/Workflow.js.map +1 -1
  566. package/transpiled/directives/octets/bytes.d.ts +1 -0
  567. package/transpiled/directives/octets/bytes.js +21 -0
  568. package/transpiled/directives/octets/bytes.js.map +1 -0
  569. package/transpiled/directives/octets/schemas.d.ts +4 -8
  570. package/transpiled/directives/octets/schemas.js +3 -6
  571. package/transpiled/directives/octets/schemas.js.map +1 -1
  572. package/transpiled/directives/octets/types.d.ts +2 -0
  573. package/transpiled/directives/octets/workflows/Execution.d.ts +6 -1
  574. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  575. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  576. package/transpiled/directives/octets/workflows/Workflow.d.ts +8 -3
  577. package/transpiled/directives/octets/workflows/Workflow.js +9 -4
  578. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  579. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  580. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  581. package/transpiled/directives/require/Directive.d.ts +4 -0
  582. package/transpiled/directives/require/Directive.js +3 -0
  583. package/transpiled/directives/require/Directive.js.map +1 -0
  584. package/transpiled/directives/require/Headers.d.ts +7 -0
  585. package/transpiled/directives/require/Headers.js +19 -0
  586. package/transpiled/directives/require/Headers.js.map +1 -0
  587. package/transpiled/directives/require/Require.d.ts +9 -0
  588. package/transpiled/directives/require/Require.js +27 -0
  589. package/transpiled/directives/require/Require.js.map +1 -0
  590. package/transpiled/directives/require/index.d.ts +2 -0
  591. package/transpiled/directives/require/index.js +6 -0
  592. package/transpiled/directives/require/index.js.map +1 -0
  593. package/transpiled/exceptions.js +2 -1
  594. package/transpiled/exceptions.js.map +1 -1
  595. package/transpiled/manifest.js +10 -11
  596. package/transpiled/manifest.js.map +1 -1
  597. package/transpiled/root.js +16 -1
  598. package/transpiled/root.js.map +1 -1
  599. package/transpiled/schemas.d.ts +1 -1
  600. package/transpiled/schemas.js +2 -2
  601. package/transpiled/schemas.js.map +1 -1
  602. package/transpiled/tsconfig.tsbuildinfo +1 -1
  603. package/components/identity.basic/operations/create.d.ts +0 -10
  604. package/components/identity.basic/operations/create.js +0 -10
  605. package/components/identity.basic/operations/create.js.map +0 -1
  606. package/components/identity.basic/source/create.ts +0 -18
  607. package/components/identity.federation/operations/create.d.ts +0 -10
  608. package/components/identity.federation/operations/create.js +0 -15
  609. package/components/identity.federation/operations/create.js.map +0 -1
  610. package/components/identity.federation/operations/schemas.d.ts +0 -59
  611. package/components/identity.federation/operations/schemas.js +0 -9
  612. package/components/identity.federation/operations/schemas.js.map +0 -1
  613. package/components/identity.federation/operations/types.js.map +0 -1
  614. package/components/identity.federation/source/create.ts +0 -26
  615. package/components/identity.federation/source/schemas.ts +0 -61
  616. package/components/identity.tokens/operations/types.d.ts +0 -39
  617. package/components/identity.tokens/operations/types.js.map +0 -1
  618. package/components/identity.tokens/source/types.ts +0 -47
  619. package/components/octets.storage/operations/fetch.js +0 -46
  620. package/components/octets.storage/operations/list.js +0 -7
  621. package/components/octets.storage/operations/permute.js +0 -7
  622. package/components/octets.storage/operations/store.js +0 -11
  623. package/documentation/vary.md +0 -69
  624. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  625. package/features/vary.feature +0 -180
  626. package/schemas/octets/context.cos.yaml +0 -1
  627. package/schemas/octets/fetch.cos.yaml +0 -3
  628. package/schemas/octets/permute.cos.yaml +0 -1
  629. package/schemas/octets/store.cos.yaml +0 -3
  630. package/source/HTTP/Server.test.ts +0 -126
  631. package/source/directives/octets/Fetch.ts +0 -100
  632. package/source/directives/octets/List.ts +0 -72
  633. package/source/directives/octets/Permute.ts +0 -44
  634. package/source/directives/vary/Directive.ts +0 -6
  635. package/source/directives/vary/Embed.ts +0 -62
  636. package/source/directives/vary/Vary.ts +0 -48
  637. package/source/directives/vary/embeddings/Embedding.ts +0 -6
  638. package/source/directives/vary/embeddings/Header.ts +0 -32
  639. package/source/directives/vary/embeddings/Language.ts +0 -31
  640. package/source/directives/vary/embeddings/index.ts +0 -11
  641. package/source/directives/vary/index.ts +0 -3
  642. package/transpiled/directives/octets/Fetch.js.map +0 -1
  643. package/transpiled/directives/octets/List.d.ts +0 -16
  644. package/transpiled/directives/octets/List.js +0 -74
  645. package/transpiled/directives/octets/List.js.map +0 -1
  646. package/transpiled/directives/octets/Permute.d.ts +0 -11
  647. package/transpiled/directives/octets/Permute.js.map +0 -1
  648. package/transpiled/directives/octets/Store.js.map +0 -1
  649. package/transpiled/directives/vary/Directive.d.ts +0 -5
  650. package/transpiled/directives/vary/Directive.js.map +0 -1
  651. package/transpiled/directives/vary/Embed.d.ts +0 -10
  652. package/transpiled/directives/vary/Embed.js +0 -49
  653. package/transpiled/directives/vary/Embed.js.map +0 -1
  654. package/transpiled/directives/vary/Properties.js.map +0 -1
  655. package/transpiled/directives/vary/Vary.d.ts +0 -10
  656. package/transpiled/directives/vary/Vary.js +0 -36
  657. package/transpiled/directives/vary/Vary.js.map +0 -1
  658. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -5
  659. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  660. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  661. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  662. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  663. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  664. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  665. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  666. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  667. package/transpiled/directives/vary/embeddings/index.js +0 -10
  668. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  669. package/transpiled/directives/vary/index.d.ts +0 -2
  670. package/transpiled/directives/vary/index.js +0 -6
  671. package/transpiled/directives/vary/index.js.map +0 -1
  672. /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
  673. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  674. /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
  675. /package/transpiled/directives/{vary → map}/Directive.js +0 -0
@@ -0,0 +1,120 @@
1
+ Feature: Identity inception
2
+
3
+ Scenario: Non-associated Identity inception
4
+ Given the `identity.basic` database is empty
5
+ When the following request is received:
6
+ """
7
+ POST /identity/ HTTP/1.1
8
+ host: nex.toa.io
9
+ authorization: Basic dXNlcjpwYXNzMTIzNA==
10
+ accept: application/yaml
11
+ """
12
+ Then the following reply is sent:
13
+ """
14
+ 201 Created
15
+ authorization: Token ${{ token }}
16
+
17
+ id: ${{ id }}
18
+ roles: []
19
+ """
20
+ When the following request is received:
21
+ """
22
+ GET /identity/ HTTP/1.1
23
+ host: nex.toa.io
24
+ authorization: Basic dXNlcjpwYXNzMTIzNA==
25
+ accept: application/yaml
26
+ """
27
+ Then the following reply is sent:
28
+ """
29
+ 200 OK
30
+
31
+ id: ${{ id }}
32
+ roles: []
33
+ """
34
+
35
+ Scenario: Creating new Identity using inception with Basic scheme
36
+ Given the `users` is running with the following manifest:
37
+ """yaml
38
+ exposition:
39
+ /:
40
+ POST:
41
+ io:input: [name]
42
+ io:output: true
43
+ incept: id
44
+ query: ~
45
+ endpoint: transit
46
+ """
47
+ When the following request is received:
48
+ """
49
+ POST /users/ HTTP/1.1
50
+ host: nex.toa.io
51
+ authorization: Basic #{{ basic }}
52
+ accept: application/yaml
53
+ content-type: application/yaml
54
+
55
+ name: Bill Smith
56
+ """
57
+ Then the following reply is sent:
58
+ """
59
+ 201 Created
60
+ authorization: Token ${{ token }}
61
+
62
+ id: ${{ id }}
63
+ """
64
+
65
+ Scenario: Inception with operation error
66
+ Given the `users` is running with the following manifest:
67
+ """yaml
68
+ exposition:
69
+ /:
70
+ POST:
71
+ io:input: [name]
72
+ io:output: true
73
+ incept: id
74
+ endpoint: create
75
+ """
76
+ When the following request is received:
77
+ """
78
+ POST /users/ HTTP/1.1
79
+ host: nex.toa.io
80
+ authorization: Basic #{{ basic }}
81
+ accept: application/yaml
82
+ content-type: application/yaml
83
+
84
+ name: return_error
85
+ """
86
+ Then the following reply is sent:
87
+ """
88
+ 422 Unprocessable Entity
89
+ """
90
+
91
+ Scenario: Incept without credentials
92
+ Given the `echo` is running with the following manifest:
93
+ """yaml
94
+ exposition:
95
+ /:
96
+ POST:
97
+ auth:incept: id
98
+ io:output: true
99
+ query: ~
100
+ endpoint: echo
101
+ """
102
+ And transient identity
103
+ When the following request is received:
104
+ """
105
+ POST /echo/ HTTP/1.1
106
+ host: nex.toa.io
107
+ accept: application/yaml
108
+ content-type: application/yaml
109
+
110
+ id: ${{ identity.id }}
111
+ foo: bar
112
+ """
113
+ Then the following reply is sent:
114
+ """
115
+ 201 Created
116
+ authorization: Token ${{ token }}
117
+
118
+ id: ${{ identity.id }}
119
+ foo: bar
120
+ """
@@ -0,0 +1,59 @@
1
+ Feature: Input properties authorization
2
+
3
+ Background:
4
+ Given the `identity.basic` database contains:
5
+ | _id | authority | username | password |
6
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | root | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
7
+ And the `identity.roles` database contains:
8
+ | _id | identity | role |
9
+ | 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:b |
10
+
11
+ Scenario: Input properties authorization
12
+ Given the `echo` is running with the following manifest:
13
+ """yaml
14
+ exposition:
15
+ /:
16
+ io:input: [a, b]
17
+ io:output: [a, b]
18
+ anonymous: true
19
+ auth:role: app:b
20
+ auth:input:
21
+ - prop: b
22
+ role: app:b
23
+ PUT: parameters
24
+ """
25
+
26
+ When the following request is received:
27
+ """
28
+ PUT /echo/ HTTP/1.1
29
+ host: nex.toa.io
30
+ accept: application/yaml
31
+ content-type: application/yaml
32
+
33
+ a: foo
34
+ b: bar
35
+ """
36
+ Then the following reply is sent:
37
+ """
38
+ 403 Forbidden
39
+
40
+ Input property is not authorized
41
+ """
42
+ When the following request is received:
43
+ """
44
+ PUT /echo/ HTTP/1.1
45
+ host: nex.toa.io
46
+ authorization: Basic cm9vdDpzZWNyZXQ=
47
+ accept: application/yaml
48
+ content-type: application/yaml
49
+
50
+ a: foo
51
+ b: bar
52
+ """
53
+ Then the following reply is sent:
54
+ """
55
+ 200 OK
56
+
57
+ a: foo
58
+ b: bar
59
+ """
@@ -0,0 +1,32 @@
1
+ Feature: Issue authentication token for a response
2
+
3
+ Scenario: Issue token
4
+ Given the `echo` is running with the following manifest:
5
+ """yaml
6
+ exposition:
7
+ /:
8
+ POST:
9
+ auth:issue: id
10
+ io:output: true
11
+ query: ~
12
+ endpoint: echo
13
+ """
14
+ And transient identity
15
+ When the following request is received:
16
+ """
17
+ POST /echo/ HTTP/1.1
18
+ host: nex.toa.io
19
+ accept: application/yaml
20
+ content-type: application/yaml
21
+
22
+ id: ${{ identity.id }}
23
+ foo: bar
24
+ """
25
+ Then the following reply is sent:
26
+ """
27
+ 201 Created
28
+ authorization: Token ${{ token }}
29
+
30
+ id: ${{ identity.id }}
31
+ foo: bar
32
+ """
@@ -0,0 +1,141 @@
1
+ Feature: Basic credentials with authorities
2
+
3
+ Scenario: Basic credentials are scoped to authorities
4
+ Given the annotation:
5
+ """yaml
6
+ authorities:
7
+ one: the.one.com
8
+ two: the.two.com
9
+ /:
10
+ /:id:
11
+ auth:id: id
12
+ io:output: true
13
+ GET:
14
+ dev:stub: Hello
15
+ """
16
+
17
+ # create basic credentials within the `one` authority
18
+ When the following request is received:
19
+ """
20
+ POST /identity/basic/ HTTP/1.1
21
+ host: the.one.com
22
+ content-type: application/yaml
23
+ accept: application/yaml
24
+
25
+ username: #{{ id | set one.username }}
26
+ password: #{{ password 8 | set one.password }}
27
+ """
28
+ Then the following reply is sent:
29
+ """
30
+ 201 Created
31
+
32
+ id: ${{ one.id }}
33
+ """
34
+
35
+ # create basic credentials within the `two` authority
36
+ When the following request is received:
37
+ """
38
+ POST /identity/basic/ HTTP/1.1
39
+ host: the.two.com
40
+ content-type: application/yaml
41
+ accept: application/yaml
42
+
43
+ username: #{{ id | set two.username }}
44
+ password: #{{ password 8 | set two.password }}
45
+ """
46
+ Then the following reply is sent:
47
+ """
48
+ 201 Created
49
+
50
+ id: ${{ two.id }}
51
+ """
52
+
53
+ # access the resource with the `one` authority
54
+ When the following request is received:
55
+ """
56
+ GET /${{ one.id }}/ HTTP/1.1
57
+ host: the.one.com
58
+ authorization: Basic #{{ basic one }}
59
+ """
60
+ Then the following reply is sent:
61
+ """
62
+ 200 OK
63
+ """
64
+ When the following request is received:
65
+ """
66
+ GET /${{ two.id }}/ HTTP/1.1
67
+ host: the.one.com
68
+ authorization: Basic #{{ basic two }}
69
+ """
70
+ Then the following reply is sent:
71
+ """
72
+ 401 Unauthorized
73
+ """
74
+
75
+ # access the resource with the `two` authority
76
+ When the following request is received:
77
+ """
78
+ GET /${{ one.id }}/ HTTP/1.1
79
+ host: the.two.com
80
+ authorization: Basic #{{ basic one }}
81
+ """
82
+ Then the following reply is sent:
83
+ """
84
+ 401 Unauthorized
85
+ """
86
+ When the following request is received:
87
+ """
88
+ GET /${{ two.id }}/ HTTP/1.1
89
+ host: the.two.com
90
+ authorization: Basic #{{ basic two }}
91
+ """
92
+ Then the following reply is sent:
93
+ """
94
+ 200 OK
95
+ """
96
+
97
+ # create `one` credentials in the `two` authority
98
+ When the following request is received:
99
+ """
100
+ POST /identity/basic/ HTTP/1.1
101
+ host: the.one.com
102
+ content-type: application/yaml
103
+ accept: application/yaml
104
+
105
+ username: ${{ one.username }}
106
+ password: ${{ one.password }}
107
+ """
108
+ Then the following reply is sent:
109
+ """
110
+ 409 Conflict
111
+ """
112
+ When the following request is received:
113
+ """
114
+ POST /identity/basic/ HTTP/1.1
115
+ host: the.two.com
116
+ content-type: application/yaml
117
+ accept: application/yaml
118
+
119
+ username: ${{ one.username }}
120
+ password: ${{ one.password }}
121
+ """
122
+ Then the following reply is sent:
123
+ """
124
+ 201 Created
125
+ """
126
+
127
+ # create `two` credentials in the `one` authority
128
+ When the following request is received:
129
+ """
130
+ POST /identity/basic/ HTTP/1.1
131
+ host: the.one.com
132
+ content-type: application/yaml
133
+ accept: application/yaml
134
+
135
+ username: ${{ two.username }}
136
+ password: ${{ two.password }}
137
+ """
138
+ Then the following reply is sent:
139
+ """
140
+ 201 Created
141
+ """
@@ -0,0 +1,32 @@
1
+ Feature: Authorities
2
+
3
+ Scenario: Accessing an authority
4
+ Given the annotation:
5
+ """yaml
6
+ authorities:
7
+ example: the.example.com
8
+ /:
9
+ anonymous: true
10
+ GET:
11
+ dev:stub: Hello
12
+ """
13
+ When the following request is received:
14
+ """
15
+ GET / HTTP/1.1
16
+ host: the.example.com
17
+ """
18
+ Then the following reply is sent:
19
+ """
20
+ 200 OK
21
+ """
22
+
23
+ # arbitrary authorities are also allowed
24
+ When the following request is received:
25
+ """
26
+ GET / HTTP/1.1
27
+ host: the.other.com
28
+ """
29
+ Then the following reply is sent:
30
+ """
31
+ 200 OK
32
+ """
@@ -0,0 +1,100 @@
1
+ Feature: OIDC tokens with authorities
2
+
3
+ Background:
4
+ Given local IDP is running
5
+ And the `identity.federation` database is empty
6
+ And the `identity.federation` configuration:
7
+ """yaml
8
+ trust:
9
+ - iss: http://localhost:44444
10
+ implicit: true
11
+ """
12
+
13
+
14
+ Scenario: OIDC tokens are scoped to authorities
15
+ Given the annotation:
16
+ """yaml
17
+ authorities:
18
+ one: the.one.com
19
+ /:
20
+ /:id:
21
+ auth:id: id
22
+ GET:
23
+ dev:stub: Hello
24
+ """
25
+ And the IDP token for One is issued
26
+ And the IDP token for Two is issued
27
+
28
+ # create identities
29
+ When the following request is received:
30
+ """
31
+ GET /identity/ HTTP/1.1
32
+ host: the.one.com
33
+ authorization: Bearer ${{ One.id_token }}
34
+ accept: application/yaml
35
+ """
36
+ Then the following reply is sent:
37
+ """
38
+ 200 OK
39
+
40
+ id: ${{ One.id }}
41
+ """
42
+ When the following request is received:
43
+ """
44
+ GET /identity/ HTTP/1.1
45
+ authorization: Bearer ${{ Two.id_token }}
46
+ host: the.two.com
47
+ accept: application/yaml
48
+ """
49
+ Then the following reply is sent:
50
+ """
51
+ 200 OK
52
+
53
+ id: ${{ Two.id }}
54
+ """
55
+
56
+ # access `one` authority
57
+ When the following request is received:
58
+ """
59
+ GET /${{ One.id }}/ HTTP/1.1
60
+ host: the.one.com
61
+ authorization: Bearer ${{ One.id_token }}
62
+ """
63
+ Then the following reply is sent:
64
+ """
65
+ 200 OK
66
+ """
67
+
68
+ # authorization will create new identity within `one` authority
69
+ When the following request is received:
70
+ """
71
+ GET /${{ Two.id }}/ HTTP/1.1
72
+ host: the.one.com
73
+ authorization: Bearer ${{ Two.id_token }}
74
+ """
75
+ Then the following reply is sent:
76
+ """
77
+ 403 Forbidden
78
+ """
79
+
80
+ # access `two` authority
81
+ When the following request is received:
82
+ """
83
+ GET /${{ One.id }}/ HTTP/1.1
84
+ host: the.two.com
85
+ authorization: Bearer ${{ One.id_token }}
86
+ """
87
+ Then the following reply is sent:
88
+ """
89
+ 403 Forbidden
90
+ """
91
+ When the following request is received:
92
+ """
93
+ GET /${{ Two.id }}/ HTTP/1.1
94
+ host: the.two.com
95
+ authorization: Bearer ${{ Two.id_token }}
96
+ """
97
+ Then the following reply is sent:
98
+ """
99
+ 200 OK
100
+ """
@@ -0,0 +1,117 @@
1
+ Feature: Token credentials with authorities
2
+
3
+ Scenario: Tokens are scoped to authorities
4
+ Given the annotation:
5
+ """yaml
6
+ authorities:
7
+ one: the.one.com
8
+ /:
9
+ /:id:
10
+ auth:id: id
11
+ GET:
12
+ dev:stub: Hello
13
+ """
14
+
15
+ # create identity within the `one` authority
16
+ When the following request is received:
17
+ """
18
+ POST /identity/basic/ HTTP/1.1
19
+ host: the.one.com
20
+ content-type: application/yaml
21
+ accept: application/yaml
22
+
23
+ username: #{{ id | set one.username }}
24
+ password: '#{{ password 8 | set one.password }}'
25
+ """
26
+ Then the following reply is sent:
27
+ """
28
+ 201 Created
29
+ """
30
+ When the following request is received:
31
+ """
32
+ GET /identity/ HTTP/1.1
33
+ host: the.one.com
34
+ accept: application/yaml
35
+ authorization: Basic #{{ basic one }}
36
+ """
37
+ Then the following reply is sent:
38
+ """
39
+ 200 OK
40
+ authorization: Token ${{ one.token }}
41
+
42
+ id: ${{ one.id }}
43
+ """
44
+
45
+ # create identity within the `the.two.com` authority
46
+ When the following request is received:
47
+ """
48
+ POST /identity/basic/ HTTP/1.1
49
+ host: the.two.com
50
+ content-type: application/yaml
51
+ accept: application/yaml
52
+
53
+ username: #{{ id | set two.username }}
54
+ password: '#{{ password 8 | set two.password }}'
55
+ """
56
+ Then the following reply is sent:
57
+ """
58
+ 201 Created
59
+ """
60
+ When the following request is received:
61
+ """
62
+ GET /identity/ HTTP/1.1
63
+ host: the.two.com
64
+ accept: application/yaml
65
+ authorization: Basic #{{ basic two }}
66
+ """
67
+ Then the following reply is sent:
68
+ """
69
+ 200 OK
70
+ authorization: Token ${{ two.token }}
71
+
72
+ id: ${{ two.id }}
73
+ """
74
+
75
+ # access `one` authority
76
+ When the following request is received:
77
+ """
78
+ GET /${{ one.id }}/ HTTP/1.1
79
+ host: the.one.com
80
+ authorization: Token ${{ one.token }}
81
+ """
82
+ Then the following reply is sent:
83
+ """
84
+ 200 OK
85
+ """
86
+ When the following request is received:
87
+ """
88
+ GET /${{ two.id }}/ HTTP/1.1
89
+ host: the.one.com
90
+ authorization: Token ${{ two.token }}
91
+ """
92
+ Then the following reply is sent:
93
+ """
94
+ 401 Unauthorized
95
+ """
96
+
97
+ # access `two` authority
98
+ When the following request is received:
99
+ """
100
+ GET /${{ one.id }}/ HTTP/1.1
101
+ host: the.two.com
102
+ authorization: Token ${{ one.token }}
103
+ """
104
+ Then the following reply is sent:
105
+ """
106
+ 401 Unauthorized
107
+ """
108
+ When the following request is received:
109
+ """
110
+ GET /${{ two.id }}/ HTTP/1.1
111
+ host: the.two.com
112
+ authorization: Token ${{ two.token }}
113
+ """
114
+ Then the following reply is sent:
115
+ """
116
+ 200 OK
117
+ """
@@ -11,6 +11,7 @@ Feature: Request body
11
11
  When the following request is received:
12
12
  """
13
13
  POST /pots/ HTTP/1.1
14
+ host: nex.toa.io
14
15
  content-type: application/yaml
15
16
 
16
17
  title: Hello
@@ -32,6 +33,7 @@ Feature: Request body
32
33
  When the following request is received:
33
34
  """
34
35
  GET /echo/world/ HTTP/1.1
36
+ host: nex.toa.io
35
37
  accept: text/plain
36
38
  """
37
39
  Then the following reply is sent: