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

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