@toa.io/extensions.exposition 1.0.0-alpha.11 → 1.0.0-alpha.111

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 (601) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +14 -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 +28 -10
  10. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  11. package/components/identity.basic/operations/authenticate.js +7 -4
  12. package/components/identity.basic/operations/authenticate.js.map +1 -1
  13. package/components/identity.basic/operations/incept.d.ts +12 -0
  14. package/components/identity.basic/operations/incept.js +26 -0
  15. package/components/identity.basic/operations/incept.js.map +1 -0
  16. package/components/identity.basic/operations/transit.d.ts +4 -4
  17. package/components/identity.basic/operations/transit.js +8 -6
  18. package/components/identity.basic/operations/transit.js.map +1 -1
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  20. package/components/identity.basic/operations/types.d.ts +8 -4
  21. package/components/identity.basic/source/authenticate.ts +18 -7
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +11 -9
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +61 -19
  26. package/components/identity.federation/operations/authenticate.d.ts +13 -2
  27. package/components/identity.federation/operations/authenticate.js +10 -11
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/decode.d.ts +2 -0
  30. package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/decode.js} +7 -32
  31. package/components/identity.federation/operations/decode.js.map +1 -0
  32. package/components/identity.federation/operations/incept.d.ts +11 -0
  33. package/components/identity.federation/operations/incept.js +14 -0
  34. package/components/identity.federation/operations/incept.js.map +1 -0
  35. package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
  36. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
  37. package/components/identity.federation/operations/lib/get.d.ts +1 -0
  38. package/components/identity.federation/operations/lib/get.js +64 -0
  39. package/components/identity.federation/operations/lib/get.js.map +1 -0
  40. package/components/identity.federation/operations/lib/jwt.d.ts +4 -5
  41. package/components/identity.federation/operations/lib/jwt.js +20 -16
  42. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  43. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  44. package/components/identity.federation/operations/types/configuration.d.ts +15 -0
  45. package/components/identity.federation/operations/types/configuration.js +3 -0
  46. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  47. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +11 -12
  48. package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/types/context.js} +1 -1
  49. package/components/identity.federation/operations/types/context.js.map +1 -0
  50. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  51. package/components/identity.federation/operations/types/entity.js +3 -0
  52. package/components/identity.federation/operations/types/entity.js.map +1 -0
  53. package/components/identity.federation/operations/types/index.d.ts +3 -0
  54. package/components/identity.federation/operations/types/index.js +20 -0
  55. package/components/identity.federation/operations/types/index.js.map +1 -0
  56. package/components/identity.federation/source/authenticate.ts +24 -17
  57. package/components/identity.federation/source/decode.ts +9 -0
  58. package/components/identity.federation/source/incept.ts +26 -0
  59. package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
  60. package/components/identity.federation/source/lib/get.ts +82 -0
  61. package/components/identity.federation/source/lib/jwt.test.ts +127 -4
  62. package/components/identity.federation/source/lib/jwt.ts +26 -19
  63. package/components/identity.federation/source/types/configuration.ts +16 -0
  64. package/components/identity.federation/source/{types.ts → types/context.ts} +12 -12
  65. package/components/identity.federation/source/types/entity.ts +6 -0
  66. package/components/identity.federation/source/types/index.ts +3 -0
  67. package/components/identity.federation/tsconfig.json +5 -4
  68. package/components/identity.keys/manifest.toa.yaml +54 -0
  69. package/components/identity.keys/operations/create.d.ts +22 -0
  70. package/components/identity.keys/operations/create.js +16 -0
  71. package/components/identity.keys/operations/create.js.map +1 -0
  72. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
  73. package/components/identity.keys/source/create.ts +35 -0
  74. package/components/identity.keys/tsconfig.json +9 -0
  75. package/components/identity.roles/manifest.toa.yaml +9 -7
  76. package/components/identity.roles/operations/grant.d.ts +1 -1
  77. package/components/identity.roles/operations/grant.js +8 -7
  78. package/components/identity.roles/operations/grant.js.map +1 -1
  79. package/components/identity.roles/operations/lib/Entity.d.ts +1 -1
  80. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  81. package/components/identity.roles/source/grant.ts +9 -8
  82. package/components/identity.roles/source/lib/Entity.ts +1 -1
  83. package/components/identity.tokens/manifest.toa.yaml +103 -9
  84. package/components/identity.tokens/operations/authenticate.d.ts +3 -3
  85. package/components/identity.tokens/operations/authenticate.js +20 -13
  86. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  87. package/components/identity.tokens/operations/decrypt.d.ts +12 -3
  88. package/components/identity.tokens/operations/decrypt.js +62 -17
  89. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  90. package/components/identity.tokens/operations/encrypt.d.ts +3 -3
  91. package/components/identity.tokens/operations/encrypt.js +26 -6
  92. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  93. package/components/identity.tokens/operations/issue.d.ts +24 -0
  94. package/components/identity.tokens/operations/issue.js +58 -0
  95. package/components/identity.tokens/operations/issue.js.map +1 -0
  96. package/components/identity.tokens/operations/lib/index.d.ts +2 -0
  97. package/components/identity.tokens/operations/lib/index.js +19 -0
  98. package/components/identity.tokens/operations/lib/index.js.map +1 -0
  99. package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
  100. package/components/identity.tokens/operations/lib/pad.js +5 -0
  101. package/components/identity.tokens/operations/lib/pad.js.map +1 -0
  102. package/components/identity.tokens/operations/lib/types.d.ts +74 -0
  103. package/components/identity.tokens/operations/lib/types.js.map +1 -0
  104. package/components/identity.tokens/operations/revoke.d.ts +2 -2
  105. package/components/identity.tokens/operations/revoke.js.map +1 -1
  106. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  107. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  108. package/components/identity.tokens/source/authenticate.test.ts +22 -9
  109. package/components/identity.tokens/source/authenticate.ts +23 -15
  110. package/components/identity.tokens/source/decrypt.test.ts +33 -18
  111. package/components/identity.tokens/source/decrypt.ts +91 -20
  112. package/components/identity.tokens/source/encrypt.test.ts +67 -12
  113. package/components/identity.tokens/source/encrypt.ts +37 -9
  114. package/components/identity.tokens/source/issue.ts +80 -0
  115. package/components/identity.tokens/source/lib/index.ts +2 -0
  116. package/components/identity.tokens/source/lib/pad.ts +1 -0
  117. package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
  118. package/components/identity.tokens/source/lib/types.ts +85 -0
  119. package/components/identity.tokens/source/revoke.ts +2 -2
  120. package/components/octets.storage/manifest.toa.yaml +10 -11
  121. package/components/octets.storage/operations/get.js +3 -3
  122. package/components/octets.storage/operations/head.js +7 -0
  123. package/components/octets.storage/operations/put.js +132 -0
  124. package/documentation/access.md +91 -29
  125. package/documentation/authorities.md +48 -0
  126. package/documentation/cache.md +8 -1
  127. package/documentation/components.md +125 -54
  128. package/documentation/flow.md +44 -0
  129. package/documentation/identity.md +29 -22
  130. package/documentation/introspection.md +82 -0
  131. package/documentation/map.md +73 -0
  132. package/documentation/octets.md +100 -68
  133. package/documentation/protocol.md +14 -4
  134. package/documentation/query.md +29 -4
  135. package/documentation/require.md +15 -0
  136. package/documentation/tree.md +13 -0
  137. package/features/access.feature +129 -48
  138. package/features/annotation.feature +1 -0
  139. package/features/auth.claims.feature +171 -0
  140. package/features/auth.incept.feature +89 -0
  141. package/features/auth.input.feature +59 -0
  142. package/features/authorities.basic.feature +141 -0
  143. package/features/authorities.feature +32 -0
  144. package/features/authorities.federation.feature +100 -0
  145. package/features/authorities.tokens.feature +117 -0
  146. package/features/body.feature +2 -0
  147. package/features/cache.feature +109 -5
  148. package/features/cors.feature +8 -2
  149. package/features/debug.feature +34 -0
  150. package/features/directives.feature +3 -0
  151. package/features/dynamic.feature +48 -0
  152. package/features/errors.feature +32 -7
  153. package/features/etag.feature +109 -1
  154. package/features/flow.feature +96 -0
  155. package/features/identity.bans.feature +137 -0
  156. package/features/identity.basic.feature +85 -28
  157. package/features/identity.feature +18 -6
  158. package/features/identity.federation.feature +89 -18
  159. package/features/identity.roles.feature +112 -19
  160. package/features/identity.tokens.feature +13 -4
  161. package/features/identtiy.tokens.custom.feature +247 -0
  162. package/features/introspection.feature +153 -0
  163. package/features/io.feature +38 -1
  164. package/features/map.feature +305 -0
  165. package/features/methods.feature +47 -0
  166. package/features/octets.cloudinary.feature +68 -0
  167. package/features/octets.download.feature +189 -0
  168. package/features/octets.entries.feature +13 -55
  169. package/features/octets.feature +84 -108
  170. package/features/octets.head.feature +40 -0
  171. package/features/octets.meta.feature +65 -15
  172. package/features/octets.workflows.feature +242 -58
  173. package/features/probes.feature +14 -0
  174. package/features/{queries.feature → query.feature} +77 -2
  175. package/features/realtime.feature +34 -0
  176. package/features/require.feature +67 -0
  177. package/features/response.feature +38 -3
  178. package/features/routes.feature +93 -2
  179. package/features/server.feature +21 -0
  180. package/features/steps/.env.example +3 -0
  181. package/features/steps/Database.ts +16 -9
  182. package/features/steps/Gateway.ts +26 -7
  183. package/features/steps/IdP.ts +63 -25
  184. package/features/steps/Parameters.ts +44 -1
  185. package/features/steps/Realtime.ts +151 -0
  186. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  187. package/features/steps/components/echo/operations/identity.js +7 -0
  188. package/features/steps/components/echo/operations/parameters.js +7 -0
  189. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  190. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  191. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  192. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -3
  193. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  194. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  195. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  196. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  197. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  198. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  199. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  200. package/features/steps/components/pots/manifest.toa.yaml +12 -4
  201. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  202. package/features/steps/components/users/manifest.toa.yaml +4 -3
  203. package/features/steps/components/users/operations/create.js +15 -0
  204. package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
  205. package/features/streams.feature +5 -0
  206. package/features/timestamps.feature +41 -0
  207. package/features/timing.feature +4 -1
  208. package/package.json +25 -13
  209. package/readme.md +19 -14
  210. package/schemas/annotation.cos.yaml +1 -1
  211. package/schemas/method.cos.yaml +1 -1
  212. package/schemas/node.cos.yaml +2 -0
  213. package/schemas/octets/put.cos.yaml +25 -0
  214. package/schemas/query.cos.yaml +4 -10
  215. package/source/Annotation.ts +3 -3
  216. package/source/Branch.ts +1 -0
  217. package/source/Composition.ts +0 -6
  218. package/source/Context.ts +1 -0
  219. package/source/Directive.test.ts +1 -1
  220. package/source/Directive.ts +7 -6
  221. package/source/Endpoint.ts +69 -17
  222. package/source/Factory.ts +22 -13
  223. package/source/Gateway.ts +73 -19
  224. package/source/HTTP/Context.ts +31 -7
  225. package/source/HTTP/Server.ts +61 -47
  226. package/source/HTTP/exceptions.ts +13 -1
  227. package/source/HTTP/formats/index.ts +3 -3
  228. package/source/HTTP/messages.test.ts +45 -2
  229. package/source/HTTP/messages.ts +34 -8
  230. package/source/Introspection.ts +11 -0
  231. package/source/Mapping.ts +68 -21
  232. package/source/Query.test.ts +3 -3
  233. package/source/Query.ts +123 -33
  234. package/source/RTD/Context.ts +1 -1
  235. package/source/RTD/Endpoint.ts +3 -0
  236. package/source/RTD/Method.ts +16 -0
  237. package/source/RTD/Node.ts +29 -13
  238. package/source/RTD/Route.ts +5 -4
  239. package/source/RTD/Tree.ts +2 -2
  240. package/source/RTD/factory.ts +5 -2
  241. package/source/RTD/syntax/parse.test.ts +1 -1
  242. package/source/RTD/syntax/parse.ts +37 -24
  243. package/source/RTD/syntax/types.ts +6 -4
  244. package/source/Remotes.ts +7 -6
  245. package/source/Tenant.ts +6 -20
  246. package/source/deployment.ts +33 -23
  247. package/source/directives/auth/Anonymous.ts +3 -3
  248. package/source/directives/auth/Anyone.ts +13 -0
  249. package/source/directives/auth/Authorization.ts +65 -25
  250. package/source/directives/auth/Delegate.ts +13 -6
  251. package/source/directives/auth/Echo.ts +16 -6
  252. package/source/directives/auth/Federation.ts +84 -0
  253. package/source/directives/auth/Id.ts +1 -1
  254. package/source/directives/auth/Incept.ts +27 -12
  255. package/source/directives/auth/Input.ts +72 -0
  256. package/source/directives/auth/Role.test.ts +53 -6
  257. package/source/directives/auth/Role.ts +23 -19
  258. package/source/directives/auth/Rule.ts +3 -5
  259. package/source/directives/auth/Scheme.ts +5 -5
  260. package/source/directives/auth/create.ts +10 -0
  261. package/source/directives/auth/split.ts +1 -1
  262. package/source/directives/auth/types.ts +11 -6
  263. package/source/directives/cache/Cache.ts +13 -6
  264. package/source/directives/cache/Control.ts +42 -16
  265. package/source/directives/cors/CORS.ts +3 -2
  266. package/source/directives/dev/Development.ts +1 -1
  267. package/source/directives/flow/Compose.ts +68 -0
  268. package/source/directives/flow/Fetch.ts +86 -0
  269. package/source/directives/flow/Flow.ts +42 -0
  270. package/source/directives/flow/index.ts +3 -0
  271. package/source/directives/flow/types.ts +7 -0
  272. package/source/directives/index.ts +4 -2
  273. package/source/directives/io/IO.ts +1 -1
  274. package/source/directives/io/Input.ts +8 -5
  275. package/source/directives/io/Output.ts +5 -4
  276. package/source/directives/map/Authority.ts +15 -0
  277. package/source/directives/map/Claims.ts +58 -0
  278. package/source/directives/map/Directive.ts +4 -0
  279. package/source/directives/map/Headers.ts +38 -0
  280. package/source/directives/map/Language.ts +42 -0
  281. package/source/directives/map/Languages.ts +11 -0
  282. package/source/directives/map/Map.ts +61 -0
  283. package/source/directives/map/Mapping.ts +19 -0
  284. package/source/directives/{vary → map}/Properties.ts +2 -4
  285. package/source/directives/map/Segments.ts +26 -0
  286. package/source/directives/map/index.ts +3 -0
  287. package/source/directives/octets/Context.ts +3 -2
  288. package/source/directives/octets/Delete.ts +11 -11
  289. package/source/directives/octets/Get.ts +86 -0
  290. package/source/directives/octets/Octets.ts +9 -12
  291. package/source/directives/octets/{Store.ts → Put.ts} +36 -36
  292. package/source/directives/octets/Workflow.ts +1 -1
  293. package/source/directives/octets/bytes.test.ts +30 -0
  294. package/source/directives/octets/bytes.ts +18 -0
  295. package/source/directives/octets/schemas.ts +4 -8
  296. package/source/directives/octets/workflows/Execution.ts +60 -8
  297. package/source/directives/octets/workflows/Workflow.ts +4 -4
  298. package/source/directives/require/Directive.ts +5 -0
  299. package/source/directives/require/Headers.ts +20 -0
  300. package/source/directives/require/Require.ts +28 -0
  301. package/source/directives/require/index.ts +3 -0
  302. package/source/exceptions.ts +14 -6
  303. package/source/manifest.ts +10 -11
  304. package/source/root.ts +16 -1
  305. package/source/schemas.ts +1 -1
  306. package/transpiled/Annotation.d.ts +3 -3
  307. package/transpiled/Branch.d.ts +1 -0
  308. package/transpiled/Composition.d.ts +0 -1
  309. package/transpiled/Composition.js +0 -4
  310. package/transpiled/Composition.js.map +1 -1
  311. package/transpiled/Context.d.ts +1 -0
  312. package/transpiled/Directive.js +7 -5
  313. package/transpiled/Directive.js.map +1 -1
  314. package/transpiled/Endpoint.d.ts +6 -4
  315. package/transpiled/Endpoint.js +47 -9
  316. package/transpiled/Endpoint.js.map +1 -1
  317. package/transpiled/Factory.d.ts +3 -2
  318. package/transpiled/Factory.js +18 -10
  319. package/transpiled/Factory.js.map +1 -1
  320. package/transpiled/Gateway.d.ts +3 -0
  321. package/transpiled/Gateway.js +55 -12
  322. package/transpiled/Gateway.js.map +1 -1
  323. package/transpiled/HTTP/Context.d.ts +9 -2
  324. package/transpiled/HTTP/Context.js +20 -6
  325. package/transpiled/HTTP/Context.js.map +1 -1
  326. package/transpiled/HTTP/Server.d.ts +13 -2
  327. package/transpiled/HTTP/Server.js +47 -40
  328. package/transpiled/HTTP/Server.js.map +1 -1
  329. package/transpiled/HTTP/exceptions.d.ts +7 -1
  330. package/transpiled/HTTP/exceptions.js +13 -1
  331. package/transpiled/HTTP/exceptions.js.map +1 -1
  332. package/transpiled/HTTP/formats/index.js +3 -3
  333. package/transpiled/HTTP/formats/index.js.map +1 -1
  334. package/transpiled/HTTP/messages.d.ts +2 -1
  335. package/transpiled/HTTP/messages.js +32 -7
  336. package/transpiled/HTTP/messages.js.map +1 -1
  337. package/transpiled/Introspection.d.ts +9 -0
  338. package/transpiled/Introspection.js +3 -0
  339. package/transpiled/Introspection.js.map +1 -0
  340. package/transpiled/Mapping.d.ts +11 -2
  341. package/transpiled/Mapping.js +50 -19
  342. package/transpiled/Mapping.js.map +1 -1
  343. package/transpiled/Query.d.ts +10 -1
  344. package/transpiled/Query.js +87 -30
  345. package/transpiled/Query.js.map +1 -1
  346. package/transpiled/RTD/Context.d.ts +1 -1
  347. package/transpiled/RTD/Endpoint.d.ts +1 -0
  348. package/transpiled/RTD/Method.d.ts +4 -0
  349. package/transpiled/RTD/Method.js +11 -0
  350. package/transpiled/RTD/Method.js.map +1 -1
  351. package/transpiled/RTD/Node.d.ts +4 -1
  352. package/transpiled/RTD/Node.js +23 -12
  353. package/transpiled/RTD/Node.js.map +1 -1
  354. package/transpiled/RTD/Route.d.ts +1 -1
  355. package/transpiled/RTD/Route.js +0 -1
  356. package/transpiled/RTD/Route.js.map +1 -1
  357. package/transpiled/RTD/Tree.d.ts +1 -1
  358. package/transpiled/RTD/Tree.js.map +1 -1
  359. package/transpiled/RTD/factory.js +5 -2
  360. package/transpiled/RTD/factory.js.map +1 -1
  361. package/transpiled/RTD/syntax/parse.js +34 -22
  362. package/transpiled/RTD/syntax/parse.js.map +1 -1
  363. package/transpiled/RTD/syntax/types.d.ts +5 -3
  364. package/transpiled/RTD/syntax/types.js +1 -1
  365. package/transpiled/RTD/syntax/types.js.map +1 -1
  366. package/transpiled/Remotes.d.ts +4 -4
  367. package/transpiled/Remotes.js +6 -5
  368. package/transpiled/Remotes.js.map +1 -1
  369. package/transpiled/Tenant.d.ts +5 -5
  370. package/transpiled/Tenant.js +2 -13
  371. package/transpiled/Tenant.js.map +1 -1
  372. package/transpiled/deployment.d.ts +1 -1
  373. package/transpiled/deployment.js +28 -20
  374. package/transpiled/deployment.js.map +1 -1
  375. package/transpiled/directives/auth/Anonymous.d.ts +2 -2
  376. package/transpiled/directives/auth/Anonymous.js +2 -2
  377. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  378. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  379. package/transpiled/directives/auth/Anyone.js +14 -0
  380. package/transpiled/directives/auth/Anyone.js.map +1 -0
  381. package/transpiled/directives/auth/Authorization.d.ts +4 -3
  382. package/transpiled/directives/auth/Authorization.js +49 -22
  383. package/transpiled/directives/auth/Authorization.js.map +1 -1
  384. package/transpiled/directives/auth/Delegate.d.ts +5 -4
  385. package/transpiled/directives/auth/Delegate.js +10 -4
  386. package/transpiled/directives/auth/Delegate.js.map +1 -1
  387. package/transpiled/directives/auth/Echo.d.ts +4 -4
  388. package/transpiled/directives/auth/Echo.js +11 -4
  389. package/transpiled/directives/auth/Echo.js.map +1 -1
  390. package/transpiled/directives/auth/Federation.d.ts +16 -0
  391. package/transpiled/directives/auth/Federation.js +57 -0
  392. package/transpiled/directives/auth/Federation.js.map +1 -0
  393. package/transpiled/directives/auth/Id.d.ts +1 -1
  394. package/transpiled/directives/auth/Id.js.map +1 -1
  395. package/transpiled/directives/auth/Incept.d.ts +4 -3
  396. package/transpiled/directives/auth/Incept.js +23 -10
  397. package/transpiled/directives/auth/Incept.js.map +1 -1
  398. package/transpiled/directives/auth/Input.d.ts +14 -0
  399. package/transpiled/directives/auth/Input.js +49 -0
  400. package/transpiled/directives/auth/Input.js.map +1 -0
  401. package/transpiled/directives/auth/Role.d.ts +5 -2
  402. package/transpiled/directives/auth/Role.js +22 -18
  403. package/transpiled/directives/auth/Role.js.map +1 -1
  404. package/transpiled/directives/auth/Rule.d.ts +2 -4
  405. package/transpiled/directives/auth/Rule.js +2 -2
  406. package/transpiled/directives/auth/Rule.js.map +1 -1
  407. package/transpiled/directives/auth/Scheme.d.ts +2 -2
  408. package/transpiled/directives/auth/Scheme.js +4 -4
  409. package/transpiled/directives/auth/Scheme.js.map +1 -1
  410. package/transpiled/directives/auth/create.d.ts +2 -0
  411. package/transpiled/directives/auth/create.js +12 -0
  412. package/transpiled/directives/auth/create.js.map +1 -0
  413. package/transpiled/directives/auth/split.js +1 -1
  414. package/transpiled/directives/auth/split.js.map +1 -1
  415. package/transpiled/directives/auth/types.d.ts +8 -5
  416. package/transpiled/directives/cache/Cache.d.ts +3 -3
  417. package/transpiled/directives/cache/Cache.js +10 -4
  418. package/transpiled/directives/cache/Cache.js.map +1 -1
  419. package/transpiled/directives/cache/Control.d.ts +2 -1
  420. package/transpiled/directives/cache/Control.js +29 -12
  421. package/transpiled/directives/cache/Control.js.map +1 -1
  422. package/transpiled/directives/cors/CORS.js +3 -2
  423. package/transpiled/directives/cors/CORS.js.map +1 -1
  424. package/transpiled/directives/dev/Development.js +1 -1
  425. package/transpiled/directives/dev/Development.js.map +1 -1
  426. package/transpiled/directives/flow/Compose.d.ts +8 -0
  427. package/transpiled/directives/flow/Compose.js +74 -0
  428. package/transpiled/directives/flow/Compose.js.map +1 -0
  429. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  430. package/transpiled/directives/flow/Fetch.js +58 -0
  431. package/transpiled/directives/flow/Fetch.js.map +1 -0
  432. package/transpiled/directives/flow/Flow.d.ts +10 -0
  433. package/transpiled/directives/flow/Flow.js +33 -0
  434. package/transpiled/directives/flow/Flow.js.map +1 -0
  435. package/transpiled/directives/flow/index.d.ts +2 -0
  436. package/transpiled/directives/flow/index.js +6 -0
  437. package/transpiled/directives/flow/index.js.map +1 -0
  438. package/transpiled/directives/flow/types.d.ts +6 -0
  439. package/transpiled/directives/flow/types.js.map +1 -0
  440. package/transpiled/directives/index.js +4 -2
  441. package/transpiled/directives/index.js.map +1 -1
  442. package/transpiled/directives/io/IO.js +1 -1
  443. package/transpiled/directives/io/IO.js.map +1 -1
  444. package/transpiled/directives/io/Input.js +4 -2
  445. package/transpiled/directives/io/Input.js.map +1 -1
  446. package/transpiled/directives/io/Output.js +2 -2
  447. package/transpiled/directives/io/Output.js.map +1 -1
  448. package/transpiled/directives/map/Authority.d.ts +6 -0
  449. package/transpiled/directives/map/Authority.js +19 -0
  450. package/transpiled/directives/map/Authority.js.map +1 -0
  451. package/transpiled/directives/map/Claims.d.ts +10 -0
  452. package/transpiled/directives/map/Claims.js +44 -0
  453. package/transpiled/directives/map/Claims.js.map +1 -0
  454. package/transpiled/directives/map/Directive.d.ts +3 -0
  455. package/transpiled/directives/map/Directive.js.map +1 -0
  456. package/transpiled/directives/map/Headers.d.ts +7 -0
  457. package/transpiled/directives/map/Headers.js +34 -0
  458. package/transpiled/directives/map/Headers.js.map +1 -0
  459. package/transpiled/directives/map/Language.d.ts +10 -0
  460. package/transpiled/directives/map/Language.js +38 -0
  461. package/transpiled/directives/map/Language.js.map +1 -0
  462. package/transpiled/directives/map/Languages.d.ts +4 -0
  463. package/transpiled/directives/map/Languages.js +17 -0
  464. package/transpiled/directives/map/Languages.js.map +1 -0
  465. package/transpiled/directives/map/Map.d.ts +13 -0
  466. package/transpiled/directives/map/Map.js +46 -0
  467. package/transpiled/directives/map/Map.js.map +1 -0
  468. package/transpiled/directives/map/Mapping.d.ts +13 -0
  469. package/transpiled/directives/map/Mapping.js +13 -0
  470. package/transpiled/directives/map/Mapping.js.map +1 -0
  471. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  472. package/transpiled/directives/{vary → map}/Properties.js +1 -3
  473. package/transpiled/directives/map/Properties.js.map +1 -0
  474. package/transpiled/directives/map/Segments.d.ts +6 -0
  475. package/transpiled/directives/map/Segments.js +25 -0
  476. package/transpiled/directives/map/Segments.js.map +1 -0
  477. package/transpiled/directives/map/index.d.ts +2 -0
  478. package/transpiled/directives/map/index.js +6 -0
  479. package/transpiled/directives/map/index.js.map +1 -0
  480. package/transpiled/directives/octets/Context.js +4 -24
  481. package/transpiled/directives/octets/Context.js.map +1 -1
  482. package/transpiled/directives/octets/Delete.js +8 -8
  483. package/transpiled/directives/octets/Delete.js.map +1 -1
  484. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  485. package/transpiled/directives/octets/{Fetch.js → Get.js} +25 -29
  486. package/transpiled/directives/octets/Get.js.map +1 -0
  487. package/transpiled/directives/octets/Octets.js +9 -12
  488. package/transpiled/directives/octets/Octets.js.map +1 -1
  489. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +6 -2
  490. package/transpiled/directives/octets/{Store.js → Put.js} +22 -26
  491. package/transpiled/directives/octets/Put.js.map +1 -0
  492. package/transpiled/directives/octets/Workflow.js +1 -1
  493. package/transpiled/directives/octets/Workflow.js.map +1 -1
  494. package/transpiled/directives/octets/bytes.d.ts +1 -0
  495. package/transpiled/directives/octets/bytes.js +21 -0
  496. package/transpiled/directives/octets/bytes.js.map +1 -0
  497. package/transpiled/directives/octets/schemas.d.ts +4 -8
  498. package/transpiled/directives/octets/schemas.js +3 -6
  499. package/transpiled/directives/octets/schemas.js.map +1 -1
  500. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  501. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  502. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  503. package/transpiled/directives/octets/workflows/Workflow.d.ts +1 -1
  504. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  505. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  506. package/transpiled/directives/require/Directive.d.ts +4 -0
  507. package/transpiled/directives/require/Directive.js +3 -0
  508. package/transpiled/directives/require/Directive.js.map +1 -0
  509. package/transpiled/directives/require/Headers.d.ts +7 -0
  510. package/transpiled/directives/require/Headers.js +19 -0
  511. package/transpiled/directives/require/Headers.js.map +1 -0
  512. package/transpiled/directives/require/Require.d.ts +9 -0
  513. package/transpiled/directives/require/Require.js +27 -0
  514. package/transpiled/directives/require/Require.js.map +1 -0
  515. package/transpiled/directives/require/index.d.ts +2 -0
  516. package/transpiled/directives/require/index.js +6 -0
  517. package/transpiled/directives/require/index.js.map +1 -0
  518. package/transpiled/exceptions.d.ts +3 -2
  519. package/transpiled/exceptions.js +8 -1
  520. package/transpiled/exceptions.js.map +1 -1
  521. package/transpiled/manifest.js +10 -11
  522. package/transpiled/manifest.js.map +1 -1
  523. package/transpiled/root.js +16 -1
  524. package/transpiled/root.js.map +1 -1
  525. package/transpiled/schemas.d.ts +1 -1
  526. package/transpiled/schemas.js +2 -2
  527. package/transpiled/schemas.js.map +1 -1
  528. package/transpiled/tsconfig.tsbuildinfo +1 -1
  529. package/components/identity.basic/operations/create.d.ts +0 -10
  530. package/components/identity.basic/operations/create.js +0 -10
  531. package/components/identity.basic/operations/create.js.map +0 -1
  532. package/components/identity.basic/source/create.ts +0 -18
  533. package/components/identity.federation/operations/create.d.ts +0 -10
  534. package/components/identity.federation/operations/create.js +0 -15
  535. package/components/identity.federation/operations/create.js.map +0 -1
  536. package/components/identity.federation/operations/schemas.d.ts +0 -59
  537. package/components/identity.federation/operations/schemas.js +0 -9
  538. package/components/identity.federation/operations/schemas.js.map +0 -1
  539. package/components/identity.federation/operations/types.js.map +0 -1
  540. package/components/identity.federation/source/create.ts +0 -26
  541. package/components/identity.federation/source/schemas.ts +0 -61
  542. package/components/identity.tokens/operations/types.d.ts +0 -40
  543. package/components/identity.tokens/operations/types.js.map +0 -1
  544. package/components/identity.tokens/source/types.ts +0 -48
  545. package/components/octets.storage/operations/fetch.js +0 -46
  546. package/components/octets.storage/operations/list.js +0 -7
  547. package/components/octets.storage/operations/permute.js +0 -7
  548. package/components/octets.storage/operations/store.js +0 -11
  549. package/documentation/vary.md +0 -69
  550. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  551. package/features/vary.feature +0 -180
  552. package/schemas/octets/context.cos.yaml +0 -1
  553. package/schemas/octets/fetch.cos.yaml +0 -3
  554. package/schemas/octets/permute.cos.yaml +0 -1
  555. package/schemas/octets/store.cos.yaml +0 -3
  556. package/source/HTTP/Server.test.ts +0 -126
  557. package/source/directives/octets/Fetch.ts +0 -100
  558. package/source/directives/octets/List.ts +0 -72
  559. package/source/directives/octets/Permute.ts +0 -44
  560. package/source/directives/vary/Directive.ts +0 -6
  561. package/source/directives/vary/Embed.ts +0 -62
  562. package/source/directives/vary/Vary.ts +0 -48
  563. package/source/directives/vary/embeddings/Embedding.ts +0 -6
  564. package/source/directives/vary/embeddings/Header.ts +0 -32
  565. package/source/directives/vary/embeddings/Language.ts +0 -31
  566. package/source/directives/vary/embeddings/index.ts +0 -11
  567. package/source/directives/vary/index.ts +0 -3
  568. package/transpiled/directives/octets/Fetch.js.map +0 -1
  569. package/transpiled/directives/octets/List.d.ts +0 -16
  570. package/transpiled/directives/octets/List.js +0 -74
  571. package/transpiled/directives/octets/List.js.map +0 -1
  572. package/transpiled/directives/octets/Permute.d.ts +0 -11
  573. package/transpiled/directives/octets/Permute.js.map +0 -1
  574. package/transpiled/directives/octets/Store.js.map +0 -1
  575. package/transpiled/directives/vary/Directive.d.ts +0 -5
  576. package/transpiled/directives/vary/Directive.js.map +0 -1
  577. package/transpiled/directives/vary/Embed.d.ts +0 -10
  578. package/transpiled/directives/vary/Embed.js +0 -49
  579. package/transpiled/directives/vary/Embed.js.map +0 -1
  580. package/transpiled/directives/vary/Properties.js.map +0 -1
  581. package/transpiled/directives/vary/Vary.d.ts +0 -10
  582. package/transpiled/directives/vary/Vary.js +0 -36
  583. package/transpiled/directives/vary/Vary.js.map +0 -1
  584. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -5
  585. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  586. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  587. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  588. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  589. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  590. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  591. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  592. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  593. package/transpiled/directives/vary/embeddings/index.js +0 -10
  594. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  595. package/transpiled/directives/vary/index.d.ts +0 -2
  596. package/transpiled/directives/vary/index.js +0 -6
  597. package/transpiled/directives/vary/index.js.map +0 -1
  598. /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
  599. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  600. /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
  601. /package/transpiled/directives/{vary → map}/Directive.js +0 -0
@@ -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:
@@ -1,15 +1,50 @@
1
+ @security
1
2
  Feature: Caching
2
3
 
3
4
  Background:
4
5
  Given the `identity.basic` database contains:
5
6
  # developer:secret
6
7
  # user:12345
7
- | _id | username | password |
8
- | b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
8
+ | _id | authority | username | password |
9
+ | b70a7dbca6b14a2eaac8a9eb4b2ff4db | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
9
10
  Given the `identity.roles` database contains:
10
11
  | _id | identity | role |
11
12
  | 775a648d054e4ce1a65f8f17e5b51803 | b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer |
12
13
 
14
+ Scenario: Default caching
15
+ Given the annotation:
16
+ """yaml
17
+ /:
18
+ anonymous: true
19
+ GET:
20
+ dev:stub: foo
21
+ /private:
22
+ auth:role: developer
23
+ GET:
24
+ dev:stub: bar
25
+ """
26
+ When the following request is received:
27
+ """
28
+ GET / HTTP/1.1
29
+ host: nex.toa.io
30
+ """
31
+ Then the reply does not contain:
32
+ """
33
+ cache-control:
34
+ """
35
+ When the following request is received:
36
+ """
37
+ GET /private/ HTTP/1.1
38
+ host: nex.toa.io
39
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
40
+ """
41
+ Then the following reply is sent:
42
+ """
43
+ 200 OK
44
+
45
+ cache-control: no-store
46
+ """
47
+
13
48
  Scenario: Caching successful response
14
49
  Given the annotation:
15
50
  """yaml
@@ -23,6 +58,7 @@ Feature: Caching
23
58
  When the following request is received:
24
59
  """
25
60
  GET / HTTP/1.1
61
+ host: nex.toa.io
26
62
  accept: text/plain
27
63
  """
28
64
  Then the following reply is sent:
@@ -53,9 +89,22 @@ Feature: Caching
53
89
  GET:
54
90
  dev:stub: hello
55
91
  """
92
+ When the following request is received:
93
+ """
94
+ GET /identity/ HTTP/1.1
95
+ host: nex.toa.io
96
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
97
+ """
98
+ Then the following reply is sent:
99
+ """
100
+ 200 OK
101
+ authorization: Token ${{ token }}
102
+ cache-control: no-store
103
+ """
56
104
  When the following request is received:
57
105
  """
58
106
  GET / HTTP/1.1
107
+ host: nex.toa.io
59
108
  accept: text/plain
60
109
  """
61
110
  Then the following reply is sent:
@@ -69,8 +118,9 @@ Feature: Caching
69
118
  When the following request is received:
70
119
  """
71
120
  GET /foo/ HTTP/1.1
121
+ host: nex.toa.io
72
122
  accept: text/plain
73
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
123
+ authorization: Token ${{ token }}
74
124
  """
75
125
  Then the following reply is sent:
76
126
  """
@@ -83,8 +133,9 @@ Feature: Caching
83
133
  When the following request is received:
84
134
  """
85
135
  GET /bar/ HTTP/1.1
136
+ host: nex.toa.io
86
137
  accept: text/plain
87
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
138
+ authorization: Token ${{ token }}
88
139
  """
89
140
  Then the following reply is sent:
90
141
  """
@@ -111,6 +162,7 @@ Feature: Caching
111
162
  When the following request is received:
112
163
  """
113
164
  POST / HTTP/1.1
165
+ host: nex.toa.io
114
166
  accept: application/yaml
115
167
  """
116
168
  Then the reply does not contain:
@@ -130,8 +182,21 @@ Feature: Caching
130
182
  """
131
183
  When the following request is received:
132
184
  """
133
- GET / HTTP/1.1
185
+ GET /identity/ HTTP/1.1
186
+ host: nex.toa.io
134
187
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
188
+ """
189
+ Then the following reply is sent:
190
+ """
191
+ 200 OK
192
+ authorization: Token ${{ token }}
193
+ cache-control: no-store
194
+ """
195
+ When the following request is received:
196
+ """
197
+ GET / HTTP/1.1
198
+ host: nex.toa.io
199
+ authorization: Token ${{ token }}
135
200
  accept: text/plain
136
201
 
137
202
  """
@@ -155,9 +220,48 @@ Feature: Caching
155
220
  When the following request is received:
156
221
  """
157
222
  GET / HTTP/1.1
223
+ host: nex.toa.io
158
224
  accept: text/plain
159
225
  """
160
226
  Then the reply does not contain:
161
227
  """
162
228
  cache-control:
163
229
  """
230
+
231
+ Scenario: Private responses are sent with `vary: authorization`
232
+ Given the `identity.basic` database contains:
233
+ | _id | authority | username | password |
234
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
235
+ And the annotation:
236
+ """yaml
237
+ /:
238
+ /:id:
239
+ auth:id: id
240
+ cache:control: max-age=10000
241
+ GET:
242
+ dev:stub: Keep it
243
+ """
244
+ When the following request is received:
245
+ """
246
+ GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
247
+ host: nex.toa.io
248
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
249
+ """
250
+ Then the following reply is sent:
251
+ """
252
+ 200 OK
253
+ authorization: Token ${{ token }}
254
+ cache-control: no-store
255
+ """
256
+ When the following request is received:
257
+ """
258
+ GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
259
+ host: nex.toa.io
260
+ authorization: Token ${{ token }}
261
+ """
262
+ Then the following reply is sent:
263
+ """
264
+ 200 OK
265
+ cache-control: private, max-age=10000
266
+ vary: authorization
267
+ """
@@ -1,3 +1,4 @@
1
+ @security
1
2
  Feature: CORS Support
2
3
 
3
4
  Scenario: Using CORS
@@ -12,13 +13,14 @@ Feature: CORS Support
12
13
  When the following request is received:
13
14
  """
14
15
  OPTIONS / HTTP/1.1
16
+ host: nex.toa.io
15
17
  origin: https://hello.world
16
18
  """
17
19
  Then the following reply is sent:
18
20
  """
19
21
  204 No Content
20
22
  access-control-allow-origin: https://hello.world
21
- access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
23
+ access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
22
24
  access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match
23
25
  access-control-allow-credentials: true
24
26
  access-control-max-age: 3600
@@ -28,13 +30,15 @@ Feature: CORS Support
28
30
  When the following request is received:
29
31
  """
30
32
  GET /foo/ HTTP/1.1
33
+ host: nex.toa.io
31
34
  origin: https://hello.world
32
35
  """
33
36
  Then the following reply is sent:
34
37
  """
35
38
  200 OK
36
39
  access-control-allow-origin: https://hello.world
37
- access-control-expose-headers: authorization, content-type, content-length, etag
40
+ access-control-allow-credentials: true
41
+ access-control-expose-headers: authorization, content-type, content-length, etag, last-modified
38
42
  vary: origin
39
43
  """
40
44
 
@@ -49,6 +53,7 @@ Feature: CORS Support
49
53
  When the following request is received:
50
54
  """
51
55
  GET /bar/ HTTP/1.1
56
+ host: nex.toa.io
52
57
  origin: https://hello.world
53
58
  """
54
59
  Then the following reply is sent:
@@ -61,6 +66,7 @@ Feature: CORS Support
61
66
  When the following request is received:
62
67
  """
63
68
  GET /foo/ HTTP/1.1
69
+ host: nex.toa.io
64
70
  origin: https://hello.world
65
71
  """
66
72
  Then the following reply is sent:
@@ -0,0 +1,34 @@
1
+ Feature: Debugging
2
+
3
+ Scenario: Operation call
4
+ Given the `identity.basic` database contains:
5
+ | _id | authority | username | password |
6
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
7
+ And the `identity.roles` database contains:
8
+ | _id | identity | role |
9
+ | 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
10
+ And the annotation:
11
+ """yaml
12
+ debug: true
13
+ """
14
+ And the `greeter` is running with the following manifest:
15
+ """yaml
16
+ exposition:
17
+ /:
18
+ auth:role: developer
19
+ io:output: true
20
+ GET: greet
21
+ """
22
+ When the following request is received:
23
+ """
24
+ GET /greeter/ HTTP/1.1
25
+ host: nex.toa.io
26
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
27
+ accept: text/plain
28
+ """
29
+ Then the following reply is sent:
30
+ """
31
+ 200 OK
32
+
33
+ Hello
34
+ """
@@ -13,6 +13,7 @@ Feature: Directives
13
13
  When the following request is received:
14
14
  """
15
15
  GET / HTTP/1.1
16
+ host: nex.toa.io
16
17
  accept: application/json
17
18
  """
18
19
  Then the following reply is sent:
@@ -38,6 +39,7 @@ Feature: Directives
38
39
  When the following request is received:
39
40
  """
40
41
  GET /pots/ HTTP/1.1
42
+ host: nex.toa.io
41
43
  accept: application/yaml
42
44
  """
43
45
  Then the following reply is sent:
@@ -50,6 +52,7 @@ Feature: Directives
50
52
  When the following request is received:
51
53
  """
52
54
  GET /pots/non-existent/ HTTP/1.1
55
+ host: nex.toa.io
53
56
  accept: application/yaml
54
57
  """
55
58
  Then the following reply is sent: