@toa.io/extensions.exposition 1.0.0-alpha.3 → 1.0.0-alpha.30

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