@toa.io/extensions.exposition 1.0.0-alpha.6 → 1.0.0-alpha.61

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 (443) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +15 -7
  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 +21 -10
  10. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  11. package/components/identity.basic/operations/authenticate.js +5 -2
  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 +5 -3
  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 +16 -5
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +8 -6
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +32 -16
  26. package/components/identity.federation/operations/authenticate.d.ts +2 -2
  27. package/components/identity.federation/operations/authenticate.js +4 -11
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/incept.d.ts +11 -0
  30. package/components/identity.federation/operations/{create.js → incept.js} +6 -7
  31. package/components/identity.federation/operations/incept.js.map +1 -0
  32. package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
  33. package/components/identity.federation/operations/lib/jwt.js +25 -12
  34. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  35. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  36. package/components/identity.federation/operations/types/configuration.d.ts +14 -0
  37. package/components/identity.federation/operations/types/configuration.js +3 -0
  38. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  39. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
  40. package/components/identity.federation/operations/types/context.js +3 -0
  41. package/components/identity.federation/operations/types/context.js.map +1 -0
  42. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  43. package/components/identity.federation/operations/types/entity.js +3 -0
  44. package/components/identity.federation/operations/types/entity.js.map +1 -0
  45. package/components/identity.federation/operations/types/index.d.ts +3 -0
  46. package/components/identity.federation/operations/types/index.js +20 -0
  47. package/components/identity.federation/operations/types/index.js.map +1 -0
  48. package/components/identity.federation/source/authenticate.ts +6 -19
  49. package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
  50. package/components/identity.federation/source/lib/jwt.test.ts +123 -4
  51. package/components/identity.federation/source/lib/jwt.ts +36 -16
  52. package/components/identity.federation/source/types/configuration.ts +15 -0
  53. package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
  54. package/components/identity.federation/source/types/entity.ts +6 -0
  55. package/components/identity.federation/source/types/index.ts +3 -0
  56. package/components/identity.federation/tsconfig.json +5 -4
  57. package/components/identity.roles/manifest.toa.yaml +18 -7
  58. package/components/identity.roles/operations/grant.d.ts +10 -0
  59. package/components/identity.roles/operations/grant.js +21 -0
  60. package/components/identity.roles/operations/grant.js.map +1 -0
  61. package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
  62. package/components/identity.roles/operations/lib/Entity.js +3 -0
  63. package/components/identity.roles/operations/lib/Entity.js.map +1 -0
  64. package/components/identity.roles/operations/list.d.ts +1 -4
  65. package/components/identity.roles/operations/list.js.map +1 -1
  66. package/components/identity.roles/operations/principal.d.ts +4 -6
  67. package/components/identity.roles/operations/principal.js +6 -1
  68. package/components/identity.roles/operations/principal.js.map +1 -1
  69. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  70. package/components/identity.roles/source/grant.ts +32 -0
  71. package/components/identity.roles/source/lib/Entity.ts +5 -0
  72. package/components/identity.roles/source/list.ts +2 -4
  73. package/components/identity.roles/source/principal.ts +10 -8
  74. package/components/identity.tokens/manifest.toa.yaml +19 -5
  75. package/components/identity.tokens/operations/authenticate.d.ts +2 -2
  76. package/components/identity.tokens/operations/authenticate.js +12 -5
  77. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  78. package/components/identity.tokens/operations/decrypt.js +1 -0
  79. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  80. package/components/identity.tokens/operations/encrypt.js +5 -1
  81. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  82. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  83. package/components/identity.tokens/operations/types.d.ts +8 -2
  84. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  85. package/components/identity.tokens/source/authenticate.test.ts +11 -4
  86. package/components/identity.tokens/source/authenticate.ts +14 -6
  87. package/components/identity.tokens/source/decrypt.test.ts +5 -3
  88. package/components/identity.tokens/source/decrypt.ts +9 -8
  89. package/components/identity.tokens/source/encrypt.test.ts +26 -2
  90. package/components/identity.tokens/source/encrypt.ts +5 -1
  91. package/components/identity.tokens/source/types.ts +9 -2
  92. package/components/octets.storage/manifest.toa.yaml +6 -7
  93. package/components/octets.storage/operations/get.js +2 -2
  94. package/components/octets.storage/operations/store.js +113 -3
  95. package/documentation/access.md +75 -38
  96. package/documentation/authorities.md +49 -0
  97. package/documentation/cache.md +8 -1
  98. package/documentation/components.md +47 -22
  99. package/documentation/flow.md +31 -0
  100. package/documentation/identity.md +17 -22
  101. package/documentation/introspection.md +82 -0
  102. package/documentation/octets.md +81 -23
  103. package/documentation/protocol.md +3 -0
  104. package/documentation/query.md +29 -4
  105. package/documentation/require.md +15 -0
  106. package/documentation/tree.md +13 -0
  107. package/documentation/vary.md +14 -14
  108. package/features/access.feature +78 -46
  109. package/features/annotation.feature +1 -0
  110. package/features/auth.claim.feature +170 -0
  111. package/features/authorities.basic.feature +141 -0
  112. package/features/authorities.feature +32 -0
  113. package/features/authorities.federation.feature +100 -0
  114. package/features/authorities.tokens.feature +117 -0
  115. package/features/body.feature +3 -0
  116. package/features/cache.feature +109 -5
  117. package/features/cors.feature +6 -1
  118. package/features/debug.feature +34 -0
  119. package/features/directives.feature +3 -0
  120. package/features/dynamic.feature +4 -0
  121. package/features/errors.feature +20 -7
  122. package/features/etag.feature +31 -0
  123. package/features/flow.feature +45 -0
  124. package/features/identity.bans.feature +137 -0
  125. package/features/identity.basic.feature +125 -23
  126. package/features/identity.feature +7 -2
  127. package/features/identity.federation.feature +66 -11
  128. package/features/identity.roles.feature +250 -7
  129. package/features/identity.tokens.feature +54 -4
  130. package/features/introspection.feature +153 -0
  131. package/features/io.feature +38 -1
  132. package/features/methods.feature +47 -0
  133. package/features/octets.download.feature +189 -0
  134. package/features/octets.entries.feature +8 -1
  135. package/features/octets.feature +82 -54
  136. package/features/octets.meta.feature +3 -0
  137. package/features/octets.workflows.feature +239 -19
  138. package/features/probes.feature +14 -0
  139. package/features/{queries.feature → query.feature} +65 -2
  140. package/features/require.feature +67 -0
  141. package/features/response.feature +38 -3
  142. package/features/routes.feature +93 -2
  143. package/features/steps/Database.ts +17 -10
  144. package/features/steps/Gateway.ts +23 -6
  145. package/features/steps/IdP.ts +30 -25
  146. package/features/steps/Parameters.ts +1 -1
  147. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  148. package/features/steps/components/echo/operations/identity.js +7 -0
  149. package/features/steps/components/echo/operations/parameters.js +7 -0
  150. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  151. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  152. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -1
  153. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  154. package/features/steps/components/octets.tester/operations/baz.js +1 -2
  155. package/features/steps/components/octets.tester/operations/diversify.js +3 -1
  156. package/features/steps/components/octets.tester/operations/foo.js +2 -2
  157. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  158. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  159. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  160. package/features/steps/components/pots/manifest.toa.yaml +14 -3
  161. package/features/steps/components/users/manifest.toa.yaml +0 -1
  162. package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
  163. package/features/streams.feature +1 -0
  164. package/features/timing.feature +27 -1
  165. package/features/vary.feature +71 -0
  166. package/package.json +22 -14
  167. package/readme.md +19 -14
  168. package/schemas/annotation.cos.yaml +1 -1
  169. package/schemas/method.cos.yaml +1 -1
  170. package/schemas/node.cos.yaml +1 -0
  171. package/schemas/octets/store.cos.yaml +25 -3
  172. package/schemas/query.cos.yaml +4 -10
  173. package/source/Annotation.ts +3 -3
  174. package/source/Composition.ts +2 -2
  175. package/source/Directive.ts +4 -5
  176. package/source/Endpoint.ts +48 -12
  177. package/source/Factory.ts +10 -11
  178. package/source/Gateway.ts +49 -20
  179. package/source/HTTP/Context.ts +24 -2
  180. package/source/HTTP/Server.ts +51 -44
  181. package/source/HTTP/exceptions.ts +13 -1
  182. package/source/HTTP/formats/index.ts +3 -3
  183. package/source/HTTP/messages.test.ts +39 -2
  184. package/source/HTTP/messages.ts +7 -3
  185. package/source/Introspection.ts +11 -0
  186. package/source/Mapping.ts +63 -21
  187. package/source/Query.test.ts +3 -3
  188. package/source/Query.ts +117 -33
  189. package/source/RTD/Endpoint.ts +3 -0
  190. package/source/RTD/Method.ts +16 -0
  191. package/source/RTD/Node.ts +29 -13
  192. package/source/RTD/Route.ts +5 -4
  193. package/source/RTD/factory.ts +5 -2
  194. package/source/RTD/syntax/parse.ts +37 -24
  195. package/source/RTD/syntax/types.ts +6 -4
  196. package/source/Remotes.ts +2 -9
  197. package/source/Tenant.ts +0 -8
  198. package/source/deployment.ts +32 -22
  199. package/source/directives/auth/Authorization.ts +37 -14
  200. package/source/directives/auth/Delegate.ts +42 -0
  201. package/source/directives/auth/Federation.ts +84 -0
  202. package/source/directives/auth/Incept.ts +4 -3
  203. package/source/directives/auth/Role.test.ts +53 -6
  204. package/source/directives/auth/Role.ts +22 -14
  205. package/source/directives/auth/split.ts +1 -1
  206. package/source/directives/auth/types.ts +1 -1
  207. package/source/directives/cache/Cache.ts +13 -6
  208. package/source/directives/cache/Control.ts +42 -16
  209. package/source/directives/cors/CORS.ts +1 -1
  210. package/source/directives/dev/Development.ts +1 -1
  211. package/source/directives/flow/Fetch.ts +88 -0
  212. package/source/directives/flow/Flow.ts +34 -0
  213. package/source/directives/flow/index.ts +3 -0
  214. package/source/directives/flow/types.ts +6 -0
  215. package/source/directives/index.ts +3 -1
  216. package/source/directives/io/Input.ts +4 -4
  217. package/source/directives/io/Output.ts +1 -1
  218. package/source/directives/octets/Context.ts +7 -5
  219. package/source/directives/octets/Delete.ts +4 -2
  220. package/source/directives/octets/Directive.ts +10 -0
  221. package/source/directives/octets/Fetch.ts +15 -13
  222. package/source/directives/octets/List.ts +9 -7
  223. package/source/directives/octets/Octets.ts +4 -5
  224. package/source/directives/octets/Store.ts +34 -12
  225. package/source/directives/octets/Workflow.ts +10 -3
  226. package/source/directives/octets/bytes.test.ts +30 -0
  227. package/source/directives/octets/bytes.ts +18 -0
  228. package/source/directives/octets/schemas.ts +4 -6
  229. package/source/directives/octets/types.ts +0 -7
  230. package/source/directives/octets/workflows/Execution.ts +59 -8
  231. package/source/directives/octets/workflows/Workflow.ts +2 -1
  232. package/source/directives/require/Directive.ts +5 -0
  233. package/source/directives/require/Headers.ts +20 -0
  234. package/source/directives/require/Require.ts +28 -0
  235. package/source/directives/require/index.ts +3 -0
  236. package/source/directives/vary/Directive.ts +2 -1
  237. package/source/directives/vary/Embed.ts +14 -8
  238. package/source/directives/vary/Vary.ts +6 -4
  239. package/source/directives/vary/embeddings/Authority.ts +8 -0
  240. package/source/directives/vary/embeddings/Embedding.ts +2 -1
  241. package/source/directives/vary/embeddings/Parameter.ts +14 -0
  242. package/source/directives/vary/embeddings/index.ts +6 -4
  243. package/source/exceptions.ts +22 -11
  244. package/source/manifest.ts +10 -11
  245. package/source/schemas.ts +1 -1
  246. package/transpiled/Annotation.d.ts +3 -3
  247. package/transpiled/Composition.js +2 -2
  248. package/transpiled/Composition.js.map +1 -1
  249. package/transpiled/Directive.js +4 -4
  250. package/transpiled/Directive.js.map +1 -1
  251. package/transpiled/Endpoint.d.ts +6 -4
  252. package/transpiled/Endpoint.js +28 -4
  253. package/transpiled/Endpoint.js.map +1 -1
  254. package/transpiled/Factory.d.ts +1 -1
  255. package/transpiled/Factory.js +9 -8
  256. package/transpiled/Factory.js.map +1 -1
  257. package/transpiled/Gateway.d.ts +2 -0
  258. package/transpiled/Gateway.js +36 -12
  259. package/transpiled/Gateway.js.map +1 -1
  260. package/transpiled/HTTP/Context.d.ts +8 -1
  261. package/transpiled/HTTP/Context.js +15 -2
  262. package/transpiled/HTTP/Context.js.map +1 -1
  263. package/transpiled/HTTP/Server.d.ts +13 -2
  264. package/transpiled/HTTP/Server.js +38 -36
  265. package/transpiled/HTTP/Server.js.map +1 -1
  266. package/transpiled/HTTP/exceptions.d.ts +7 -1
  267. package/transpiled/HTTP/exceptions.js +13 -1
  268. package/transpiled/HTTP/exceptions.js.map +1 -1
  269. package/transpiled/HTTP/formats/index.js +3 -3
  270. package/transpiled/HTTP/formats/index.js.map +1 -1
  271. package/transpiled/HTTP/messages.d.ts +1 -0
  272. package/transpiled/HTTP/messages.js +9 -3
  273. package/transpiled/HTTP/messages.js.map +1 -1
  274. package/transpiled/Introspection.d.ts +9 -0
  275. package/transpiled/Introspection.js +3 -0
  276. package/transpiled/Introspection.js.map +1 -0
  277. package/transpiled/Mapping.d.ts +10 -2
  278. package/transpiled/Mapping.js +48 -19
  279. package/transpiled/Mapping.js.map +1 -1
  280. package/transpiled/Query.d.ts +10 -1
  281. package/transpiled/Query.js +83 -30
  282. package/transpiled/Query.js.map +1 -1
  283. package/transpiled/RTD/Endpoint.d.ts +1 -0
  284. package/transpiled/RTD/Method.d.ts +4 -0
  285. package/transpiled/RTD/Method.js +11 -0
  286. package/transpiled/RTD/Method.js.map +1 -1
  287. package/transpiled/RTD/Node.d.ts +4 -1
  288. package/transpiled/RTD/Node.js +23 -12
  289. package/transpiled/RTD/Node.js.map +1 -1
  290. package/transpiled/RTD/Route.d.ts +1 -1
  291. package/transpiled/RTD/Route.js +0 -1
  292. package/transpiled/RTD/Route.js.map +1 -1
  293. package/transpiled/RTD/factory.js +5 -2
  294. package/transpiled/RTD/factory.js.map +1 -1
  295. package/transpiled/RTD/syntax/parse.js +34 -22
  296. package/transpiled/RTD/syntax/parse.js.map +1 -1
  297. package/transpiled/RTD/syntax/types.d.ts +5 -3
  298. package/transpiled/RTD/syntax/types.js +1 -1
  299. package/transpiled/RTD/syntax/types.js.map +1 -1
  300. package/transpiled/Remotes.d.ts +2 -4
  301. package/transpiled/Remotes.js +0 -5
  302. package/transpiled/Remotes.js.map +1 -1
  303. package/transpiled/Tenant.d.ts +0 -1
  304. package/transpiled/Tenant.js +0 -6
  305. package/transpiled/Tenant.js.map +1 -1
  306. package/transpiled/deployment.d.ts +1 -1
  307. package/transpiled/deployment.js +28 -20
  308. package/transpiled/deployment.js.map +1 -1
  309. package/transpiled/directives/auth/Authorization.js +26 -10
  310. package/transpiled/directives/auth/Authorization.js.map +1 -1
  311. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  312. package/transpiled/directives/auth/Delegate.js +34 -0
  313. package/transpiled/directives/auth/Delegate.js.map +1 -0
  314. package/transpiled/directives/auth/Federation.d.ts +16 -0
  315. package/transpiled/directives/auth/Federation.js +57 -0
  316. package/transpiled/directives/auth/Federation.js.map +1 -0
  317. package/transpiled/directives/auth/Incept.js +4 -3
  318. package/transpiled/directives/auth/Incept.js.map +1 -1
  319. package/transpiled/directives/auth/Role.d.ts +4 -1
  320. package/transpiled/directives/auth/Role.js +20 -14
  321. package/transpiled/directives/auth/Role.js.map +1 -1
  322. package/transpiled/directives/auth/split.js +1 -1
  323. package/transpiled/directives/auth/split.js.map +1 -1
  324. package/transpiled/directives/cache/Cache.d.ts +3 -3
  325. package/transpiled/directives/cache/Cache.js +10 -4
  326. package/transpiled/directives/cache/Cache.js.map +1 -1
  327. package/transpiled/directives/cache/Control.d.ts +2 -1
  328. package/transpiled/directives/cache/Control.js +29 -12
  329. package/transpiled/directives/cache/Control.js.map +1 -1
  330. package/transpiled/directives/cors/CORS.js +1 -1
  331. package/transpiled/directives/cors/CORS.js.map +1 -1
  332. package/transpiled/directives/dev/Development.js +1 -1
  333. package/transpiled/directives/dev/Development.js.map +1 -1
  334. package/transpiled/directives/flow/Fetch.d.ts +13 -0
  335. package/transpiled/directives/flow/Fetch.js +59 -0
  336. package/transpiled/directives/flow/Fetch.js.map +1 -0
  337. package/transpiled/directives/flow/Flow.d.ts +10 -0
  338. package/transpiled/directives/flow/Flow.js +27 -0
  339. package/transpiled/directives/flow/Flow.js.map +1 -0
  340. package/transpiled/directives/flow/index.d.ts +2 -0
  341. package/transpiled/directives/flow/index.js +6 -0
  342. package/transpiled/directives/flow/index.js.map +1 -0
  343. package/transpiled/directives/flow/types.d.ts +5 -0
  344. package/transpiled/directives/flow/types.js.map +1 -0
  345. package/transpiled/directives/index.js +3 -1
  346. package/transpiled/directives/index.js.map +1 -1
  347. package/transpiled/directives/io/Input.js +2 -2
  348. package/transpiled/directives/io/Input.js.map +1 -1
  349. package/transpiled/directives/io/Output.js.map +1 -1
  350. package/transpiled/directives/octets/Context.d.ts +3 -3
  351. package/transpiled/directives/octets/Context.js +8 -26
  352. package/transpiled/directives/octets/Context.js.map +1 -1
  353. package/transpiled/directives/octets/Delete.d.ts +3 -2
  354. package/transpiled/directives/octets/Delete.js +3 -1
  355. package/transpiled/directives/octets/Delete.js.map +1 -1
  356. package/transpiled/directives/octets/Directive.d.ts +8 -0
  357. package/transpiled/directives/octets/Directive.js +8 -0
  358. package/transpiled/directives/octets/Directive.js.map +1 -0
  359. package/transpiled/directives/octets/Fetch.d.ts +6 -5
  360. package/transpiled/directives/octets/Fetch.js +11 -9
  361. package/transpiled/directives/octets/Fetch.js.map +1 -1
  362. package/transpiled/directives/octets/List.d.ts +6 -5
  363. package/transpiled/directives/octets/List.js +6 -4
  364. package/transpiled/directives/octets/List.js.map +1 -1
  365. package/transpiled/directives/octets/Octets.d.ts +2 -1
  366. package/transpiled/directives/octets/Octets.js +2 -4
  367. package/transpiled/directives/octets/Octets.js.map +1 -1
  368. package/transpiled/directives/octets/Store.d.ts +9 -3
  369. package/transpiled/directives/octets/Store.js +20 -8
  370. package/transpiled/directives/octets/Store.js.map +1 -1
  371. package/transpiled/directives/octets/Workflow.d.ts +3 -2
  372. package/transpiled/directives/octets/Workflow.js +9 -2
  373. package/transpiled/directives/octets/Workflow.js.map +1 -1
  374. package/transpiled/directives/octets/bytes.d.ts +1 -0
  375. package/transpiled/directives/octets/bytes.js +21 -0
  376. package/transpiled/directives/octets/bytes.js.map +1 -0
  377. package/transpiled/directives/octets/schemas.d.ts +4 -6
  378. package/transpiled/directives/octets/schemas.js +1 -3
  379. package/transpiled/directives/octets/schemas.js.map +1 -1
  380. package/transpiled/directives/octets/types.d.ts +0 -5
  381. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  382. package/transpiled/directives/octets/workflows/Execution.js +43 -9
  383. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  384. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  385. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  386. package/transpiled/directives/require/Directive.d.ts +4 -0
  387. package/transpiled/directives/require/Directive.js +3 -0
  388. package/transpiled/directives/require/Directive.js.map +1 -0
  389. package/transpiled/directives/require/Headers.d.ts +7 -0
  390. package/transpiled/directives/require/Headers.js +19 -0
  391. package/transpiled/directives/require/Headers.js.map +1 -0
  392. package/transpiled/directives/require/Require.d.ts +9 -0
  393. package/transpiled/directives/require/Require.js +27 -0
  394. package/transpiled/directives/require/Require.js.map +1 -0
  395. package/transpiled/directives/require/index.d.ts +2 -0
  396. package/transpiled/directives/require/index.js +6 -0
  397. package/transpiled/directives/require/index.js.map +1 -0
  398. package/transpiled/directives/vary/Directive.d.ts +2 -1
  399. package/transpiled/directives/vary/Embed.d.ts +2 -1
  400. package/transpiled/directives/vary/Embed.js +8 -6
  401. package/transpiled/directives/vary/Embed.js.map +1 -1
  402. package/transpiled/directives/vary/Vary.d.ts +2 -2
  403. package/transpiled/directives/vary/Vary.js +3 -3
  404. package/transpiled/directives/vary/Vary.js.map +1 -1
  405. package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
  406. package/transpiled/directives/vary/embeddings/Authority.js +10 -0
  407. package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
  408. package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
  409. package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
  410. package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
  411. package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
  412. package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
  413. package/transpiled/directives/vary/embeddings/index.js +8 -4
  414. package/transpiled/directives/vary/embeddings/index.js.map +1 -1
  415. package/transpiled/exceptions.d.ts +3 -2
  416. package/transpiled/exceptions.js +13 -7
  417. package/transpiled/exceptions.js.map +1 -1
  418. package/transpiled/manifest.js +10 -11
  419. package/transpiled/manifest.js.map +1 -1
  420. package/transpiled/schemas.d.ts +1 -1
  421. package/transpiled/schemas.js +2 -2
  422. package/transpiled/schemas.js.map +1 -1
  423. package/transpiled/tsconfig.tsbuildinfo +1 -1
  424. package/tsconfig.json +9 -7
  425. package/components/identity.basic/operations/create.d.ts +0 -10
  426. package/components/identity.basic/operations/create.js +0 -10
  427. package/components/identity.basic/operations/create.js.map +0 -1
  428. package/components/identity.basic/source/create.ts +0 -18
  429. package/components/identity.federation/operations/create.d.ts +0 -10
  430. package/components/identity.federation/operations/create.js.map +0 -1
  431. package/components/identity.federation/operations/schemas.d.ts +0 -59
  432. package/components/identity.federation/operations/schemas.js +0 -9
  433. package/components/identity.federation/operations/schemas.js.map +0 -1
  434. package/components/identity.federation/operations/types.js.map +0 -1
  435. package/components/identity.federation/source/schemas.ts +0 -61
  436. package/components/octets.storage/operations/permute.js +0 -7
  437. package/schemas/octets/context.cos.yaml +0 -1
  438. package/source/HTTP/Server.test.ts +0 -126
  439. package/source/directives/octets/Permute.ts +0 -43
  440. package/transpiled/directives/octets/Permute.d.ts +0 -10
  441. package/transpiled/directives/octets/Permute.js +0 -56
  442. package/transpiled/directives/octets/Permute.js.map +0 -1
  443. /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
@@ -1,20 +1,21 @@
1
+ @security
1
2
  Feature: Identity Federation
2
3
 
3
4
  Background:
4
5
  Given the `identity.federation` database is empty
5
- Given local IDP is running
6
+ And local IDP is running
6
7
 
7
8
  Scenario: Getting identity for a new user
8
9
  Given the `identity.federation` configuration:
9
10
  """yaml
10
- explicit_identity_creation: false
11
11
  trust:
12
- - issuer: http://localhost:44444
12
+ - iss: http://localhost:44444
13
13
  """
14
14
  And the IDP token for User is issued
15
15
  When the following request is received:
16
16
  """
17
17
  GET /identity/ HTTP/1.1
18
+ host: nex.toa.io
18
19
  authorization: Bearer ${{ User.id_token }}
19
20
  accept: application/yaml
20
21
  content-type: application/yaml
@@ -31,33 +32,36 @@ Feature: Identity Federation
31
32
  When the following request is received:
32
33
  """
33
34
  GET /identity/ HTTP/1.1
35
+ host: nex.toa.io
34
36
  accept: application/yaml
35
37
  authorization: Token ${{ User.token }}
36
38
  """
37
39
  Then the following reply is sent:
38
40
  """
39
41
  200 OK
42
+
40
43
  id: ${{ User.id }}
41
44
  """
42
45
  # ensuring identity idempotency
43
46
  When the following request is received:
44
47
  """
45
48
  GET /identity/ HTTP/1.1
49
+ host: nex.toa.io
46
50
  authorization: Bearer ${{ User.id_token }}
47
51
  accept: application/yaml
48
52
  """
49
53
  Then the following reply is sent:
50
54
  """
51
55
  200 OK
56
+
52
57
  id: ${{ User.id }}
53
58
  """
54
59
 
55
60
  Scenario: Getting identity for a user with symmetric tokens
56
61
  Given the `identity.federation` configuration:
57
62
  """yaml
58
- explicit_identity_creation: false
59
63
  trust:
60
- - issuer: http://localhost:44444
64
+ - iss: http://localhost:44444
61
65
  secrets:
62
66
  HS384:
63
67
  k1: the-secret
@@ -69,6 +73,7 @@ Feature: Identity Federation
69
73
  When the following request is received:
70
74
  """
71
75
  GET /identity/ HTTP/1.1
76
+ host: nex.toa.io
72
77
  authorization: Bearer ${{ GoodUser.id_token }}
73
78
  accept: application/yaml
74
79
  content-type: application/yaml
@@ -81,11 +86,11 @@ Feature: Identity Federation
81
86
  id: ${{ GoodUser.id }}
82
87
  """
83
88
 
84
- Scenario: Creating an Identity using inception with existing credentials
89
+ Scenario: Creating an Identity using inception
85
90
  Given the `identity.federation` configuration:
86
91
  """yaml
87
92
  trust:
88
- - issuer: http://localhost:44444
93
+ - iss: http://localhost:44444
89
94
  """
90
95
  Given the `users` is running with the following manifest:
91
96
  """yaml
@@ -93,8 +98,8 @@ Feature: Identity Federation
93
98
  /:
94
99
  anonymous: true
95
100
  POST:
96
- io:output: true
97
- incept: id
101
+ io:output: [id]
102
+ auth:incept: id
98
103
  endpoint: create
99
104
  """
100
105
  And the IDP token for Bill is issued
@@ -102,6 +107,7 @@ Feature: Identity Federation
102
107
  # identity inception
103
108
  """
104
109
  POST /users/ HTTP/1.1
110
+ host: nex.toa.io
105
111
  authorization: Bearer ${{ Bill.id_token }}
106
112
  accept: application/yaml
107
113
  content-type: application/yaml
@@ -119,6 +125,7 @@ Feature: Identity Federation
119
125
  When the following request is received:
120
126
  """
121
127
  GET /identity/ HTTP/1.1
128
+ host: nex.toa.io
122
129
  authorization: Token ${{ Bill.token }}
123
130
  accept: application/yaml
124
131
  """
@@ -130,24 +137,72 @@ Feature: Identity Federation
130
137
  When the following request is received:
131
138
  """
132
139
  GET /identity/ HTTP/1.1
140
+ host: nex.toa.io
133
141
  authorization: Bearer ${{ Bill.id_token }}
134
142
  accept: application/yaml
135
143
  """
136
144
  Then the following reply is sent:
137
145
  """
138
146
  200 OK
147
+
139
148
  id: ${{ Bill.id }}
140
149
  """
141
150
  And the following request is received:
142
151
  # same credentials
143
152
  """
144
153
  POST /users/ HTTP/1.1
154
+ host: nex.toa.io
145
155
  authorization: Bearer ${{ Bill.id_token }}
146
- content-type: text/plain
156
+ content-type: application/yaml
147
157
 
148
158
  name: Mary Louis
149
159
  """
150
160
  Then the following reply is sent:
151
161
  """
152
- 403 Forbidden
162
+ 409 Conflict
163
+ """
164
+
165
+ Scenario: Granting a `system` role to a Principal
166
+ Given the `identity.federation` configuration:
167
+ """yaml
168
+ trust:
169
+ - iss: http://localhost:44444
170
+ principal:
171
+ iss: http://localhost:44444
172
+ sub: root
173
+ """
174
+ And the IDP token for root is issued
175
+
176
+ # create an identity
177
+ When the following request is received:
178
+ """
179
+ GET /identity/ HTTP/1.1
180
+ host: nex.toa.io
181
+ authorization: Bearer ${{ root.id_token }}
182
+ accept: application/yaml
183
+ content-type: application/yaml
184
+ """
185
+ Then the following reply is sent:
186
+ """
187
+ 200 OK
188
+ authorization: Token ${{ root.token }}
189
+
190
+ id: ${{ root.id }}
191
+ """
192
+
193
+ # check the role
194
+ When the following request is received:
195
+ """
196
+ GET /identity/ HTTP/1.1
197
+ host: nex.toa.io
198
+ accept: application/yaml
199
+ authorization: Token ${{ root.token }}
200
+ """
201
+ Then the following reply is sent:
202
+ """
203
+ 200 OK
204
+
205
+ id: ${{ root.id }}
206
+ roles:
207
+ - system
153
208
  """
@@ -1,10 +1,13 @@
1
+ @security
1
2
  Feature: Roles management
2
3
 
3
- Scenario: Adding a role to an Identity
4
+ Scenario: Granting a role to an Identity
5
+ # root:secret
6
+ # user:pass
4
7
  Given the `identity.basic` database contains:
5
- | _id | username | password |
6
- | 72cf9b0ab0ac4ab2b8036e4e940ddcae | root | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
7
- | 4344518184ad44228baffce7a44fd0b1 | user | $2b$10$JoiAQUS7tzobDAFIDBWhWeEIJv933dQetyjRzSmfQGaJE5ZlJbmYy |
8
+ | _id | authority | username | password |
9
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | root | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
10
+ | 4344518184ad44228baffce7a44fd0b1 | nex | user | $2b$10$JoiAQUS7tzobDAFIDBWhWeEIJv933dQetyjRzSmfQGaJE5ZlJbmYy |
8
11
  And the `identity.roles` database contains:
9
12
  | _id | identity | role |
10
13
  | 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | system:identity:roles |
@@ -12,7 +15,7 @@ Feature: Roles management
12
15
  """yaml
13
16
  /:
14
17
  io:output: true
15
- auth:role: test
18
+ auth:role: foo:bar
16
19
  GET:
17
20
  dev:stub:
18
21
  access: granted!
@@ -21,6 +24,7 @@ Feature: Roles management
21
24
  # user doesn't have the required role
22
25
  """
23
26
  GET / HTTP/1.1
27
+ host: nex.toa.io
24
28
  authorization: Basic dXNlcjpwYXNz
25
29
  """
26
30
  Then the following reply is sent:
@@ -31,22 +35,261 @@ Feature: Roles management
31
35
  # root adds a role to a user
32
36
  """
33
37
  POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
38
+ host: nex.toa.io
34
39
  authorization: Basic cm9vdDpzZWNyZXQ=
40
+ accept: application/yaml
35
41
  content-type: application/yaml
36
42
 
37
- role: test
43
+ role: foo:bar
38
44
  """
39
45
  Then the following reply is sent:
40
46
  """
41
47
  201 Created
48
+
49
+ grantor: 72cf9b0ab0ac4ab2b8036e4e940ddcae
50
+ """
51
+ When the following request is received:
52
+ # root adds a role to a user
53
+ """
54
+ POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
55
+ host: nex.toa.io
56
+ authorization: Basic cm9vdDpzZWNyZXQ=
57
+ accept: application/yaml
58
+ content-type: application/yaml
59
+
60
+ role: foo:baz
42
61
  """
62
+ Then the following reply is sent:
63
+ """
64
+ 201 Created
65
+ """
66
+
67
+ # user now have the role
43
68
  When the following request is received:
44
- # user now have the role
45
69
  """
46
70
  GET / HTTP/1.1
71
+ host: nex.toa.io
47
72
  authorization: Basic dXNlcjpwYXNz
48
73
  """
49
74
  Then the following reply is sent:
50
75
  """
51
76
  200 OK
77
+ authorization: Token ${{ token }}
78
+ """
79
+ # repeat with token
80
+ When the following request is received:
81
+ """
82
+ GET / HTTP/1.1
83
+ host: nex.toa.io
84
+ authorization: Token ${{ token }}
85
+ """
86
+ Then the following reply is sent:
87
+ """
88
+ 200 OK
89
+ """
90
+
91
+ Scenario Outline: Delegating roles
92
+ # moderator:secret
93
+ # assistant:pass
94
+ Given the `identity.basic` database contains:
95
+ | _id | authority | username | password |
96
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | moderator | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
97
+ | 4344518184ad44228baffce7a44fd0b1 | nex | assistant | $2b$10$JoiAQUS7tzobDAFIDBWhWeEIJv933dQetyjRzSmfQGaJE5ZlJbmYy |
98
+ And the `identity.roles` database contains:
99
+ | _id | identity | role |
100
+ | 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | system:identity:roles:delegation |
101
+ | 30c969e05ff6437097ed5f07fc52358e | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:moderation |
102
+ And the annotation:
103
+ """yaml
104
+ /:
105
+ io:output: true
106
+ auth:role: app:moderation:photos
107
+ GET:
108
+ dev:stub:
109
+ access: granted!
110
+ """
111
+ When the following request is received:
112
+ # assistant doesn't have the required role
113
+ """
114
+ GET / HTTP/1.1
115
+ host: nex.toa.io
116
+ authorization: Basic YXNzaXN0YW50OnBhc3M=
117
+ """
118
+ Then the following reply is sent:
119
+ """
120
+ 403 Forbidden
121
+ """
122
+ When the following request is received:
123
+ # moderator delegates a role to an assistant
124
+ """
125
+ POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
126
+ host: nex.toa.io
127
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
128
+ content-type: application/yaml
129
+
130
+ role: <role>
131
+ """
132
+ Then the following reply is sent:
133
+ """
134
+ 201 Created
135
+ """
136
+ When the following request is received:
137
+ # assistant has access
138
+ """
139
+ GET / HTTP/1.1
140
+ host: nex.toa.io
141
+ authorization: Basic YXNzaXN0YW50OnBhc3M=
142
+ """
143
+ Then the following reply is sent:
144
+ """
145
+ 200 OK
146
+ """
147
+ Examples:
148
+ | role |
149
+ | app:moderation |
150
+ | app:moderation:photos |
151
+
152
+ Scenario: Delegating role out of own scope
153
+ Given the `identity.basic` database contains:
154
+ | _id | authority | username | password |
155
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | moderator | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
156
+ | 4344518184ad44228baffce7a44fd0b1 | nex | assistant | $2b$10$JoiAQUS7tzobDAFIDBWhWeEIJv933dQetyjRzSmfQGaJE5ZlJbmYy |
157
+ And the `identity.roles` database contains:
158
+ | _id | identity | role |
159
+ | 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | system:identity:roles:delegation |
160
+ | 30c969e05ff6437097ed5f07fc52358e | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:moderation |
161
+ And the annotation:
162
+ """yaml
163
+ /:
164
+ io:output: true
165
+ auth:role: app:moderation:photos
166
+ GET:
167
+ dev:stub:
168
+ access: granted!
169
+ """
170
+ When the following request is received:
171
+ """
172
+ POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
173
+ host: nex.toa.io
174
+ accept: application/yaml
175
+ content-type: application/yaml
176
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
177
+
178
+ role: app:finance
179
+ """
180
+ Then the following reply is sent:
181
+ """
182
+ 422 Unprocessable Entity
183
+
184
+ code: OUT_OF_SCOPE
185
+ """
186
+
187
+ Scenario: Delegating role without `system:identity:roles:delegation` role
188
+ Given the `identity.basic` database contains:
189
+ | _id | authority | username | password |
190
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | moderator | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
191
+ | 4344518184ad44228baffce7a44fd0b1 | nex | assistant | $2b$10$JoiAQUS7tzobDAFIDBWhWeEIJv933dQetyjRzSmfQGaJE5ZlJbmYy |
192
+ And the `identity.roles` database contains:
193
+ | _id | identity | role |
194
+ | 30c969e05ff6437097ed5f07fc52358e | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:moderation |
195
+ And the annotation:
196
+ """yaml
197
+ /:
198
+ io:output: true
199
+ auth:role: app:moderation:photos
200
+ GET:
201
+ dev:stub:
202
+ access: granted!
203
+ """
204
+ When the following request is received:
205
+ """
206
+ POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
207
+ host: nex.toa.io
208
+ content-type: application/yaml
209
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
210
+
211
+ role: app:moderation
212
+ """
213
+ Then the following reply is sent:
214
+ """
215
+ 403 Forbidden
216
+ """
217
+
218
+ Scenario Outline: Invalid role name
219
+ Given the `identity.basic` database contains:
220
+ | _id | authority | username | password |
221
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | root | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
222
+ And the `identity.roles` database contains:
223
+ | _id | identity | role |
224
+ | 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | system:identity:roles |
225
+ When the following request is received:
226
+ # root adds a role to a user
227
+ """
228
+ POST /identity/roles/4344518184ad44228baffce7a44fd0b1/ HTTP/1.1
229
+ host: nex.toa.io
230
+ authorization: Basic cm9vdDpzZWNyZXQ=
231
+ content-type: application/yaml
232
+
233
+ role: <role>
234
+ """
235
+ Then the following reply is sent:
236
+ """
237
+ 400 Bad Request
238
+ """
239
+ Examples:
240
+ | role |
241
+ | app! |
242
+ | app: |
243
+ | app:no spaces |
244
+
245
+ Scenario: Dynamic roles
246
+ Given the `identity.basic` database contains:
247
+ | _id | authority | username | password |
248
+ | 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | moderator | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
249
+ And the `identity.roles` database contains:
250
+ | _id | identity | role |
251
+ | 30c969e05ff6437097ed5f07fc52358e | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:29e54ae1:moderation |
252
+ And the annotation:
253
+ """yaml
254
+ /:
255
+ /broken:
256
+ auth:role: app:{org}:moderation
257
+ GET:
258
+ dev:stub: never
259
+ /:org:
260
+ io:output: true
261
+ auth:role: app:{org}:moderation
262
+ GET:
263
+ dev:stub:
264
+ access: granted!
265
+ """
266
+ When the following request is received:
267
+ """
268
+ GET /29e54ae1/ HTTP/1.1
269
+ host: nex.toa.io
270
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
271
+ """
272
+ Then the following reply is sent:
273
+ """
274
+ 200 OK
275
+ """
276
+ When the following request is received:
277
+ """
278
+ GET /88584c9b/ HTTP/1.1
279
+ host: nex.toa.io
280
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
281
+ """
282
+ Then the following reply is sent:
283
+ """
284
+ 403 Forbidden
285
+ """
286
+ When the following request is received:
287
+ """
288
+ GET /broken/ HTTP/1.1
289
+ host: nex.toa.io
290
+ authorization: Basic bW9kZXJhdG9yOnNlY3JldA==
291
+ """
292
+ Then the following reply is sent:
293
+ """
294
+ 500 Internal Server Error
52
295
  """
@@ -1,9 +1,10 @@
1
+ @security
1
2
  Feature: Tokens lifecycle
2
3
 
3
4
  Scenario: Switching to Token authentication scheme
4
5
  Given the `identity.basic` database contains:
5
- | _id | username | password |
6
- | efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
6
+ | _id | authority | username | password |
7
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
7
8
  Given the annotation:
8
9
  """yaml
9
10
  /:
@@ -16,6 +17,7 @@ Feature: Tokens lifecycle
16
17
  When the following request is received:
17
18
  """
18
19
  GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
20
+ host: nex.toa.io
19
21
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
20
22
  accept: text/plain
21
23
  """
@@ -45,6 +47,7 @@ Feature: Tokens lifecycle
45
47
  When the following request is received:
46
48
  """
47
49
  GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
50
+ host: nex.toa.io
48
51
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
49
52
  accept: text/plain
50
53
  """
@@ -59,6 +62,7 @@ Feature: Tokens lifecycle
59
62
  When the following request is received:
60
63
  """
61
64
  GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
65
+ host: nex.toa.io
62
66
  authorization: Token ${{ token }}
63
67
  accept: text/plain
64
68
  """
@@ -86,11 +90,12 @@ Feature: Tokens lifecycle
86
90
  refresh: 0.1
87
91
  """
88
92
  And the `identity.basic` database contains:
89
- | _id | _version | username | password |
90
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
93
+ | _id | _version | authority | username | password |
94
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
91
95
  When the following request is received:
92
96
  """
93
97
  GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
98
+ host: nex.toa.io
94
99
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
95
100
  """
96
101
  Then the following reply is sent:
@@ -101,6 +106,7 @@ Feature: Tokens lifecycle
101
106
  When the following request is received:
102
107
  """
103
108
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
109
+ host: nex.toa.io
104
110
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
105
111
  content-type: application/yaml
106
112
 
@@ -114,9 +120,53 @@ Feature: Tokens lifecycle
114
120
  When the following request is received:
115
121
  """
116
122
  GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
123
+ host: nex.toa.io
117
124
  authorization: Token ${{ token }}
118
125
  """
119
126
  Then the following reply is sent:
120
127
  """
121
128
  401 Unauthorized
122
129
  """
130
+
131
+ Scenario: Issuing own token
132
+ Given the `identity.basic` database contains:
133
+ | _id | authority | username | password |
134
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
135
+ When the following request is received:
136
+ """
137
+ GET /identity/ HTTP/1.1
138
+ host: nex.toa.io
139
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
140
+ """
141
+ Then the following reply is sent:
142
+ """
143
+ 200 OK
144
+ authorization: Token ${{ token }}
145
+ """
146
+ When the following request is received:
147
+ """
148
+ POST /identity/tokens/ HTTP/1.1
149
+ host: nex.toa.io
150
+ authorization: Token ${{ token }}
151
+ content-type: application/yaml
152
+
153
+ lifetime: 0
154
+ """
155
+ Then the following reply is sent:
156
+ """
157
+ 201 Created
158
+ """
159
+ # Token scheme must be used
160
+ When the following request is received:
161
+ """
162
+ POST /identity/tokens/ HTTP/1.1
163
+ host: nex.toa.io
164
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
165
+ content-type: application/yaml
166
+
167
+ lifetime: 60
168
+ """
169
+ Then the following reply is sent:
170
+ """
171
+ 403 Forbidden
172
+ """