@toa.io/extensions.exposition 1.0.0-alpha.29 → 1.0.0-alpha.291

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 (1313) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/components/exposition.octets/manifest.toa.yaml +58 -0
  3. package/components/exposition.octets/operations/delete.js +5 -0
  4. package/components/exposition.octets/operations/get.js +8 -0
  5. package/components/exposition.octets/operations/head.js +5 -0
  6. package/components/exposition.octets/operations/put.js +142 -0
  7. package/components/exposition.octets/types/index.d.ts +3 -0
  8. package/components/exposition.octets/types/toa.d.ts +41 -0
  9. package/components/identity.bans/manifest.toa.yaml +26 -8
  10. package/components/identity.bans/operations/transit.js +2 -6
  11. package/components/identity.bans/source/transit.ts +1 -1
  12. package/components/identity.bans/tsconfig.json +2 -1
  13. package/components/identity.bans/tsconfig.tsbuildinfo +1 -0
  14. package/components/identity.bans/types/index.d.ts +3 -0
  15. package/components/identity.bans/types/toa.d.ts +34 -0
  16. package/components/identity.basic/events/principal.js +8 -4
  17. package/components/identity.basic/manifest.toa.yaml +202 -29
  18. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  19. package/components/identity.basic/operations/add.js +13 -0
  20. package/components/identity.basic/operations/authenticate.js +20 -17
  21. package/components/identity.basic/operations/check.js +14 -0
  22. package/components/identity.basic/operations/delete.js +7 -0
  23. package/components/identity.basic/operations/incept.js +34 -16
  24. package/components/identity.basic/operations/info.js +7 -0
  25. package/components/identity.basic/operations/lib/credentials.js +12 -0
  26. package/components/identity.basic/operations/transit.js +42 -21
  27. package/components/identity.basic/source/add.ts +18 -0
  28. package/components/identity.basic/source/authenticate.ts +31 -23
  29. package/components/identity.basic/source/check.ts +24 -0
  30. package/components/identity.basic/source/delete.ts +18 -0
  31. package/components/identity.basic/source/incept.ts +52 -14
  32. package/components/identity.basic/source/info.ts +22 -0
  33. package/components/identity.basic/source/lib/credentials.test.ts +18 -0
  34. package/components/identity.basic/source/lib/credentials.ts +12 -0
  35. package/components/identity.basic/source/transit.ts +64 -27
  36. package/components/identity.basic/tsconfig.json +2 -1
  37. package/components/identity.basic/tsconfig.tsbuildinfo +1 -0
  38. package/components/identity.basic/types/index.d.ts +26 -0
  39. package/components/identity.basic/types/toa.d.ts +121 -0
  40. package/components/identity.clients/manifest.toa.yaml +239 -0
  41. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  42. package/components/identity.clients/operations/describe.js +44 -0
  43. package/components/identity.clients/operations/lib/Context.js +2 -0
  44. package/components/identity.clients/operations/lib/Entity.js +2 -0
  45. package/components/identity.clients/operations/lib/canonical.js +24 -0
  46. package/components/identity.clients/operations/lib/cimd.js +87 -0
  47. package/components/identity.clients/operations/lib/errors.js +5 -0
  48. package/components/identity.clients/operations/lib/index.js +7 -0
  49. package/components/identity.clients/operations/lib/redirect.js +35 -0
  50. package/components/identity.clients/operations/register.js +84 -0
  51. package/components/identity.clients/source/describe.ts +63 -0
  52. package/components/identity.clients/source/lib/Context.ts +41 -0
  53. package/components/identity.clients/source/lib/Entity.ts +31 -0
  54. package/components/identity.clients/source/lib/canonical.test.ts +43 -0
  55. package/components/identity.clients/source/lib/canonical.ts +27 -0
  56. package/components/identity.clients/source/lib/cimd.test.ts +122 -0
  57. package/components/identity.clients/source/lib/cimd.ts +112 -0
  58. package/components/identity.clients/source/lib/errors.ts +4 -0
  59. package/components/identity.clients/source/lib/index.ts +6 -0
  60. package/components/identity.clients/source/lib/redirect.test.ts +47 -0
  61. package/components/identity.clients/source/lib/redirect.ts +39 -0
  62. package/components/identity.clients/source/register.ts +125 -0
  63. package/components/identity.clients/tsconfig.json +10 -0
  64. package/components/identity.clients/tsconfig.tsbuildinfo +1 -0
  65. package/components/identity.clients/types/index.d.ts +3 -0
  66. package/components/identity.clients/types/toa.d.ts +109 -0
  67. package/components/identity.credentials/manifest.toa.yaml +78 -0
  68. package/components/identity.credentials/operations/list.js +32 -0
  69. package/components/identity.credentials/source/list.test.ts +70 -0
  70. package/components/identity.credentials/source/list.ts +92 -0
  71. package/components/identity.credentials/tsconfig.json +10 -0
  72. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -0
  73. package/components/identity.credentials/types/index.d.ts +3 -0
  74. package/components/identity.credentials/types/toa.d.ts +30 -0
  75. package/components/identity.federation/events/principal.js +7 -8
  76. package/components/identity.federation/manifest.toa.yaml +258 -65
  77. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  78. package/components/identity.federation/operations/authenticate.js +31 -20
  79. package/components/identity.federation/operations/create.js +29 -0
  80. package/components/identity.federation/operations/decode.js +9 -0
  81. package/components/identity.federation/operations/delete.js +7 -0
  82. package/components/identity.federation/operations/incept.js +9 -13
  83. package/components/identity.federation/operations/lib/Configuration.js +2 -0
  84. package/components/identity.federation/operations/lib/Ctx.js +2 -0
  85. package/components/identity.federation/operations/lib/Payload.js +2 -0
  86. package/components/identity.federation/operations/lib/decode.js +36 -0
  87. package/components/identity.federation/operations/lib/discovery.js +34 -0
  88. package/components/identity.federation/operations/lib/errors.js +45 -0
  89. package/components/identity.federation/operations/lib/exchange.js +90 -0
  90. package/components/identity.federation/operations/lib/index.js +5 -0
  91. package/components/identity.federation/operations/lib/jose.js +2 -0
  92. package/components/identity.federation/operations/lib/principal.js +14 -0
  93. package/components/identity.federation/operations/lib/resolve.js +13 -0
  94. package/components/identity.federation/operations/list.js +12 -0
  95. package/components/identity.federation/operations/types/Scheme.js +2 -0
  96. package/components/identity.federation/operations/types/configuration.js +2 -3
  97. package/components/identity.federation/operations/types/context.js +2 -3
  98. package/components/identity.federation/operations/types/entity.js +2 -3
  99. package/components/identity.federation/operations/types/index.js +5 -20
  100. package/components/identity.federation/source/authenticate.ts +50 -19
  101. package/components/identity.federation/source/create.ts +44 -0
  102. package/components/identity.federation/source/decode.ts +14 -0
  103. package/components/identity.federation/source/delete.ts +19 -0
  104. package/components/identity.federation/source/incept.ts +12 -15
  105. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  106. package/components/identity.federation/source/lib/Ctx.ts +9 -0
  107. package/components/identity.federation/source/lib/Payload.ts +6 -0
  108. package/components/identity.federation/source/lib/decode.ts +44 -0
  109. package/components/identity.federation/source/lib/discovery.test.ts +60 -0
  110. package/components/identity.federation/source/lib/discovery.ts +50 -0
  111. package/components/identity.federation/source/lib/errors.ts +54 -0
  112. package/components/identity.federation/source/lib/exchange.ts +123 -0
  113. package/components/identity.federation/source/lib/index.ts +5 -0
  114. package/components/identity.federation/source/lib/jose.d.ts +1 -0
  115. package/components/identity.federation/source/lib/jose.js +1 -0
  116. package/components/identity.federation/source/lib/principal.ts +19 -0
  117. package/components/identity.federation/source/lib/resolve.ts +21 -0
  118. package/components/identity.federation/source/list.test.ts +41 -0
  119. package/components/identity.federation/source/list.ts +21 -0
  120. package/components/identity.federation/source/types/Scheme.ts +1 -0
  121. package/components/identity.federation/source/types/configuration.ts +12 -4
  122. package/components/identity.federation/source/types/context.ts +22 -38
  123. package/components/identity.federation/source/types/entity.ts +3 -0
  124. package/components/identity.federation/source/types/index.ts +4 -3
  125. package/components/identity.federation/tsconfig.json +3 -2
  126. package/components/identity.federation/tsconfig.tsbuildinfo +1 -0
  127. package/components/identity.federation/types/index.d.ts +3 -0
  128. package/components/identity.federation/types/toa.d.ts +127 -0
  129. package/components/identity.grants/manifest.toa.yaml +241 -0
  130. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  131. package/components/identity.grants/operations/authorize.js +54 -0
  132. package/components/identity.grants/operations/exchange.js +92 -0
  133. package/components/identity.grants/operations/lib/code.js +30 -0
  134. package/components/identity.grants/operations/lib/identify.js +15 -0
  135. package/components/identity.grants/operations/lib/index.js +3 -0
  136. package/components/identity.grants/operations/list.js +18 -0
  137. package/components/identity.grants/operations/revoke.js +26 -0
  138. package/components/identity.grants/source/authorize.ts +98 -0
  139. package/components/identity.grants/source/exchange.ts +134 -0
  140. package/components/identity.grants/source/lib/code.ts +51 -0
  141. package/components/identity.grants/source/lib/identify.ts +16 -0
  142. package/components/identity.grants/source/lib/index.ts +3 -0
  143. package/components/identity.grants/source/list.ts +28 -0
  144. package/components/identity.grants/source/revoke.ts +40 -0
  145. package/components/identity.grants/tsconfig.json +10 -0
  146. package/components/identity.grants/tsconfig.tsbuildinfo +1 -0
  147. package/components/identity.grants/types/index.d.ts +60 -0
  148. package/components/identity.grants/types/toa.d.ts +108 -0
  149. package/components/identity.keys/manifest.toa.yaml +79 -0
  150. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  151. package/components/identity.keys/operations/create.js +12 -0
  152. package/components/identity.keys/operations/disable.js +5 -0
  153. package/components/identity.keys/operations/revoke.js +12 -0
  154. package/components/identity.keys/receivers/identity.bans.created.js +1 -0
  155. package/components/identity.keys/receivers/identity.bans.updated.js +1 -0
  156. package/components/identity.keys/receivers/identity.roles.deleted.js +1 -0
  157. package/components/identity.keys/source/create.ts +34 -0
  158. package/components/identity.keys/source/disable.ts +9 -0
  159. package/components/identity.keys/source/revoke.ts +30 -0
  160. package/components/identity.keys/tsconfig.json +10 -0
  161. package/components/identity.keys/tsconfig.tsbuildinfo +1 -0
  162. package/components/identity.keys/types/index.d.ts +3 -0
  163. package/components/identity.keys/types/toa.d.ts +47 -0
  164. package/components/identity.otp/manifest.toa.yaml +96 -0
  165. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  166. package/components/identity.otp/operations/authenticate.js +44 -0
  167. package/components/identity.otp/operations/issue.js +19 -0
  168. package/components/identity.otp/operations/lib/Context.js +2 -0
  169. package/components/identity.otp/operations/lib/Entity.js +2 -0
  170. package/components/identity.otp/operations/lib/index.js +2 -0
  171. package/components/identity.otp/source/authenticate.ts +70 -0
  172. package/components/identity.otp/source/issue.ts +35 -0
  173. package/components/identity.otp/source/lib/Context.ts +17 -0
  174. package/components/identity.otp/source/lib/Entity.ts +6 -0
  175. package/components/identity.otp/source/lib/index.ts +1 -0
  176. package/components/identity.otp/tsconfig.json +10 -0
  177. package/components/identity.otp/tsconfig.tsbuildinfo +1 -0
  178. package/components/identity.otp/types/index.d.ts +3 -0
  179. package/components/identity.otp/types/toa.d.ts +56 -0
  180. package/components/identity.passkeys/manifest.toa.yaml +302 -0
  181. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  182. package/components/identity.passkeys/operations/authenticate.js +32 -0
  183. package/components/identity.passkeys/operations/challenge.js +72 -0
  184. package/components/identity.passkeys/operations/create.js +57 -0
  185. package/components/identity.passkeys/operations/delete.js +9 -0
  186. package/components/identity.passkeys/operations/lib/const.js +2 -0
  187. package/components/identity.passkeys/operations/list.js +12 -0
  188. package/components/identity.passkeys/operations/types/Configuration.js +2 -0
  189. package/components/identity.passkeys/operations/types/Context.js +2 -0
  190. package/components/identity.passkeys/operations/types/Passkey.js +2 -0
  191. package/components/identity.passkeys/operations/types/index.js +2 -0
  192. package/components/identity.passkeys/operations/use.js +56 -0
  193. package/components/identity.passkeys/source/authenticate.ts +49 -0
  194. package/components/identity.passkeys/source/challenge.ts +119 -0
  195. package/components/identity.passkeys/source/create.ts +83 -0
  196. package/components/identity.passkeys/source/delete.ts +19 -0
  197. package/components/identity.passkeys/source/errors.test.ts +34 -0
  198. package/components/identity.passkeys/source/lib/const.ts +1 -0
  199. package/components/identity.passkeys/source/list.ts +21 -0
  200. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  201. package/components/identity.passkeys/source/types/Context.ts +17 -0
  202. package/components/identity.passkeys/source/types/Passkey.ts +12 -0
  203. package/components/identity.passkeys/source/types/index.ts +2 -0
  204. package/components/identity.passkeys/source/use.ts +81 -0
  205. package/components/identity.passkeys/source/webauthn.test.ts +26 -0
  206. package/components/identity.passkeys/tsconfig.json +10 -0
  207. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -0
  208. package/components/identity.passkeys/types/index.d.ts +3 -0
  209. package/components/identity.passkeys/types/toa.d.ts +120 -0
  210. package/components/identity.roles/manifest.toa.yaml +46 -13
  211. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  212. package/components/identity.roles/operations/grant.js +11 -11
  213. package/components/identity.roles/operations/lib/Entity.js +2 -3
  214. package/components/identity.roles/operations/list.js +2 -6
  215. package/components/identity.roles/operations/principal.js +30 -10
  216. package/components/identity.roles/receivers/identity.federation.principal.js +4 -0
  217. package/components/identity.roles/source/grant.ts +16 -10
  218. package/components/identity.roles/source/list.ts +2 -2
  219. package/components/identity.roles/source/principal.ts +34 -8
  220. package/components/identity.roles/tsconfig.json +2 -1
  221. package/components/identity.roles/tsconfig.tsbuildinfo +1 -0
  222. package/components/identity.roles/types/index.d.ts +3 -0
  223. package/components/identity.roles/types/toa.d.ts +43 -0
  224. package/components/identity.tokens/manifest.toa.yaml +222 -29
  225. package/components/identity.tokens/operations/authenticate.js +29 -20
  226. package/components/identity.tokens/operations/decrypt.js +138 -25
  227. package/components/identity.tokens/operations/encrypt.js +33 -18
  228. package/components/identity.tokens/operations/issue.js +55 -0
  229. package/components/identity.tokens/operations/lib/form.js +24 -0
  230. package/components/identity.tokens/operations/lib/index.js +4 -0
  231. package/components/identity.tokens/operations/lib/jose.js +2 -0
  232. package/components/identity.tokens/operations/lib/key.js +7 -0
  233. package/components/identity.tokens/operations/lib/pad.js +2 -0
  234. package/components/identity.tokens/operations/revoke.js +2 -6
  235. package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
  236. package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
  237. package/components/identity.tokens/source/authenticate.test.ts +74 -25
  238. package/components/identity.tokens/source/authenticate.ts +33 -19
  239. package/components/identity.tokens/source/decrypt.test.ts +173 -18
  240. package/components/identity.tokens/source/decrypt.ts +180 -21
  241. package/components/identity.tokens/source/encrypt.test.ts +107 -16
  242. package/components/identity.tokens/source/encrypt.ts +44 -17
  243. package/components/identity.tokens/source/issue.test.ts +73 -0
  244. package/components/identity.tokens/source/issue.ts +83 -0
  245. package/components/identity.tokens/source/lib/form.test.ts +25 -0
  246. package/components/identity.tokens/source/lib/form.ts +27 -0
  247. package/components/identity.tokens/source/lib/index.ts +4 -0
  248. package/components/identity.tokens/source/lib/jose.d.ts +1 -0
  249. package/components/identity.tokens/source/lib/jose.js +1 -0
  250. package/components/identity.tokens/source/lib/key.ts +8 -0
  251. package/components/identity.tokens/source/lib/pad.ts +1 -0
  252. package/components/identity.tokens/source/lib/paseto.test.ts +62 -0
  253. package/components/identity.tokens/source/revoke.ts +2 -2
  254. package/components/identity.tokens/tsconfig.json +2 -1
  255. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -0
  256. package/components/identity.tokens/types/index.d.ts +70 -0
  257. package/components/identity.tokens/types/toa.d.ts +113 -0
  258. package/{components/context.toa.yaml → context.toa.yaml} +8 -4
  259. package/cucumber.mjs +7 -0
  260. package/documentation/access.md +112 -28
  261. package/documentation/authorities.md +9 -11
  262. package/documentation/cache.md +27 -4
  263. package/documentation/components.md +204 -63
  264. package/documentation/consent.md +101 -0
  265. package/documentation/credentials.md +88 -0
  266. package/documentation/dev.md +30 -0
  267. package/documentation/discovery.md +81 -0
  268. package/documentation/flow.md +44 -0
  269. package/documentation/help.md +122 -0
  270. package/documentation/identity.md +164 -18
  271. package/documentation/introspection.md +123 -0
  272. package/documentation/io.md +115 -4
  273. package/documentation/ip.md +24 -0
  274. package/documentation/map.md +123 -0
  275. package/documentation/mcp.md +183 -0
  276. package/documentation/notes/desync.jpg +0 -0
  277. package/documentation/notes/peers.md +59 -0
  278. package/documentation/notes/throttling.md +122 -0
  279. package/documentation/oauth.md +180 -0
  280. package/documentation/octets.md +146 -73
  281. package/documentation/passkeys.md +11 -0
  282. package/documentation/protocol.md +41 -6
  283. package/documentation/query.md +56 -7
  284. package/documentation/rpc.md +154 -0
  285. package/documentation/tracing.md +70 -0
  286. package/documentation/tree.md +17 -1
  287. package/features/access.feature +123 -3
  288. package/features/auth.assert.feature +55 -0
  289. package/features/auth.bearer.feature +120 -0
  290. package/features/auth.claims.feature +171 -0
  291. package/features/auth.incept.feature +166 -0
  292. package/features/auth.input.feature +59 -0
  293. package/features/authorities.feature +41 -2
  294. package/features/authorities.federation.feature +21 -20
  295. package/features/authorities.tokens.feature +1 -2
  296. package/features/body.feature +27 -0
  297. package/features/cache.feature +143 -8
  298. package/features/configuration.feature +206 -0
  299. package/features/cors.feature +59 -8
  300. package/features/credentials.feature +106 -0
  301. package/features/dev.feature +90 -0
  302. package/features/discovery.feature +213 -0
  303. package/features/discovery.ui.feature +213 -0
  304. package/features/dynamic.feature +83 -1
  305. package/features/errors.feature +38 -5
  306. package/features/etag.feature +139 -3
  307. package/features/flow.feature +148 -0
  308. package/features/help.feature +512 -0
  309. package/features/identity.bans.feature +66 -3
  310. package/features/identity.basic.feature +282 -17
  311. package/features/identity.feature +158 -0
  312. package/features/identity.federation.feature +226 -38
  313. package/features/identity.otp.feature +142 -0
  314. package/features/identity.roles.feature +305 -4
  315. package/features/identity.tokens.custom.feature +430 -0
  316. package/features/identity.tokens.feature +6 -104
  317. package/features/interruptions.feature +20 -0
  318. package/features/introspection.feature +565 -0
  319. package/features/introspection.map.feature +108 -0
  320. package/features/io.feature +0 -1
  321. package/features/io.throttle.feature +166 -0
  322. package/features/map.feature +360 -0
  323. package/features/mcp.feature +753 -0
  324. package/features/methods.feature +48 -0
  325. package/features/oauth.clients.feature +195 -0
  326. package/features/oauth.discovery.feature +164 -0
  327. package/features/oauth.grants.feature +301 -0
  328. package/features/octets.cloudinary.feature +233 -0
  329. package/features/octets.download.feature +194 -0
  330. package/features/octets.entries.feature +13 -61
  331. package/features/octets.feature +96 -55
  332. package/features/octets.head.feature +40 -0
  333. package/features/octets.location.feature +83 -0
  334. package/features/octets.meta.feature +64 -16
  335. package/features/octets.workflows.feature +333 -68
  336. package/features/passkeys.feature +66 -0
  337. package/features/probes.feature +8 -4
  338. package/features/query.feature +128 -0
  339. package/features/realtime.feature +34 -0
  340. package/features/require.feature +1 -2
  341. package/features/response.feature +30 -1
  342. package/features/routes.feature +85 -0
  343. package/features/rpc.feature +429 -0
  344. package/features/server.feature +21 -0
  345. package/features/site/_app/immutable/asset.js +1 -0
  346. package/features/site/favicon.ico +0 -0
  347. package/features/site/index.html +10 -0
  348. package/features/steps/.env.example +5 -0
  349. package/features/steps/Captures.ts +15 -1
  350. package/features/steps/Cloudinary.ts +12 -0
  351. package/features/steps/Common.ts +31 -3
  352. package/features/steps/Components.ts +74 -14
  353. package/features/steps/Database.ts +57 -16
  354. package/features/steps/Gateway.ts +157 -49
  355. package/features/steps/HTTP.ts +41 -19
  356. package/features/steps/IDP.ts +361 -0
  357. package/features/steps/Identity.ts +54 -0
  358. package/features/steps/OTP.ts +42 -0
  359. package/features/steps/Parameters.ts +151 -10
  360. package/features/steps/Probe.ts +38 -0
  361. package/features/steps/Realtime.ts +175 -0
  362. package/features/steps/Workspace.ts +19 -12
  363. package/features/steps/components/audit/manifest.toa.yaml +20 -0
  364. package/features/steps/components/audit/operations/record.js +5 -0
  365. package/features/steps/components/echo/manifest.toa.yaml +50 -5
  366. package/features/steps/components/echo/operations/affect.js +1 -5
  367. package/features/steps/components/echo/operations/compute.js +1 -5
  368. package/features/steps/components/echo/operations/echo.js +3 -0
  369. package/features/steps/components/echo/operations/error.js +1 -5
  370. package/features/steps/components/echo/operations/identity.js +1 -5
  371. package/features/steps/components/echo/operations/parameters.js +3 -0
  372. package/features/steps/components/echo/operations/ping.js +3 -0
  373. package/features/steps/components/echo/operations/unwrap.js +3 -0
  374. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  375. package/features/steps/components/echo.beacon/operations/hello.js +3 -0
  376. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  377. package/features/steps/components/greeter/operations/greet.js +1 -5
  378. package/features/steps/components/notify/manifest.toa.yaml +20 -0
  379. package/features/steps/components/notify/operations/send.js +5 -0
  380. package/features/steps/components/octets.tester/manifest.toa.yaml +60 -6
  381. package/features/steps/components/octets.tester/operations/authority.js +3 -0
  382. package/features/steps/components/octets.tester/operations/bar.js +2 -5
  383. package/features/steps/components/octets.tester/operations/baz.js +3 -5
  384. package/features/steps/components/octets.tester/operations/concat.js +2 -4
  385. package/features/steps/components/octets.tester/operations/echo.js +3 -5
  386. package/features/steps/components/octets.tester/operations/err.js +2 -4
  387. package/features/steps/components/octets.tester/operations/foo.js +3 -5
  388. package/features/steps/components/octets.tester/operations/id.js +5 -0
  389. package/features/steps/components/octets.tester/operations/identity.js +5 -0
  390. package/features/steps/components/octets.tester/operations/redirect.js +17 -0
  391. package/features/steps/components/octets.tester/operations/yex.js +14 -0
  392. package/features/steps/components/octets.tester/operations/yield.js +11 -0
  393. package/features/steps/components/orders/manifest.toa.yaml +30 -0
  394. package/features/steps/components/orders/operations/create.js +7 -0
  395. package/features/steps/components/pots/manifest.toa.yaml +77 -15
  396. package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
  397. package/features/steps/components/pricing/manifest.toa.yaml +13 -0
  398. package/features/steps/components/pricing/operations/quote.js +3 -0
  399. package/features/steps/components/sequences/manifest.toa.yaml +2 -2
  400. package/features/steps/components/sequences/operations/numbers.js +2 -4
  401. package/features/steps/components/sequences/operations/tokens.js +5 -7
  402. package/features/steps/components/users/manifest.toa.yaml +20 -4
  403. package/features/steps/components/users/operations/create.js +11 -0
  404. package/features/steps/components/users.properties/manifest.toa.yaml +12 -4
  405. package/features/steps/map.ts +30 -0
  406. package/features/streams.feature +4 -0
  407. package/features/timestamps.feature +41 -0
  408. package/features/timing.feature +2 -22
  409. package/features/tracing.feature +123 -0
  410. package/package.json +35 -25
  411. package/readme.md +37 -7
  412. package/schemas/annotation.cos.yaml +125 -6
  413. package/schemas/call.cos.yaml +18 -0
  414. package/schemas/directive.cos.yaml +7 -3
  415. package/schemas/io/throttle.cos.yaml +81 -0
  416. package/schemas/method.cos.yaml +23 -8
  417. package/schemas/node.cos.yaml +22 -5
  418. package/schemas/octets/delete.cos.yaml +15 -2
  419. package/schemas/octets/get.cos.yaml +5 -0
  420. package/schemas/octets/put.cos.yaml +31 -0
  421. package/schemas/octets/workflow.cos.yaml +0 -1
  422. package/schemas/query.cos.yaml +31 -17
  423. package/schemas/querystring.cos.yaml +19 -6
  424. package/schemas/range.cos.yaml +10 -2
  425. package/schemas/route.cos.yaml +6 -2
  426. package/source/Annotation.ts +82 -1
  427. package/source/Branch.test.ts +40 -0
  428. package/source/Branch.ts +37 -1
  429. package/source/Composition.ts +10 -16
  430. package/source/Context.ts +5 -2
  431. package/source/Directive.test.ts +132 -30
  432. package/source/Directive.ts +189 -37
  433. package/source/Discovery/Explorer.ts +34 -0
  434. package/source/Discovery/Site.test.ts +147 -0
  435. package/source/Discovery/Site.ts +202 -0
  436. package/source/Discovery/index.ts +3 -0
  437. package/source/Discovery/tree.test.ts +175 -0
  438. package/source/Discovery/tree.ts +77 -0
  439. package/source/Discovery/trunk.ts +33 -0
  440. package/source/Endpoint.test.ts +67 -0
  441. package/source/Endpoint.ts +94 -45
  442. package/source/Factory.ts +30 -48
  443. package/source/Gateway.ts +337 -44
  444. package/source/HTTP/Context.ts +96 -42
  445. package/source/HTTP/Probe.ts +99 -0
  446. package/source/HTTP/Server.ts +337 -78
  447. package/source/HTTP/Timing.ts +7 -33
  448. package/source/HTTP/address.test.ts +28 -0
  449. package/source/HTTP/address.ts +16 -0
  450. package/source/HTTP/exceptions.ts +49 -23
  451. package/source/HTTP/formats/form.ts +21 -0
  452. package/source/HTTP/formats/index.ts +24 -10
  453. package/source/HTTP/formats/json.ts +3 -5
  454. package/source/HTTP/formats/msgpack.ts +3 -5
  455. package/source/HTTP/formats/text.ts +3 -5
  456. package/source/HTTP/formats/yaml.test.ts +22 -0
  457. package/source/HTTP/formats/yaml.ts +29 -6
  458. package/source/HTTP/index.ts +6 -4
  459. package/source/HTTP/messages.test.ts +126 -19
  460. package/source/HTTP/messages.ts +127 -51
  461. package/source/HTTP/types.ts +39 -0
  462. package/source/Interception.ts +18 -5
  463. package/source/Introspection.ts +179 -0
  464. package/source/MCP/Server.ts +335 -0
  465. package/source/MCP/discover.ts +51 -0
  466. package/source/MCP/errors.ts +80 -0
  467. package/source/MCP/index.ts +1 -0
  468. package/source/MCP/schema.test.ts +91 -0
  469. package/source/MCP/schema.ts +94 -0
  470. package/source/MCP/tools.ts +144 -0
  471. package/source/MCP/types.ts +84 -0
  472. package/source/Mapping.ts +75 -29
  473. package/source/Query.test.ts +22 -5
  474. package/source/Query.ts +200 -39
  475. package/source/RPC/Context.ts +75 -0
  476. package/source/RPC/Dispatcher.ts +150 -0
  477. package/source/RPC/errors.test.ts +77 -0
  478. package/source/RPC/errors.ts +82 -0
  479. package/source/RPC/index.ts +1 -0
  480. package/source/RPC/names.test.ts +141 -0
  481. package/source/RPC/names.ts +176 -0
  482. package/source/RPC/types.ts +34 -0
  483. package/source/RTD/Context.ts +7 -4
  484. package/source/RTD/Directives.ts +103 -10
  485. package/source/RTD/Endpoint.ts +19 -5
  486. package/source/RTD/Match.ts +1 -1
  487. package/source/RTD/Method.ts +25 -4
  488. package/source/RTD/Node.ts +118 -33
  489. package/source/RTD/Route.ts +55 -21
  490. package/source/RTD/Tree.ts +96 -17
  491. package/source/RTD/expiration.test.ts +81 -0
  492. package/source/RTD/factory.ts +82 -21
  493. package/source/RTD/index.ts +8 -8
  494. package/source/RTD/segment.test.ts +13 -10
  495. package/source/RTD/segment.ts +33 -8
  496. package/source/RTD/syntax/index.ts +2 -2
  497. package/source/RTD/syntax/parse.test.ts +39 -31
  498. package/source/RTD/syntax/parse.ts +68 -51
  499. package/source/RTD/syntax/types.ts +25 -4
  500. package/source/RTD/walk.test.ts +147 -0
  501. package/source/Remotes.test.ts +55 -18
  502. package/source/Remotes.ts +20 -11
  503. package/source/Tenant.ts +54 -16
  504. package/source/const.ts +45 -0
  505. package/source/deployment.ts +58 -26
  506. package/source/directives/auth/Anonymous.test.ts +70 -0
  507. package/source/directives/auth/Anonymous.ts +27 -6
  508. package/source/directives/auth/Anyone.ts +23 -0
  509. package/source/directives/auth/Assert.ts +43 -0
  510. package/source/directives/auth/Authorization.test.ts +24 -0
  511. package/source/directives/auth/Authorization.ts +299 -68
  512. package/source/directives/auth/Delegate.test.ts +36 -0
  513. package/source/directives/auth/Delegate.ts +31 -12
  514. package/source/directives/auth/Echo.ts +18 -6
  515. package/source/directives/auth/Federation.ts +104 -0
  516. package/source/directives/auth/Id.ts +24 -6
  517. package/source/directives/auth/Incept.ts +101 -32
  518. package/source/directives/auth/Input.ts +92 -0
  519. package/source/directives/auth/Role.test.ts +79 -41
  520. package/source/directives/auth/Role.ts +59 -26
  521. package/source/directives/auth/Rule.ts +41 -10
  522. package/source/directives/auth/Scheme.ts +15 -10
  523. package/source/directives/auth/create.ts +11 -0
  524. package/source/directives/auth/index.ts +1 -1
  525. package/source/directives/auth/schemes.test.ts +18 -0
  526. package/source/directives/auth/schemes.ts +36 -6
  527. package/source/directives/auth/split.ts +4 -5
  528. package/source/directives/auth/types.ts +48 -13
  529. package/source/directives/cache/Cache.ts +70 -13
  530. package/source/directives/cache/Control.ts +36 -40
  531. package/source/directives/cache/Exact.ts +2 -2
  532. package/source/directives/cache/etag.ts +38 -0
  533. package/source/directives/cache/index.ts +1 -1
  534. package/source/directives/cache/types.ts +1 -1
  535. package/source/directives/cors/CORS.test.ts +75 -0
  536. package/source/directives/cors/CORS.ts +49 -23
  537. package/source/directives/cors/index.ts +1 -1
  538. package/source/directives/dev/Development.ts +20 -14
  539. package/source/directives/dev/Faulty.ts +31 -0
  540. package/source/directives/dev/Sleep.ts +53 -0
  541. package/source/directives/dev/Stub.ts +4 -4
  542. package/source/directives/dev/Throw.ts +4 -4
  543. package/source/directives/dev/index.ts +1 -1
  544. package/source/directives/dev/types.ts +2 -2
  545. package/source/directives/flow/Compose.ts +98 -0
  546. package/source/directives/flow/Fetch.ts +86 -0
  547. package/source/directives/flow/Flow.ts +43 -0
  548. package/source/directives/flow/index.ts +3 -0
  549. package/source/directives/flow/types.ts +7 -0
  550. package/source/directives/help/Family.ts +122 -0
  551. package/source/directives/help/Help.test.ts +227 -0
  552. package/source/directives/help/Help.ts +47 -0
  553. package/source/directives/help/Parameters.ts +47 -0
  554. package/source/directives/help/described.ts +57 -0
  555. package/source/directives/help/index.ts +45 -0
  556. package/source/directives/index.ts +32 -12
  557. package/source/directives/io/Directive.ts +9 -3
  558. package/source/directives/io/IO.ts +89 -14
  559. package/source/directives/io/Input.ts +26 -21
  560. package/source/directives/io/Output.ts +43 -31
  561. package/source/directives/io/Status.test.ts +88 -0
  562. package/source/directives/io/Status.ts +47 -0
  563. package/source/directives/io/Throttle.ts +30 -0
  564. package/source/directives/io/index.ts +1 -1
  565. package/source/directives/io/lib/throttle/Configuration.test.ts +72 -0
  566. package/source/directives/io/lib/throttle/Configuration.ts +68 -0
  567. package/source/directives/io/lib/throttle/Keys.ts +53 -0
  568. package/source/directives/io/lib/throttle/Quotas.test.ts +411 -0
  569. package/source/directives/io/lib/throttle/Quotas.ts +190 -0
  570. package/source/directives/io/lib/throttle/Sync.test.ts +163 -0
  571. package/source/directives/io/lib/throttle/Sync.ts +93 -0
  572. package/source/directives/io/lib/throttle/Warning.test.ts +32 -0
  573. package/source/directives/io/lib/throttle/Warning.ts +29 -0
  574. package/source/directives/io/lib/throttle/components/Component.ts +7 -0
  575. package/source/directives/io/lib/throttle/components/IP.ts +30 -0
  576. package/source/directives/io/lib/throttle/components/Identity.ts +19 -0
  577. package/source/directives/io/lib/throttle/components/Path.ts +8 -0
  578. package/source/directives/io/lib/throttle/components/Route.ts +19 -0
  579. package/source/directives/io/lib/throttle/components/Segment.ts +19 -0
  580. package/source/directives/io/lib/throttle/components/index.ts +19 -0
  581. package/source/directives/io/lib/throttle/conditions/Condition.ts +5 -0
  582. package/source/directives/io/lib/throttle/conditions/Status.ts +17 -0
  583. package/source/directives/io/lib/throttle/conditions/index.ts +11 -0
  584. package/source/directives/io/lib/throttle/index.ts +4 -0
  585. package/source/directives/io/schemas.test.ts +40 -0
  586. package/source/directives/io/schemas.ts +9 -5
  587. package/source/directives/map/Authority.ts +15 -0
  588. package/source/directives/map/Buffer.ts +15 -0
  589. package/source/directives/map/Claims.ts +63 -0
  590. package/source/directives/map/Directive.ts +4 -0
  591. package/source/directives/map/Headers.ts +60 -0
  592. package/source/directives/map/Language.ts +45 -0
  593. package/source/directives/map/Languages.ts +17 -0
  594. package/source/directives/map/Map.ts +85 -0
  595. package/source/directives/map/Mapping.ts +45 -0
  596. package/source/directives/{vary → map}/Properties.ts +3 -5
  597. package/source/directives/map/Segments.ts +52 -0
  598. package/source/directives/map/index.ts +3 -0
  599. package/source/directives/mcp/MCP.ts +33 -0
  600. package/source/directives/mcp/Tool.test.ts +56 -0
  601. package/source/directives/mcp/Tool.ts +32 -0
  602. package/source/directives/mcp/index.ts +6 -0
  603. package/source/directives/oauth/Discovery.ts +66 -0
  604. package/source/directives/oauth/documents.ts +110 -0
  605. package/source/directives/oauth/index.ts +3 -0
  606. package/source/directives/octets/Context.ts +10 -6
  607. package/source/directives/octets/Delete.ts +48 -37
  608. package/source/directives/octets/Directive.ts +15 -4
  609. package/source/directives/octets/Get.ts +88 -0
  610. package/source/directives/octets/Octets.ts +44 -33
  611. package/source/directives/octets/Put.ts +186 -0
  612. package/source/directives/octets/Workflow.ts +34 -22
  613. package/source/directives/octets/bytes.test.ts +33 -0
  614. package/source/directives/octets/bytes.ts +18 -0
  615. package/source/directives/octets/index.ts +1 -1
  616. package/source/directives/octets/schemas.test.ts +14 -15
  617. package/source/directives/octets/schemas.ts +8 -12
  618. package/source/directives/octets/types.ts +3 -1
  619. package/source/directives/octets/workflows/Execution.ts +74 -20
  620. package/source/directives/octets/workflows/Workflow.ts +30 -16
  621. package/source/directives/octets/workflows/index.ts +1 -1
  622. package/source/directives/require/Directive.ts +2 -2
  623. package/source/directives/require/Headers.ts +6 -7
  624. package/source/directives/require/Require.ts +7 -8
  625. package/source/directives/require/index.ts +1 -1
  626. package/source/exceptions.ts +32 -13
  627. package/source/index.ts +11 -5
  628. package/source/io.ts +1 -1
  629. package/source/manifest.test.ts +15 -10
  630. package/source/manifest.ts +27 -22
  631. package/source/octets.d.ts +17 -0
  632. package/source/root.ts +22 -6
  633. package/source/schemas.test.ts +31 -0
  634. package/source/schemas.ts +7 -5
  635. package/source/service.ts +94 -0
  636. package/source/shortcuts.ts +14 -0
  637. package/source/userland.ts +47 -0
  638. package/transpiled/Annotation.d.ts +63 -1
  639. package/transpiled/Annotation.js +1 -2
  640. package/transpiled/Branch.d.ts +25 -1
  641. package/transpiled/Branch.js +14 -2
  642. package/transpiled/Branch.js.map +1 -1
  643. package/transpiled/Composition.d.ts +3 -4
  644. package/transpiled/Composition.js +13 -22
  645. package/transpiled/Composition.js.map +1 -1
  646. package/transpiled/Context.d.ts +3 -2
  647. package/transpiled/Context.js +1 -2
  648. package/transpiled/Directive.d.ts +33 -8
  649. package/transpiled/Directive.js +120 -32
  650. package/transpiled/Directive.js.map +1 -1
  651. package/transpiled/Discovery/Explorer.d.ts +11 -0
  652. package/transpiled/Discovery/Explorer.js +29 -0
  653. package/transpiled/Discovery/Explorer.js.map +1 -0
  654. package/transpiled/Discovery/Site.d.ts +43 -0
  655. package/transpiled/Discovery/Site.js +171 -0
  656. package/transpiled/Discovery/Site.js.map +1 -0
  657. package/transpiled/Discovery/index.d.ts +3 -0
  658. package/transpiled/Discovery/index.js +4 -0
  659. package/transpiled/Discovery/index.js.map +1 -0
  660. package/transpiled/Discovery/tree.d.ts +26 -0
  661. package/transpiled/Discovery/tree.js +50 -0
  662. package/transpiled/Discovery/tree.js.map +1 -0
  663. package/transpiled/Discovery/trunk.d.ts +13 -0
  664. package/transpiled/Discovery/trunk.js +29 -0
  665. package/transpiled/Discovery/trunk.js.map +1 -0
  666. package/transpiled/Endpoint.d.ts +19 -7
  667. package/transpiled/Endpoint.js +68 -58
  668. package/transpiled/Endpoint.js.map +1 -1
  669. package/transpiled/Factory.d.ts +8 -7
  670. package/transpiled/Factory.js +23 -69
  671. package/transpiled/Factory.js.map +1 -1
  672. package/transpiled/Gateway.d.ts +59 -6
  673. package/transpiled/Gateway.js +240 -51
  674. package/transpiled/Gateway.js.map +1 -1
  675. package/transpiled/HTTP/Context.d.ts +24 -14
  676. package/transpiled/HTTP/Context.js +73 -34
  677. package/transpiled/HTTP/Context.js.map +1 -1
  678. package/transpiled/HTTP/Probe.d.ts +26 -0
  679. package/transpiled/HTTP/Probe.js +80 -0
  680. package/transpiled/HTTP/Probe.js.map +1 -0
  681. package/transpiled/HTTP/Server.d.ts +30 -10
  682. package/transpiled/HTTP/Server.js +250 -93
  683. package/transpiled/HTTP/Server.js.map +1 -1
  684. package/transpiled/HTTP/Timing.d.ts +2 -6
  685. package/transpiled/HTTP/Timing.js +5 -25
  686. package/transpiled/HTTP/Timing.js.map +1 -1
  687. package/transpiled/HTTP/address.d.ts +7 -0
  688. package/transpiled/HTTP/address.js +14 -0
  689. package/transpiled/HTTP/address.js.map +1 -0
  690. package/transpiled/HTTP/exceptions.d.ts +21 -9
  691. package/transpiled/HTTP/exceptions.js +40 -36
  692. package/transpiled/HTTP/exceptions.js.map +1 -1
  693. package/transpiled/HTTP/formats/form.d.ts +9 -0
  694. package/transpiled/HTTP/formats/form.js +18 -0
  695. package/transpiled/HTTP/formats/form.js.map +1 -0
  696. package/transpiled/HTTP/formats/index.d.ts +10 -4
  697. package/transpiled/HTTP/formats/index.js +19 -35
  698. package/transpiled/HTTP/formats/index.js.map +1 -1
  699. package/transpiled/HTTP/formats/json.d.ts +1 -3
  700. package/transpiled/HTTP/formats/json.js +6 -12
  701. package/transpiled/HTTP/formats/json.js.map +1 -1
  702. package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
  703. package/transpiled/HTTP/formats/msgpack.js +7 -12
  704. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  705. package/transpiled/HTTP/formats/text.d.ts +1 -3
  706. package/transpiled/HTTP/formats/text.js +6 -12
  707. package/transpiled/HTTP/formats/text.js.map +1 -1
  708. package/transpiled/HTTP/formats/yaml.d.ts +1 -3
  709. package/transpiled/HTTP/formats/yaml.js +26 -37
  710. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  711. package/transpiled/HTTP/index.d.ts +6 -4
  712. package/transpiled/HTTP/index.js +6 -20
  713. package/transpiled/HTTP/index.js.map +1 -1
  714. package/transpiled/HTTP/messages.d.ts +26 -4
  715. package/transpiled/HTTP/messages.js +80 -41
  716. package/transpiled/HTTP/messages.js.map +1 -1
  717. package/transpiled/HTTP/types.d.ts +37 -0
  718. package/transpiled/HTTP/types.js +2 -0
  719. package/transpiled/HTTP/types.js.map +1 -0
  720. package/transpiled/Interception.d.ts +7 -2
  721. package/transpiled/Interception.js +8 -6
  722. package/transpiled/Interception.js.map +1 -1
  723. package/transpiled/Introspection.d.ts +83 -0
  724. package/transpiled/Introspection.js +79 -0
  725. package/transpiled/Introspection.js.map +1 -0
  726. package/transpiled/MCP/Server.d.ts +41 -0
  727. package/transpiled/MCP/Server.js +191 -0
  728. package/transpiled/MCP/Server.js.map +1 -0
  729. package/transpiled/MCP/discover.d.ts +13 -0
  730. package/transpiled/MCP/discover.js +29 -0
  731. package/transpiled/MCP/discover.js.map +1 -0
  732. package/transpiled/MCP/errors.d.ts +24 -0
  733. package/transpiled/MCP/errors.js +67 -0
  734. package/transpiled/MCP/errors.js.map +1 -0
  735. package/transpiled/MCP/index.d.ts +1 -0
  736. package/transpiled/MCP/index.js +2 -0
  737. package/transpiled/MCP/index.js.map +1 -0
  738. package/transpiled/MCP/schema.d.ts +18 -0
  739. package/transpiled/MCP/schema.js +70 -0
  740. package/transpiled/MCP/schema.js.map +1 -0
  741. package/transpiled/MCP/tools.d.ts +31 -0
  742. package/transpiled/MCP/tools.js +109 -0
  743. package/transpiled/MCP/tools.js.map +1 -0
  744. package/transpiled/MCP/types.d.ts +66 -0
  745. package/transpiled/MCP/types.js +13 -0
  746. package/transpiled/MCP/types.js.map +1 -0
  747. package/transpiled/Mapping.d.ts +17 -6
  748. package/transpiled/Mapping.js +50 -24
  749. package/transpiled/Mapping.js.map +1 -1
  750. package/transpiled/Query.d.ts +39 -6
  751. package/transpiled/Query.js +144 -48
  752. package/transpiled/Query.js.map +1 -1
  753. package/transpiled/RPC/Context.d.ts +11 -0
  754. package/transpiled/RPC/Context.js +56 -0
  755. package/transpiled/RPC/Context.js.map +1 -0
  756. package/transpiled/RPC/Dispatcher.d.ts +19 -0
  757. package/transpiled/RPC/Dispatcher.js +103 -0
  758. package/transpiled/RPC/Dispatcher.js.map +1 -0
  759. package/transpiled/RPC/errors.d.ts +18 -0
  760. package/transpiled/RPC/errors.js +67 -0
  761. package/transpiled/RPC/errors.js.map +1 -0
  762. package/transpiled/RPC/index.d.ts +1 -0
  763. package/transpiled/RPC/index.js +2 -0
  764. package/transpiled/RPC/index.js.map +1 -0
  765. package/transpiled/RPC/names.d.ts +31 -0
  766. package/transpiled/RPC/names.js +121 -0
  767. package/transpiled/RPC/names.js.map +1 -0
  768. package/transpiled/RPC/types.d.ts +27 -0
  769. package/transpiled/RPC/types.js +8 -0
  770. package/transpiled/RPC/types.js.map +1 -0
  771. package/transpiled/RTD/Context.d.ts +6 -4
  772. package/transpiled/RTD/Context.js +1 -2
  773. package/transpiled/RTD/Directives.d.ts +72 -7
  774. package/transpiled/RTD/Directives.js +1 -2
  775. package/transpiled/RTD/Endpoint.d.ts +12 -4
  776. package/transpiled/RTD/Endpoint.js +1 -2
  777. package/transpiled/RTD/Match.d.ts +1 -1
  778. package/transpiled/RTD/Match.js +1 -2
  779. package/transpiled/RTD/Method.d.ts +11 -2
  780. package/transpiled/RTD/Method.js +12 -5
  781. package/transpiled/RTD/Method.js.map +1 -1
  782. package/transpiled/RTD/Node.d.ts +43 -5
  783. package/transpiled/RTD/Node.js +75 -21
  784. package/transpiled/RTD/Node.js.map +1 -1
  785. package/transpiled/RTD/Route.d.ts +8 -6
  786. package/transpiled/RTD/Route.js +40 -10
  787. package/transpiled/RTD/Route.js.map +1 -1
  788. package/transpiled/RTD/Tree.d.ts +14 -5
  789. package/transpiled/RTD/Tree.js +70 -12
  790. package/transpiled/RTD/Tree.js.map +1 -1
  791. package/transpiled/RTD/factory.d.ts +4 -3
  792. package/transpiled/RTD/factory.js +57 -15
  793. package/transpiled/RTD/factory.js.map +1 -1
  794. package/transpiled/RTD/index.d.ts +8 -8
  795. package/transpiled/RTD/index.js +8 -37
  796. package/transpiled/RTD/index.js.map +1 -1
  797. package/transpiled/RTD/segment.d.ts +8 -0
  798. package/transpiled/RTD/segment.js +21 -7
  799. package/transpiled/RTD/segment.js.map +1 -1
  800. package/transpiled/RTD/syntax/index.d.ts +2 -2
  801. package/transpiled/RTD/syntax/index.js +2 -18
  802. package/transpiled/RTD/syntax/index.js.map +1 -1
  803. package/transpiled/RTD/syntax/parse.d.ts +1 -1
  804. package/transpiled/RTD/syntax/parse.js +38 -54
  805. package/transpiled/RTD/syntax/parse.js.map +1 -1
  806. package/transpiled/RTD/syntax/types.d.ts +14 -3
  807. package/transpiled/RTD/syntax/types.js +10 -4
  808. package/transpiled/RTD/syntax/types.js.map +1 -1
  809. package/transpiled/Remotes.d.ts +7 -7
  810. package/transpiled/Remotes.js +15 -16
  811. package/transpiled/Remotes.js.map +1 -1
  812. package/transpiled/Tenant.d.ts +15 -4
  813. package/transpiled/Tenant.js +39 -14
  814. package/transpiled/Tenant.js.map +1 -1
  815. package/transpiled/const.d.ts +36 -0
  816. package/transpiled/const.js +37 -0
  817. package/transpiled/const.js.map +1 -0
  818. package/transpiled/deployment.d.ts +4 -1
  819. package/transpiled/deployment.js +51 -54
  820. package/transpiled/deployment.js.map +1 -1
  821. package/transpiled/directives/auth/Anonymous.d.ts +17 -2
  822. package/transpiled/directives/auth/Anonymous.js +23 -9
  823. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  824. package/transpiled/directives/auth/Anyone.d.ts +10 -0
  825. package/transpiled/directives/auth/Anyone.js +17 -0
  826. package/transpiled/directives/auth/Anyone.js.map +1 -0
  827. package/transpiled/directives/auth/Assert.d.ts +9 -0
  828. package/transpiled/directives/auth/Assert.js +33 -0
  829. package/transpiled/directives/auth/Assert.js.map +1 -0
  830. package/transpiled/directives/auth/Authorization.d.ts +44 -8
  831. package/transpiled/directives/auth/Authorization.js +223 -85
  832. package/transpiled/directives/auth/Authorization.js.map +1 -1
  833. package/transpiled/directives/auth/Delegate.d.ts +13 -4
  834. package/transpiled/directives/auth/Delegate.js +23 -10
  835. package/transpiled/directives/auth/Delegate.js.map +1 -1
  836. package/transpiled/directives/auth/Echo.d.ts +6 -4
  837. package/transpiled/directives/auth/Echo.js +14 -9
  838. package/transpiled/directives/auth/Echo.js.map +1 -1
  839. package/transpiled/directives/auth/Federation.d.ts +21 -0
  840. package/transpiled/directives/auth/Federation.js +54 -0
  841. package/transpiled/directives/auth/Federation.js.map +1 -0
  842. package/transpiled/directives/auth/Id.d.ts +12 -3
  843. package/transpiled/directives/auth/Id.js +13 -5
  844. package/transpiled/directives/auth/Id.js.map +1 -1
  845. package/transpiled/directives/auth/Incept.d.ts +11 -6
  846. package/transpiled/directives/auth/Incept.js +67 -50
  847. package/transpiled/directives/auth/Incept.js.map +1 -1
  848. package/transpiled/directives/auth/Input.d.ts +15 -0
  849. package/transpiled/directives/auth/Input.js +49 -0
  850. package/transpiled/directives/auth/Input.js.map +1 -0
  851. package/transpiled/directives/auth/Role.d.ts +12 -3
  852. package/transpiled/directives/auth/Role.js +28 -16
  853. package/transpiled/directives/auth/Role.js.map +1 -1
  854. package/transpiled/directives/auth/Rule.d.ts +8 -5
  855. package/transpiled/directives/auth/Rule.js +23 -7
  856. package/transpiled/directives/auth/Rule.js.map +1 -1
  857. package/transpiled/directives/auth/Scheme.d.ts +4 -2
  858. package/transpiled/directives/auth/Scheme.js +11 -35
  859. package/transpiled/directives/auth/Scheme.js.map +1 -1
  860. package/transpiled/directives/auth/create.d.ts +2 -0
  861. package/transpiled/directives/auth/create.js +10 -0
  862. package/transpiled/directives/auth/create.js.map +1 -0
  863. package/transpiled/directives/auth/index.d.ts +1 -1
  864. package/transpiled/directives/auth/index.js +2 -5
  865. package/transpiled/directives/auth/index.js.map +1 -1
  866. package/transpiled/directives/auth/schemes.d.ts +26 -3
  867. package/transpiled/directives/auth/schemes.js +32 -8
  868. package/transpiled/directives/auth/schemes.js.map +1 -1
  869. package/transpiled/directives/auth/split.d.ts +1 -1
  870. package/transpiled/directives/auth/split.js +3 -30
  871. package/transpiled/directives/auth/split.js.map +1 -1
  872. package/transpiled/directives/auth/types.d.ts +37 -12
  873. package/transpiled/directives/auth/types.js +1 -2
  874. package/transpiled/directives/cache/Cache.d.ts +6 -6
  875. package/transpiled/directives/cache/Cache.js +54 -14
  876. package/transpiled/directives/cache/Cache.js.map +1 -1
  877. package/transpiled/directives/cache/Control.d.ts +3 -3
  878. package/transpiled/directives/cache/Control.js +16 -22
  879. package/transpiled/directives/cache/Control.js.map +1 -1
  880. package/transpiled/directives/cache/Exact.d.ts +1 -1
  881. package/transpiled/directives/cache/Exact.js +2 -6
  882. package/transpiled/directives/cache/Exact.js.map +1 -1
  883. package/transpiled/directives/cache/etag.d.ts +10 -0
  884. package/transpiled/directives/cache/etag.js +30 -0
  885. package/transpiled/directives/cache/etag.js.map +1 -0
  886. package/transpiled/directives/cache/index.d.ts +1 -1
  887. package/transpiled/directives/cache/index.js +2 -5
  888. package/transpiled/directives/cache/index.js.map +1 -1
  889. package/transpiled/directives/cache/types.d.ts +1 -1
  890. package/transpiled/directives/cache/types.js +1 -2
  891. package/transpiled/directives/cors/CORS.d.ts +10 -3
  892. package/transpiled/directives/cors/CORS.js +38 -21
  893. package/transpiled/directives/cors/CORS.js.map +1 -1
  894. package/transpiled/directives/cors/index.d.ts +1 -1
  895. package/transpiled/directives/cors/index.js +2 -5
  896. package/transpiled/directives/cors/index.js.map +1 -1
  897. package/transpiled/directives/dev/Development.d.ts +4 -4
  898. package/transpiled/directives/dev/Development.js +19 -15
  899. package/transpiled/directives/dev/Development.js.map +1 -1
  900. package/transpiled/directives/dev/Faulty.d.ts +8 -0
  901. package/transpiled/directives/dev/Faulty.js +19 -0
  902. package/transpiled/directives/dev/Faulty.js.map +1 -0
  903. package/transpiled/directives/dev/Sleep.d.ts +9 -0
  904. package/transpiled/directives/dev/Sleep.js +41 -0
  905. package/transpiled/directives/dev/Sleep.js.map +1 -0
  906. package/transpiled/directives/dev/Stub.d.ts +2 -2
  907. package/transpiled/directives/dev/Stub.js +1 -5
  908. package/transpiled/directives/dev/Stub.js.map +1 -1
  909. package/transpiled/directives/dev/Throw.d.ts +2 -2
  910. package/transpiled/directives/dev/Throw.js +1 -5
  911. package/transpiled/directives/dev/Throw.js.map +1 -1
  912. package/transpiled/directives/dev/index.d.ts +1 -1
  913. package/transpiled/directives/dev/index.js +2 -5
  914. package/transpiled/directives/dev/index.js.map +1 -1
  915. package/transpiled/directives/dev/types.d.ts +2 -2
  916. package/transpiled/directives/dev/types.js +1 -2
  917. package/transpiled/directives/flow/Compose.d.ts +9 -0
  918. package/transpiled/directives/flow/Compose.js +71 -0
  919. package/transpiled/directives/flow/Compose.js.map +1 -0
  920. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  921. package/transpiled/directives/flow/Fetch.js +51 -0
  922. package/transpiled/directives/flow/Fetch.js.map +1 -0
  923. package/transpiled/directives/flow/Flow.d.ts +10 -0
  924. package/transpiled/directives/flow/Flow.js +29 -0
  925. package/transpiled/directives/flow/Flow.js.map +1 -0
  926. package/transpiled/directives/flow/index.d.ts +2 -0
  927. package/transpiled/directives/flow/index.js +3 -0
  928. package/transpiled/directives/flow/index.js.map +1 -0
  929. package/transpiled/directives/flow/types.d.ts +6 -0
  930. package/transpiled/directives/flow/types.js +2 -0
  931. package/transpiled/directives/flow/types.js.map +1 -0
  932. package/transpiled/directives/help/Family.d.ts +28 -0
  933. package/transpiled/directives/help/Family.js +83 -0
  934. package/transpiled/directives/help/Family.js.map +1 -0
  935. package/transpiled/directives/help/Help.d.ts +22 -0
  936. package/transpiled/directives/help/Help.js +36 -0
  937. package/transpiled/directives/help/Help.js.map +1 -0
  938. package/transpiled/directives/help/Parameters.d.ts +18 -0
  939. package/transpiled/directives/help/Parameters.js +34 -0
  940. package/transpiled/directives/help/Parameters.js.map +1 -0
  941. package/transpiled/directives/help/described.d.ts +16 -0
  942. package/transpiled/directives/help/described.js +23 -0
  943. package/transpiled/directives/help/described.js.map +1 -0
  944. package/transpiled/directives/help/index.d.ts +22 -0
  945. package/transpiled/directives/help/index.js +34 -0
  946. package/transpiled/directives/help/index.js.map +1 -0
  947. package/transpiled/directives/index.d.ts +6 -2
  948. package/transpiled/directives/index.js +30 -13
  949. package/transpiled/directives/index.js.map +1 -1
  950. package/transpiled/directives/io/Directive.d.ts +8 -3
  951. package/transpiled/directives/io/Directive.js +1 -2
  952. package/transpiled/directives/io/IO.d.ts +24 -5
  953. package/transpiled/directives/io/IO.js +60 -17
  954. package/transpiled/directives/io/IO.js.map +1 -1
  955. package/transpiled/directives/io/Input.d.ts +5 -4
  956. package/transpiled/directives/io/Input.js +18 -38
  957. package/transpiled/directives/io/Input.js.map +1 -1
  958. package/transpiled/directives/io/Message.js +1 -2
  959. package/transpiled/directives/io/Output.d.ts +8 -4
  960. package/transpiled/directives/io/Output.js +24 -40
  961. package/transpiled/directives/io/Output.js.map +1 -1
  962. package/transpiled/directives/io/Status.d.ts +19 -0
  963. package/transpiled/directives/io/Status.js +34 -0
  964. package/transpiled/directives/io/Status.js.map +1 -0
  965. package/transpiled/directives/io/Throttle.d.ts +11 -0
  966. package/transpiled/directives/io/Throttle.js +22 -0
  967. package/transpiled/directives/io/Throttle.js.map +1 -0
  968. package/transpiled/directives/io/index.d.ts +1 -1
  969. package/transpiled/directives/io/index.js +2 -5
  970. package/transpiled/directives/io/index.js.map +1 -1
  971. package/transpiled/directives/io/lib/throttle/Configuration.d.ts +26 -0
  972. package/transpiled/directives/io/lib/throttle/Configuration.js +31 -0
  973. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
  974. package/transpiled/directives/io/lib/throttle/Keys.d.ts +14 -0
  975. package/transpiled/directives/io/lib/throttle/Keys.js +32 -0
  976. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
  977. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +70 -0
  978. package/transpiled/directives/io/lib/throttle/Quotas.js +142 -0
  979. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
  980. package/transpiled/directives/io/lib/throttle/Sync.d.ts +29 -0
  981. package/transpiled/directives/io/lib/throttle/Sync.js +70 -0
  982. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -0
  983. package/transpiled/directives/io/lib/throttle/Warning.d.ts +11 -0
  984. package/transpiled/directives/io/lib/throttle/Warning.js +24 -0
  985. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -0
  986. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +6 -0
  987. package/transpiled/directives/io/lib/throttle/components/Component.js +2 -0
  988. package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
  989. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +14 -0
  990. package/transpiled/directives/io/lib/throttle/components/IP.js +24 -0
  991. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
  992. package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +11 -0
  993. package/transpiled/directives/io/lib/throttle/components/Identity.js +12 -0
  994. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -0
  995. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
  996. package/transpiled/directives/io/lib/throttle/components/Path.js +6 -0
  997. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
  998. package/transpiled/directives/io/lib/throttle/components/Route.d.ts +12 -0
  999. package/transpiled/directives/io/lib/throttle/components/Route.js +16 -0
  1000. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -0
  1001. package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +9 -0
  1002. package/transpiled/directives/io/lib/throttle/components/Segment.js +13 -0
  1003. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -0
  1004. package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
  1005. package/transpiled/directives/io/lib/throttle/components/index.js +13 -0
  1006. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
  1007. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
  1008. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +2 -0
  1009. package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
  1010. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
  1011. package/transpiled/directives/io/lib/throttle/conditions/Status.js +12 -0
  1012. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
  1013. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
  1014. package/transpiled/directives/io/lib/throttle/conditions/index.js +5 -0
  1015. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
  1016. package/transpiled/directives/io/lib/throttle/index.d.ts +4 -0
  1017. package/transpiled/directives/io/lib/throttle/index.js +5 -0
  1018. package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
  1019. package/transpiled/directives/io/schemas.d.ts +6 -4
  1020. package/transpiled/directives/io/schemas.js +8 -13
  1021. package/transpiled/directives/io/schemas.js.map +1 -1
  1022. package/transpiled/directives/map/Authority.d.ts +6 -0
  1023. package/transpiled/directives/map/Authority.js +12 -0
  1024. package/transpiled/directives/map/Authority.js.map +1 -0
  1025. package/transpiled/directives/map/Buffer.d.ts +6 -0
  1026. package/transpiled/directives/map/Buffer.js +12 -0
  1027. package/transpiled/directives/map/Buffer.js.map +1 -0
  1028. package/transpiled/directives/map/Claims.d.ts +10 -0
  1029. package/transpiled/directives/map/Claims.js +37 -0
  1030. package/transpiled/directives/map/Claims.js.map +1 -0
  1031. package/transpiled/directives/map/Directive.d.ts +3 -0
  1032. package/transpiled/directives/map/Directive.js +2 -0
  1033. package/transpiled/directives/map/Directive.js.map +1 -0
  1034. package/transpiled/directives/map/Headers.d.ts +14 -0
  1035. package/transpiled/directives/map/Headers.js +43 -0
  1036. package/transpiled/directives/map/Headers.js.map +1 -0
  1037. package/transpiled/directives/map/Language.d.ts +10 -0
  1038. package/transpiled/directives/map/Language.js +31 -0
  1039. package/transpiled/directives/map/Language.js.map +1 -0
  1040. package/transpiled/directives/map/Languages.d.ts +4 -0
  1041. package/transpiled/directives/map/Languages.js +10 -0
  1042. package/transpiled/directives/map/Languages.js.map +1 -0
  1043. package/transpiled/directives/map/Map.d.ts +15 -0
  1044. package/transpiled/directives/map/Map.js +50 -0
  1045. package/transpiled/directives/map/Map.js.map +1 -0
  1046. package/transpiled/directives/map/Mapping.d.ts +26 -0
  1047. package/transpiled/directives/map/Mapping.js +29 -0
  1048. package/transpiled/directives/map/Mapping.js.map +1 -0
  1049. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  1050. package/transpiled/directives/map/Properties.js +10 -0
  1051. package/transpiled/directives/map/Properties.js.map +1 -0
  1052. package/transpiled/directives/map/Segments.d.ts +9 -0
  1053. package/transpiled/directives/map/Segments.js +32 -0
  1054. package/transpiled/directives/map/Segments.js.map +1 -0
  1055. package/transpiled/directives/map/index.d.ts +2 -0
  1056. package/transpiled/directives/map/index.js +3 -0
  1057. package/transpiled/directives/map/index.js.map +1 -0
  1058. package/transpiled/directives/mcp/MCP.d.ts +18 -0
  1059. package/transpiled/directives/mcp/MCP.js +25 -0
  1060. package/transpiled/directives/mcp/MCP.js.map +1 -0
  1061. package/transpiled/directives/mcp/Tool.d.ts +12 -0
  1062. package/transpiled/directives/mcp/Tool.js +23 -0
  1063. package/transpiled/directives/mcp/Tool.js.map +1 -0
  1064. package/transpiled/directives/mcp/index.d.ts +4 -0
  1065. package/transpiled/directives/mcp/index.js +4 -0
  1066. package/transpiled/directives/mcp/index.js.map +1 -0
  1067. package/transpiled/directives/oauth/Discovery.d.ts +23 -0
  1068. package/transpiled/directives/oauth/Discovery.js +55 -0
  1069. package/transpiled/directives/oauth/Discovery.js.map +1 -0
  1070. package/transpiled/directives/oauth/documents.d.ts +9 -0
  1071. package/transpiled/directives/oauth/documents.js +82 -0
  1072. package/transpiled/directives/oauth/documents.js.map +1 -0
  1073. package/transpiled/directives/oauth/index.d.ts +2 -0
  1074. package/transpiled/directives/oauth/index.js +3 -0
  1075. package/transpiled/directives/oauth/index.js.map +1 -0
  1076. package/transpiled/directives/octets/Context.d.ts +2 -2
  1077. package/transpiled/directives/octets/Context.js +4 -31
  1078. package/transpiled/directives/octets/Context.js.map +1 -1
  1079. package/transpiled/directives/octets/Delete.d.ts +6 -6
  1080. package/transpiled/directives/octets/Delete.js +23 -47
  1081. package/transpiled/directives/octets/Delete.js.map +1 -1
  1082. package/transpiled/directives/octets/Directive.d.ts +9 -3
  1083. package/transpiled/directives/octets/Directive.js +1 -5
  1084. package/transpiled/directives/octets/Directive.js.map +1 -1
  1085. package/transpiled/directives/octets/Get.d.ts +17 -0
  1086. package/transpiled/directives/octets/Get.js +69 -0
  1087. package/transpiled/directives/octets/Get.js.map +1 -0
  1088. package/transpiled/directives/octets/Octets.d.ts +9 -6
  1089. package/transpiled/directives/octets/Octets.js +27 -26
  1090. package/transpiled/directives/octets/Octets.js.map +1 -1
  1091. package/transpiled/directives/octets/Put.d.ts +33 -0
  1092. package/transpiled/directives/octets/Put.js +82 -0
  1093. package/transpiled/directives/octets/Put.js.map +1 -0
  1094. package/transpiled/directives/octets/Workflow.d.ts +6 -6
  1095. package/transpiled/directives/octets/Workflow.js +14 -36
  1096. package/transpiled/directives/octets/Workflow.js.map +1 -1
  1097. package/transpiled/directives/octets/bytes.d.ts +1 -0
  1098. package/transpiled/directives/octets/bytes.js +14 -0
  1099. package/transpiled/directives/octets/bytes.js.map +1 -0
  1100. package/transpiled/directives/octets/index.d.ts +1 -1
  1101. package/transpiled/directives/octets/index.js +2 -5
  1102. package/transpiled/directives/octets/index.js.map +1 -1
  1103. package/transpiled/directives/octets/schemas.d.ts +6 -10
  1104. package/transpiled/directives/octets/schemas.js +8 -17
  1105. package/transpiled/directives/octets/schemas.js.map +1 -1
  1106. package/transpiled/directives/octets/types.d.ts +3 -1
  1107. package/transpiled/directives/octets/types.js +1 -2
  1108. package/transpiled/directives/octets/workflows/Execution.d.ts +9 -4
  1109. package/transpiled/directives/octets/workflows/Execution.js +47 -15
  1110. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  1111. package/transpiled/directives/octets/workflows/Workflow.d.ts +10 -5
  1112. package/transpiled/directives/octets/workflows/Workflow.js +16 -14
  1113. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  1114. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  1115. package/transpiled/directives/octets/workflows/index.js +1 -5
  1116. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  1117. package/transpiled/directives/require/Directive.d.ts +2 -2
  1118. package/transpiled/directives/require/Directive.js +1 -2
  1119. package/transpiled/directives/require/Headers.d.ts +3 -3
  1120. package/transpiled/directives/require/Headers.js +4 -8
  1121. package/transpiled/directives/require/Headers.js.map +1 -1
  1122. package/transpiled/directives/require/Require.d.ts +4 -4
  1123. package/transpiled/directives/require/Require.js +8 -15
  1124. package/transpiled/directives/require/Require.js.map +1 -1
  1125. package/transpiled/directives/require/index.d.ts +1 -1
  1126. package/transpiled/directives/require/index.js +2 -5
  1127. package/transpiled/directives/require/index.js.map +1 -1
  1128. package/transpiled/discovery.js +1 -2
  1129. package/transpiled/exceptions.d.ts +1 -1
  1130. package/transpiled/exceptions.js +16 -34
  1131. package/transpiled/exceptions.js.map +1 -1
  1132. package/transpiled/index.d.ts +7 -5
  1133. package/transpiled/index.js +4 -11
  1134. package/transpiled/index.js.map +1 -1
  1135. package/transpiled/io.d.ts +1 -1
  1136. package/transpiled/io.js +1 -2
  1137. package/transpiled/manifest.d.ts +1 -1
  1138. package/transpiled/manifest.js +22 -49
  1139. package/transpiled/manifest.js.map +1 -1
  1140. package/transpiled/root.d.ts +1 -1
  1141. package/transpiled/root.js +22 -11
  1142. package/transpiled/root.js.map +1 -1
  1143. package/transpiled/schemas.d.ts +5 -3
  1144. package/transpiled/schemas.js +8 -13
  1145. package/transpiled/schemas.js.map +1 -1
  1146. package/transpiled/service.d.ts +7 -0
  1147. package/transpiled/service.js +74 -0
  1148. package/transpiled/service.js.map +1 -0
  1149. package/transpiled/shortcuts.d.ts +3 -0
  1150. package/transpiled/shortcuts.js +13 -0
  1151. package/transpiled/shortcuts.js.map +1 -0
  1152. package/transpiled/userland.d.ts +39 -0
  1153. package/transpiled/userland.js +7 -0
  1154. package/transpiled/userland.js.map +1 -0
  1155. package/tsconfig.json +2 -1
  1156. package/tsconfig.tsbuildinfo +1 -0
  1157. package/ui/dist/_app/env.js +1 -0
  1158. package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +2 -0
  1159. package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +1 -0
  1160. package/ui/dist/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  1161. package/ui/dist/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  1162. package/ui/dist/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  1163. package/ui/dist/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  1164. package/ui/dist/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  1165. package/ui/dist/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  1166. package/ui/dist/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  1167. package/ui/dist/_app/immutable/chunks/B_pK3U1C.js +6 -0
  1168. package/ui/dist/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  1169. package/ui/dist/_app/immutable/chunks/CiKbPLyY.js +1 -0
  1170. package/ui/dist/_app/immutable/chunks/D9tE1yyO.js +1 -0
  1171. package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +3 -0
  1172. package/ui/dist/_app/immutable/chunks/xihTtKlq.js +1 -0
  1173. package/ui/dist/_app/immutable/entry/app.DMqmL4NY.js +2 -0
  1174. package/ui/dist/_app/immutable/entry/start.CRe7HWBI.js +1 -0
  1175. package/ui/dist/_app/immutable/nodes/0.D9m-6cbM.js +1 -0
  1176. package/ui/dist/_app/immutable/nodes/1.Cgi_RcSO.js +1 -0
  1177. package/ui/dist/_app/immutable/nodes/2.D_Cbxgz4.js +14 -0
  1178. package/ui/dist/_app/version.json +1 -0
  1179. package/ui/dist/apple-touch-icon.png +0 -0
  1180. package/ui/dist/favicon-96x96.png +0 -0
  1181. package/ui/dist/favicon.ico +0 -0
  1182. package/ui/dist/index.html +66 -0
  1183. package/components/identity.bans/operations/transit.d.ts +0 -14
  1184. package/components/identity.bans/operations/transit.js.map +0 -1
  1185. package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
  1186. package/components/identity.basic/operations/authenticate.d.ts +0 -13
  1187. package/components/identity.basic/operations/authenticate.js.map +0 -1
  1188. package/components/identity.basic/operations/incept.d.ts +0 -12
  1189. package/components/identity.basic/operations/incept.js.map +0 -1
  1190. package/components/identity.basic/operations/transit.d.ts +0 -12
  1191. package/components/identity.basic/operations/transit.js.map +0 -1
  1192. package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
  1193. package/components/identity.basic/operations/types.d.ts +0 -40
  1194. package/components/identity.basic/operations/types.js +0 -3
  1195. package/components/identity.basic/operations/types.js.map +0 -1
  1196. package/components/identity.basic/source/types.ts +0 -44
  1197. package/components/identity.federation/operations/authenticate.d.ts +0 -3
  1198. package/components/identity.federation/operations/authenticate.js.map +0 -1
  1199. package/components/identity.federation/operations/incept.d.ts +0 -11
  1200. package/components/identity.federation/operations/incept.js.map +0 -1
  1201. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  1202. package/components/identity.federation/operations/lib/assertions-as-values.js +0 -45
  1203. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  1204. package/components/identity.federation/operations/lib/jwt.d.ts +0 -19
  1205. package/components/identity.federation/operations/lib/jwt.js +0 -136
  1206. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  1207. package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
  1208. package/components/identity.federation/operations/types/configuration.d.ts +0 -15
  1209. package/components/identity.federation/operations/types/configuration.js.map +0 -1
  1210. package/components/identity.federation/operations/types/context.d.ts +0 -56
  1211. package/components/identity.federation/operations/types/context.js.map +0 -1
  1212. package/components/identity.federation/operations/types/entity.d.ts +0 -6
  1213. package/components/identity.federation/operations/types/entity.js.map +0 -1
  1214. package/components/identity.federation/operations/types/index.d.ts +0 -3
  1215. package/components/identity.federation/operations/types/index.js.map +0 -1
  1216. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  1217. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  1218. package/components/identity.federation/source/lib/jwt.ts +0 -170
  1219. package/components/identity.roles/operations/grant.d.ts +0 -10
  1220. package/components/identity.roles/operations/grant.js.map +0 -1
  1221. package/components/identity.roles/operations/lib/Entity.d.ts +0 -5
  1222. package/components/identity.roles/operations/lib/Entity.js.map +0 -1
  1223. package/components/identity.roles/operations/list.d.ts +0 -2
  1224. package/components/identity.roles/operations/list.js.map +0 -1
  1225. package/components/identity.roles/operations/principal.d.ts +0 -13
  1226. package/components/identity.roles/operations/principal.js.map +0 -1
  1227. package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
  1228. package/components/identity.tokens/operations/authenticate.d.ts +0 -9
  1229. package/components/identity.tokens/operations/authenticate.js.map +0 -1
  1230. package/components/identity.tokens/operations/decrypt.d.ts +0 -3
  1231. package/components/identity.tokens/operations/decrypt.js.map +0 -1
  1232. package/components/identity.tokens/operations/encrypt.d.ts +0 -8
  1233. package/components/identity.tokens/operations/encrypt.js.map +0 -1
  1234. package/components/identity.tokens/operations/revoke.d.ts +0 -2
  1235. package/components/identity.tokens/operations/revoke.js.map +0 -1
  1236. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
  1237. package/components/identity.tokens/operations/types.d.ts +0 -46
  1238. package/components/identity.tokens/operations/types.js +0 -3
  1239. package/components/identity.tokens/operations/types.js.map +0 -1
  1240. package/components/identity.tokens/source/types.ts +0 -55
  1241. package/components/octets.storage/manifest.toa.yaml +0 -21
  1242. package/components/octets.storage/operations/delete.js +0 -7
  1243. package/components/octets.storage/operations/fetch.js +0 -46
  1244. package/components/octets.storage/operations/get.js +0 -7
  1245. package/components/octets.storage/operations/list.js +0 -7
  1246. package/components/octets.storage/operations/store.js +0 -11
  1247. package/cucumber.js +0 -7
  1248. package/documentation/vary.md +0 -69
  1249. package/entity.json +0 -0
  1250. package/features/steps/IdP.ts +0 -154
  1251. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  1252. package/features/vary.feature +0 -252
  1253. package/schemas/octets/context.cos.yaml +0 -1
  1254. package/schemas/octets/fetch.cos.yaml +0 -3
  1255. package/schemas/octets/list.cos.yaml +0 -2
  1256. package/schemas/octets/permute.cos.yaml +0 -1
  1257. package/schemas/octets/store.cos.yaml +0 -3
  1258. package/source/directives/octets/Fetch.ts +0 -100
  1259. package/source/directives/octets/List.ts +0 -72
  1260. package/source/directives/octets/Store.ts +0 -126
  1261. package/source/directives/vary/Directive.ts +0 -7
  1262. package/source/directives/vary/Embed.ts +0 -68
  1263. package/source/directives/vary/Vary.ts +0 -50
  1264. package/source/directives/vary/embeddings/Authority.ts +0 -8
  1265. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  1266. package/source/directives/vary/embeddings/Header.ts +0 -32
  1267. package/source/directives/vary/embeddings/Language.ts +0 -31
  1268. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  1269. package/source/directives/vary/embeddings/index.ts +0 -13
  1270. package/source/directives/vary/index.ts +0 -3
  1271. package/source/index.test.ts +0 -9
  1272. package/transpiled/directives/octets/Fetch.d.ts +0 -18
  1273. package/transpiled/directives/octets/Fetch.js +0 -92
  1274. package/transpiled/directives/octets/Fetch.js.map +0 -1
  1275. package/transpiled/directives/octets/List.d.ts +0 -16
  1276. package/transpiled/directives/octets/List.js +0 -74
  1277. package/transpiled/directives/octets/List.js.map +0 -1
  1278. package/transpiled/directives/octets/Store.d.ts +0 -24
  1279. package/transpiled/directives/octets/Store.js +0 -95
  1280. package/transpiled/directives/octets/Store.js.map +0 -1
  1281. package/transpiled/directives/vary/Directive.d.ts +0 -6
  1282. package/transpiled/directives/vary/Directive.js +0 -3
  1283. package/transpiled/directives/vary/Directive.js.map +0 -1
  1284. package/transpiled/directives/vary/Embed.d.ts +0 -11
  1285. package/transpiled/directives/vary/Embed.js +0 -51
  1286. package/transpiled/directives/vary/Embed.js.map +0 -1
  1287. package/transpiled/directives/vary/Properties.js +0 -16
  1288. package/transpiled/directives/vary/Properties.js.map +0 -1
  1289. package/transpiled/directives/vary/Vary.d.ts +0 -10
  1290. package/transpiled/directives/vary/Vary.js +0 -36
  1291. package/transpiled/directives/vary/Vary.js.map +0 -1
  1292. package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
  1293. package/transpiled/directives/vary/embeddings/Authority.js +0 -10
  1294. package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
  1295. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  1296. package/transpiled/directives/vary/embeddings/Embedding.js +0 -3
  1297. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  1298. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  1299. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  1300. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  1301. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  1302. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  1303. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  1304. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  1305. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  1306. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  1307. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  1308. package/transpiled/directives/vary/embeddings/index.js +0 -14
  1309. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  1310. package/transpiled/directives/vary/index.d.ts +0 -2
  1311. package/transpiled/directives/vary/index.js +0 -6
  1312. package/transpiled/directives/vary/index.js.map +0 -1
  1313. package/transpiled/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,81 @@
1
+ # Resource discovery
2
+
3
+ Everything an application serves, at one path, and a page to read it with.
4
+
5
+ ```http
6
+ OPTIONS /.discovery HTTP/1.1
7
+ accept: application/yaml
8
+ ```
9
+
10
+ ```http
11
+ 200 OK
12
+ Allow: GET, HEAD, OPTIONS
13
+ cache-control: private, max-age=1800
14
+
15
+ routes:
16
+ /pots:
17
+ title: Pots
18
+ GET:
19
+ title: Every pot
20
+ description: Every pot there is, newest first.
21
+ output:
22
+ type: array
23
+ items:
24
+ type: object
25
+ properties:
26
+ title: { type: string, maxLength: 64 }
27
+ POST:
28
+ input:
29
+ type: object
30
+ properties:
31
+ title: { type: string, maxLength: 64 }
32
+ required: [title]
33
+ errors:
34
+ - NO_WAY
35
+ /pots/:id:
36
+ protected: true
37
+ GET:
38
+ protected: true
39
+ route:
40
+ id: { title: Which pot }
41
+ ```
42
+
43
+ `routes` is keyed by route template, and an object so that what is said of the whole tree has
44
+ somewhere to go. What a key maps to is what [`OPTIONS`](introspection.md) on that path
45
+ answers — what the resource is, from [`help:node`](help.md), beside every method of it — so a key
46
+ can be read from here and sent straight back as a request. A method this identity may not reach is
47
+ not in either, and a resource they may reach no method of is not here at all — so what a reader
48
+ sees is what they may call, and signing in is what adds to it.
49
+
50
+ A key carries no trailing slash, and a request needs one: `OPTIONS /pots/:id` and
51
+ `OPTIONS /pots/:id/` both answer, but `GET /pots/:id` is `404` and `GET /pots/:id/` is the call.
52
+ Append it.
53
+
54
+ Held for half an hour, and `private`: what is in it is what the identity that asked may reach.
55
+
56
+ ## The page
57
+
58
+ `GET /.discovery/` is a page that reads the tree, served from the same origin the API is. It
59
+ answers before a credential is read, so it opens for a client whose token has expired — which is
60
+ the client most likely to be looking.
61
+
62
+ A method is called from it: the verb is a button, what the method takes is a form, and what came
63
+ back is shown where the form was. The call is made as whoever is reading — the same request they
64
+ would send themselves, and with the same effect.
65
+
66
+ A `GET /` is sent here where its `accept` prefers a page, or asks for nothing in particular — so
67
+ the address of the application opens it in a browser, and a link to that address unfurls as it.
68
+ A client that asked for a media type the gateway answers with gets what it asked for, and a route
69
+ declared at `/` answers `/` as it always did.
70
+
71
+ ## Turning it off
72
+
73
+ Both answer wherever a gateway does, and no annotation turns either on. An application that does
74
+ not publish its routes to everyone refuses `/.discovery` at the ingress, which is the whole of
75
+ what an operator does about it.
76
+
77
+ ## References
78
+
79
+ - [Introspection](introspection.md), which is what an entry is
80
+ - [Help](help.md), which is what names one
81
+ - [Features](../features/discovery.feature)
@@ -0,0 +1,44 @@
1
+ # Request flow
2
+
3
+ ## `flow:fetch`
4
+
5
+ Fetches the content from the resource returned by the specified endpoint.
6
+
7
+ The value of the directive is a `string` specifying endpoint to be called for the redirection
8
+ request.
9
+
10
+ Request `authority`, `path` and `parameters` are passed as input to the redirection endpoint,
11
+ and it must return a URL `string`, an `Error` or an object with the following properties:
12
+
13
+ ```yaml
14
+ url: string
15
+ options?:
16
+ method?: string
17
+ headers?: Record<string, string>
18
+ body?: string
19
+ ```
20
+
21
+ If it returns a URL or Request, then the response to the specified request is returned as the
22
+ response to the original request, along with the `content-type`, `content-length`, and `etag`
23
+ headers.
24
+
25
+ ## `flow:compose`
26
+
27
+ Compose an object from a response stream in object mode.
28
+
29
+ The value of the directive is an object whose values are JavaScript expressions
30
+ accessing the response stream objects composed into an array named `$`.
31
+
32
+ ```yaml
33
+ flow:compose:
34
+ one: $[0].status
35
+ two: $[1].data.foo
36
+ three: $[2].amount
37
+ ```
38
+
39
+ ```yaml
40
+ flow:compose:
41
+ sum: $[0].value + $[1].value
42
+ ```
43
+
44
+ Be careful.
@@ -0,0 +1,122 @@
1
+ # Help
2
+
3
+ What a resource and its methods are, in the words an application chooses for them. One
4
+ declaration, read by everything that describes a resource: [`OPTIONS`](introspection.md),
5
+ [discovery](discovery.md), and the tools [MCP](mcp.md) publishes.
6
+
7
+ ```yaml
8
+ /pots:
9
+ help:node: Pots
10
+ GET:
11
+ help:method: Every pot
12
+ help:query:
13
+ criteria:
14
+ title: What to match
15
+ description: An RSQL expression over a pot's fields.
16
+ endpoint: enumerate
17
+ /:id:
18
+ GET:
19
+ help:method:
20
+ title: One pot
21
+ description: The pot by its id, and what is in it.
22
+ help:route:
23
+ id: Which pot
24
+ endpoint: observe
25
+ ```
26
+
27
+ <dl>
28
+ <dt><code>help:node</code></dt>
29
+ <dd>What the resource is.</dd>
30
+ <dt><code>help:method</code></dt>
31
+ <dd>What one of its methods is.</dd>
32
+ <dt><code>help:route</code></dt>
33
+ <dd>What a route variable is, by the name the template gives it.</dd>
34
+ <dt><code>help:query</code></dt>
35
+ <dd>What a querystring parameter is, by name.</dd>
36
+ </dl>
37
+
38
+ All four take the same value. A bare one is the <code>title</code> — the short thing, and what a
39
+ client has somewhere to put. A sentence is written as a <code>description</code> beside it, and
40
+ either may stand alone. The parameters name each one they describe.
41
+
42
+ `help:method: null` hides the method instead of naming it: it is in no answer — not `OPTIONS`,
43
+ not the [tree](discovery.md), not the tools [MCP](mcp.md) publishes — and is reached exactly as
44
+ it was. What a monitor calls, and what a person has no business going looking for, is declared
45
+ this way. A resource whose every method is hidden answers `403` to `OPTIONS` and is not in the
46
+ tree at all.
47
+
48
+ ```yaml
49
+ /hello/agent:
50
+ GET:
51
+ help:method: null
52
+ endpoint: agent
53
+ ```
54
+
55
+ A title is not a name. A name is an address — `apps._identity._id.repos.POST` — and reads as one;
56
+ this is what a person is shown instead.
57
+
58
+ An operation [states what it is](/documentation/component/declaration.md) as well, and that is not
59
+ this: it is written without knowledge of any route, and a method is an operation and a route
60
+ together. The same operation mounted twice is two methods, and one sentence is not true of both.
61
+ The operation's own is the Introspection's to read, and the gateway does not use it.
62
+
63
+ ## Where it is answered
64
+
65
+ `help:node` is answered beside the methods, and `help:method` inside the method it is on. A verb
66
+ is upper case, so neither key can be mistaken for the other. A parameter's goes in its schema,
67
+ which is where a schema says these anyway:
68
+
69
+ ```yaml
70
+ title: Pots
71
+ GET:
72
+ title: Every pot
73
+ query:
74
+ criteria:
75
+ type: string
76
+ title: What to match
77
+ description: An RSQL expression over a pot's fields.
78
+ ```
79
+
80
+ Describe a parameter by the name the answer carries it under. `map:segments` answers a variable
81
+ under the property it fills, so that is its name here and the template's is nowhere in the answer.
82
+
83
+ A route variable the template names is answered whether or not the operation declares it — an `:id`
84
+ an observation takes through the query is otherwise not in the answer at all, and describing it is
85
+ what puts it there. Anything else is described only where it is already answered. A name that is
86
+ nobody's is not answered, and nothing here checks one: the template does not say them all.
87
+
88
+ `help:query` describes the [parameters a resource declares](query.md#parameters). What selects
89
+ records — `criteria`, `sort` and the rest — is the same of every queryable resource and says so
90
+ itself, so it is neither answered here nor described.
91
+
92
+ ## Where it applies
93
+
94
+ To the node it is written on, and to nothing under it. Every other directive applies downward;
95
+ carried down, this one would say of every resource below that it is the one it was written for.
96
+
97
+ ```yaml
98
+ /pots:
99
+ help:node: Pots # `/pots`, and not `/pots/:id`
100
+ GET: enumerate
101
+ /:id:
102
+ GET: observe
103
+ ```
104
+
105
+ A node whose `/` answers in its place is the exception, because the two are one resource:
106
+
107
+ ```yaml
108
+ /pots:
109
+ help:node: Pots # `/pots/` is what answers, and it is described
110
+ /:
111
+ GET: enumerate
112
+ ```
113
+
114
+ A resource is described beside what it serves, so a node that serves nothing cannot be described.
115
+ Declaring it there is refused where it is written, rather than found missing from the answer.
116
+
117
+ ## References
118
+
119
+ - [Resource introspection](introspection.md), which is where a method's own is answered
120
+ - [Resource discovery](discovery.md), which answers every resource at once
121
+ - [MCP](mcp.md), where a published method is a tool called this
122
+ - [Features](../features/help.feature)
@@ -6,6 +6,9 @@ identifier** of an individual, organization, application or device.
6
6
  To prove its Identity, the request originator must provide a valid _credentials_ that are associated
7
7
  with that Identity.
8
8
 
9
+ Persistent authentication methods and their management resources are described in
10
+ [Persistent credentials](credentials.md).
11
+
9
12
  Identity is intrinsically linked to credentials, as an Identity is established only when the first
10
13
  set of credentials for that Identity is created.
11
14
  In other words, the creation of credentials marks the inception of an Identity.
@@ -38,23 +41,51 @@ See [`identity.basic` component](components.md#basic-credentials).
38
41
 
39
42
  ### Token scheme
40
43
 
41
- Tokens issued by the Authentication system. These tokens are [PASETO](https://paseto.io).
44
+ Tokens issued by the Authentication system. New tokens are compact
45
+ [JSON Web Encryption (JWE)](https://www.rfc-editor.org/rfc/rfc7516) values using direct symmetric
46
+ encryption (`alg: dir`) and AES-256-GCM (`enc: A256GCM`). Legacy PASETO V3.local tokens remain
47
+ accepted during migration and are always replaced on successful authentication.
42
48
 
43
49
  ```http
44
- Authrization: Token v4.local.eyJzdWIiOiJqb2hu...
50
+ Authorization: Token eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwidHlwIjoiSldUIiwia2lkIjo...
45
51
  ```
46
52
 
47
53
  The `Token` is the **primary** authentication scheme.
48
54
  If request originators use an alternative authentication scheme, they will receive a response
49
- containing `Token`credentials and will be required to switch to the `Token` scheme for any
55
+ containing `Token` credentials and will be required to switch to the `Token` scheme for any
50
56
  subsequent requests.
51
- Continued use of other authentication schemes will result in temporary blocking of requests.
52
57
 
53
- See [`identity.tokens` component](components.md#stateless-tokens).
58
+ See [`identity.tokens` component](components.md#local-tokens).
59
+
60
+ ### Failed authentications
61
+
62
+ Credentials that are rejected can be metered per client address, whatever the scheme. An address
63
+ may fail `attempts` at once and earns them back at `attempts` per `interval` seconds; a request
64
+ carrying credentials from an address with nothing left is answered `429 Too Many Requests` with
65
+ `Retry-After`. Nothing is metered unless the exposition annotation carries `bouncer`;
66
+ `attempts` and `interval` default to 20 and 60. The address is the one the request context
67
+ resolved, see [Client address](ip.md): `bouncer` requires `ip`, in the same environment, and a
68
+ request without an address is not metered.
69
+
70
+ ```yaml
71
+ # context.toa.yaml
72
+
73
+ exposition:
74
+ ip: cf-connecting-ip
75
+ bouncer:
76
+ attempts: 20
77
+ interval: 60
78
+ ```
79
+
80
+ The count is shared by the gateway replicas through
81
+ [atomicity](../../../connectors/atomicity/readme.md) and decided in each process; nothing is read on
82
+ the request path.
54
83
 
55
84
  ### Bearer scheme
56
85
 
57
- OpenID tokens issued by trusted providers.
86
+ OpenID tokens issued by trusted providers, and access tokens issued by
87
+ [this authorization server](oauth.md) to OAuth clients. Both are presented the same way, and each
88
+ provider says which credentials are its own; a credential neither claims is refused.
58
89
  For more information, refer
59
90
  to [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html),
60
91
  [RFC6750](https://datatracker.ietf.org/doc/html/rfc6750).
@@ -63,8 +94,8 @@ to [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.ht
63
94
  Authorization: Bearer eyJhbGciOiJIUzI1...
64
95
  ```
65
96
 
66
- Trusted providers are specified using the `identity.federation` property within the configuration
67
- annotation.
97
+ Trusted providers are specified using the `identity.federation` configuration. Provider metadata
98
+ and signing keys are discovered using OpenID Connect discovery and JWKS.
68
99
 
69
100
  ```yaml
70
101
  # context.toa.yaml
@@ -73,16 +104,97 @@ configuration:
73
104
  identity.federation:
74
105
  trust:
75
106
  - iss: https://accounts.google.com
76
- aud:
77
- - <GOOGLE_CLIENT_ID>
107
+ aud: <GOOGLE_CLIENT_ID>
108
+
109
+ - iss: https://appleid.apple.com
110
+ aud: <APPLE_CLIENT_ID>
111
+ secret: <APPLE_CLIENT_SECRET> # enables Authorization Code Flow
112
+ principal:
113
+ authority: example
114
+ iss: https://accounts.google.com
115
+ sub: 4218230498234
116
+ assert: true
117
+ ```
118
+
119
+ `principal` specifies the authority and the values of the `iss` and `sub` claims of an Identity
120
+ that will be granted with a `system` role. The same subject in another authority is ordinary
121
+ credentials.
122
+
123
+ `assert` indicates whether the Identity should be implicitly created when valid credentials for a
124
+ non-existent Identity are provided (default `true`).
125
+
126
+ ### Authorization Code Flow
78
127
 
128
+ [OAuth 2.0 RFC 6749, section 4.1](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1)
129
+
130
+ ```
131
+ GET /identity/
132
+ authorization: Code <credentials>
133
+ ```
134
+
135
+ `<credentials>` is a base64-encoded JSON containing the following properties:
136
+
137
+ ```yaml
138
+ code: authorization code
139
+ iss: code issuer
140
+ for: redirect URI
141
+ ```
142
+
143
+ Trust configuration for the issuer requires either `secret` or `signature`
144
+ to enable the Authorization Code Flow.
145
+
146
+ > If `aud` is an array, the first value is used.
147
+
148
+ ```yaml
149
+ # context.toa.yaml
150
+ configuration:
151
+ identity.federation:
152
+ trust:
153
+ - iss: https://accounts.google.com
154
+ aud: 1045282659797-n705sf85j4b2rodtpdn43od43tvseiet.apps.googleusercontent.com
155
+ secret: $GOOGLE_CLIENT_SECRET
79
156
  - iss: https://appleid.apple.com
157
+ aud: io.toa.services.id
158
+ signature:
159
+ iss: team-id
160
+ kid: key-id
161
+ key: $APPLE_PRIVATE_KEY # PKCS8 PEM, as in the .p8 file
162
+ ```
163
+
164
+ ### OTP scheme
165
+
166
+ One-time passwords.
167
+
168
+ Passwords can be issued by calling `identity.otp.issue` operation, with the following input:
169
+
170
+ ```yaml
171
+ authority: string
172
+ username: string
173
+ ```
174
+
175
+ The reply will contain the `code` property of type `string` formed as a random 6-digit number,
176
+ valid for 60 seconds by default.
177
+
178
+ ```yaml
179
+ code: 123456
180
+ ```
181
+
182
+ OTP can be used with `OTP` authentication formatted as `base64(username:password)`.
183
+
184
+ ```
185
+ GET /identity/ HTTP/1.1
186
+ authentication: OTP dXNlcm5hbWU6MTIzNDU2
187
+ ```
188
+
189
+ OTP expiration time and the number of failed attempts a username is allowed within it can be
190
+ configured using the `identity.otp` configuration.
80
191
 
81
- - iss: private.entity
82
- secrets:
83
- HS384:
84
- key0: <THE-SECRET-STRING-FOR-HS384>
85
- key1: <THE-SECRET-STRING-FOR-HS384> # selected by `kid` in the JWT header
192
+ ```yaml
193
+ # context.toa.yaml
194
+ configuration:
195
+ identity.otp:
196
+ lifetime: 60 # seconds
197
+ attempts: 5
86
198
  ```
87
199
 
88
200
  ## Identity inception
@@ -97,8 +209,9 @@ This can be achieved by using the `auth:incept` directive as follows:
97
209
  name: users
98
210
 
99
211
  entity:
100
- schema:
101
- name: string
212
+ properties:
213
+ name:
214
+ type: string
102
215
 
103
216
  exposition:
104
217
  /:
@@ -110,7 +223,7 @@ exposition:
110
223
  The value of the `auth:incept` directive refers to the name of the response property that will be
111
224
  returned by the `POST` operation, containing the created entity identifier.
112
225
 
113
- A request with Identity inception must contain (non-existent) credentials that will be associated
226
+ A request with Identity inception may contain (non-existent) credentials that will be associated
114
227
  with the created Identity.
115
228
 
116
229
  ```http
@@ -132,6 +245,39 @@ id: 2428c31ecb6e4a51a24ef52f0c4181b9
132
245
  As a result of processing the above request, the provided Basic credentials associated with the
133
246
  Identity `2428c31ecb6e4a51a24ef52f0c4181b9` are created.
134
247
 
248
+ > `auth:incept` directive may have a `null` value, which means that the Identity will be created
249
+ > without any associated entity.
250
+
251
+ Inception is supported for `Basic` and `Bearer` authentication schemes.
252
+
253
+ Inception goes ahead when the request carries no credentials, or credentials the scheme verified
254
+ and no Identity owns, which its `authenticate` operation reports as `NOT_FOUND`. Credentials
255
+ rejected for any other reason, a wrong password for one, are answered with `401 Unauthorized`
256
+ before the endpoint is called.
257
+
258
+ ## Identity assertion
259
+
260
+ `auth:assert` directive is used to ensure that given credentials are associated with an existing
261
+ Identity or to create a new Identity if it does not exist.
262
+ The directive itself does not allow or deny access to the requested resource.
263
+
264
+ > Used authentication scheme must support inception.
265
+
266
+ ```yaml
267
+ /accounts/echo:
268
+ auth:assert: true
269
+ auth:anyone: true
270
+ endpoint: echo
271
+ ```
272
+
273
+ ```http
274
+ GET /accounts/echo/
275
+ authorization: Basic new-or-existent-credentials
276
+ ```
277
+
278
+ If new Identity is created and endpoint returns a successful response, the status code `201 Created`
279
+ is returned.
280
+
135
281
  ## FAQ
136
282
 
137
283
  <dl>
@@ -0,0 +1,123 @@
1
+ # Resource introspection
2
+
3
+ Any resource can be introspected by sending an `OPTIONS` request to the resource's path.
4
+ [Resource discovery](discovery.md) answers every resource at once, at `OPTIONS /.discovery`, and
5
+ serves a page that reads it.
6
+
7
+ What it answers is what the route's directives leave of what the operation declared, for each
8
+ method this identity may reach. A method they may not is not there, nor in `Allow`; a resource
9
+ whose every method they may not reach is `403`.
10
+
11
+ A credential does not narrow it. What refuses one at an [`anonymous`](access.md#anonymous) route
12
+ is about a reply a cache would hold, and a description is not one — so a route that is public is
13
+ described to whoever asks, as it is at `/.rpc` and `/.mcp`.
14
+
15
+ What the resource itself is, from [`help:node`](help.md), is answered beside the methods rather
16
+ than inside one. A verb is upper case, so neither key can be mistaken for the other. A resource
17
+ carries `private`, `protected` and `system` where any of its methods does. A method
18
+ [`help:method: null`](help.md) hides is in none of this, and is reached as it always was.
19
+
20
+ Introspection properties:
21
+
22
+ - `title` and `description` what the route states this method is, from
23
+ [`help:method`](help.md). The operation states what it is too, and that is not this: it is
24
+ written without knowledge of any route, and the same operation mounted twice is two methods
25
+ - `anonymous` reaching it takes nothing — [`auth:anonymous`](access.md#anonymous). Said rather
26
+ than left unsaid, because it is also what refuses a caller presenting a credential: a client
27
+ holding one has to know which methods not to present it to
28
+ - `authenticated` reaching it takes being someone, whoever — [`auth:anyone`](access.md#anyone),
29
+ `auth:delegate` and `auth:claims`
30
+ - `private` reaching it is being the identity it is about — [`auth:id`](access.md#id)
31
+ - `protected` reaching it takes a role — [`auth:role`](access.md#role)
32
+ - `system` and that role is one of the `system` scope, which guards what an application runs
33
+ on rather than what it serves
34
+ - `route` route parameters, including what `map:segments` names differently, each as
35
+ [`help:route`](help.md) describes it
36
+ - `query` the [query parameters](query.md#parameters) this resource declares, each as
37
+ [`help:query`](help.md) describes it. What selects records — `criteria`, `sort`, `limit`,
38
+ `omit`, `search` — is not among them: it is the same of every queryable resource, and so
39
+ not something one says about itself. A [procedure](rpc.md) carries it, because there it is
40
+ something the caller sends
41
+ - `octets` what sending a file takes, from [`octets:put`](octets.md): the media types it
42
+ `accept`s, the `limit` a larger body is refused by, and `stream` where storing it starts a
43
+ workflow and the reply arrives in parts rather than as one object
44
+ - `input` input schema, restricted by `io:input`, without what the gateway fills itself
45
+ - `output` output schema, restricted by `io:output`; absent where the reply is not sent at all.
46
+ An operation that declares none is described by what its type answers: a transition, an
47
+ observation and an assignment work on the Entity Object, so that is what they are said to
48
+ answer — a set of them where the scope is a set. A computation neither uses the scope nor
49
+ produces one, and an effect answers whatever it computed, so neither is guessed at. It is a
50
+ description and nothing is held to it — an operation answering a projection says so by
51
+ declaring its own `output`
52
+ - `errors` error codes
53
+
54
+ ```http
55
+ OPTIONS /pots/:id/ HTTP/1.1
56
+ accept: application/yaml
57
+ ```
58
+
59
+ ```http
60
+ 200 OK
61
+ Allow: GET, POST
62
+
63
+ GET:
64
+ description: Every pot there is, newest first.
65
+ route:
66
+ id:
67
+ type: string
68
+ pattern: ^[a-fA-F0-9]{32}$
69
+ output:
70
+ type: array
71
+ items:
72
+ type: object
73
+ properties:
74
+ title:
75
+ type: string
76
+ maxLength: 64
77
+ volume:
78
+ type: number
79
+ exclusiveMinimum: 0
80
+ maximum: 1000
81
+ temperature:
82
+ type: number
83
+ exclusiveMinimum: 0
84
+ maximum: 300
85
+ additionalProperties: false
86
+ required:
87
+ - id
88
+ - title
89
+ - volume
90
+ POST:
91
+ route:
92
+ id:
93
+ type: string
94
+ pattern: ^[a-fA-F0-9]{32}$
95
+ input:
96
+ type: object
97
+ properties:
98
+ title:
99
+ type: string
100
+ maxLength: 64
101
+ temperature:
102
+ type: number
103
+ exclusiveMinimum: 0
104
+ maximum: 300
105
+ volume:
106
+ type: number
107
+ exclusiveMinimum: 0
108
+ maximum: 1000
109
+ additionalProperties: false
110
+ required:
111
+ - title
112
+ - volume
113
+ output:
114
+ type: object
115
+ properties:
116
+ id:
117
+ type: string
118
+ pattern: ^[a-fA-F0-9]{32}$
119
+ additionalProperties: false
120
+ errors:
121
+ - NO_WAY
122
+ - WONT_CREATE
123
+ ```