@toa.io/extensions.exposition 1.0.0-alpha.28 → 1.0.0-alpha.283
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.
- package/CHANGELOG.md +512 -0
- package/components/exposition.octets/manifest.toa.yaml +58 -0
- package/components/{octets.storage → exposition.octets}/operations/delete.js +1 -3
- package/components/exposition.octets/operations/get.js +5 -0
- package/components/exposition.octets/operations/head.js +5 -0
- package/components/exposition.octets/operations/put.js +150 -0
- package/components/exposition.octets/types/index.d.ts +3 -0
- package/components/exposition.octets/types/toa.d.ts +41 -0
- package/components/identity.bans/manifest.toa.yaml +26 -7
- package/components/identity.bans/operations/transit.js +1 -5
- package/components/identity.bans/operations/transit.js.map +1 -1
- package/components/identity.bans/tsconfig.json +1 -0
- package/components/identity.bans/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/types/index.d.ts +3 -0
- package/components/identity.bans/types/toa.d.ts +34 -0
- package/components/identity.basic/events/principal.js +6 -4
- package/components/identity.basic/manifest.toa.yaml +206 -27
- package/components/identity.basic/operations/add.d.ts +3 -0
- package/components/identity.basic/operations/add.js +13 -0
- package/components/identity.basic/operations/add.js.map +1 -0
- package/components/identity.basic/operations/authenticate.d.ts +2 -2
- package/components/identity.basic/operations/authenticate.js +19 -16
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/check.d.ts +7 -0
- package/components/identity.basic/operations/check.js +12 -0
- package/components/identity.basic/operations/check.js.map +1 -0
- package/components/identity.basic/operations/delete.d.ts +7 -0
- package/components/identity.basic/operations/delete.js +7 -0
- package/components/identity.basic/operations/delete.js.map +1 -0
- package/components/identity.basic/operations/incept.d.ts +2 -2
- package/components/identity.basic/operations/incept.js +16 -14
- package/components/identity.basic/operations/incept.js.map +1 -1
- package/components/identity.basic/operations/info.d.ts +10 -0
- package/components/identity.basic/operations/info.js +7 -0
- package/components/identity.basic/operations/info.js.map +1 -0
- package/components/identity.basic/operations/lib/credentials.d.ts +5 -0
- package/components/identity.basic/operations/lib/credentials.js +12 -0
- package/components/identity.basic/operations/lib/credentials.js.map +1 -0
- package/components/identity.basic/operations/transit.d.ts +5 -2
- package/components/identity.basic/operations/transit.js +42 -20
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/source/add.ts +15 -0
- package/components/identity.basic/source/authenticate.ts +21 -11
- package/components/identity.basic/source/check.ts +21 -0
- package/components/identity.basic/source/delete.ts +15 -0
- package/components/identity.basic/source/incept.ts +18 -11
- package/components/identity.basic/source/info.ts +19 -0
- package/components/identity.basic/source/lib/credentials.test.ts +18 -0
- package/components/identity.basic/source/lib/credentials.ts +13 -0
- package/components/identity.basic/source/transit.ts +48 -17
- package/components/identity.basic/tsconfig.json +1 -0
- package/components/identity.basic/tsconfig.tsbuildinfo +1 -0
- package/components/identity.basic/types/index.d.ts +21 -0
- package/components/identity.basic/types/toa.d.ts +121 -0
- package/components/identity.clients/manifest.toa.yaml +243 -0
- package/components/identity.clients/operations/describe.d.ts +27 -0
- package/components/identity.clients/operations/describe.js +44 -0
- package/components/identity.clients/operations/describe.js.map +1 -0
- package/components/identity.clients/operations/lib/Context.d.ts +29 -0
- package/components/identity.clients/operations/lib/Context.js +2 -0
- package/components/identity.clients/operations/lib/Context.js.map +1 -0
- package/components/identity.clients/operations/lib/Entity.d.ts +29 -0
- package/components/identity.clients/operations/lib/Entity.js +2 -0
- package/components/identity.clients/operations/lib/Entity.js.map +1 -0
- package/components/identity.clients/operations/lib/canonical.d.ts +11 -0
- package/components/identity.clients/operations/lib/canonical.js +24 -0
- package/components/identity.clients/operations/lib/canonical.js.map +1 -0
- package/components/identity.clients/operations/lib/cimd.d.ts +8 -0
- package/components/identity.clients/operations/lib/cimd.js +86 -0
- package/components/identity.clients/operations/lib/cimd.js.map +1 -0
- package/components/identity.clients/operations/lib/errors.d.ts +7 -0
- package/components/identity.clients/operations/lib/errors.js +5 -0
- package/components/identity.clients/operations/lib/errors.js.map +1 -0
- package/components/identity.clients/operations/lib/index.d.ts +6 -0
- package/components/identity.clients/operations/lib/index.js +7 -0
- package/components/identity.clients/operations/lib/index.js.map +1 -0
- package/components/identity.clients/operations/lib/redirect.d.ts +10 -0
- package/components/identity.clients/operations/lib/redirect.js +32 -0
- package/components/identity.clients/operations/lib/redirect.js.map +1 -0
- package/components/identity.clients/operations/register.d.ts +37 -0
- package/components/identity.clients/operations/register.js +84 -0
- package/components/identity.clients/operations/register.js.map +1 -0
- package/components/identity.clients/source/describe.ts +65 -0
- package/components/identity.clients/source/lib/Context.ts +38 -0
- package/components/identity.clients/source/lib/Entity.ts +31 -0
- package/components/identity.clients/source/lib/canonical.test.ts +43 -0
- package/components/identity.clients/source/lib/canonical.ts +27 -0
- package/components/identity.clients/source/lib/cimd.test.ts +120 -0
- package/components/identity.clients/source/lib/cimd.ts +107 -0
- package/components/identity.clients/source/lib/errors.ts +4 -0
- package/components/identity.clients/source/lib/index.ts +6 -0
- package/components/identity.clients/source/lib/redirect.test.ts +41 -0
- package/components/identity.clients/source/lib/redirect.ts +35 -0
- package/components/identity.clients/source/register.ts +125 -0
- package/components/identity.clients/tsconfig.json +10 -0
- package/components/identity.clients/tsconfig.tsbuildinfo +1 -0
- package/components/identity.clients/types/index.d.ts +3 -0
- package/components/identity.clients/types/toa.d.ts +109 -0
- package/components/identity.credentials/manifest.toa.yaml +78 -0
- package/components/identity.credentials/operations/list.d.ts +52 -0
- package/components/identity.credentials/operations/list.js +28 -0
- package/components/identity.credentials/operations/list.js.map +1 -0
- package/components/identity.credentials/source/list.test.ts +51 -0
- package/components/identity.credentials/source/list.ts +88 -0
- package/components/identity.credentials/tsconfig.json +8 -0
- package/components/identity.credentials/tsconfig.tsbuildinfo +1 -0
- package/components/identity.credentials/types/index.d.ts +3 -0
- package/components/identity.credentials/types/toa.d.ts +30 -0
- package/components/identity.federation/events/principal.js +7 -8
- package/components/identity.federation/manifest.toa.yaml +248 -46
- package/components/identity.federation/operations/authenticate.d.ts +16 -3
- package/components/identity.federation/operations/authenticate.js +24 -19
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/create.d.ts +8 -0
- package/components/identity.federation/operations/create.js +29 -0
- package/components/identity.federation/operations/create.js.map +1 -0
- package/components/identity.federation/operations/decode.d.ts +3 -0
- package/components/identity.federation/operations/decode.js +9 -0
- package/components/identity.federation/operations/decode.js.map +1 -0
- package/components/identity.federation/operations/delete.d.ts +8 -0
- package/components/identity.federation/operations/delete.js +7 -0
- package/components/identity.federation/operations/delete.js.map +1 -0
- package/components/identity.federation/operations/incept.d.ts +6 -6
- package/components/identity.federation/operations/incept.js +4 -12
- package/components/identity.federation/operations/incept.js.map +1 -1
- package/components/identity.federation/operations/lib/Configuration.d.ts +39 -0
- package/components/identity.federation/operations/lib/Configuration.js +2 -0
- package/components/identity.federation/operations/lib/Configuration.js.map +1 -0
- package/components/identity.federation/operations/lib/Ctx.d.ts +8 -0
- package/components/identity.federation/operations/lib/Ctx.js +2 -0
- package/components/identity.federation/operations/lib/Ctx.js.map +1 -0
- package/components/identity.federation/operations/lib/Payload.d.ts +5 -0
- package/components/identity.federation/operations/lib/Payload.js +2 -0
- package/components/identity.federation/operations/lib/Payload.js.map +1 -0
- package/components/identity.federation/operations/lib/decode.d.ts +3 -0
- package/components/identity.federation/operations/lib/decode.js +36 -0
- package/components/identity.federation/operations/lib/decode.js.map +1 -0
- package/components/identity.federation/operations/lib/discovery.d.ts +5 -0
- package/components/identity.federation/operations/lib/discovery.js +34 -0
- package/components/identity.federation/operations/lib/discovery.js.map +1 -0
- package/components/identity.federation/operations/lib/errors.d.ts +77 -0
- package/components/identity.federation/operations/lib/errors.js +45 -0
- package/components/identity.federation/operations/lib/errors.js.map +1 -0
- package/components/identity.federation/operations/lib/exchange.d.ts +3 -0
- package/components/identity.federation/operations/lib/exchange.js +86 -0
- package/components/identity.federation/operations/lib/exchange.js.map +1 -0
- package/components/identity.federation/operations/lib/index.d.ts +4 -0
- package/components/identity.federation/operations/lib/index.js +4 -0
- package/components/identity.federation/operations/lib/index.js.map +1 -0
- package/components/identity.federation/operations/lib/jose.d.ts +1 -0
- package/components/identity.federation/operations/lib/jose.js +2 -0
- package/components/identity.federation/operations/lib/jose.js.map +1 -0
- package/components/identity.federation/operations/lib/resolve.d.ts +3 -0
- package/components/identity.federation/operations/lib/resolve.js +13 -0
- package/components/identity.federation/operations/lib/resolve.js.map +1 -0
- package/components/identity.federation/operations/list.d.ts +7 -0
- package/components/identity.federation/operations/list.js +12 -0
- package/components/identity.federation/operations/list.js.map +1 -0
- package/components/identity.federation/operations/types/Scheme.d.ts +1 -0
- package/components/identity.federation/operations/types/Scheme.js +2 -0
- package/components/identity.federation/operations/types/Scheme.js.map +1 -0
- package/components/identity.federation/operations/types/configuration.d.ts +22 -0
- package/components/identity.federation/operations/types/configuration.js +2 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/types/context.d.ts +36 -0
- package/components/identity.federation/operations/types/context.js +2 -0
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +9 -0
- package/components/identity.federation/operations/types/entity.js +2 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +4 -0
- package/components/identity.federation/operations/types/index.js +5 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +43 -22
- package/components/identity.federation/source/create.ts +45 -0
- package/components/identity.federation/source/decode.ts +11 -0
- package/components/identity.federation/source/delete.ts +16 -0
- package/components/identity.federation/source/incept.ts +9 -17
- package/components/identity.federation/source/lib/Configuration.ts +39 -0
- package/components/identity.federation/source/lib/Ctx.ts +9 -0
- package/components/identity.federation/source/lib/Payload.ts +6 -0
- package/components/identity.federation/source/lib/decode.ts +47 -0
- package/components/identity.federation/source/lib/discovery.test.ts +50 -0
- package/components/identity.federation/source/lib/discovery.ts +49 -0
- package/components/identity.federation/source/lib/errors.ts +54 -0
- package/components/identity.federation/source/lib/exchange.ts +120 -0
- package/components/identity.federation/source/lib/index.ts +4 -0
- package/components/identity.federation/source/lib/jose.d.ts +1 -0
- package/components/identity.federation/source/lib/jose.js +1 -0
- package/components/identity.federation/source/lib/resolve.ts +17 -0
- package/components/identity.federation/source/list.test.ts +25 -0
- package/components/identity.federation/source/list.ts +18 -0
- package/components/identity.federation/source/types/Scheme.ts +1 -0
- package/components/identity.federation/source/types/configuration.ts +24 -0
- package/components/identity.federation/source/types/context.ts +39 -0
- package/components/identity.federation/source/types/entity.ts +9 -0
- package/components/identity.federation/source/types/index.ts +4 -0
- package/components/identity.federation/tsconfig.json +3 -4
- package/components/identity.federation/tsconfig.tsbuildinfo +1 -0
- package/components/identity.federation/types/index.d.ts +3 -0
- package/components/identity.federation/types/toa.d.ts +127 -0
- package/components/identity.grants/manifest.toa.yaml +245 -0
- package/components/identity.grants/operations/authorize.d.ts +35 -0
- package/components/identity.grants/operations/authorize.js +54 -0
- package/components/identity.grants/operations/authorize.js.map +1 -0
- package/components/identity.grants/operations/exchange.d.ts +37 -0
- package/components/identity.grants/operations/exchange.js +89 -0
- package/components/identity.grants/operations/exchange.js.map +1 -0
- package/components/identity.grants/operations/lib/code.d.ts +15 -0
- package/components/identity.grants/operations/lib/code.js +30 -0
- package/components/identity.grants/operations/lib/code.js.map +1 -0
- package/components/identity.grants/operations/lib/identify.d.ts +6 -0
- package/components/identity.grants/operations/lib/identify.js +15 -0
- package/components/identity.grants/operations/lib/identify.js.map +1 -0
- package/components/identity.grants/operations/lib/index.d.ts +3 -0
- package/components/identity.grants/operations/lib/index.js +3 -0
- package/components/identity.grants/operations/lib/index.js.map +1 -0
- package/components/identity.grants/operations/list.d.ts +13 -0
- package/components/identity.grants/operations/list.js +18 -0
- package/components/identity.grants/operations/list.js.map +1 -0
- package/components/identity.grants/operations/revoke.d.ts +18 -0
- package/components/identity.grants/operations/revoke.js +25 -0
- package/components/identity.grants/operations/revoke.js.map +1 -0
- package/components/identity.grants/source/authorize.ts +90 -0
- package/components/identity.grants/source/exchange.ts +130 -0
- package/components/identity.grants/source/lib/code.ts +39 -0
- package/components/identity.grants/source/lib/identify.ts +16 -0
- package/components/identity.grants/source/lib/index.ts +3 -0
- package/components/identity.grants/source/list.ts +28 -0
- package/components/identity.grants/source/revoke.ts +38 -0
- package/components/identity.grants/tsconfig.json +10 -0
- package/components/identity.grants/tsconfig.tsbuildinfo +1 -0
- package/components/identity.grants/types/index.d.ts +60 -0
- package/components/identity.grants/types/toa.d.ts +108 -0
- package/components/identity.keys/manifest.toa.yaml +84 -0
- package/components/identity.keys/operations/create.d.ts +22 -0
- package/components/identity.keys/operations/create.js +12 -0
- package/components/identity.keys/operations/create.js.map +1 -0
- package/components/identity.keys/operations/disable.d.ts +5 -0
- package/components/identity.keys/operations/disable.js +5 -0
- package/components/identity.keys/operations/disable.js.map +1 -0
- package/components/identity.keys/operations/revoke.d.ts +15 -0
- package/components/identity.keys/operations/revoke.js +12 -0
- package/components/identity.keys/operations/revoke.js.map +1 -0
- package/components/identity.keys/receivers/identity.bans.created.js +1 -0
- package/components/identity.keys/receivers/identity.bans.updated.js +1 -0
- package/components/identity.keys/receivers/identity.roles.deleted.js +1 -0
- package/components/identity.keys/source/create.ts +35 -0
- package/components/identity.keys/source/disable.ts +9 -0
- package/components/identity.keys/source/revoke.ts +30 -0
- package/components/identity.keys/tsconfig.json +10 -0
- package/components/identity.keys/tsconfig.tsbuildinfo +1 -0
- package/components/identity.keys/types/index.d.ts +3 -0
- package/components/identity.keys/types/toa.d.ts +47 -0
- package/components/identity.otp/manifest.toa.yaml +104 -0
- package/components/identity.otp/operations/authenticate.d.ts +12 -0
- package/components/identity.otp/operations/authenticate.js +44 -0
- package/components/identity.otp/operations/authenticate.js.map +1 -0
- package/components/identity.otp/operations/issue.d.ts +12 -0
- package/components/identity.otp/operations/issue.js +19 -0
- package/components/identity.otp/operations/issue.js.map +1 -0
- package/components/identity.otp/operations/lib/Context.d.ts +16 -0
- package/components/identity.otp/operations/lib/Context.js +2 -0
- package/components/identity.otp/operations/lib/Context.js.map +1 -0
- package/components/identity.otp/operations/lib/Entity.d.ts +6 -0
- package/components/identity.otp/operations/lib/Entity.js +2 -0
- package/components/identity.otp/operations/lib/Entity.js.map +1 -0
- package/components/identity.otp/operations/lib/index.d.ts +1 -0
- package/components/identity.otp/operations/lib/index.js +2 -0
- package/components/identity.otp/operations/lib/index.js.map +1 -0
- package/components/identity.otp/source/authenticate.ts +73 -0
- package/components/identity.otp/source/issue.ts +35 -0
- package/components/identity.otp/source/lib/Context.ts +17 -0
- package/components/identity.otp/source/lib/Entity.ts +6 -0
- package/components/identity.otp/source/lib/index.ts +1 -0
- package/components/identity.otp/tsconfig.json +10 -0
- package/components/identity.otp/tsconfig.tsbuildinfo +1 -0
- package/components/identity.otp/types/index.d.ts +3 -0
- package/components/identity.otp/types/toa.d.ts +56 -0
- package/components/identity.passkeys/manifest.toa.yaml +309 -0
- package/components/identity.passkeys/operations/authenticate.d.ts +16 -0
- package/components/identity.passkeys/operations/authenticate.js +32 -0
- package/components/identity.passkeys/operations/authenticate.js.map +1 -0
- package/components/identity.passkeys/operations/challenge.d.ts +35 -0
- package/components/identity.passkeys/operations/challenge.js +69 -0
- package/components/identity.passkeys/operations/challenge.js.map +1 -0
- package/components/identity.passkeys/operations/create.d.ts +19 -0
- package/components/identity.passkeys/operations/create.js +57 -0
- package/components/identity.passkeys/operations/create.js.map +1 -0
- package/components/identity.passkeys/operations/delete.d.ts +8 -0
- package/components/identity.passkeys/operations/delete.js +9 -0
- package/components/identity.passkeys/operations/delete.js.map +1 -0
- package/components/identity.passkeys/operations/lib/const.d.ts +1 -0
- package/components/identity.passkeys/operations/lib/const.js +2 -0
- package/components/identity.passkeys/operations/lib/const.js.map +1 -0
- package/components/identity.passkeys/operations/list.d.ts +7 -0
- package/components/identity.passkeys/operations/list.js +12 -0
- package/components/identity.passkeys/operations/list.js.map +1 -0
- package/components/identity.passkeys/operations/types/Configuration.d.ts +6 -0
- package/components/identity.passkeys/operations/types/Configuration.js +2 -0
- package/components/identity.passkeys/operations/types/Configuration.js.map +1 -0
- package/components/identity.passkeys/operations/types/Context.d.ts +16 -0
- package/components/identity.passkeys/operations/types/Context.js +2 -0
- package/components/identity.passkeys/operations/types/Context.js.map +1 -0
- package/components/identity.passkeys/operations/types/Passkey.d.ts +12 -0
- package/components/identity.passkeys/operations/types/Passkey.js +2 -0
- package/components/identity.passkeys/operations/types/Passkey.js.map +1 -0
- package/components/identity.passkeys/operations/types/index.d.ts +2 -0
- package/components/identity.passkeys/operations/types/index.js +2 -0
- package/components/identity.passkeys/operations/types/index.js.map +1 -0
- package/components/identity.passkeys/operations/use.d.ts +16 -0
- package/components/identity.passkeys/operations/use.js +56 -0
- package/components/identity.passkeys/operations/use.js.map +1 -0
- package/components/identity.passkeys/source/authenticate.ts +50 -0
- package/components/identity.passkeys/source/challenge.ts +115 -0
- package/components/identity.passkeys/source/create.ts +81 -0
- package/components/identity.passkeys/source/delete.ts +16 -0
- package/components/identity.passkeys/source/lib/const.ts +1 -0
- package/components/identity.passkeys/source/list.ts +18 -0
- package/components/identity.passkeys/source/types/Configuration.ts +6 -0
- package/components/identity.passkeys/source/types/Context.ts +17 -0
- package/components/identity.passkeys/source/types/Passkey.ts +12 -0
- package/components/identity.passkeys/source/types/index.ts +2 -0
- package/components/identity.passkeys/source/use.ts +79 -0
- package/components/identity.passkeys/tsconfig.json +10 -0
- package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -0
- package/components/identity.passkeys/types/index.d.ts +3 -0
- package/components/identity.passkeys/types/toa.d.ts +120 -0
- package/components/identity.roles/manifest.toa.yaml +47 -10
- package/components/identity.roles/operations/grant.d.ts +1 -1
- package/components/identity.roles/operations/grant.js +10 -10
- package/components/identity.roles/operations/grant.js.map +1 -1
- package/components/identity.roles/operations/lib/Entity.js +1 -2
- package/components/identity.roles/operations/list.d.ts +1 -1
- package/components/identity.roles/operations/list.js +1 -5
- package/components/identity.roles/operations/list.js.map +1 -1
- package/components/identity.roles/operations/principal.d.ts +3 -3
- package/components/identity.roles/operations/principal.js +1 -5
- package/components/identity.roles/operations/principal.js.map +1 -1
- package/components/identity.roles/receivers/identity.federation.principal.js +4 -0
- package/components/identity.roles/source/grant.ts +11 -6
- package/components/identity.roles/source/list.ts +1 -1
- package/components/identity.roles/source/principal.ts +3 -3
- package/components/identity.roles/tsconfig.json +1 -0
- package/components/identity.roles/tsconfig.tsbuildinfo +1 -0
- package/components/identity.roles/types/index.d.ts +3 -0
- package/components/identity.roles/types/toa.d.ts +43 -0
- package/components/identity.tokens/manifest.toa.yaml +219 -28
- package/components/identity.tokens/operations/authenticate.d.ts +3 -2
- package/components/identity.tokens/operations/authenticate.js +28 -19
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.d.ts +16 -3
- package/components/identity.tokens/operations/decrypt.js +131 -24
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.d.ts +4 -3
- package/components/identity.tokens/operations/encrypt.js +33 -18
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/issue.d.ts +25 -0
- package/components/identity.tokens/operations/issue.js +57 -0
- package/components/identity.tokens/operations/issue.js.map +1 -0
- package/components/identity.tokens/operations/lib/form.d.ts +8 -0
- package/components/identity.tokens/operations/lib/form.js +24 -0
- package/components/identity.tokens/operations/lib/form.js.map +1 -0
- package/components/identity.tokens/operations/lib/index.d.ts +4 -0
- package/components/identity.tokens/operations/lib/index.js +4 -0
- package/components/identity.tokens/operations/lib/index.js.map +1 -0
- package/components/identity.tokens/operations/lib/jose.d.ts +1 -0
- package/components/identity.tokens/operations/lib/jose.js +2 -0
- package/components/identity.tokens/operations/lib/jose.js.map +1 -0
- package/components/identity.tokens/operations/lib/key.d.ts +1 -0
- package/components/identity.tokens/operations/lib/key.js +7 -0
- package/components/identity.tokens/operations/lib/key.js.map +1 -0
- package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
- package/components/identity.tokens/operations/lib/pad.js +2 -0
- package/components/identity.tokens/operations/lib/pad.js.map +1 -0
- package/components/identity.tokens/operations/revoke.d.ts +2 -2
- package/components/identity.tokens/operations/revoke.js +1 -5
- package/components/identity.tokens/operations/revoke.js.map +1 -1
- package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
- package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
- package/components/identity.tokens/source/authenticate.test.ts +61 -18
- package/components/identity.tokens/source/authenticate.ts +33 -16
- package/components/identity.tokens/source/decrypt.test.ts +140 -18
- package/components/identity.tokens/source/decrypt.ts +177 -21
- package/components/identity.tokens/source/encrypt.test.ts +102 -16
- package/components/identity.tokens/source/encrypt.ts +46 -16
- package/components/identity.tokens/source/issue.test.ts +71 -0
- package/components/identity.tokens/source/issue.ts +85 -0
- package/components/identity.tokens/source/lib/form.test.ts +25 -0
- package/components/identity.tokens/source/lib/form.ts +31 -0
- package/components/identity.tokens/source/lib/index.ts +4 -0
- package/components/identity.tokens/source/lib/jose.d.ts +1 -0
- package/components/identity.tokens/source/lib/jose.js +1 -0
- package/components/identity.tokens/source/lib/key.ts +8 -0
- package/components/identity.tokens/source/lib/pad.ts +1 -0
- package/components/identity.tokens/source/lib/paseto.test.ts +51 -0
- package/components/identity.tokens/source/revoke.ts +2 -2
- package/components/identity.tokens/tsconfig.json +1 -0
- package/components/identity.tokens/tsconfig.tsbuildinfo +1 -0
- package/components/identity.tokens/types/index.d.ts +61 -0
- package/components/identity.tokens/types/toa.d.ts +113 -0
- package/{components/context.toa.yaml → context.toa.yaml} +6 -2
- package/cucumber.mjs +4 -0
- package/documentation/access.md +78 -27
- package/documentation/authorities.md +9 -11
- package/documentation/cache.md +10 -1
- package/documentation/components.md +200 -62
- package/documentation/consent.md +101 -0
- package/documentation/credentials.md +88 -0
- package/documentation/dev.md +30 -0
- package/documentation/flow.md +44 -0
- package/documentation/identity.md +165 -17
- package/documentation/introspection.md +82 -0
- package/documentation/io.md +109 -4
- package/documentation/ip.md +24 -0
- package/documentation/map.md +115 -0
- package/documentation/notes/desync.jpg +0 -0
- package/documentation/notes/peers.md +59 -0
- package/documentation/notes/throttling.md +122 -0
- package/documentation/oauth.md +179 -0
- package/documentation/octets.md +122 -69
- package/documentation/passkeys.md +11 -0
- package/documentation/protocol.md +39 -4
- package/documentation/query.md +43 -0
- package/documentation/tracing.md +70 -0
- package/documentation/tree.md +13 -0
- package/features/access.feature +123 -3
- package/features/auth.assert.feature +55 -0
- package/features/auth.bearer.feature +120 -0
- package/features/auth.claims.feature +171 -0
- package/features/auth.incept.feature +166 -0
- package/features/auth.input.feature +59 -0
- package/features/authorities.feature +41 -2
- package/features/authorities.federation.feature +21 -20
- package/features/authorities.tokens.feature +1 -2
- package/features/body.feature +27 -0
- package/features/cache.feature +143 -8
- package/features/configuration.feature +207 -0
- package/features/cors.feature +29 -8
- package/features/credentials.feature +106 -0
- package/features/dev.feature +87 -0
- package/features/dynamic.feature +82 -1
- package/features/errors.feature +17 -5
- package/features/etag.feature +223 -1
- package/features/flow.feature +148 -0
- package/features/identity.bans.feature +63 -0
- package/features/identity.basic.feature +231 -10
- package/features/identity.feature +158 -0
- package/features/identity.federation.feature +226 -35
- package/features/identity.otp.feature +142 -0
- package/features/identity.roles.feature +305 -4
- package/features/identity.tokens.custom.feature +430 -0
- package/features/identity.tokens.feature +4 -102
- package/features/interruptions.feature +19 -0
- package/features/introspection.feature +146 -0
- package/features/introspection.map.feature +108 -0
- package/features/io.feature +0 -1
- package/features/io.throttle.feature +165 -0
- package/features/map.feature +359 -0
- package/features/methods.feature +47 -0
- package/features/oauth.clients.feature +195 -0
- package/features/oauth.discovery.feature +165 -0
- package/features/oauth.grants.feature +286 -0
- package/features/octets.cloudinary.feature +232 -0
- package/features/octets.download.feature +192 -0
- package/features/octets.entries.feature +13 -61
- package/features/octets.feature +52 -70
- package/features/octets.head.feature +40 -0
- package/features/octets.location.feature +83 -0
- package/features/octets.meta.feature +63 -16
- package/features/octets.workflows.feature +333 -68
- package/features/passkeys.feature +66 -0
- package/features/probes.feature +8 -4
- package/features/query.feature +128 -0
- package/features/realtime.feature +34 -0
- package/features/require.feature +2 -2
- package/features/response.feature +30 -1
- package/features/routes.feature +85 -0
- package/features/server.feature +21 -0
- package/features/steps/.env.example +5 -0
- package/features/steps/Captures.ts +15 -1
- package/features/steps/Common.ts +31 -2
- package/features/steps/Components.ts +63 -6
- package/features/steps/Database.ts +19 -3
- package/features/steps/Gateway.ts +129 -23
- package/features/steps/HTTP.ts +36 -11
- package/features/steps/IDP.ts +337 -0
- package/features/steps/Identity.ts +54 -0
- package/features/steps/OTP.ts +42 -0
- package/features/steps/Parameters.ts +103 -4
- package/features/steps/Probe.ts +36 -0
- package/features/steps/Realtime.ts +154 -0
- package/features/steps/Workspace.ts +10 -6
- package/features/steps/components/audit/manifest.toa.yaml +20 -0
- package/features/steps/components/audit/operations/record.js +5 -0
- package/features/steps/components/echo/manifest.toa.yaml +49 -5
- package/features/steps/components/echo/operations/affect.js +1 -5
- package/features/steps/components/echo/operations/compute.js +1 -5
- package/features/steps/components/echo/operations/echo.js +3 -0
- package/features/steps/components/echo/operations/error.js +1 -5
- package/features/steps/components/echo/operations/identity.js +1 -5
- package/features/steps/components/echo/operations/parameters.js +3 -0
- package/features/steps/components/echo/operations/ping.js +3 -0
- package/features/steps/components/echo/operations/unwrap.js +3 -0
- package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
- package/features/steps/components/echo.beacon/operations/hello.js +3 -0
- package/features/steps/components/greeter/manifest.toa.yaml +0 -1
- package/features/steps/components/greeter/operations/greet.js +1 -5
- package/features/steps/components/notify/manifest.toa.yaml +20 -0
- package/features/steps/components/notify/operations/send.js +5 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +60 -6
- package/features/steps/components/octets.tester/operations/authority.js +3 -0
- package/features/steps/components/octets.tester/operations/bar.js +1 -4
- package/features/steps/components/octets.tester/operations/baz.js +2 -4
- package/features/steps/components/octets.tester/operations/concat.js +1 -3
- package/features/steps/components/octets.tester/operations/echo.js +2 -4
- package/features/steps/components/octets.tester/operations/err.js +1 -3
- package/features/steps/components/octets.tester/operations/foo.js +3 -5
- package/features/steps/components/octets.tester/operations/id.js +5 -0
- package/features/steps/components/octets.tester/operations/identity.js +5 -0
- package/features/steps/components/octets.tester/operations/redirect.js +15 -0
- package/features/steps/components/octets.tester/operations/yex.js +14 -0
- package/features/steps/components/octets.tester/operations/yield.js +11 -0
- package/features/steps/components/orders/manifest.toa.yaml +32 -0
- package/features/steps/components/orders/operations/create.js +5 -0
- package/features/steps/components/pots/manifest.toa.yaml +79 -14
- package/features/steps/components/pricing/manifest.toa.yaml +13 -0
- package/features/steps/components/pricing/operations/quote.js +3 -0
- package/features/steps/components/sequences/manifest.toa.yaml +3 -2
- package/features/steps/components/sequences/operations/numbers.js +1 -3
- package/features/steps/components/sequences/operations/tokens.js +2 -4
- package/features/steps/components/users/manifest.toa.yaml +21 -3
- package/features/steps/components/users/operations/create.js +11 -0
- package/features/steps/components/users.properties/manifest.toa.yaml +12 -3
- package/features/steps/map.ts +30 -0
- package/features/streams.feature +4 -0
- package/features/timestamps.feature +41 -0
- package/features/timing.feature +2 -22
- package/features/tracing.feature +123 -0
- package/package.json +33 -26
- package/readme.md +25 -1
- package/schemas/annotation.cos.yaml +94 -6
- package/schemas/directive.cos.yaml +7 -3
- package/schemas/io/throttle.cos.yaml +81 -0
- package/schemas/method.cos.yaml +21 -8
- package/schemas/node.cos.yaml +22 -5
- package/schemas/octets/delete.cos.yaml +15 -2
- package/schemas/octets/get.cos.yaml +5 -0
- package/schemas/octets/put.cos.yaml +31 -0
- package/schemas/octets/workflow.cos.yaml +0 -1
- package/schemas/query.cos.yaml +31 -17
- package/schemas/querystring.cos.yaml +19 -6
- package/schemas/range.cos.yaml +10 -2
- package/schemas/route.cos.yaml +6 -2
- package/source/Annotation.ts +51 -1
- package/source/Branch.test.ts +40 -0
- package/source/Branch.ts +39 -1
- package/source/Composition.ts +6 -12
- package/source/Context.ts +5 -2
- package/source/Directive.test.ts +111 -27
- package/source/Directive.ts +97 -20
- package/source/Endpoint.ts +118 -28
- package/source/Factory.ts +75 -28
- package/source/Gateway.ts +208 -18
- package/source/HTTP/Context.ts +79 -32
- package/source/HTTP/Probe.ts +112 -0
- package/source/HTTP/Server.ts +301 -66
- package/source/HTTP/Timing.ts +2 -13
- package/source/HTTP/address.test.ts +22 -0
- package/source/HTTP/address.ts +17 -0
- package/source/HTTP/exceptions.ts +38 -14
- package/source/HTTP/formats/form.ts +21 -0
- package/source/HTTP/formats/index.ts +24 -10
- package/source/HTTP/formats/json.ts +2 -4
- package/source/HTTP/formats/msgpack.ts +0 -1
- package/source/HTTP/formats/text.ts +2 -4
- package/source/HTTP/formats/yaml.test.ts +19 -0
- package/source/HTTP/formats/yaml.ts +25 -5
- package/source/HTTP/index.ts +6 -4
- package/source/HTTP/messages.test.ts +116 -19
- package/source/HTTP/messages.ts +158 -39
- package/source/HTTP/types.ts +39 -0
- package/source/Interception.ts +16 -2
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +67 -24
- package/source/Query.test.ts +22 -5
- package/source/Query.ts +114 -22
- package/source/RTD/Context.ts +7 -4
- package/source/RTD/Directives.ts +27 -5
- package/source/RTD/Endpoint.ts +7 -4
- package/source/RTD/Match.ts +1 -1
- package/source/RTD/Method.ts +18 -2
- package/source/RTD/Node.ts +68 -26
- package/source/RTD/Route.ts +21 -11
- package/source/RTD/Tree.ts +49 -16
- package/source/RTD/expiration.test.ts +81 -0
- package/source/RTD/factory.ts +36 -8
- package/source/RTD/index.ts +8 -8
- package/source/RTD/segment.test.ts +13 -10
- package/source/RTD/segment.ts +2 -0
- package/source/RTD/syntax/index.ts +2 -2
- package/source/RTD/syntax/parse.test.ts +30 -28
- package/source/RTD/syntax/parse.ts +39 -26
- package/source/RTD/syntax/types.ts +9 -4
- package/source/Remotes.test.ts +34 -18
- package/source/Remotes.ts +15 -11
- package/source/Tenant.ts +52 -14
- package/source/const.ts +4 -0
- package/source/deployment.ts +47 -22
- package/source/directives/auth/Anonymous.ts +3 -3
- package/source/directives/auth/Anyone.ts +13 -0
- package/source/directives/auth/Assert.ts +38 -0
- package/source/directives/auth/Authorization.test.ts +24 -0
- package/source/directives/auth/Authorization.ts +207 -49
- package/source/directives/auth/Delegate.ts +10 -6
- package/source/directives/auth/Echo.ts +16 -6
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Id.ts +3 -3
- package/source/directives/auth/Incept.ts +87 -25
- package/source/directives/auth/Input.ts +71 -0
- package/source/directives/auth/Role.test.ts +34 -22
- package/source/directives/auth/Role.ts +10 -14
- package/source/directives/auth/Rule.ts +4 -7
- package/source/directives/auth/Scheme.ts +7 -7
- package/source/directives/auth/create.ts +11 -0
- package/source/directives/auth/index.ts +1 -1
- package/source/directives/auth/schemes.test.ts +18 -0
- package/source/directives/auth/schemes.ts +36 -6
- package/source/directives/auth/split.ts +3 -3
- package/source/directives/auth/types.ts +23 -12
- package/source/directives/cache/Cache.ts +33 -11
- package/source/directives/cache/Control.ts +17 -20
- package/source/directives/cache/Exact.ts +1 -1
- package/source/directives/cache/index.ts +1 -1
- package/source/directives/cache/types.ts +1 -1
- package/source/directives/cors/CORS.ts +37 -20
- package/source/directives/cors/index.ts +1 -1
- package/source/directives/dev/Development.ts +19 -12
- package/source/directives/dev/Faulty.ts +26 -0
- package/source/directives/dev/Sleep.ts +55 -0
- package/source/directives/dev/Stub.ts +2 -2
- package/source/directives/dev/Throw.ts +2 -2
- package/source/directives/dev/index.ts +1 -1
- package/source/directives/dev/types.ts +2 -2
- package/source/directives/flow/Compose.ts +92 -0
- package/source/directives/flow/Fetch.ts +86 -0
- package/source/directives/flow/Flow.ts +42 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +7 -0
- package/source/directives/index.ts +14 -12
- package/source/directives/io/Directive.ts +9 -3
- package/source/directives/io/IO.ts +50 -13
- package/source/directives/io/Input.ts +22 -15
- package/source/directives/io/Output.ts +27 -15
- package/source/directives/io/Status.test.ts +84 -0
- package/source/directives/io/Status.ts +46 -0
- package/source/directives/io/Throttle.ts +31 -0
- package/source/directives/io/index.ts +1 -1
- package/source/directives/io/lib/throttle/Configuration.test.ts +63 -0
- package/source/directives/io/lib/throttle/Configuration.ts +63 -0
- package/source/directives/io/lib/throttle/Keys.ts +48 -0
- package/source/directives/io/lib/throttle/Quotas.test.ts +395 -0
- package/source/directives/io/lib/throttle/Quotas.ts +196 -0
- package/source/directives/io/lib/throttle/Sync.test.ts +159 -0
- package/source/directives/io/lib/throttle/Sync.ts +96 -0
- package/source/directives/io/lib/throttle/Warning.test.ts +32 -0
- package/source/directives/io/lib/throttle/Warning.ts +30 -0
- package/source/directives/io/lib/throttle/components/Component.ts +7 -0
- package/source/directives/io/lib/throttle/components/IP.ts +31 -0
- package/source/directives/io/lib/throttle/components/Identity.ts +19 -0
- package/source/directives/io/lib/throttle/components/Path.ts +8 -0
- package/source/directives/io/lib/throttle/components/Route.ts +19 -0
- package/source/directives/io/lib/throttle/components/Segment.ts +19 -0
- package/source/directives/io/lib/throttle/components/index.ts +19 -0
- package/source/directives/io/lib/throttle/conditions/Condition.ts +5 -0
- package/source/directives/io/lib/throttle/conditions/Status.ts +17 -0
- package/source/directives/io/lib/throttle/conditions/index.ts +11 -0
- package/source/directives/io/lib/throttle/index.ts +4 -0
- package/source/directives/io/schemas.test.ts +34 -0
- package/source/directives/io/schemas.ts +9 -5
- package/source/directives/map/Authority.ts +15 -0
- package/source/directives/map/Buffer.ts +15 -0
- package/source/directives/map/Claims.ts +58 -0
- package/source/directives/map/Directive.ts +4 -0
- package/source/directives/map/Headers.ts +45 -0
- package/source/directives/map/Language.ts +42 -0
- package/source/directives/map/Languages.ts +11 -0
- package/source/directives/map/Map.ts +63 -0
- package/source/directives/map/Mapping.ts +19 -0
- package/source/directives/{vary → map}/Properties.ts +2 -4
- package/source/directives/map/Segments.ts +33 -0
- package/source/directives/map/index.ts +3 -0
- package/source/directives/oauth/Discovery.ts +76 -0
- package/source/directives/oauth/documents.ts +113 -0
- package/source/directives/oauth/index.ts +3 -0
- package/source/directives/octets/Context.ts +5 -4
- package/source/directives/octets/Delete.ts +31 -28
- package/source/directives/octets/Directive.ts +3 -3
- package/source/directives/octets/Get.ts +96 -0
- package/source/directives/octets/Octets.ts +20 -22
- package/source/directives/octets/Put.ts +141 -0
- package/source/directives/octets/Workflow.ts +18 -12
- package/source/directives/octets/bytes.test.ts +33 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/index.ts +1 -1
- package/source/directives/octets/schemas.test.ts +10 -5
- package/source/directives/octets/schemas.ts +8 -12
- package/source/directives/octets/types.ts +3 -1
- package/source/directives/octets/workflows/Execution.ts +67 -11
- package/source/directives/octets/workflows/Workflow.ts +21 -10
- package/source/directives/octets/workflows/index.ts +1 -1
- package/source/directives/require/Directive.ts +1 -1
- package/source/directives/require/Headers.ts +3 -3
- package/source/directives/require/Require.ts +4 -4
- package/source/directives/require/index.ts +1 -1
- package/source/exceptions.ts +18 -6
- package/source/index.ts +11 -5
- package/source/io.ts +1 -1
- package/source/manifest.test.ts +12 -10
- package/source/manifest.ts +13 -14
- package/source/octets.d.ts +17 -0
- package/source/redact.test.ts +27 -0
- package/source/redact.ts +21 -0
- package/source/root.ts +19 -4
- package/source/schemas.test.ts +17 -0
- package/source/schemas.ts +5 -5
- package/source/userland.ts +47 -0
- package/transpiled/Annotation.d.ts +39 -1
- package/transpiled/Annotation.js +1 -2
- package/transpiled/Branch.d.ts +25 -1
- package/transpiled/Branch.js +14 -2
- package/transpiled/Branch.js.map +1 -1
- package/transpiled/Composition.d.ts +3 -4
- package/transpiled/Composition.js +13 -22
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +3 -2
- package/transpiled/Context.js +1 -2
- package/transpiled/Directive.d.ts +14 -6
- package/transpiled/Directive.js +71 -23
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +11 -7
- package/transpiled/Endpoint.js +84 -52
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +6 -6
- package/transpiled/Factory.js +69 -62
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +35 -4
- package/transpiled/Gateway.js +159 -46
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +13 -12
- package/transpiled/HTTP/Context.js +61 -32
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Probe.d.ts +36 -0
- package/transpiled/HTTP/Probe.js +90 -0
- package/transpiled/HTTP/Probe.js.map +1 -0
- package/transpiled/HTTP/Server.d.ts +26 -9
- package/transpiled/HTTP/Server.js +235 -93
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/Timing.d.ts +1 -4
- package/transpiled/HTTP/Timing.js +6 -18
- package/transpiled/HTTP/Timing.js.map +1 -1
- package/transpiled/HTTP/address.d.ts +7 -0
- package/transpiled/HTTP/address.js +14 -0
- package/transpiled/HTTP/address.js.map +1 -0
- package/transpiled/HTTP/exceptions.d.ts +21 -9
- package/transpiled/HTTP/exceptions.js +40 -36
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/form.d.ts +9 -0
- package/transpiled/HTTP/formats/form.js +18 -0
- package/transpiled/HTTP/formats/form.js.map +1 -0
- package/transpiled/HTTP/formats/index.d.ts +10 -4
- package/transpiled/HTTP/formats/index.js +19 -35
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/formats/json.d.ts +1 -3
- package/transpiled/HTTP/formats/json.js +6 -12
- package/transpiled/HTTP/formats/json.js.map +1 -1
- package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
- package/transpiled/HTTP/formats/msgpack.js +7 -12
- package/transpiled/HTTP/formats/msgpack.js.map +1 -1
- package/transpiled/HTTP/formats/text.d.ts +1 -3
- package/transpiled/HTTP/formats/text.js +6 -12
- package/transpiled/HTTP/formats/text.js.map +1 -1
- package/transpiled/HTTP/formats/yaml.d.ts +1 -3
- package/transpiled/HTTP/formats/yaml.js +23 -37
- package/transpiled/HTTP/formats/yaml.js.map +1 -1
- package/transpiled/HTTP/index.d.ts +6 -4
- package/transpiled/HTTP/index.js +6 -20
- package/transpiled/HTTP/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +19 -4
- package/transpiled/HTTP/messages.js +112 -41
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/HTTP/types.d.ts +37 -0
- package/transpiled/HTTP/types.js +2 -0
- package/transpiled/HTTP/types.js.map +1 -0
- package/transpiled/Interception.d.ts +7 -2
- package/transpiled/Interception.js +8 -6
- package/transpiled/Interception.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +2 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +14 -5
- package/transpiled/Mapping.js +48 -24
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +14 -4
- package/transpiled/Query.js +81 -45
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +6 -4
- package/transpiled/RTD/Context.js +1 -2
- package/transpiled/RTD/Directives.d.ts +23 -5
- package/transpiled/RTD/Directives.js +1 -2
- package/transpiled/RTD/Endpoint.d.ts +5 -4
- package/transpiled/RTD/Endpoint.js +1 -2
- package/transpiled/RTD/Match.d.ts +1 -1
- package/transpiled/RTD/Match.js +1 -2
- package/transpiled/RTD/Method.d.ts +6 -2
- package/transpiled/RTD/Method.js +12 -5
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +16 -5
- package/transpiled/RTD/Node.js +47 -22
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +7 -6
- package/transpiled/RTD/Route.js +11 -9
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +12 -5
- package/transpiled/RTD/Tree.js +37 -12
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.d.ts +4 -3
- package/transpiled/RTD/factory.js +31 -15
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/index.d.ts +8 -8
- package/transpiled/RTD/index.js +8 -37
- package/transpiled/RTD/index.js.map +1 -1
- package/transpiled/RTD/segment.d.ts +1 -0
- package/transpiled/RTD/segment.js +4 -7
- package/transpiled/RTD/segment.js.map +1 -1
- package/transpiled/RTD/syntax/index.d.ts +2 -2
- package/transpiled/RTD/syntax/index.js +2 -18
- package/transpiled/RTD/syntax/index.js.map +1 -1
- package/transpiled/RTD/syntax/parse.d.ts +1 -1
- package/transpiled/RTD/syntax/parse.js +38 -54
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +8 -3
- package/transpiled/RTD/syntax/types.js +1 -4
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +7 -7
- package/transpiled/Remotes.js +15 -16
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +15 -4
- package/transpiled/Tenant.js +39 -14
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/const.d.ts +3 -0
- package/transpiled/const.js +4 -0
- package/transpiled/const.js.map +1 -0
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +42 -54
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.d.ts +2 -2
- package/transpiled/directives/auth/Anonymous.js +3 -7
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Anyone.d.ts +6 -0
- package/transpiled/directives/auth/Anyone.js +10 -0
- package/transpiled/directives/auth/Anyone.js.map +1 -0
- package/transpiled/directives/auth/Assert.d.ts +7 -0
- package/transpiled/directives/auth/Assert.js +29 -0
- package/transpiled/directives/auth/Assert.js.map +1 -0
- package/transpiled/directives/auth/Authorization.d.ts +18 -8
- package/transpiled/directives/auth/Authorization.js +171 -85
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +5 -4
- package/transpiled/directives/auth/Delegate.js +10 -10
- package/transpiled/directives/auth/Delegate.js.map +1 -1
- package/transpiled/directives/auth/Echo.d.ts +4 -4
- package/transpiled/directives/auth/Echo.js +12 -9
- package/transpiled/directives/auth/Echo.js.map +1 -1
- package/transpiled/directives/auth/Federation.d.ts +16 -0
- package/transpiled/directives/auth/Federation.js +50 -0
- package/transpiled/directives/auth/Federation.js.map +1 -0
- package/transpiled/directives/auth/Id.d.ts +3 -3
- package/transpiled/directives/auth/Id.js +1 -5
- package/transpiled/directives/auth/Id.js.map +1 -1
- package/transpiled/directives/auth/Incept.d.ts +11 -6
- package/transpiled/directives/auth/Incept.js +66 -50
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Input.d.ts +13 -0
- package/transpiled/directives/auth/Input.js +45 -0
- package/transpiled/directives/auth/Input.js.map +1 -0
- package/transpiled/directives/auth/Role.d.ts +3 -3
- package/transpiled/directives/auth/Role.js +8 -16
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Rule.d.ts +3 -5
- package/transpiled/directives/auth/Rule.js +3 -7
- package/transpiled/directives/auth/Rule.js.map +1 -1
- package/transpiled/directives/auth/Scheme.d.ts +2 -2
- package/transpiled/directives/auth/Scheme.js +7 -34
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/create.d.ts +2 -0
- package/transpiled/directives/auth/create.js +10 -0
- package/transpiled/directives/auth/create.js.map +1 -0
- package/transpiled/directives/auth/index.d.ts +1 -1
- package/transpiled/directives/auth/index.js +2 -5
- package/transpiled/directives/auth/index.js.map +1 -1
- package/transpiled/directives/auth/schemes.d.ts +26 -3
- package/transpiled/directives/auth/schemes.js +32 -8
- package/transpiled/directives/auth/schemes.js.map +1 -1
- package/transpiled/directives/auth/split.d.ts +1 -1
- package/transpiled/directives/auth/split.js +3 -30
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +19 -12
- package/transpiled/directives/auth/types.js +1 -2
- package/transpiled/directives/cache/Cache.d.ts +5 -5
- package/transpiled/directives/cache/Cache.js +27 -13
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +3 -3
- package/transpiled/directives/cache/Control.js +15 -21
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cache/Exact.d.ts +1 -1
- package/transpiled/directives/cache/Exact.js +2 -6
- package/transpiled/directives/cache/Exact.js.map +1 -1
- package/transpiled/directives/cache/index.d.ts +1 -1
- package/transpiled/directives/cache/index.js +2 -5
- package/transpiled/directives/cache/index.js.map +1 -1
- package/transpiled/directives/cache/types.d.ts +1 -1
- package/transpiled/directives/cache/types.js +1 -2
- package/transpiled/directives/cors/CORS.d.ts +10 -3
- package/transpiled/directives/cors/CORS.js +31 -21
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/cors/index.d.ts +1 -1
- package/transpiled/directives/cors/index.js +2 -5
- package/transpiled/directives/cors/index.js.map +1 -1
- package/transpiled/directives/dev/Development.d.ts +4 -4
- package/transpiled/directives/dev/Development.js +19 -15
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/dev/Faulty.d.ts +8 -0
- package/transpiled/directives/dev/Faulty.js +19 -0
- package/transpiled/directives/dev/Faulty.js.map +1 -0
- package/transpiled/directives/dev/Sleep.d.ts +9 -0
- package/transpiled/directives/dev/Sleep.js +41 -0
- package/transpiled/directives/dev/Sleep.js.map +1 -0
- package/transpiled/directives/dev/Stub.d.ts +2 -2
- package/transpiled/directives/dev/Stub.js +1 -5
- package/transpiled/directives/dev/Stub.js.map +1 -1
- package/transpiled/directives/dev/Throw.d.ts +2 -2
- package/transpiled/directives/dev/Throw.js +1 -5
- package/transpiled/directives/dev/Throw.js.map +1 -1
- package/transpiled/directives/dev/index.d.ts +1 -1
- package/transpiled/directives/dev/index.js +2 -5
- package/transpiled/directives/dev/index.js.map +1 -1
- package/transpiled/directives/dev/types.d.ts +2 -2
- package/transpiled/directives/dev/types.js +1 -2
- package/transpiled/directives/flow/Compose.d.ts +9 -0
- package/transpiled/directives/flow/Compose.js +67 -0
- package/transpiled/directives/flow/Compose.js.map +1 -0
- package/transpiled/directives/flow/Fetch.d.ts +12 -0
- package/transpiled/directives/flow/Fetch.js +51 -0
- package/transpiled/directives/flow/Fetch.js.map +1 -0
- package/transpiled/directives/flow/Flow.d.ts +10 -0
- package/transpiled/directives/flow/Flow.js +29 -0
- package/transpiled/directives/flow/Flow.js.map +1 -0
- package/transpiled/directives/flow/index.d.ts +2 -0
- package/transpiled/directives/flow/index.js +3 -0
- package/transpiled/directives/flow/index.js.map +1 -0
- package/transpiled/directives/flow/types.d.ts +6 -0
- package/transpiled/directives/flow/types.js +2 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.d.ts +2 -2
- package/transpiled/directives/index.js +12 -13
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Directive.d.ts +8 -3
- package/transpiled/directives/io/Directive.js +1 -2
- package/transpiled/directives/io/IO.d.ts +18 -5
- package/transpiled/directives/io/IO.js +40 -17
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Input.d.ts +4 -4
- package/transpiled/directives/io/Input.js +16 -37
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/io/Message.js +1 -2
- package/transpiled/directives/io/Output.d.ts +5 -3
- package/transpiled/directives/io/Output.js +20 -38
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/io/Status.d.ts +19 -0
- package/transpiled/directives/io/Status.js +34 -0
- package/transpiled/directives/io/Status.js.map +1 -0
- package/transpiled/directives/io/Throttle.d.ts +11 -0
- package/transpiled/directives/io/Throttle.js +22 -0
- package/transpiled/directives/io/Throttle.js.map +1 -0
- package/transpiled/directives/io/index.d.ts +1 -1
- package/transpiled/directives/io/index.js +2 -5
- package/transpiled/directives/io/index.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Configuration.d.ts +26 -0
- package/transpiled/directives/io/lib/throttle/Configuration.js +25 -0
- package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/Keys.d.ts +14 -0
- package/transpiled/directives/io/lib/throttle/Keys.js +32 -0
- package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/Quotas.d.ts +70 -0
- package/transpiled/directives/io/lib/throttle/Quotas.js +141 -0
- package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/Sync.d.ts +29 -0
- package/transpiled/directives/io/lib/throttle/Sync.js +70 -0
- package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/Warning.d.ts +11 -0
- package/transpiled/directives/io/lib/throttle/Warning.js +24 -0
- package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/Component.d.ts +6 -0
- package/transpiled/directives/io/lib/throttle/components/Component.js +2 -0
- package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/IP.d.ts +14 -0
- package/transpiled/directives/io/lib/throttle/components/IP.js +24 -0
- package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +11 -0
- package/transpiled/directives/io/lib/throttle/components/Identity.js +12 -0
- package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
- package/transpiled/directives/io/lib/throttle/components/Path.js +6 -0
- package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/Route.d.ts +12 -0
- package/transpiled/directives/io/lib/throttle/components/Route.js +16 -0
- package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +9 -0
- package/transpiled/directives/io/lib/throttle/components/Segment.js +13 -0
- package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
- package/transpiled/directives/io/lib/throttle/components/index.js +13 -0
- package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
- package/transpiled/directives/io/lib/throttle/conditions/Condition.js +2 -0
- package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
- package/transpiled/directives/io/lib/throttle/conditions/Status.js +12 -0
- package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
- package/transpiled/directives/io/lib/throttle/conditions/index.js +5 -0
- package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
- package/transpiled/directives/io/lib/throttle/index.d.ts +4 -0
- package/transpiled/directives/io/lib/throttle/index.js +5 -0
- package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
- package/transpiled/directives/io/schemas.d.ts +6 -4
- package/transpiled/directives/io/schemas.js +8 -13
- package/transpiled/directives/io/schemas.js.map +1 -1
- package/transpiled/directives/map/Authority.d.ts +6 -0
- package/transpiled/directives/map/Authority.js +12 -0
- package/transpiled/directives/map/Authority.js.map +1 -0
- package/transpiled/directives/map/Buffer.d.ts +6 -0
- package/transpiled/directives/map/Buffer.js +12 -0
- package/transpiled/directives/map/Buffer.js.map +1 -0
- package/transpiled/directives/map/Claims.d.ts +10 -0
- package/transpiled/directives/map/Claims.js +37 -0
- package/transpiled/directives/map/Claims.js.map +1 -0
- package/transpiled/directives/map/Directive.d.ts +3 -0
- package/transpiled/directives/map/Directive.js +2 -0
- package/transpiled/directives/map/Directive.js.map +1 -0
- package/transpiled/directives/map/Headers.d.ts +7 -0
- package/transpiled/directives/map/Headers.js +33 -0
- package/transpiled/directives/map/Headers.js.map +1 -0
- package/transpiled/directives/map/Language.d.ts +10 -0
- package/transpiled/directives/map/Language.js +31 -0
- package/transpiled/directives/map/Language.js.map +1 -0
- package/transpiled/directives/map/Languages.d.ts +4 -0
- package/transpiled/directives/map/Languages.js +10 -0
- package/transpiled/directives/map/Languages.js.map +1 -0
- package/transpiled/directives/map/Map.d.ts +13 -0
- package/transpiled/directives/map/Map.js +44 -0
- package/transpiled/directives/map/Map.js.map +1 -0
- package/transpiled/directives/map/Mapping.d.ts +13 -0
- package/transpiled/directives/map/Mapping.js +9 -0
- package/transpiled/directives/map/Mapping.js.map +1 -0
- package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
- package/transpiled/directives/map/Properties.js +10 -0
- package/transpiled/directives/map/Properties.js.map +1 -0
- package/transpiled/directives/map/Segments.d.ts +6 -0
- package/transpiled/directives/map/Segments.js +23 -0
- package/transpiled/directives/map/Segments.js.map +1 -0
- package/transpiled/directives/map/index.d.ts +2 -0
- package/transpiled/directives/map/index.js +3 -0
- package/transpiled/directives/map/index.js.map +1 -0
- package/transpiled/directives/oauth/Discovery.d.ts +23 -0
- package/transpiled/directives/oauth/Discovery.js +58 -0
- package/transpiled/directives/oauth/Discovery.js.map +1 -0
- package/transpiled/directives/oauth/documents.d.ts +9 -0
- package/transpiled/directives/oauth/documents.js +82 -0
- package/transpiled/directives/oauth/documents.js.map +1 -0
- package/transpiled/directives/oauth/index.d.ts +2 -0
- package/transpiled/directives/oauth/index.js +3 -0
- package/transpiled/directives/oauth/index.js.map +1 -0
- package/transpiled/directives/octets/Context.d.ts +2 -2
- package/transpiled/directives/octets/Context.js +4 -31
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.d.ts +6 -6
- package/transpiled/directives/octets/Delete.js +23 -47
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/Directive.d.ts +3 -3
- package/transpiled/directives/octets/Directive.js +1 -5
- package/transpiled/directives/octets/Directive.js.map +1 -1
- package/transpiled/directives/octets/Get.d.ts +17 -0
- package/transpiled/directives/octets/Get.js +69 -0
- package/transpiled/directives/octets/Get.js.map +1 -0
- package/transpiled/directives/octets/Octets.d.ts +5 -5
- package/transpiled/directives/octets/Octets.js +19 -24
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +14 -8
- package/transpiled/directives/octets/Put.js +74 -0
- package/transpiled/directives/octets/Put.js.map +1 -0
- package/transpiled/directives/octets/Workflow.d.ts +6 -6
- package/transpiled/directives/octets/Workflow.js +14 -36
- package/transpiled/directives/octets/Workflow.js.map +1 -1
- package/transpiled/directives/octets/bytes.d.ts +1 -0
- package/transpiled/directives/octets/bytes.js +14 -0
- package/transpiled/directives/octets/bytes.js.map +1 -0
- package/transpiled/directives/octets/index.d.ts +1 -1
- package/transpiled/directives/octets/index.js +2 -5
- package/transpiled/directives/octets/index.js.map +1 -1
- package/transpiled/directives/octets/schemas.d.ts +6 -10
- package/transpiled/directives/octets/schemas.js +8 -17
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/types.d.ts +3 -1
- package/transpiled/directives/octets/types.js +1 -2
- package/transpiled/directives/octets/workflows/Execution.d.ts +9 -4
- package/transpiled/directives/octets/workflows/Execution.js +46 -13
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.d.ts +10 -5
- package/transpiled/directives/octets/workflows/Workflow.js +16 -14
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/octets/workflows/index.d.ts +1 -1
- package/transpiled/directives/octets/workflows/index.js +1 -5
- package/transpiled/directives/octets/workflows/index.js.map +1 -1
- package/transpiled/directives/require/Directive.d.ts +1 -1
- package/transpiled/directives/require/Directive.js +1 -2
- package/transpiled/directives/require/Headers.d.ts +2 -2
- package/transpiled/directives/require/Headers.js +3 -7
- package/transpiled/directives/require/Headers.js.map +1 -1
- package/transpiled/directives/require/Require.d.ts +3 -3
- package/transpiled/directives/require/Require.js +6 -13
- package/transpiled/directives/require/Require.js.map +1 -1
- package/transpiled/directives/require/index.d.ts +1 -1
- package/transpiled/directives/require/index.js +2 -5
- package/transpiled/directives/require/index.js.map +1 -1
- package/transpiled/discovery.js +1 -2
- package/transpiled/exceptions.d.ts +1 -1
- package/transpiled/exceptions.js +16 -34
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/index.d.ts +7 -5
- package/transpiled/index.js +4 -11
- package/transpiled/index.js.map +1 -1
- package/transpiled/io.d.ts +1 -1
- package/transpiled/io.js +1 -2
- package/transpiled/manifest.d.ts +1 -1
- package/transpiled/manifest.js +17 -48
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/redact.d.ts +5 -0
- package/transpiled/redact.js +17 -0
- package/transpiled/redact.js.map +1 -0
- package/transpiled/root.d.ts +1 -1
- package/transpiled/root.js +21 -10
- package/transpiled/root.js.map +1 -1
- package/transpiled/schemas.d.ts +3 -3
- package/transpiled/schemas.js +7 -13
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/userland.d.ts +39 -0
- package/transpiled/userland.js +7 -0
- package/transpiled/userland.js.map +1 -0
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
- package/components/identity.basic/operations/types.d.ts +0 -40
- package/components/identity.basic/operations/types.js +0 -3
- package/components/identity.basic/operations/types.js.map +0 -1
- package/components/identity.basic/source/types.ts +0 -44
- package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
- package/components/identity.federation/operations/lib/assertions-as-values.js +0 -45
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
- package/components/identity.federation/operations/lib/jwt.d.ts +0 -20
- package/components/identity.federation/operations/lib/jwt.js +0 -136
- package/components/identity.federation/operations/lib/jwt.js.map +0 -1
- package/components/identity.federation/operations/schemas.d.ts +0 -63
- package/components/identity.federation/operations/schemas.js +0 -9
- package/components/identity.federation/operations/schemas.js.map +0 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
- package/components/identity.federation/operations/types.d.ts +0 -56
- package/components/identity.federation/operations/types.js +0 -3
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
- package/components/identity.federation/source/lib/jwt.test.ts +0 -56
- package/components/identity.federation/source/lib/jwt.ts +0 -171
- package/components/identity.federation/source/schemas.ts +0 -65
- package/components/identity.federation/source/types.ts +0 -62
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
- package/components/identity.tokens/operations/types.d.ts +0 -46
- package/components/identity.tokens/operations/types.js +0 -3
- package/components/identity.tokens/operations/types.js.map +0 -1
- package/components/identity.tokens/source/types.ts +0 -55
- package/components/octets.storage/manifest.toa.yaml +0 -21
- package/components/octets.storage/operations/fetch.js +0 -46
- package/components/octets.storage/operations/get.js +0 -7
- package/components/octets.storage/operations/list.js +0 -7
- package/components/octets.storage/operations/store.js +0 -11
- package/cucumber.js +0 -7
- package/documentation/vary.md +0 -69
- package/features/steps/IdP.ts +0 -154
- package/features/steps/components/octets.tester/operations/diversify.js +0 -14
- package/features/vary.feature +0 -252
- package/schemas/octets/context.cos.yaml +0 -1
- package/schemas/octets/fetch.cos.yaml +0 -3
- package/schemas/octets/list.cos.yaml +0 -2
- package/schemas/octets/permute.cos.yaml +0 -1
- package/schemas/octets/store.cos.yaml +0 -3
- package/source/directives/octets/Fetch.ts +0 -100
- package/source/directives/octets/List.ts +0 -72
- package/source/directives/octets/Store.ts +0 -126
- package/source/directives/vary/Directive.ts +0 -7
- package/source/directives/vary/Embed.ts +0 -68
- package/source/directives/vary/Vary.ts +0 -50
- package/source/directives/vary/embeddings/Authority.ts +0 -8
- package/source/directives/vary/embeddings/Embedding.ts +0 -7
- package/source/directives/vary/embeddings/Header.ts +0 -32
- package/source/directives/vary/embeddings/Language.ts +0 -31
- package/source/directives/vary/embeddings/Parameter.ts +0 -14
- package/source/directives/vary/embeddings/index.ts +0 -13
- package/source/directives/vary/index.ts +0 -3
- package/source/index.test.ts +0 -9
- package/transpiled/directives/octets/Fetch.d.ts +0 -18
- package/transpiled/directives/octets/Fetch.js +0 -92
- package/transpiled/directives/octets/Fetch.js.map +0 -1
- package/transpiled/directives/octets/List.d.ts +0 -16
- package/transpiled/directives/octets/List.js +0 -74
- package/transpiled/directives/octets/List.js.map +0 -1
- package/transpiled/directives/octets/Store.js +0 -95
- package/transpiled/directives/octets/Store.js.map +0 -1
- package/transpiled/directives/vary/Directive.d.ts +0 -6
- package/transpiled/directives/vary/Directive.js +0 -3
- package/transpiled/directives/vary/Directive.js.map +0 -1
- package/transpiled/directives/vary/Embed.d.ts +0 -11
- package/transpiled/directives/vary/Embed.js +0 -51
- package/transpiled/directives/vary/Embed.js.map +0 -1
- package/transpiled/directives/vary/Properties.js +0 -16
- package/transpiled/directives/vary/Properties.js.map +0 -1
- package/transpiled/directives/vary/Vary.d.ts +0 -10
- package/transpiled/directives/vary/Vary.js +0 -36
- package/transpiled/directives/vary/Vary.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/Authority.js +0 -10
- package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
- package/transpiled/directives/vary/embeddings/Embedding.js +0 -3
- package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Header.js +0 -28
- package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Language.js +0 -28
- package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
- package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
- package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/index.js +0 -14
- package/transpiled/directives/vary/embeddings/index.js.map +0 -1
- package/transpiled/directives/vary/index.d.ts +0 -2
- package/transpiled/directives/vary/index.js +0 -6
- package/transpiled/directives/vary/index.js.map +0 -1
- package/transpiled/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Decentralized Request Throttling
|
|
2
|
+
|
|
3
|
+
> **Superseded.** The design below was never implemented. `io:throttle` is now a
|
|
4
|
+
> [GCRA](https://en.wikipedia.org/wiki/Generic_cell_rate_algorithm) deciding in each process, with
|
|
5
|
+
> its state periodically reconciled through Redis by way of the `atom` aspect's `meter`. It
|
|
6
|
+
> answers the same forces the same way — decide locally, reconcile in the background, never fail the
|
|
7
|
+
> request path — and the section below records what it does instead. The problem statement and the
|
|
8
|
+
> forces have not changed.
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
To prevent an unnecessary load, API requests should be throttled when made maliciously or due to an
|
|
13
|
+
error.
|
|
14
|
+
|
|
15
|
+
## Context
|
|
16
|
+
|
|
17
|
+
1. The [API Gateway](https://microservices.io/patterns/apigateway.html) of a distributed system runs
|
|
18
|
+
in multiple instances, each with an in-memory state that does not allow tracking the current
|
|
19
|
+
quota usage.
|
|
20
|
+
2. Precise quota enforcement (per request, per second) is not critical; the goal is to prevent
|
|
21
|
+
significant overuse.
|
|
22
|
+
3. Quota configuration is static.
|
|
23
|
+
|
|
24
|
+
## Forces
|
|
25
|
+
|
|
26
|
+
1. No per request IO is allowed (centralized solutions do not fit).
|
|
27
|
+
2. In a distributed system, there is no concept of a *global current time*.
|
|
28
|
+
3. Failure to retrieve the quota state should not result in Gateway failure.
|
|
29
|
+
|
|
30
|
+
## Solution
|
|
31
|
+
|
|
32
|
+
Implement in-memory quotas in each process, periodically synchronizing them asynchronously using
|
|
33
|
+
Redis.
|
|
34
|
+
|
|
35
|
+
Consider a basic throttling rule:
|
|
36
|
+
|
|
37
|
+
1. No more than `MAX_REQUESTS` within `INTERVAL` time for any API route (`KEY`).
|
|
38
|
+
2. If the limit is exceeded, block requests to `KEY` for `COOLDOWN` seconds.
|
|
39
|
+
|
|
40
|
+
### Concept
|
|
41
|
+
|
|
42
|
+
1. Divide `INTERVAL` into `N` spans (`N >= 2`).
|
|
43
|
+
2. At the end of each span,
|
|
44
|
+
atomically increment the value in Redis ([INCRBY](https://redis.io/docs/latest/commands/incrby/))
|
|
45
|
+
by the number of requests received for each `KEY`, using a key composed of the `KEY` and the
|
|
46
|
+
current ordinal number of `INTERVAL`
|
|
47
|
+
in [Unix epoch](https://en.wikipedia.org/wiki/Unix_time).
|
|
48
|
+
3. If the returned value exceeds `MAX_REQUESTS`, block access to `KEY`, remove after `COOLDOWN`.
|
|
49
|
+
4. If the write operation fails and `REQUESTS > MAX_REQUESTS / N` (i.e., the quota is exceeded
|
|
50
|
+
locally), block access to `KEY`, remove after `COOLDOWN`.
|
|
51
|
+
|
|
52
|
+
Each API Gateway instance will generate the `KEY` based on its own local time,
|
|
53
|
+
which, in general, will lead to simultaneous writes (from Redis’s local time perspective) to
|
|
54
|
+
different `KEY`s. However, the total contribution of each node to each `KEY` will correspond to the
|
|
55
|
+
actual request rate experienced by that node.
|
|
56
|
+
|
|
57
|
+
<img src="desync.jpg" alt="Desynchronization" />
|
|
58
|
+
|
|
59
|
+
Dividing the `INTERVAL` into spans smooths the desynchronization effect.
|
|
60
|
+
|
|
61
|
+
### Extension
|
|
62
|
+
|
|
63
|
+
Introduce `nodes`, the approximate number of active API Gateway instances, to improve the algorithm.
|
|
64
|
+
|
|
65
|
+
1. Initially, `nodes` equals to `1`.
|
|
66
|
+
2. During each `INTERVAL`, sum the total request count for each `KEY`, keep current and previous
|
|
67
|
+
values.
|
|
68
|
+
3. At the end of each interval:
|
|
69
|
+
|
|
70
|
+
- Read the value from the `KEY` for the previous interval. At this point, it is assumed that all
|
|
71
|
+
nodes have switched to the next interval.
|
|
72
|
+
- Update the `nodes` value by dividing response form Redis by the number of `REQUESTS` counted for
|
|
73
|
+
the previous interval.
|
|
74
|
+
- Set the previous value to the current value.
|
|
75
|
+
- Set the current value to `0`
|
|
76
|
+
|
|
77
|
+
4. Update point 4 of the [Concept](#concept): `REQUESTS * nodes > MAX_REQUESTS / N`.
|
|
78
|
+
This will increase the precision of the local quota enforcement.
|
|
79
|
+
5. Add a new step: if `REQUESTS * nodes > MAX_REQUESTS`, block access to `KEY`, remove after
|
|
80
|
+
`COOLDOWN`.
|
|
81
|
+
|
|
82
|
+
When nodes are added or removed, the algorithm will adapt in the upcoming intervals.
|
|
83
|
+
|
|
84
|
+
### Caveats
|
|
85
|
+
|
|
86
|
+
1. In the worst case scenario (really, really unlikely), the quota is exceeded by `MAX_REQUESTS / N`
|
|
87
|
+
in a span on each node.
|
|
88
|
+
2. Time desynchronization between nodes should be insignificant for the selected `INTERVAL` (i.e.,
|
|
89
|
+
`INTERVAL` >> desync). See Extension point 3.
|
|
90
|
+
|
|
91
|
+
## What was implemented instead
|
|
92
|
+
|
|
93
|
+
Windows were dropped for a GCRA. A key holds one theoretical arrival time: the moment it would be
|
|
94
|
+
back at zero if nothing more arrived. An admitted request pushes it `interval / requests`
|
|
95
|
+
milliseconds further out, time drags it back, and a request is admitted while it stays within
|
|
96
|
+
`interval` of now. So `requests` is what a key may spend at once and `requests / interval` the rate
|
|
97
|
+
it earns back, with no window edge to burst across and no lockout to time out of — which is why
|
|
98
|
+
`cooldown` is gone.
|
|
99
|
+
|
|
100
|
+
Deciding reads nothing but a local map, so the request path stays free of I/O, exactly as force 1
|
|
101
|
+
demands. What the other gateways have spent arrives on a timer, as **debt**: the milliseconds a key
|
|
102
|
+
owes, draining at a millisecond a millisecond. Debt is the right thing to send for two reasons.
|
|
103
|
+
|
|
104
|
+
1. It is a duration, not a moment, so processes exchanging it need not agree on the time — force 2,
|
|
105
|
+
answered by not needing an answer. The one clock that matters is Redis', read inside the script.
|
|
106
|
+
2. It is additive in admissions, so a process reports only its own increments and Redis keeps the
|
|
107
|
+
running total. Nothing has to be divided by a number of nodes, which is as well: the gateway
|
|
108
|
+
cannot observe how many of it there are.
|
|
109
|
+
|
|
110
|
+
The consequences worth knowing:
|
|
111
|
+
|
|
112
|
+
- **Reconciling is decoupled from `interval`.** The timer runs at a tenth of `interval`, clamped
|
|
113
|
+
between 250ms and 2s, so a minute-long budget is no staler than a second-long one. The overshoot
|
|
114
|
+
is bounded by what the other instances admit within one tick — the caveat that replaces the old
|
|
115
|
+
note's `MAX_REQUESTS / N` per span.
|
|
116
|
+
- **The cost is one round trip a tick**, not one per key. Every quota in the process flushes into a
|
|
117
|
+
single script call, which matters because a limiter keyed on `ip` watches as many keys as it has
|
|
118
|
+
clients.
|
|
119
|
+
- **Redis keys expire on their own**, after the debt on them plus a grace, so nothing sweeps them.
|
|
120
|
+
- **Failure degrades, as force 3 demands.** A tick that cannot reach Redis leaves its debt to the
|
|
121
|
+
next one rather than losing it; until then the instance throttles on what it alone has seen, and
|
|
122
|
+
keeps serving.
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# OAuth 2.1 Authorization Server
|
|
2
|
+
|
|
3
|
+
An application exposes an authorization server by annotating one, and none without it. A client
|
|
4
|
+
authorized this way holds a token of the identity that consented, and presents it as `Bearer`.
|
|
5
|
+
|
|
6
|
+
## Annotation
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
exposition:
|
|
10
|
+
authorities:
|
|
11
|
+
local: api.example.com
|
|
12
|
+
oauth:
|
|
13
|
+
authorize: https://app.example.com/oauth/authorize
|
|
14
|
+
resources: ['/mcp/']
|
|
15
|
+
scopes: [app:notes, app:notes:read]
|
|
16
|
+
registration: closed
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
<dl>
|
|
20
|
+
<dt><code>authorize</code></dt>
|
|
21
|
+
<dd>Required. The absolute URL of the consent page. The application serves it; see
|
|
22
|
+
<a href="consent.md">Consent</a>.</dd>
|
|
23
|
+
<dt><code>resources</code></dt>
|
|
24
|
+
<dd>Paths advertised as protected resources, each with a document of its own and named by the
|
|
25
|
+
challenge a request to it is refused with. A token is not yet bound to one, see
|
|
26
|
+
<a href="#audience">Audience</a>.</dd>
|
|
27
|
+
<dt><code>scopes</code></dt>
|
|
28
|
+
<dd>Advertised as what a client may ask for. Each is a <a href="access.md#roles">role</a>, or a
|
|
29
|
+
scope within one.</dd>
|
|
30
|
+
<dt><code>registration</code></dt>
|
|
31
|
+
<dd><code>open</code> advertises the registration endpoint, <code>closed</code> does not.
|
|
32
|
+
Defaults to <code>closed</code>.</dd>
|
|
33
|
+
</dl>
|
|
34
|
+
|
|
35
|
+
The issuer is the authority's configured host, over `https` unless the host is a loopback one.
|
|
36
|
+
|
|
37
|
+
## Discovery
|
|
38
|
+
|
|
39
|
+
Two documents are served, at the paths their specifications fix, to anyone.
|
|
40
|
+
|
|
41
|
+
`/.well-known/oauth-authorization-server` is
|
|
42
|
+
[RFC 8414](https://www.rfc-editor.org/rfc/rfc8414) metadata:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
issuer: https://api.example.com
|
|
46
|
+
authorization_endpoint: https://app.example.com/oauth/authorize
|
|
47
|
+
token_endpoint: https://api.example.com/identity/grants/
|
|
48
|
+
registration_endpoint: https://api.example.com/identity/clients/
|
|
49
|
+
response_types_supported: [code]
|
|
50
|
+
grant_types_supported: [authorization_code]
|
|
51
|
+
code_challenge_methods_supported: [S256]
|
|
52
|
+
token_endpoint_auth_methods_supported: [none]
|
|
53
|
+
client_id_metadata_document_supported: true
|
|
54
|
+
authorization_response_iss_parameter_supported: true
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`/.well-known/oauth-protected-resource` is
|
|
58
|
+
[RFC 9728](https://www.rfc-editor.org/rfc/rfc9728) metadata. Each configured resource has one of
|
|
59
|
+
its own, at the path the well-known segment is followed by: `/mcp/` is read at
|
|
60
|
+
`/.well-known/oauth-protected-resource/mcp`.
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
resource: https://api.example.com/mcp
|
|
64
|
+
authorization_servers: [https://api.example.com]
|
|
65
|
+
bearer_methods_supported: [header]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`/.well-known/openid-configuration` answers with the authorization server metadata, for a client
|
|
69
|
+
that reads only that.
|
|
70
|
+
|
|
71
|
+
A reply of `401` carries the challenge that names the document:
|
|
72
|
+
|
|
73
|
+
```http
|
|
74
|
+
401 Unauthorized
|
|
75
|
+
www-authenticate: Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource/mcp", scope="app:notes"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Clients
|
|
79
|
+
|
|
80
|
+
A `client_id` that is an `https` URL is a
|
|
81
|
+
[Client ID Metadata Document](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-client-id-metadata-document-00):
|
|
82
|
+
the client publishes what it is at that URL, and the document is read from there. Only origins
|
|
83
|
+
`identity.clients` is configured to trust are read, and an empty list reads none:
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
configuration:
|
|
87
|
+
identity.clients:
|
|
88
|
+
trust:
|
|
89
|
+
- https://claude.ai
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Anything else was registered through
|
|
93
|
+
[RFC 7591](https://www.rfc-editor.org/rfc/rfc7591), which `registration: open` advertises:
|
|
94
|
+
|
|
95
|
+
```http
|
|
96
|
+
POST /identity/clients/ HTTP/1.1
|
|
97
|
+
content-type: application/json
|
|
98
|
+
|
|
99
|
+
{"client_name": "Claude", "redirect_uris": ["https://claude.ai/api/mcp/auth_callback"]}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```http
|
|
103
|
+
201 Created
|
|
104
|
+
|
|
105
|
+
{"client_id": "c8f3a1e4d8c9b2f6a0e5d7c3b1a9f8e2", "client_name": "Claude", …}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
A registration is addressed by a hash of what it says, so the same metadata is one client however
|
|
109
|
+
many times it arrives. A registration cannot be changed: a revision is a different client.
|
|
110
|
+
|
|
111
|
+
Only public clients are supported. `token_endpoint_auth_method` other than `none` is refused.
|
|
112
|
+
|
|
113
|
+
`redirect_uris` are matched exactly, except for a loopback address, where the port is ignored
|
|
114
|
+
([RFC 8252 §7.3](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3)).
|
|
115
|
+
|
|
116
|
+
`GET /identity/clients/:id/` returns a client to any authenticated identity, which is what the
|
|
117
|
+
consent page reads.
|
|
118
|
+
|
|
119
|
+
## Token endpoint
|
|
120
|
+
|
|
121
|
+
`POST /identity/grants/`, anonymous, `application/x-www-form-urlencoded`.
|
|
122
|
+
|
|
123
|
+
```http
|
|
124
|
+
POST /identity/grants/ HTTP/1.1
|
|
125
|
+
content-type: application/x-www-form-urlencoded
|
|
126
|
+
|
|
127
|
+
grant_type=authorization_code&code=SplxlO&code_verifier=dBjftJeZ&redirect_uri=…&client_id=…
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```http
|
|
131
|
+
200 OK
|
|
132
|
+
cache-control: no-store
|
|
133
|
+
|
|
134
|
+
{"access_token": "…", "token_type": "Bearer", "expires_in": 2592000}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
`code_verifier` is required: the code was issued against its `S256` hash
|
|
138
|
+
([RFC 7636](https://www.rfc-editor.org/rfc/rfc7636)). A code may be redeemed once, and is spent
|
|
139
|
+
whether or not the verifier matches. Every refusal is `invalid_grant`.
|
|
140
|
+
|
|
141
|
+
A code is valid for `identity.grants.lifetime` seconds, 60 by default. A token is valid for
|
|
142
|
+
`identity.grants.token` seconds, 30 days by default; `0` is until it is revoked.
|
|
143
|
+
|
|
144
|
+
## Grants
|
|
145
|
+
|
|
146
|
+
A grant is what a user allowed a client. One is held per identity per client.
|
|
147
|
+
|
|
148
|
+
`GET /identity/grants/:identity/` lists them. `DELETE /identity/grants/:identity/:id/` revokes one,
|
|
149
|
+
which disables the key its token was issued under: the token stops being one within
|
|
150
|
+
`identity.tokens.cache.ttl`.
|
|
151
|
+
|
|
152
|
+
## Tokens
|
|
153
|
+
|
|
154
|
+
An access token is a token of the identity that consented, carrying the
|
|
155
|
+
[roles](access.md#roles) that identity holds, or the subset the client asked for as `scope`. It is
|
|
156
|
+
presented as `Bearer`, which `identity.federation` also answers to — see
|
|
157
|
+
[Bearer scheme](identity.md#bearer-scheme).
|
|
158
|
+
|
|
159
|
+
A `scope` a client asks for is not checked against `scopes_supported`: it is granted if the
|
|
160
|
+
consenting identity holds it, and refused as `invalid_scope` otherwise. What is advertised says
|
|
161
|
+
what an application means to offer, not what the server will refuse.
|
|
162
|
+
|
|
163
|
+
## Audience
|
|
164
|
+
|
|
165
|
+
`resource` ([RFC 8707](https://www.rfc-editor.org/rfc/rfc8707)) is accepted at both endpoints and
|
|
166
|
+
recorded on the grant. **It does not yet restrict the token.** An access token carries the rights
|
|
167
|
+
of the identity that consented, over every path that identity may reach, whichever resource it was
|
|
168
|
+
asked for.
|
|
169
|
+
|
|
170
|
+
Restricting it is a `permissions` argument at the `identity.tokens.issue` call in
|
|
171
|
+
`identity.grants.exchange` — `{'/mcp/**': ['*']}` for a resource at `/mcp/` — enforced by
|
|
172
|
+
`permits()`, which is already what reads a token's permissions on every request. It waits on the
|
|
173
|
+
resource that will check the audience itself.
|
|
174
|
+
|
|
175
|
+
## References
|
|
176
|
+
|
|
177
|
+
- [OAuth 2.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1)
|
|
178
|
+
- [Consent](consent.md), the page an application serves
|
|
179
|
+
- [Features](../features/oauth.grants.feature)
|
package/documentation/octets.md
CHANGED
|
@@ -14,26 +14,32 @@ directives under the current RTD Node.
|
|
|
14
14
|
octets:context: images
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
## `octets:
|
|
17
|
+
## `octets:put`
|
|
18
18
|
|
|
19
19
|
Stores the content of the request body into a storage, under the request path with
|
|
20
20
|
specified `content-type`.
|
|
21
21
|
|
|
22
22
|
If request's `content-type` is not acceptable, or if the request body does not pass
|
|
23
|
-
the [validation](/extensions/storages/readme.md#async-putpath-string-stream-readable-
|
|
23
|
+
the [validation](/extensions/storages/readme.md#async-putpath-string-stream-readable-options-options-maybeentry),
|
|
24
24
|
the request is rejected with a `415 Unsupported Media Type` response.
|
|
25
25
|
|
|
26
|
-
The value of the directive
|
|
26
|
+
The value of the directive must be `null` (defaults) or an object with the following optional
|
|
27
|
+
properties:
|
|
27
28
|
|
|
29
|
+
- `location`: a string that represents the path to store the
|
|
30
|
+
content.
|
|
31
|
+
If not specified, the path is the same as the request path.
|
|
32
|
+
- `limit`: [maximum size](#stream-size-limit) of the incoming stream.
|
|
28
33
|
- `accept`: a media type or an array of media types that are acceptable.
|
|
29
34
|
If the `accept` property is not specified, any media type is acceptable (which is the default).
|
|
30
35
|
- `workflow`: [workflow](#workflows) to be executed once the content is successfully stored.
|
|
36
|
+
- `trust`: a list of [trusted origins](#downloading-external-content).
|
|
31
37
|
|
|
32
38
|
```yaml
|
|
33
39
|
/images:
|
|
34
40
|
octets:context: images
|
|
35
41
|
POST:
|
|
36
|
-
octets:
|
|
42
|
+
octets:put:
|
|
37
43
|
accept:
|
|
38
44
|
- image/jpeg
|
|
39
45
|
- image/png
|
|
@@ -43,31 +49,97 @@ The value of the directive is `null` or an object with the following properties:
|
|
|
43
49
|
analyze: images.analyze
|
|
44
50
|
```
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
### Headers
|
|
53
|
+
|
|
54
|
+
`content-id` header can be used to set the ID of the Entry.
|
|
55
|
+
The value must match the following regular expression `^[a-zA-Z0-9-_]{1,16}$`.
|
|
56
|
+
|
|
57
|
+
Non-standard `content-attributes` header can be used
|
|
47
58
|
to set initial [metadata](/extensions/storages/readme.md#entry) value for the Entry.
|
|
48
59
|
|
|
49
|
-
The value of the `content-
|
|
60
|
+
The value of the `content-attributes` header is a comma-separated list of key-value string pairs.
|
|
50
61
|
If no value is provided for a key, the string `true` is used.
|
|
51
62
|
|
|
52
63
|
```http
|
|
53
64
|
POST /images/ HTTP/1.1
|
|
54
65
|
content-type: image/jpeg
|
|
55
|
-
content-
|
|
56
|
-
content-
|
|
66
|
+
content-id: example-id
|
|
67
|
+
content-attributes: foo, bar=baz
|
|
68
|
+
content-attributes: baz=1
|
|
57
69
|
```
|
|
58
70
|
|
|
59
71
|
```yaml
|
|
60
|
-
|
|
72
|
+
attributes:
|
|
61
73
|
foo: 'true'
|
|
62
74
|
bar: 'baz'
|
|
63
75
|
baz: '1'
|
|
64
76
|
```
|
|
65
77
|
|
|
66
|
-
If the Entry already exists, the `content-
|
|
78
|
+
If the Entry already exists, the `content-attributes` header is ignored.
|
|
79
|
+
|
|
80
|
+
### Location
|
|
81
|
+
|
|
82
|
+
The `location` property can be used to store the content under a different path.
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
/images:
|
|
86
|
+
octets:context: images
|
|
87
|
+
POST:
|
|
88
|
+
octets:put:
|
|
89
|
+
location: /archive
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Physical storage path is constructed by resolving the `location`
|
|
93
|
+
property [relative](https://datatracker.ietf.org/doc/html/rfc3986#section-5) to the request path.
|
|
94
|
+
|
|
95
|
+
### Stream size limit
|
|
96
|
+
|
|
97
|
+
The `limit` property can be used to set the maximum size of the incoming stream in bytes.
|
|
98
|
+
|
|
99
|
+
The property value can be specified as a number
|
|
100
|
+
(representing bytes) or a string that combines a number with a unit (e.g., `1MB`).
|
|
101
|
+
Both [binary and decimal prefixes](https://en.wikipedia.org/wiki/Binary_prefix) are supported.
|
|
102
|
+
If the prefix or unit is specified _incorrectly_ (e.g., `1mb`),
|
|
103
|
+
it will default to a binary prefix interpretation.
|
|
104
|
+
|
|
105
|
+
- `1b`, `1B`: 1 byte
|
|
106
|
+
- `1KB`: 1000 bytes
|
|
107
|
+
- `1KiB`: 1024 bytes
|
|
108
|
+
- `1kb`: 1024 bytes
|
|
109
|
+
|
|
110
|
+
The default value is `64MiB`.
|
|
111
|
+
|
|
112
|
+
### Downloading external content
|
|
113
|
+
|
|
114
|
+
The `octets:put` directive can be used to download external content:
|
|
115
|
+
|
|
116
|
+
```http
|
|
117
|
+
POST /images/ HTTP/1.1
|
|
118
|
+
content-location: https://example.com/image.jpg
|
|
119
|
+
content-length: 0
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Requests with `content-location` header must have an empty body (`content-length: 0` header).
|
|
123
|
+
|
|
124
|
+
Target origin must be allowed by the `trust` property,
|
|
125
|
+
which can contain a list of trusted origins or regular expressions to match the full URL.
|
|
126
|
+
|
|
127
|
+
URL of the downloaded content is stored in the `origin` property of
|
|
128
|
+
the [Entry](/extensions/storages/readme.md#entry).
|
|
129
|
+
|
|
130
|
+
```yaml
|
|
131
|
+
/images:
|
|
132
|
+
octets:context: images
|
|
133
|
+
POST:
|
|
134
|
+
octets:put:
|
|
135
|
+
trust:
|
|
136
|
+
- https://example.com
|
|
137
|
+
- ^https://example\.com/[a-z]+\.jpe?g$
|
|
138
|
+
```
|
|
67
139
|
|
|
68
140
|
### Response
|
|
69
141
|
|
|
70
|
-
The response of the `octets:
|
|
142
|
+
The response of the `octets:put` directive is the created Entry.
|
|
71
143
|
|
|
72
144
|
```
|
|
73
145
|
201 Created
|
|
@@ -78,12 +150,13 @@ type: image/jpeg
|
|
|
78
150
|
created: 1698004822358
|
|
79
151
|
```
|
|
80
152
|
|
|
81
|
-
If the `octets:
|
|
153
|
+
If the `octets:put` directive contains a `workflow`, the response
|
|
82
154
|
is [multipart](protocol.md#multipart-types).
|
|
83
155
|
The first part represents the created Entry, which is sent immediately after the BLOB is stored,
|
|
84
156
|
while subsequent parts are results from the workflow endpoints, sent as soon as they are available.
|
|
85
157
|
|
|
86
|
-
In case a workflow endpoint returns an `Error`, the error part is sent,
|
|
158
|
+
In case a workflow endpoint returns an `Error`, the error part is sent,
|
|
159
|
+
and the response is closed.
|
|
87
160
|
Error's properties are added to the error part, among with the `step` identifier.
|
|
88
161
|
|
|
89
162
|
```
|
|
@@ -91,20 +164,33 @@ Error's properties are added to the error part, among with the `step` identifier
|
|
|
91
164
|
content-type: multipart/yaml; boundary=cut
|
|
92
165
|
|
|
93
166
|
--cut
|
|
167
|
+
|
|
94
168
|
id: eecd837c
|
|
95
169
|
type: image/jpeg
|
|
96
170
|
created: 1698004822358
|
|
171
|
+
|
|
97
172
|
--cut
|
|
98
|
-
|
|
173
|
+
|
|
174
|
+
step: optimize
|
|
175
|
+
status: completed
|
|
176
|
+
|
|
99
177
|
--cut
|
|
178
|
+
|
|
179
|
+
step: resize
|
|
100
180
|
error:
|
|
101
|
-
step: resize
|
|
102
181
|
code: TOO_SMALL
|
|
103
182
|
message: Image is too small
|
|
183
|
+
status: completed
|
|
184
|
+
|
|
185
|
+
--cut
|
|
186
|
+
|
|
187
|
+
step: analyze
|
|
188
|
+
status: exception
|
|
189
|
+
|
|
104
190
|
--cut--
|
|
105
191
|
```
|
|
106
192
|
|
|
107
|
-
## `octets:
|
|
193
|
+
## `octets:get`
|
|
108
194
|
|
|
109
195
|
Fetches the content of a stored BLOB corresponding to the request path, and returns it as the
|
|
110
196
|
response body with the corresponding `content-type`, `content-length`
|
|
@@ -116,22 +202,18 @@ The value of the directive is an object with the following properties:
|
|
|
116
202
|
|
|
117
203
|
- `meta`: `boolean` indicating whether an Entry is accessible.
|
|
118
204
|
Defaults to `false`.
|
|
119
|
-
- `blob`: `boolean` indicating whether the original BLOB is accessible,
|
|
120
|
-
[BLOB variant](/extensions/storages/readme.md#async-fetchpath-string-maybereadable) must be
|
|
121
|
-
specified in the path otherwise.
|
|
122
|
-
Defaults to `true`.
|
|
123
205
|
|
|
124
206
|
```yaml
|
|
125
207
|
/images:
|
|
126
208
|
octets:context: images
|
|
127
209
|
/*:
|
|
128
210
|
GET:
|
|
129
|
-
octets:
|
|
211
|
+
octets:get:
|
|
130
212
|
blob: false # prevent access to the original BLOB
|
|
131
213
|
meta: true # allow access to an Entry
|
|
132
214
|
```
|
|
133
215
|
|
|
134
|
-
The `octets:
|
|
216
|
+
The `octets:get: ~` declaration is equivalent to defaults.
|
|
135
217
|
|
|
136
218
|
To access an Entry, the `accept` request header must contain the `octets.entry` subtype
|
|
137
219
|
in
|
|
@@ -142,32 +224,6 @@ GET /images/eecd837c HTTP/1.1
|
|
|
142
224
|
accept: application/vnd.toa.octets.entry+yaml
|
|
143
225
|
```
|
|
144
226
|
|
|
145
|
-
## `octets:list`
|
|
146
|
-
|
|
147
|
-
Lists the entries stored under the request path.
|
|
148
|
-
|
|
149
|
-
The value of the directive is an object with the following properties:
|
|
150
|
-
|
|
151
|
-
- `meta`: `boolean` indicating whether the list of Entries is accessible.
|
|
152
|
-
Defaults to `false`, which means that only entry identifiers are returned.
|
|
153
|
-
|
|
154
|
-
```yaml
|
|
155
|
-
/images:
|
|
156
|
-
octets:context: images
|
|
157
|
-
GET:
|
|
158
|
-
octets:list:
|
|
159
|
-
meta: true
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
The `octets:list: ~` declaration is equivalent to defaults.
|
|
163
|
-
|
|
164
|
-
To access a list of Entries, the `accept` request header must contain the `octets.entries` subtype:
|
|
165
|
-
|
|
166
|
-
```http
|
|
167
|
-
GET /images/ HTTP/1.1
|
|
168
|
-
accept: application/vnd.toa.octets.entries+yaml
|
|
169
|
-
```
|
|
170
|
-
|
|
171
227
|
## `octets:delete`
|
|
172
228
|
|
|
173
229
|
Delete the entry corresponding to the request path.
|
|
@@ -193,22 +249,6 @@ the entry is deleted.
|
|
|
193
249
|
|
|
194
250
|
The error returned by the workflow prevents the deletion of the entry.
|
|
195
251
|
|
|
196
|
-
## `octets:permute`
|
|
197
|
-
|
|
198
|
-
Performs
|
|
199
|
-
a [permutation](/extensions/storages/readme.md#async-permutepath-string-ids-string-maybevoid) on the
|
|
200
|
-
entries
|
|
201
|
-
under the request path.
|
|
202
|
-
|
|
203
|
-
```yaml
|
|
204
|
-
/images:
|
|
205
|
-
octets:context: images
|
|
206
|
-
PUT:
|
|
207
|
-
octets:permute: ~
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
The request body must be a list of entry identifiers.
|
|
211
|
-
|
|
212
252
|
## `octets:workflow`
|
|
213
253
|
|
|
214
254
|
Execute a [workflow](#workflows) on the entry under the request path.
|
|
@@ -227,21 +267,23 @@ A workflow is a list of endpoints to be called.
|
|
|
227
267
|
The following input will be passed to each endpoint:
|
|
228
268
|
|
|
229
269
|
```yaml
|
|
270
|
+
authority: string
|
|
230
271
|
storage: string
|
|
231
272
|
path: string
|
|
232
273
|
entry: Entry
|
|
233
274
|
parameters: Record<string, string> # route parameters
|
|
234
275
|
```
|
|
235
276
|
|
|
236
|
-
|
|
237
|
-
|
|
277
|
+
- [Storages](/extensions/storages/readme.md)
|
|
278
|
+
- [Authorities](authorities.md)
|
|
279
|
+
- Example [workflow step processor](../features/steps/components/octets.tester)
|
|
238
280
|
|
|
239
281
|
A _workflow unit_ is an object with keys referencing the workflow step identifier, and an endpoint
|
|
240
282
|
as value.
|
|
241
283
|
Steps within a workflow unit are executed in parallel.
|
|
242
284
|
|
|
243
285
|
```yaml
|
|
244
|
-
octets:
|
|
286
|
+
octets:put:
|
|
245
287
|
workflow:
|
|
246
288
|
resize: images.resize
|
|
247
289
|
analyze: images.analyze
|
|
@@ -251,11 +293,22 @@ A workflow can be a single unit, or an array of units.
|
|
|
251
293
|
If it's an array, the workflow units are executed in sequence.
|
|
252
294
|
|
|
253
295
|
```yaml
|
|
254
|
-
octets:
|
|
296
|
+
octets:put:
|
|
255
297
|
workflow:
|
|
256
298
|
- optimize: images.optimize # executed first
|
|
257
299
|
- resize: images.resize # executed second
|
|
258
300
|
analyze: images.analyze # executed in parallel with `resize`
|
|
259
301
|
```
|
|
260
302
|
|
|
261
|
-
If one of the workflow units returns an error,
|
|
303
|
+
If one of the workflow units returns or throws an error,
|
|
304
|
+
the execution of the workflow is interrupted.
|
|
305
|
+
|
|
306
|
+
### Workflow tasks
|
|
307
|
+
|
|
308
|
+
A workflow unit which value starts with `task:` prefix will be executed as a Task.
|
|
309
|
+
|
|
310
|
+
```yaml
|
|
311
|
+
octets:put:
|
|
312
|
+
workflow:
|
|
313
|
+
optimize: task:images.optimize
|
|
314
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Web Authentication
|
|
2
|
+
|
|
3
|
+
- [Standard](https://www.w3.org/TR/webauthn-2/)
|
|
4
|
+
- [Features](../features/passkeys.feature)
|
|
5
|
+
- [Credential management](credentials.md#passkeys)
|
|
6
|
+
|
|
7
|
+
## Origin
|
|
8
|
+
|
|
9
|
+
The relying party is the client. The origin a passkey is registered under, and the RP ID derived
|
|
10
|
+
from it, come from the request, so a passkey belongs to the origin of the client that registered
|
|
11
|
+
it, and a client on another origin does not see it.
|