@toa.io/extensions.exposition 1.0.0-alpha.9 → 1.0.0-alpha.90

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 (481) 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 +20 -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 +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 +16 -5
  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 +32 -15
  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/assertions-as-values.js +4 -2
  33. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
  34. package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
  35. package/components/identity.federation/operations/lib/jwt.js +25 -12
  36. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  37. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  38. package/components/identity.federation/operations/types/configuration.d.ts +14 -0
  39. package/components/identity.federation/operations/types/configuration.js +3 -0
  40. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  41. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
  42. package/components/identity.federation/operations/types/context.js +3 -0
  43. package/components/identity.federation/operations/types/context.js.map +1 -0
  44. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  45. package/components/identity.federation/operations/types/entity.js +3 -0
  46. package/components/identity.federation/operations/types/entity.js.map +1 -0
  47. package/components/identity.federation/operations/types/index.d.ts +3 -0
  48. package/components/identity.federation/operations/types/index.js +20 -0
  49. package/components/identity.federation/operations/types/index.js.map +1 -0
  50. package/components/identity.federation/source/authenticate.ts +6 -19
  51. package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
  52. package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
  53. package/components/identity.federation/source/lib/jwt.test.ts +123 -4
  54. package/components/identity.federation/source/lib/jwt.ts +36 -16
  55. package/components/identity.federation/source/types/configuration.ts +15 -0
  56. package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
  57. package/components/identity.federation/source/types/entity.ts +6 -0
  58. package/components/identity.federation/source/types/index.ts +3 -0
  59. package/components/identity.federation/tsconfig.json +5 -4
  60. package/components/identity.roles/manifest.toa.yaml +16 -6
  61. package/components/identity.roles/operations/grant.d.ts +10 -0
  62. package/components/identity.roles/operations/grant.js +21 -0
  63. package/components/identity.roles/operations/grant.js.map +1 -0
  64. package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
  65. package/components/identity.roles/operations/lib/Entity.js +3 -0
  66. package/components/identity.roles/operations/lib/Entity.js.map +1 -0
  67. package/components/identity.roles/operations/list.d.ts +1 -4
  68. package/components/identity.roles/operations/list.js.map +1 -1
  69. package/components/identity.roles/operations/principal.d.ts +4 -6
  70. package/components/identity.roles/operations/principal.js +6 -1
  71. package/components/identity.roles/operations/principal.js.map +1 -1
  72. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  73. package/components/identity.roles/source/grant.ts +32 -0
  74. package/components/identity.roles/source/lib/Entity.ts +5 -0
  75. package/components/identity.roles/source/list.ts +2 -4
  76. package/components/identity.roles/source/principal.ts +10 -8
  77. package/components/identity.tokens/manifest.toa.yaml +19 -4
  78. package/components/identity.tokens/operations/authenticate.d.ts +2 -2
  79. package/components/identity.tokens/operations/authenticate.js +12 -5
  80. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  81. package/components/identity.tokens/operations/decrypt.js +1 -0
  82. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  83. package/components/identity.tokens/operations/encrypt.js +5 -1
  84. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  85. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  86. package/components/identity.tokens/operations/types.d.ts +8 -2
  87. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  88. package/components/identity.tokens/source/authenticate.test.ts +11 -4
  89. package/components/identity.tokens/source/authenticate.ts +14 -6
  90. package/components/identity.tokens/source/decrypt.test.ts +5 -3
  91. package/components/identity.tokens/source/decrypt.ts +9 -8
  92. package/components/identity.tokens/source/encrypt.test.ts +26 -2
  93. package/components/identity.tokens/source/encrypt.ts +5 -1
  94. package/components/identity.tokens/source/types.ts +9 -2
  95. package/components/octets.storage/manifest.toa.yaml +9 -11
  96. package/components/octets.storage/operations/get.js +3 -3
  97. package/components/octets.storage/operations/head.js +7 -0
  98. package/components/octets.storage/operations/put.js +121 -0
  99. package/documentation/access.md +75 -38
  100. package/documentation/authorities.md +49 -0
  101. package/documentation/cache.md +8 -1
  102. package/documentation/components.md +61 -22
  103. package/documentation/flow.md +31 -0
  104. package/documentation/identity.md +17 -22
  105. package/documentation/introspection.md +82 -0
  106. package/documentation/octets.md +95 -67
  107. package/documentation/protocol.md +13 -3
  108. package/documentation/query.md +29 -4
  109. package/documentation/require.md +15 -0
  110. package/documentation/tree.md +13 -0
  111. package/documentation/vary.md +14 -14
  112. package/features/access.feature +77 -46
  113. package/features/annotation.feature +1 -0
  114. package/features/auth.claim.feature +170 -0
  115. package/features/authorities.basic.feature +141 -0
  116. package/features/authorities.feature +32 -0
  117. package/features/authorities.federation.feature +100 -0
  118. package/features/authorities.tokens.feature +117 -0
  119. package/features/body.feature +2 -0
  120. package/features/cache.feature +109 -5
  121. package/features/cors.feature +6 -1
  122. package/features/debug.feature +34 -0
  123. package/features/directives.feature +3 -0
  124. package/features/dynamic.feature +48 -0
  125. package/features/errors.feature +32 -7
  126. package/features/etag.feature +108 -0
  127. package/features/flow.feature +45 -0
  128. package/features/identity.bans.feature +137 -0
  129. package/features/identity.basic.feature +97 -26
  130. package/features/identity.feature +18 -6
  131. package/features/identity.federation.feature +66 -11
  132. package/features/identity.roles.feature +250 -7
  133. package/features/identity.tokens.feature +54 -4
  134. package/features/introspection.feature +153 -0
  135. package/features/io.feature +38 -1
  136. package/features/methods.feature +47 -0
  137. package/features/{octets.meta.feature → octets.attributes.feature} +16 -12
  138. package/features/octets.cloudinary.feature +68 -0
  139. package/features/octets.download.feature +189 -0
  140. package/features/octets.entries.feature +13 -55
  141. package/features/octets.feature +83 -107
  142. package/features/octets.workflows.feature +242 -58
  143. package/features/probes.feature +14 -0
  144. package/features/{queries.feature → query.feature} +77 -2
  145. package/features/realtime.feature +34 -0
  146. package/features/require.feature +67 -0
  147. package/features/response.feature +38 -3
  148. package/features/routes.feature +93 -2
  149. package/features/server.feature +21 -0
  150. package/features/steps/.env.example +3 -0
  151. package/features/steps/Database.ts +16 -9
  152. package/features/steps/Gateway.ts +23 -6
  153. package/features/steps/IdP.ts +30 -25
  154. package/features/steps/Parameters.ts +45 -3
  155. package/features/steps/Realtime.ts +151 -0
  156. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  157. package/features/steps/components/echo/operations/identity.js +7 -0
  158. package/features/steps/components/echo/operations/parameters.js +7 -0
  159. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  160. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  161. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -2
  162. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  163. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  164. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  165. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  166. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  167. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  168. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  169. package/features/steps/components/pots/manifest.toa.yaml +14 -3
  170. package/features/steps/components/users/manifest.toa.yaml +0 -1
  171. package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
  172. package/features/streams.feature +5 -0
  173. package/features/timing.feature +4 -1
  174. package/features/vary.feature +71 -0
  175. package/package.json +23 -14
  176. package/readme.md +19 -14
  177. package/schemas/annotation.cos.yaml +1 -1
  178. package/schemas/method.cos.yaml +1 -1
  179. package/schemas/node.cos.yaml +2 -0
  180. package/schemas/octets/put.cos.yaml +25 -0
  181. package/schemas/query.cos.yaml +4 -10
  182. package/source/Annotation.ts +3 -3
  183. package/source/Branch.ts +1 -0
  184. package/source/Composition.ts +0 -6
  185. package/source/Context.ts +1 -0
  186. package/source/Directive.ts +4 -5
  187. package/source/Endpoint.ts +59 -17
  188. package/source/Factory.ts +22 -13
  189. package/source/Gateway.ts +64 -17
  190. package/source/HTTP/Context.ts +25 -2
  191. package/source/HTTP/Server.ts +57 -43
  192. package/source/HTTP/exceptions.ts +13 -1
  193. package/source/HTTP/formats/index.ts +3 -3
  194. package/source/HTTP/messages.test.ts +45 -2
  195. package/source/HTTP/messages.ts +29 -5
  196. package/source/Introspection.ts +11 -0
  197. package/source/Mapping.ts +68 -21
  198. package/source/Query.test.ts +3 -3
  199. package/source/Query.ts +123 -33
  200. package/source/RTD/Context.ts +1 -1
  201. package/source/RTD/Endpoint.ts +3 -0
  202. package/source/RTD/Method.ts +16 -0
  203. package/source/RTD/Node.ts +29 -13
  204. package/source/RTD/Route.ts +5 -4
  205. package/source/RTD/Tree.ts +2 -2
  206. package/source/RTD/factory.ts +5 -2
  207. package/source/RTD/syntax/parse.test.ts +1 -1
  208. package/source/RTD/syntax/parse.ts +37 -24
  209. package/source/RTD/syntax/types.ts +6 -4
  210. package/source/Remotes.ts +7 -6
  211. package/source/Tenant.ts +6 -20
  212. package/source/deployment.ts +33 -23
  213. package/source/directives/auth/Authorization.ts +44 -21
  214. package/source/directives/auth/Delegate.ts +42 -0
  215. package/source/directives/auth/Echo.ts +19 -5
  216. package/source/directives/auth/Federation.ts +84 -0
  217. package/source/directives/auth/Incept.ts +4 -3
  218. package/source/directives/auth/Role.test.ts +53 -6
  219. package/source/directives/auth/Role.ts +22 -14
  220. package/source/directives/auth/Scheme.ts +1 -1
  221. package/source/directives/auth/split.ts +1 -1
  222. package/source/directives/auth/types.ts +2 -2
  223. package/source/directives/cache/Cache.ts +13 -6
  224. package/source/directives/cache/Control.ts +42 -16
  225. package/source/directives/cors/CORS.ts +1 -1
  226. package/source/directives/dev/Development.ts +1 -1
  227. package/source/directives/flow/Fetch.ts +88 -0
  228. package/source/directives/flow/Flow.ts +34 -0
  229. package/source/directives/flow/index.ts +3 -0
  230. package/source/directives/flow/types.ts +6 -0
  231. package/source/directives/index.ts +3 -1
  232. package/source/directives/io/Input.ts +4 -4
  233. package/source/directives/io/Output.ts +5 -4
  234. package/source/directives/octets/Context.ts +3 -2
  235. package/source/directives/octets/Delete.ts +11 -11
  236. package/source/directives/octets/Get.ts +84 -0
  237. package/source/directives/octets/Octets.ts +7 -11
  238. package/source/directives/octets/{Store.ts → Put.ts} +36 -21
  239. package/source/directives/octets/Workflow.ts +1 -1
  240. package/source/directives/octets/bytes.test.ts +30 -0
  241. package/source/directives/octets/bytes.ts +18 -0
  242. package/source/directives/octets/schemas.ts +4 -8
  243. package/source/directives/octets/workflows/Execution.ts +60 -8
  244. package/source/directives/octets/workflows/Workflow.ts +4 -4
  245. package/source/directives/require/Directive.ts +5 -0
  246. package/source/directives/require/Headers.ts +20 -0
  247. package/source/directives/require/Require.ts +28 -0
  248. package/source/directives/require/index.ts +3 -0
  249. package/source/directives/vary/Directive.ts +2 -1
  250. package/source/directives/vary/Embed.ts +14 -8
  251. package/source/directives/vary/Vary.ts +6 -4
  252. package/source/directives/vary/embeddings/Authority.ts +8 -0
  253. package/source/directives/vary/embeddings/Embedding.ts +2 -1
  254. package/source/directives/vary/embeddings/Language.ts +2 -2
  255. package/source/directives/vary/embeddings/Parameter.ts +14 -0
  256. package/source/directives/vary/embeddings/index.ts +6 -4
  257. package/source/exceptions.ts +17 -11
  258. package/source/manifest.ts +10 -11
  259. package/source/root.ts +5 -5
  260. package/source/schemas.ts +1 -1
  261. package/transpiled/Annotation.d.ts +3 -3
  262. package/transpiled/Branch.d.ts +1 -0
  263. package/transpiled/Composition.d.ts +0 -1
  264. package/transpiled/Composition.js +0 -4
  265. package/transpiled/Composition.js.map +1 -1
  266. package/transpiled/Context.d.ts +1 -0
  267. package/transpiled/Directive.js +4 -4
  268. package/transpiled/Directive.js.map +1 -1
  269. package/transpiled/Endpoint.d.ts +6 -4
  270. package/transpiled/Endpoint.js +39 -9
  271. package/transpiled/Endpoint.js.map +1 -1
  272. package/transpiled/Factory.d.ts +3 -2
  273. package/transpiled/Factory.js +18 -10
  274. package/transpiled/Factory.js.map +1 -1
  275. package/transpiled/Gateway.d.ts +3 -0
  276. package/transpiled/Gateway.js +49 -10
  277. package/transpiled/Gateway.js.map +1 -1
  278. package/transpiled/HTTP/Context.d.ts +8 -1
  279. package/transpiled/HTTP/Context.js +16 -2
  280. package/transpiled/HTTP/Context.js.map +1 -1
  281. package/transpiled/HTTP/Server.d.ts +13 -2
  282. package/transpiled/HTTP/Server.js +43 -36
  283. package/transpiled/HTTP/Server.js.map +1 -1
  284. package/transpiled/HTTP/exceptions.d.ts +7 -1
  285. package/transpiled/HTTP/exceptions.js +13 -1
  286. package/transpiled/HTTP/exceptions.js.map +1 -1
  287. package/transpiled/HTTP/formats/index.js +3 -3
  288. package/transpiled/HTTP/formats/index.js.map +1 -1
  289. package/transpiled/HTTP/messages.d.ts +1 -0
  290. package/transpiled/HTTP/messages.js +28 -5
  291. package/transpiled/HTTP/messages.js.map +1 -1
  292. package/transpiled/Introspection.d.ts +9 -0
  293. package/transpiled/Introspection.js +3 -0
  294. package/transpiled/Introspection.js.map +1 -0
  295. package/transpiled/Mapping.d.ts +11 -2
  296. package/transpiled/Mapping.js +50 -19
  297. package/transpiled/Mapping.js.map +1 -1
  298. package/transpiled/Query.d.ts +10 -1
  299. package/transpiled/Query.js +87 -30
  300. package/transpiled/Query.js.map +1 -1
  301. package/transpiled/RTD/Context.d.ts +1 -1
  302. package/transpiled/RTD/Endpoint.d.ts +1 -0
  303. package/transpiled/RTD/Method.d.ts +4 -0
  304. package/transpiled/RTD/Method.js +11 -0
  305. package/transpiled/RTD/Method.js.map +1 -1
  306. package/transpiled/RTD/Node.d.ts +4 -1
  307. package/transpiled/RTD/Node.js +23 -12
  308. package/transpiled/RTD/Node.js.map +1 -1
  309. package/transpiled/RTD/Route.d.ts +1 -1
  310. package/transpiled/RTD/Route.js +0 -1
  311. package/transpiled/RTD/Route.js.map +1 -1
  312. package/transpiled/RTD/Tree.d.ts +1 -1
  313. package/transpiled/RTD/Tree.js.map +1 -1
  314. package/transpiled/RTD/factory.js +5 -2
  315. package/transpiled/RTD/factory.js.map +1 -1
  316. package/transpiled/RTD/syntax/parse.js +34 -22
  317. package/transpiled/RTD/syntax/parse.js.map +1 -1
  318. package/transpiled/RTD/syntax/types.d.ts +5 -3
  319. package/transpiled/RTD/syntax/types.js +1 -1
  320. package/transpiled/RTD/syntax/types.js.map +1 -1
  321. package/transpiled/Remotes.d.ts +4 -4
  322. package/transpiled/Remotes.js +6 -5
  323. package/transpiled/Remotes.js.map +1 -1
  324. package/transpiled/Tenant.d.ts +5 -5
  325. package/transpiled/Tenant.js +2 -13
  326. package/transpiled/Tenant.js.map +1 -1
  327. package/transpiled/deployment.d.ts +1 -1
  328. package/transpiled/deployment.js +28 -20
  329. package/transpiled/deployment.js.map +1 -1
  330. package/transpiled/directives/auth/Authorization.d.ts +1 -1
  331. package/transpiled/directives/auth/Authorization.js +32 -18
  332. package/transpiled/directives/auth/Authorization.js.map +1 -1
  333. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  334. package/transpiled/directives/auth/Delegate.js +34 -0
  335. package/transpiled/directives/auth/Delegate.js.map +1 -0
  336. package/transpiled/directives/auth/Echo.d.ts +4 -3
  337. package/transpiled/directives/auth/Echo.js +13 -3
  338. package/transpiled/directives/auth/Echo.js.map +1 -1
  339. package/transpiled/directives/auth/Federation.d.ts +16 -0
  340. package/transpiled/directives/auth/Federation.js +57 -0
  341. package/transpiled/directives/auth/Federation.js.map +1 -0
  342. package/transpiled/directives/auth/Incept.js +4 -3
  343. package/transpiled/directives/auth/Incept.js.map +1 -1
  344. package/transpiled/directives/auth/Role.d.ts +4 -1
  345. package/transpiled/directives/auth/Role.js +20 -14
  346. package/transpiled/directives/auth/Role.js.map +1 -1
  347. package/transpiled/directives/auth/Scheme.js +1 -1
  348. package/transpiled/directives/auth/Scheme.js.map +1 -1
  349. package/transpiled/directives/auth/split.js +1 -1
  350. package/transpiled/directives/auth/split.js.map +1 -1
  351. package/transpiled/directives/auth/types.d.ts +1 -1
  352. package/transpiled/directives/cache/Cache.d.ts +3 -3
  353. package/transpiled/directives/cache/Cache.js +10 -4
  354. package/transpiled/directives/cache/Cache.js.map +1 -1
  355. package/transpiled/directives/cache/Control.d.ts +2 -1
  356. package/transpiled/directives/cache/Control.js +29 -12
  357. package/transpiled/directives/cache/Control.js.map +1 -1
  358. package/transpiled/directives/cors/CORS.js +1 -1
  359. package/transpiled/directives/cors/CORS.js.map +1 -1
  360. package/transpiled/directives/dev/Development.js +1 -1
  361. package/transpiled/directives/dev/Development.js.map +1 -1
  362. package/transpiled/directives/flow/Fetch.d.ts +13 -0
  363. package/transpiled/directives/flow/Fetch.js +59 -0
  364. package/transpiled/directives/flow/Fetch.js.map +1 -0
  365. package/transpiled/directives/flow/Flow.d.ts +10 -0
  366. package/transpiled/directives/flow/Flow.js +27 -0
  367. package/transpiled/directives/flow/Flow.js.map +1 -0
  368. package/transpiled/directives/flow/index.d.ts +2 -0
  369. package/transpiled/directives/flow/index.js +6 -0
  370. package/transpiled/directives/flow/index.js.map +1 -0
  371. package/transpiled/directives/flow/types.d.ts +5 -0
  372. package/transpiled/directives/flow/types.js.map +1 -0
  373. package/transpiled/directives/index.js +3 -1
  374. package/transpiled/directives/index.js.map +1 -1
  375. package/transpiled/directives/io/Input.js +2 -2
  376. package/transpiled/directives/io/Input.js.map +1 -1
  377. package/transpiled/directives/io/Output.js +2 -2
  378. package/transpiled/directives/io/Output.js.map +1 -1
  379. package/transpiled/directives/octets/Context.js +4 -24
  380. package/transpiled/directives/octets/Context.js.map +1 -1
  381. package/transpiled/directives/octets/Delete.js +8 -8
  382. package/transpiled/directives/octets/Delete.js.map +1 -1
  383. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  384. package/transpiled/directives/octets/{Fetch.js → Get.js} +24 -29
  385. package/transpiled/directives/octets/Get.js.map +1 -0
  386. package/transpiled/directives/octets/Octets.js +7 -11
  387. package/transpiled/directives/octets/Octets.js.map +1 -1
  388. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +7 -2
  389. package/transpiled/directives/octets/{Store.js → Put.js} +26 -19
  390. package/transpiled/directives/octets/Put.js.map +1 -0
  391. package/transpiled/directives/octets/Workflow.js +1 -1
  392. package/transpiled/directives/octets/Workflow.js.map +1 -1
  393. package/transpiled/directives/octets/bytes.d.ts +1 -0
  394. package/transpiled/directives/octets/bytes.js +21 -0
  395. package/transpiled/directives/octets/bytes.js.map +1 -0
  396. package/transpiled/directives/octets/schemas.d.ts +4 -8
  397. package/transpiled/directives/octets/schemas.js +3 -6
  398. package/transpiled/directives/octets/schemas.js.map +1 -1
  399. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  400. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  401. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  402. package/transpiled/directives/octets/workflows/Workflow.d.ts +1 -1
  403. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  404. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  405. package/transpiled/directives/require/Directive.d.ts +4 -0
  406. package/transpiled/directives/require/Directive.js +3 -0
  407. package/transpiled/directives/require/Directive.js.map +1 -0
  408. package/transpiled/directives/require/Headers.d.ts +7 -0
  409. package/transpiled/directives/require/Headers.js +19 -0
  410. package/transpiled/directives/require/Headers.js.map +1 -0
  411. package/transpiled/directives/require/Require.d.ts +9 -0
  412. package/transpiled/directives/require/Require.js +27 -0
  413. package/transpiled/directives/require/Require.js.map +1 -0
  414. package/transpiled/directives/require/index.d.ts +2 -0
  415. package/transpiled/directives/require/index.js +6 -0
  416. package/transpiled/directives/require/index.js.map +1 -0
  417. package/transpiled/directives/vary/Directive.d.ts +2 -1
  418. package/transpiled/directives/vary/Embed.d.ts +2 -1
  419. package/transpiled/directives/vary/Embed.js +8 -6
  420. package/transpiled/directives/vary/Embed.js.map +1 -1
  421. package/transpiled/directives/vary/Vary.d.ts +2 -2
  422. package/transpiled/directives/vary/Vary.js +3 -3
  423. package/transpiled/directives/vary/Vary.js.map +1 -1
  424. package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
  425. package/transpiled/directives/vary/embeddings/Authority.js +10 -0
  426. package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
  427. package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
  428. package/transpiled/directives/vary/embeddings/Language.js +2 -2
  429. package/transpiled/directives/vary/embeddings/Language.js.map +1 -1
  430. package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
  431. package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
  432. package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
  433. package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
  434. package/transpiled/directives/vary/embeddings/index.js +8 -4
  435. package/transpiled/directives/vary/embeddings/index.js.map +1 -1
  436. package/transpiled/exceptions.d.ts +3 -2
  437. package/transpiled/exceptions.js +10 -5
  438. package/transpiled/exceptions.js.map +1 -1
  439. package/transpiled/manifest.js +10 -11
  440. package/transpiled/manifest.js.map +1 -1
  441. package/transpiled/root.js +5 -5
  442. package/transpiled/root.js.map +1 -1
  443. package/transpiled/schemas.d.ts +1 -1
  444. package/transpiled/schemas.js +2 -2
  445. package/transpiled/schemas.js.map +1 -1
  446. package/transpiled/tsconfig.tsbuildinfo +1 -1
  447. package/tsconfig.json +8 -2
  448. package/components/identity.basic/operations/create.d.ts +0 -10
  449. package/components/identity.basic/operations/create.js +0 -10
  450. package/components/identity.basic/operations/create.js.map +0 -1
  451. package/components/identity.basic/source/create.ts +0 -18
  452. package/components/identity.federation/operations/create.d.ts +0 -10
  453. package/components/identity.federation/operations/create.js.map +0 -1
  454. package/components/identity.federation/operations/schemas.d.ts +0 -59
  455. package/components/identity.federation/operations/schemas.js +0 -9
  456. package/components/identity.federation/operations/schemas.js.map +0 -1
  457. package/components/identity.federation/operations/types.js.map +0 -1
  458. package/components/identity.federation/source/schemas.ts +0 -61
  459. package/components/octets.storage/operations/fetch.js +0 -46
  460. package/components/octets.storage/operations/list.js +0 -7
  461. package/components/octets.storage/operations/permute.js +0 -7
  462. package/components/octets.storage/operations/store.js +0 -11
  463. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  464. package/schemas/octets/context.cos.yaml +0 -1
  465. package/schemas/octets/fetch.cos.yaml +0 -3
  466. package/schemas/octets/permute.cos.yaml +0 -1
  467. package/schemas/octets/store.cos.yaml +0 -3
  468. package/source/HTTP/Server.test.ts +0 -126
  469. package/source/directives/octets/Fetch.ts +0 -100
  470. package/source/directives/octets/List.ts +0 -72
  471. package/source/directives/octets/Permute.ts +0 -44
  472. package/transpiled/directives/octets/Fetch.js.map +0 -1
  473. package/transpiled/directives/octets/List.d.ts +0 -16
  474. package/transpiled/directives/octets/List.js +0 -74
  475. package/transpiled/directives/octets/List.js.map +0 -1
  476. package/transpiled/directives/octets/Permute.d.ts +0 -11
  477. package/transpiled/directives/octets/Permute.js +0 -58
  478. package/transpiled/directives/octets/Permute.js.map +0 -1
  479. package/transpiled/directives/octets/Store.js.map +0 -1
  480. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  481. /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
@@ -1,3 +1,4 @@
1
+ @security
1
2
  Feature: Basic authentication
2
3
 
3
4
  Background:
@@ -7,6 +8,7 @@ Feature: Basic authentication
7
8
  When the following request is received:
8
9
  """
9
10
  POST /identity/basic/ HTTP/1.1
11
+ host: nex.toa.io
10
12
  content-type: application/yaml
11
13
 
12
14
  username: developer
@@ -19,6 +21,7 @@ Feature: Basic authentication
19
21
  When the following request is received:
20
22
  """
21
23
  POST /identity/basic/ HTTP/1.1
24
+ host: nex.toa.io
22
25
  content-type: application/yaml
23
26
  accept: application/yaml
24
27
 
@@ -28,8 +31,6 @@ Feature: Basic authentication
28
31
  Then the following reply is sent:
29
32
  """
30
33
  409 Conflict
31
-
32
- - username
33
34
  """
34
35
 
35
36
  Scenario: Creating new Identity using inception
@@ -38,18 +39,19 @@ Feature: Basic authentication
38
39
  exposition:
39
40
  /:
40
41
  io:output: true
41
- anonymous: true # checking compatibility with anonymous access
42
+ anonymous: true # checking compatibility with anonymous access
42
43
  POST:
43
44
  incept: id
44
45
  endpoint: transit
45
46
  query: ~
46
- /:id: # credential testing route
47
- id: id
48
- GET: observe
47
+ /:id: # credential testing route
48
+ id: id
49
+ GET: observe
49
50
  """
50
51
  When the following request is received:
51
52
  """
52
53
  POST /users/ HTTP/1.1
54
+ host: nex.toa.io
53
55
  authorization: Basic dXNlcjpwYXNzMTIzNA==
54
56
  accept: application/yaml
55
57
  content-type: application/yaml
@@ -67,6 +69,7 @@ Feature: Basic authentication
67
69
  # basic credentials have been created
68
70
  """
69
71
  GET /users/${{ id }}/ HTTP/1.1
72
+ host: nex.toa.io
70
73
  authorization: Basic dXNlcjpwYXNzMTIzNA==
71
74
  """
72
75
  Then the following reply is sent:
@@ -77,16 +80,19 @@ Feature: Basic authentication
77
80
  # valid token has been issued
78
81
  """
79
82
  GET /users/${{ id }}/ HTTP/1.1
83
+ host: nex.toa.io
80
84
  authorization: Token ${{ token }}
81
85
  """
82
86
  Then the following reply is sent:
83
87
  """
84
88
  200 OK
85
89
  """
90
+
86
91
  # username is taken
87
92
  When the following request is received:
88
93
  """
89
94
  POST /users/ HTTP/1.1
95
+ host: nex.toa.io
90
96
  authorization: Basic dXNlcjphbm90aGVycGFzczEyMzQ=
91
97
  accept: application/yaml
92
98
  content-type: application/yaml
@@ -96,8 +102,22 @@ Feature: Basic authentication
96
102
  Then the following reply is sent:
97
103
  """
98
104
  409 Conflict
105
+ """
106
+
107
+ # credentials already exists
108
+ When the following request is received:
109
+ """
110
+ POST /users/ HTTP/1.1
111
+ host: nex.toa.io
112
+ authorization: Basic dXNlcjpwYXNzMTIzNA==
113
+ accept: application/yaml
114
+ content-type: application/yaml
99
115
 
100
- - username
116
+ name: Bill Smith
117
+ """
118
+ Then the following reply is sent:
119
+ """
120
+ 409 Conflict
101
121
  """
102
122
 
103
123
  Scenario: Changing the password
@@ -112,11 +132,12 @@ Feature: Basic authentication
112
132
  access: granted!
113
133
  """
114
134
  And the `identity.basic` database contains:
115
- | _id | _version | username | password |
116
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
135
+ | _id | _version | authority | username | password |
136
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
117
137
  When the following request is received:
118
138
  """
119
139
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
140
+ host: nex.toa.io
120
141
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
121
142
  accept: application/yaml
122
143
  content-type: application/yaml
@@ -131,6 +152,7 @@ Feature: Basic authentication
131
152
  # old password
132
153
  """
133
154
  GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
155
+ host: nex.toa.io
134
156
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
135
157
  """
136
158
  Then the following reply is sent:
@@ -141,6 +163,7 @@ Feature: Basic authentication
141
163
  # new password
142
164
  """
143
165
  GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
166
+ host: nex.toa.io
144
167
  authorization: Basic ZGV2ZWxvcGVyOm5ldy1zZWNyZXQ=
145
168
  """
146
169
  Then the following reply is sent:
@@ -148,14 +171,15 @@ Feature: Basic authentication
148
171
  200 OK
149
172
  """
150
173
 
151
- Scenario: Changing other identity the password
174
+ Scenario: Changing other identity's password
152
175
  Given the `identity.basic` database contains:
153
- | _id | username | password | _version |
154
- | efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
155
- | 6c0be50cbfb043acafe69cc7d3895f84 | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
176
+ | _id | authority | username | password | _version |
177
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
178
+ | 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
156
179
  When the following request is received:
157
180
  """
158
181
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
182
+ host: nex.toa.io
159
183
  authorization: Basic YXR0YWNrZXI6c2VjcmV0
160
184
  accept: application/yaml
161
185
  content-type: application/yaml
@@ -171,6 +195,7 @@ Feature: Basic authentication
171
195
  When the following request is received:
172
196
  """
173
197
  POST /identity/basic/ HTTP/1.1
198
+ host: nex.toa.io
174
199
  accept: application/yaml
175
200
  content-type: application/yaml
176
201
 
@@ -179,17 +204,17 @@ Feature: Basic authentication
179
204
  """
180
205
  Then the following reply is sent:
181
206
  """
182
- 409 Conflict
207
+ 422 Unprocessable Entity
183
208
 
184
209
  code: <code>
185
210
  message: <problem> is not meeting the requirements.
186
211
  """
187
212
  Examples:
188
- | username | password | problem | code |
189
- | with whitespace | secret#1234 | Username | INVALID_USERNAME |
190
- | root | short | Password | INVALID_PASSWORD |
213
+ | username | password | problem | code |
214
+ | zYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOrzYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOris129 | secret#1234 | Username | INVALID_USERNAME |
215
+ | root | short | Password | INVALID_PASSWORD |
191
216
 
192
- Scenario Outline: Given <property> is not meeting one of requirements
217
+ Scenario Outline: <property> is not meeting one of requirements
193
218
  Given the `identity.basic` configuration:
194
219
  """yaml
195
220
  <property>:
@@ -197,11 +222,12 @@ Feature: Basic authentication
197
222
  - ^[^A]{1,16}$ # should not contain 'A'
198
223
  """
199
224
  And the `identity.basic` database contains:
200
- | _id | _version | username | password |
201
- | efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
225
+ | _id | _version | authority | username | password |
226
+ | efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
202
227
  When the following request is received:
203
228
  """
204
229
  PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
230
+ host: nex.toa.io
205
231
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
206
232
  accept: application/yaml
207
233
  content-type: application/yaml
@@ -210,7 +236,7 @@ Feature: Basic authentication
210
236
  """
211
237
  Then the following reply is sent:
212
238
  """
213
- 409 Conflict
239
+ 422 Unprocessable Entity
214
240
  """
215
241
  Examples:
216
242
  | property |
@@ -234,6 +260,7 @@ Feature: Basic authentication
234
260
  When the following request is received:
235
261
  """
236
262
  POST /identity/basic/ HTTP/1.1
263
+ host: nex.toa.io
237
264
  accept: application/yaml
238
265
  content-type: application/yaml
239
266
 
@@ -251,6 +278,7 @@ Feature: Basic authentication
251
278
  When the following request is received:
252
279
  """
253
280
  GET /identity/roles/${{ id }}/ HTTP/1.1
281
+ host: nex.toa.io
254
282
  authorization: Basic cm9vdDpzZWNyZXQjMTIzNA==
255
283
  accept: application/yaml
256
284
  """
@@ -264,6 +292,7 @@ Feature: Basic authentication
264
292
  When the following request is received:
265
293
  """
266
294
  GET / HTTP/1.1
295
+ host: nex.toa.io
267
296
  authorization: Token ${{ token }}
268
297
  accept: application/yaml
269
298
  """
@@ -277,6 +306,7 @@ Feature: Basic authentication
277
306
  When the following request is received:
278
307
  """
279
308
  PATCH /identity/basic/${{ id }}/ HTTP/1.1
309
+ host: nex.toa.io
280
310
  authorization: Token ${{ token }}
281
311
  accept: application/yaml
282
312
  content-type: application/yaml
@@ -285,15 +315,14 @@ Feature: Basic authentication
285
315
  """
286
316
  Then the following reply is sent:
287
317
  """
288
- 409 Conflict
318
+ 422 Unprocessable Entity
289
319
 
290
320
  code: PRINCIPAL_LOCKED
291
321
  message: Principal username cannot be changed.
292
322
  """
293
323
 
294
324
  Scenario: Creating an Identity using inception with existing credentials
295
- Given the `identity.basic` database is empty
296
- And the `users` is running with the following manifest:
325
+ Given the `users` is running with the following manifest:
297
326
  """yaml
298
327
  exposition:
299
328
  /:
@@ -301,12 +330,14 @@ Feature: Basic authentication
301
330
  anonymous: true
302
331
  POST:
303
332
  incept: id
333
+ query: false
304
334
  endpoint: transit
305
335
  """
306
336
  When the following request is received:
307
337
  # identity inception
308
338
  """
309
339
  POST /users/ HTTP/1.1
340
+ host: nex.toa.io
310
341
  authorization: Basic dXNlcjpwYXNzMTIzNA==
311
342
  accept: application/yaml
312
343
  content-type: application/yaml
@@ -321,12 +352,52 @@ Feature: Basic authentication
321
352
  # same credentials
322
353
  """
323
354
  POST /users/ HTTP/1.1
355
+ host: nex.toa.io
324
356
  authorization: Basic dXNlcjpwYXNzMTIzNA==
325
- content-type: text/plain
357
+ content-type: application/yaml
326
358
 
327
359
  name: Mary Louis
328
360
  """
329
361
  Then the following reply is sent:
330
362
  """
331
- 403 Forbidden
363
+ 409 Conflict
364
+ """
365
+
366
+ Scenario: Incorrect credentials format
367
+ Given the `identity.basic` database is empty
368
+ And the `users` is running with the following manifest:
369
+ """yaml
370
+ exposition:
371
+ /:
372
+ io:output: true
373
+ anonymous: true
374
+ POST:
375
+ incept: id
376
+ endpoint: transit
377
+ """
378
+ When the following request is received:
379
+ """
380
+ GET /identity/ HTTP/1.1
381
+ host: nex.toa.io
382
+ authorization: Basic not-base64
383
+ """
384
+ Then the following reply is sent:
385
+ """
386
+ 401 Unauthorized
387
+ """
388
+ When the following request is received:
389
+ """
390
+ POST /users/ HTTP/1.1
391
+ host: nex.toa.io
392
+ authorization: Basic not-base64
393
+ accept: application/yaml
394
+ content-type: application/yaml
395
+
396
+ name: Bill Smith
397
+ """
398
+ Then the following reply is sent:
399
+ """
400
+ 422 Unprocessable Entity
401
+
402
+ code: INVALID_CREDENTIALS
332
403
  """
@@ -2,8 +2,8 @@ Feature: Identity resource
2
2
 
3
3
  Scenario: Requesting own Identity
4
4
  Given the `identity.basic` database contains:
5
- | _id | username | password |
6
- | efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
5
+ | _id | authority | username | password |
6
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
7
7
  And the `identity.roles` database contains:
8
8
  | _id | identity | role |
9
9
  | 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | developer |
@@ -11,6 +11,7 @@ Feature: Identity resource
11
11
  When the following request is received:
12
12
  """
13
13
  GET /identity/ HTTP/1.1
14
+ host: nex.toa.io
14
15
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
15
16
  accept: application/yaml
16
17
  """
@@ -27,6 +28,7 @@ Feature: Identity resource
27
28
  When the following request is received:
28
29
  """
29
30
  GET /identity/ HTTP/1.1
31
+ host: nex.toa.io
30
32
  authorization: Token ${{ User.token }}
31
33
  accept: application/yaml
32
34
  """
@@ -43,6 +45,7 @@ Feature: Identity resource
43
45
  When the following request is received:
44
46
  """
45
47
  GET /identity/ HTTP/1.1
48
+ host: nex.toa.io
46
49
  authorization: Token ${{ User.token }}
47
50
  accept: application/yaml
48
51
  """
@@ -56,20 +59,29 @@ Feature: Identity resource
56
59
  - system:identity
57
60
  """
58
61
 
59
- Scenario: Requesting Identity with non-existent credentials
60
- Given the `identity.basic` database is empty
62
+ Scenario: Getting transient Identity
61
63
  When the following request is received:
62
64
  """
63
65
  GET /identity/ HTTP/1.1
64
- authorization: Basic dXNlcjpwYXNzMTIzNA==
66
+ host: nex.toa.io
67
+ accept: application/yaml
65
68
  """
66
69
  Then the following reply is sent:
67
70
  """
68
- 401 Unauthorized
71
+ 201 Created
72
+ authorization: Token ${{ token }}
73
+
74
+ id: ${{ id }}
75
+ roles: []
69
76
  """
77
+
78
+ Scenario: Requesting Identity with non-existent credentials
79
+ Given the `identity.basic` database is empty
70
80
  When the following request is received:
71
81
  """
72
82
  GET /identity/ HTTP/1.1
83
+ host: nex.toa.io
84
+ authorization: Basic dXNlcjpwYXNzMTIzNA==
73
85
  """
74
86
  Then the following reply is sent:
75
87
  """
@@ -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
  """