@toa.io/extensions.exposition 1.0.0-alpha.285 → 1.0.0-alpha.287
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 +1 -545
- package/components/exposition.octets/operations/delete.js +1 -1
- package/components/exposition.octets/operations/get.js +5 -2
- package/components/exposition.octets/operations/head.js +1 -1
- package/components/exposition.octets/operations/put.js +29 -37
- package/components/exposition.octets/types/toa.d.ts +1 -1
- package/components/identity.bans/manifest.toa.yaml +12 -13
- package/components/identity.bans/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.bans/operations/transit.js +1 -1
- package/components/identity.bans/source/transit.ts +1 -1
- package/components/identity.bans/tsconfig.tsbuildinfo +1 -1
- package/components/identity.bans/types/toa.d.ts +5 -5
- package/components/identity.basic/events/principal.js +3 -1
- package/components/identity.basic/manifest.toa.yaml +17 -23
- package/components/identity.basic/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
- package/components/identity.basic/operations/add.js +1 -1
- package/components/identity.basic/operations/authenticate.js +2 -2
- package/components/identity.basic/operations/check.js +4 -2
- package/components/identity.basic/operations/delete.js +1 -1
- package/components/identity.basic/operations/incept.js +1 -1
- package/components/identity.basic/operations/info.js +1 -1
- package/components/identity.basic/operations/lib/credentials.js +1 -1
- package/components/identity.basic/operations/transit.js +7 -8
- package/components/identity.basic/source/add.ts +5 -2
- package/components/identity.basic/source/authenticate.ts +11 -13
- package/components/identity.basic/source/check.ts +9 -6
- package/components/identity.basic/source/delete.ts +4 -1
- package/components/identity.basic/source/incept.ts +13 -10
- package/components/identity.basic/source/info.ts +4 -1
- package/components/identity.basic/source/lib/credentials.ts +2 -3
- package/components/identity.basic/source/transit.ts +27 -21
- package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/types/index.d.ts +7 -3
- package/components/identity.basic/types/toa.d.ts +5 -5
- package/components/identity.clients/manifest.toa.yaml +36 -40
- package/components/identity.clients/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
- package/components/identity.clients/operations/describe.js +1 -1
- package/components/identity.clients/operations/lib/canonical.js +1 -1
- package/components/identity.clients/operations/lib/cimd.js +3 -2
- package/components/identity.clients/operations/lib/redirect.js +7 -4
- package/components/identity.clients/operations/register.js +2 -2
- package/components/identity.clients/source/describe.ts +6 -8
- package/components/identity.clients/source/lib/Context.ts +6 -3
- package/components/identity.clients/source/lib/Entity.ts +1 -1
- package/components/identity.clients/source/lib/canonical.ts +1 -1
- package/components/identity.clients/source/lib/cimd.test.ts +8 -6
- package/components/identity.clients/source/lib/cimd.ts +24 -19
- package/components/identity.clients/source/lib/redirect.test.ts +8 -2
- package/components/identity.clients/source/lib/redirect.ts +12 -8
- package/components/identity.clients/source/register.ts +18 -18
- package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
- package/components/identity.clients/types/toa.d.ts +5 -5
- package/components/identity.credentials/manifest.toa.yaml +4 -4
- package/components/identity.credentials/operations/list.js +8 -4
- package/components/identity.credentials/source/list.test.ts +39 -20
- package/components/identity.credentials/source/list.ts +12 -8
- package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
- package/components/identity.credentials/types/toa.d.ts +2 -2
- package/components/identity.federation/manifest.toa.yaml +23 -32
- package/components/identity.federation/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
- package/components/identity.federation/operations/authenticate.js +4 -2
- package/components/identity.federation/operations/create.js +2 -2
- package/components/identity.federation/operations/decode.js +1 -1
- package/components/identity.federation/operations/delete.js +1 -1
- package/components/identity.federation/operations/incept.js +1 -1
- package/components/identity.federation/operations/lib/decode.js +1 -1
- package/components/identity.federation/operations/lib/discovery.js +2 -2
- package/components/identity.federation/operations/lib/exchange.js +8 -4
- package/components/identity.federation/operations/lib/principal.js +1 -1
- package/components/identity.federation/operations/lib/resolve.js +1 -1
- package/components/identity.federation/operations/list.js +2 -2
- package/components/identity.federation/source/authenticate.ts +19 -17
- package/components/identity.federation/source/create.ts +6 -7
- package/components/identity.federation/source/decode.ts +4 -1
- package/components/identity.federation/source/delete.ts +4 -1
- package/components/identity.federation/source/incept.ts +2 -3
- package/components/identity.federation/source/lib/decode.ts +4 -7
- package/components/identity.federation/source/lib/discovery.test.ts +15 -5
- package/components/identity.federation/source/lib/discovery.ts +10 -9
- package/components/identity.federation/source/lib/exchange.ts +18 -15
- package/components/identity.federation/source/lib/jose.d.ts +1 -1
- package/components/identity.federation/source/lib/principal.ts +5 -3
- package/components/identity.federation/source/lib/resolve.ts +5 -1
- package/components/identity.federation/source/list.test.ts +26 -10
- package/components/identity.federation/source/list.ts +5 -2
- package/components/identity.federation/source/types/context.ts +5 -2
- package/components/identity.federation/source/types/entity.ts +2 -2
- package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/types/toa.d.ts +5 -5
- package/components/identity.grants/manifest.toa.yaml +27 -31
- package/components/identity.grants/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
- package/components/identity.grants/operations/authorize.js +1 -1
- package/components/identity.grants/operations/exchange.js +5 -2
- package/components/identity.grants/operations/lib/code.js +1 -1
- package/components/identity.grants/operations/lib/identify.js +1 -1
- package/components/identity.grants/operations/list.js +1 -1
- package/components/identity.grants/operations/revoke.js +3 -2
- package/components/identity.grants/source/authorize.ts +27 -19
- package/components/identity.grants/source/exchange.ts +15 -11
- package/components/identity.grants/source/lib/code.ts +20 -8
- package/components/identity.grants/source/lib/identify.ts +1 -1
- package/components/identity.grants/source/list.ts +2 -2
- package/components/identity.grants/source/revoke.ts +9 -7
- package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
- package/components/identity.grants/types/index.d.ts +3 -3
- package/components/identity.grants/types/toa.d.ts +5 -5
- package/components/identity.keys/manifest.toa.yaml +18 -23
- package/components/identity.keys/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
- package/components/identity.keys/operations/create.js +1 -1
- package/components/identity.keys/operations/disable.js +1 -1
- package/components/identity.keys/operations/revoke.js +1 -1
- package/components/identity.keys/source/create.ts +2 -3
- package/components/identity.keys/source/disable.ts +1 -1
- package/components/identity.keys/source/revoke.ts +2 -2
- package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.keys/types/toa.d.ts +5 -5
- package/components/identity.otp/manifest.toa.yaml +16 -24
- package/components/identity.otp/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
- package/components/identity.otp/operations/authenticate.js +1 -1
- package/components/identity.otp/operations/issue.js +1 -1
- package/components/identity.otp/source/authenticate.ts +4 -7
- package/components/identity.otp/source/issue.ts +1 -1
- package/components/identity.otp/source/lib/Context.ts +1 -1
- package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
- package/components/identity.otp/types/toa.d.ts +5 -5
- package/components/identity.passkeys/manifest.toa.yaml +45 -53
- package/components/identity.passkeys/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
- package/components/identity.passkeys/operations/authenticate.js +1 -1
- package/components/identity.passkeys/operations/challenge.js +6 -3
- package/components/identity.passkeys/operations/create.js +1 -1
- package/components/identity.passkeys/operations/delete.js +1 -1
- package/components/identity.passkeys/operations/list.js +1 -1
- package/components/identity.passkeys/operations/use.js +1 -1
- package/components/identity.passkeys/source/authenticate.ts +3 -4
- package/components/identity.passkeys/source/challenge.ts +29 -25
- package/components/identity.passkeys/source/create.ts +8 -6
- package/components/identity.passkeys/source/delete.ts +4 -1
- package/components/identity.passkeys/source/list.ts +4 -1
- package/components/identity.passkeys/source/types/Context.ts +1 -1
- package/components/identity.passkeys/source/use.ts +12 -10
- package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.passkeys/types/toa.d.ts +5 -5
- package/components/identity.roles/manifest.toa.yaml +12 -16
- package/components/identity.roles/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
- package/components/identity.roles/operations/grant.js +1 -1
- package/components/identity.roles/operations/list.js +1 -1
- package/components/identity.roles/operations/principal.js +2 -2
- package/components/identity.roles/source/grant.ts +7 -6
- package/components/identity.roles/source/list.ts +1 -1
- package/components/identity.roles/source/principal.ts +5 -7
- package/components/identity.roles/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/types/toa.d.ts +5 -5
- package/components/identity.tokens/manifest.toa.yaml +17 -15
- package/components/identity.tokens/migrations/0001-system-properties.yaml +14 -0
- package/components/identity.tokens/operations/authenticate.js +2 -2
- package/components/identity.tokens/operations/decrypt.js +11 -5
- package/components/identity.tokens/operations/encrypt.js +2 -2
- package/components/identity.tokens/operations/issue.js +2 -4
- package/components/identity.tokens/operations/lib/form.js +1 -1
- package/components/identity.tokens/operations/lib/key.js +1 -1
- package/components/identity.tokens/operations/revoke.js +1 -1
- package/components/identity.tokens/source/authenticate.test.ts +22 -16
- package/components/identity.tokens/source/authenticate.ts +7 -10
- package/components/identity.tokens/source/decrypt.test.ts +62 -29
- package/components/identity.tokens/source/decrypt.ts +30 -27
- package/components/identity.tokens/source/encrypt.test.ts +21 -16
- package/components/identity.tokens/source/encrypt.ts +8 -11
- package/components/identity.tokens/source/issue.test.ts +4 -2
- package/components/identity.tokens/source/issue.ts +6 -8
- package/components/identity.tokens/source/lib/form.ts +5 -9
- package/components/identity.tokens/source/lib/jose.d.ts +1 -1
- package/components/identity.tokens/source/lib/key.ts +1 -1
- package/components/identity.tokens/source/lib/paseto.test.ts +17 -6
- package/components/identity.tokens/source/revoke.ts +1 -1
- package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/types/index.d.ts +13 -4
- package/components/identity.tokens/types/toa.d.ts +5 -5
- package/context.toa.yaml +2 -2
- package/cucumber.mjs +3 -0
- package/documentation/access.md +4 -3
- package/documentation/cache.md +17 -3
- package/documentation/components.md +2 -2
- package/documentation/credentials.md +2 -2
- package/documentation/identity.md +7 -9
- package/documentation/map.md +2 -2
- package/documentation/mcp.md +16 -16
- package/documentation/notes/peers.md +1 -1
- package/documentation/notes/throttling.md +1 -1
- package/documentation/octets.md +4 -4
- package/documentation/protocol.md +3 -3
- package/documentation/query.md +14 -8
- package/documentation/rpc.md +31 -21
- package/documentation/tracing.md +3 -3
- package/documentation/tree.md +1 -1
- package/features/auth.assert.feature +2 -2
- package/features/auth.bearer.feature +1 -1
- package/features/auth.claims.feature +5 -5
- package/features/auth.incept.feature +2 -2
- package/features/authorities.federation.feature +1 -1
- package/features/configuration.feature +3 -4
- package/features/credentials.feature +9 -9
- package/features/dev.feature +1 -0
- package/features/dynamic.feature +1 -0
- package/features/errors.feature +21 -0
- package/features/etag.feature +0 -86
- package/features/identity.bans.feature +3 -3
- package/features/identity.basic.feature +9 -9
- package/features/identity.federation.feature +11 -11
- package/features/identity.tokens.custom.feature +5 -5
- package/features/identity.tokens.feature +2 -2
- package/features/interruptions.feature +1 -0
- package/features/introspection.map.feature +4 -4
- package/features/io.throttle.feature +1 -0
- package/features/map.feature +2 -2
- package/features/octets.cloudinary.feature +1 -1
- package/features/octets.download.feature +1 -0
- package/features/require.feature +1 -2
- package/features/steps/Captures.ts +1 -1
- package/features/steps/Cloudinary.ts +1 -2
- package/features/steps/Common.ts +4 -5
- package/features/steps/Components.ts +17 -12
- package/features/steps/Database.ts +42 -23
- package/features/steps/Gateway.ts +55 -72
- package/features/steps/HTTP.ts +12 -15
- package/features/steps/IDP.ts +118 -94
- package/features/steps/Identity.ts +3 -3
- package/features/steps/OTP.ts +3 -3
- package/features/steps/Parameters.ts +20 -10
- package/features/steps/Probe.ts +9 -7
- package/features/steps/Realtime.ts +40 -22
- package/features/steps/Workspace.ts +10 -7
- package/features/steps/components/audit/operations/record.js +1 -1
- package/features/steps/components/echo/operations/affect.js +1 -1
- package/features/steps/components/echo/operations/compute.js +1 -1
- package/features/steps/components/echo/operations/echo.js +1 -1
- package/features/steps/components/echo/operations/error.js +1 -1
- package/features/steps/components/echo/operations/identity.js +1 -1
- package/features/steps/components/echo/operations/parameters.js +1 -1
- package/features/steps/components/echo/operations/ping.js +1 -1
- package/features/steps/components/echo/operations/unwrap.js +1 -1
- package/features/steps/components/greeter/operations/greet.js +1 -1
- package/features/steps/components/notify/operations/send.js +1 -1
- package/features/steps/components/octets.tester/operations/authority.js +1 -1
- package/features/steps/components/octets.tester/operations/bar.js +1 -1
- package/features/steps/components/octets.tester/operations/baz.js +1 -1
- package/features/steps/components/octets.tester/operations/concat.js +1 -1
- package/features/steps/components/octets.tester/operations/echo.js +1 -1
- package/features/steps/components/octets.tester/operations/err.js +1 -1
- package/features/steps/components/octets.tester/operations/foo.js +1 -1
- package/features/steps/components/octets.tester/operations/id.js +1 -1
- package/features/steps/components/octets.tester/operations/identity.js +1 -1
- package/features/steps/components/octets.tester/operations/redirect.js +6 -4
- package/features/steps/components/octets.tester/operations/yex.js +1 -1
- package/features/steps/components/octets.tester/operations/yield.js +1 -1
- package/features/steps/components/orders/manifest.toa.yaml +10 -12
- package/features/steps/components/orders/operations/create.js +4 -2
- package/features/steps/components/pots/manifest.toa.yaml +15 -20
- package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
- package/features/steps/components/pricing/operations/quote.js +1 -1
- package/features/steps/components/sequences/manifest.toa.yaml +0 -1
- package/features/steps/components/sequences/operations/numbers.js +1 -1
- package/features/steps/components/sequences/operations/tokens.js +3 -3
- package/features/steps/components/users/manifest.toa.yaml +3 -5
- package/features/steps/components/users/operations/create.js +1 -1
- package/features/steps/components/users.properties/manifest.toa.yaml +5 -6
- package/features/steps/map.ts +2 -2
- package/features/timestamps.feature +1 -1
- package/package.json +7 -7
- package/readme.md +11 -11
- package/schemas/annotation.cos.yaml +1 -3
- package/schemas/method.cos.yaml +2 -0
- package/source/Branch.test.ts +2 -2
- package/source/Branch.ts +3 -5
- package/source/Composition.ts +5 -5
- package/source/Directive.test.ts +38 -20
- package/source/Directive.ts +61 -47
- package/source/Endpoint.test.ts +1 -1
- package/source/Endpoint.ts +27 -92
- package/source/Factory.ts +26 -12
- package/source/Gateway.ts +87 -76
- package/source/HTTP/Context.ts +23 -30
- package/source/HTTP/Probe.ts +7 -9
- package/source/HTTP/Server.ts +88 -69
- package/source/HTTP/Timing.ts +6 -21
- package/source/HTTP/address.test.ts +8 -2
- package/source/HTTP/address.ts +2 -3
- package/source/HTTP/exceptions.ts +20 -18
- package/source/HTTP/formats/form.ts +1 -1
- package/source/HTTP/formats/json.ts +2 -2
- package/source/HTTP/formats/msgpack.ts +3 -4
- package/source/HTTP/formats/text.ts +2 -2
- package/source/HTTP/formats/yaml.test.ts +4 -1
- package/source/HTTP/formats/yaml.ts +14 -11
- package/source/HTTP/messages.test.ts +38 -28
- package/source/HTTP/messages.ts +44 -98
- package/source/Interception.ts +3 -4
- package/source/Introspection.ts +26 -14
- package/source/MCP/Server.ts +114 -54
- package/source/MCP/discover.ts +6 -7
- package/source/MCP/errors.ts +7 -8
- package/source/MCP/schema.test.ts +9 -3
- package/source/MCP/schema.ts +12 -16
- package/source/MCP/tools.ts +33 -28
- package/source/Mapping.ts +25 -27
- package/source/Query.ts +58 -44
- package/source/RPC/Context.ts +8 -11
- package/source/RPC/Dispatcher.ts +46 -26
- package/source/RPC/errors.test.ts +41 -16
- package/source/RPC/errors.ts +9 -10
- package/source/RPC/names.test.ts +35 -16
- package/source/RPC/names.ts +22 -29
- package/source/RTD/Directives.ts +21 -10
- package/source/RTD/Endpoint.ts +4 -1
- package/source/RTD/Method.ts +8 -6
- package/source/RTD/Node.ts +32 -34
- package/source/RTD/Route.ts +18 -21
- package/source/RTD/Tree.ts +18 -18
- package/source/RTD/factory.ts +13 -16
- package/source/RTD/segment.ts +12 -10
- package/source/RTD/syntax/parse.test.ts +12 -6
- package/source/RTD/syntax/parse.ts +30 -26
- package/source/RTD/syntax/types.ts +17 -1
- package/source/RTD/walk.test.ts +59 -22
- package/source/Remotes.test.ts +25 -4
- package/source/Remotes.ts +9 -4
- package/source/Tenant.ts +12 -12
- package/source/deployment.ts +20 -20
- package/source/directives/auth/Anonymous.test.ts +8 -2
- package/source/directives/auth/Anonymous.ts +5 -8
- package/source/directives/auth/Anyone.ts +3 -3
- package/source/directives/auth/Assert.ts +10 -10
- package/source/directives/auth/Authorization.ts +83 -69
- package/source/directives/auth/Delegate.test.ts +2 -2
- package/source/directives/auth/Delegate.ts +8 -10
- package/source/directives/auth/Echo.ts +5 -8
- package/source/directives/auth/Federation.ts +30 -21
- package/source/directives/auth/Id.ts +7 -4
- package/source/directives/auth/Incept.ts +32 -26
- package/source/directives/auth/Input.ts +36 -20
- package/source/directives/auth/Role.test.ts +49 -23
- package/source/directives/auth/Role.ts +29 -22
- package/source/directives/auth/Rule.ts +13 -8
- package/source/directives/auth/Scheme.ts +7 -7
- package/source/directives/auth/create.ts +1 -1
- package/source/directives/auth/schemes.ts +1 -1
- package/source/directives/auth/split.ts +2 -3
- package/source/directives/auth/types.ts +5 -2
- package/source/directives/cache/Cache.ts +44 -9
- package/source/directives/cache/Control.ts +25 -26
- package/source/directives/cache/Exact.ts +1 -1
- package/source/directives/cache/etag.ts +38 -0
- package/source/directives/cors/CORS.ts +9 -7
- package/source/directives/dev/Development.ts +3 -4
- package/source/directives/dev/Faulty.ts +11 -6
- package/source/directives/dev/Sleep.ts +5 -7
- package/source/directives/dev/Stub.ts +2 -2
- package/source/directives/dev/Throw.ts +2 -2
- package/source/directives/flow/Compose.ts +26 -20
- package/source/directives/flow/Fetch.ts +15 -15
- package/source/directives/flow/Flow.ts +9 -8
- package/source/directives/index.ts +11 -2
- package/source/directives/io/IO.ts +29 -20
- package/source/directives/io/Input.ts +9 -12
- package/source/directives/io/Output.ts +20 -23
- package/source/directives/io/Status.test.ts +12 -8
- package/source/directives/io/Status.ts +9 -8
- package/source/directives/io/Throttle.ts +6 -7
- package/source/directives/io/lib/throttle/Configuration.test.ts +32 -23
- package/source/directives/io/lib/throttle/Configuration.ts +14 -9
- package/source/directives/io/lib/throttle/Keys.ts +15 -10
- package/source/directives/io/lib/throttle/Quotas.test.ts +33 -17
- package/source/directives/io/lib/throttle/Quotas.ts +20 -26
- package/source/directives/io/lib/throttle/Sync.test.ts +14 -10
- package/source/directives/io/lib/throttle/Sync.ts +9 -12
- package/source/directives/io/lib/throttle/Warning.ts +3 -4
- package/source/directives/io/lib/throttle/components/IP.ts +4 -5
- package/source/directives/io/lib/throttle/components/Identity.ts +1 -1
- package/source/directives/io/lib/throttle/components/Path.ts +1 -1
- package/source/directives/io/lib/throttle/components/Route.ts +2 -2
- package/source/directives/io/lib/throttle/components/Segment.ts +2 -2
- package/source/directives/io/lib/throttle/conditions/Status.ts +2 -2
- package/source/directives/io/schemas.test.ts +12 -6
- package/source/directives/map/Authority.ts +2 -2
- package/source/directives/map/Buffer.ts +2 -2
- package/source/directives/map/Claims.ts +25 -20
- package/source/directives/map/Headers.ts +17 -13
- package/source/directives/map/Language.ts +8 -5
- package/source/directives/map/Languages.ts +9 -3
- package/source/directives/map/Map.ts +25 -12
- package/source/directives/map/Mapping.ts +9 -6
- package/source/directives/map/Properties.ts +1 -1
- package/source/directives/map/Segments.ts +22 -15
- package/source/directives/mcp/MCP.ts +9 -7
- package/source/directives/mcp/Tool.test.ts +21 -9
- package/source/directives/mcp/Tool.ts +23 -11
- package/source/directives/oauth/Discovery.ts +7 -11
- package/source/directives/oauth/documents.ts +11 -14
- package/source/directives/octets/Context.ts +6 -3
- package/source/directives/octets/Delete.ts +33 -25
- package/source/directives/octets/Directive.ts +5 -1
- package/source/directives/octets/Get.ts +13 -21
- package/source/directives/octets/Octets.ts +20 -15
- package/source/directives/octets/Put.ts +62 -27
- package/source/directives/octets/Workflow.ts +18 -12
- package/source/directives/octets/bytes.ts +1 -1
- package/source/directives/octets/schemas.test.ts +8 -14
- package/source/directives/octets/workflows/Execution.ts +19 -21
- package/source/directives/octets/workflows/Workflow.ts +10 -7
- package/source/directives/require/Headers.ts +3 -4
- package/source/directives/require/Require.ts +3 -4
- package/source/exceptions.ts +19 -12
- package/source/index.ts +1 -1
- package/source/manifest.test.ts +4 -1
- package/source/manifest.ts +19 -13
- package/source/octets.d.ts +1 -1
- package/source/root.ts +3 -2
- package/source/schemas.test.ts +17 -3
- package/transpiled/Branch.js.map +1 -1
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Directive.js +6 -2
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +0 -2
- package/transpiled/Endpoint.js +11 -52
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +2 -1
- package/transpiled/Factory.js +1 -0
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +2 -1
- package/transpiled/Gateway.js +24 -15
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +0 -3
- package/transpiled/HTTP/Context.js +7 -9
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Probe.js.map +1 -1
- package/transpiled/HTTP/Server.js +19 -4
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/Timing.d.ts +1 -2
- package/transpiled/HTTP/Timing.js +2 -10
- package/transpiled/HTTP/Timing.js.map +1 -1
- package/transpiled/HTTP/address.js.map +1 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/form.js.map +1 -1
- package/transpiled/HTTP/formats/json.js.map +1 -1
- package/transpiled/HTTP/formats/msgpack.js.map +1 -1
- package/transpiled/HTTP/formats/text.js.map +1 -1
- package/transpiled/HTTP/formats/yaml.js +4 -1
- package/transpiled/HTTP/formats/yaml.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +3 -2
- package/transpiled/HTTP/messages.js +1 -43
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Interception.js.map +1 -1
- package/transpiled/Introspection.js +13 -2
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/MCP/Server.js +15 -4
- package/transpiled/MCP/Server.js.map +1 -1
- package/transpiled/MCP/discover.js.map +1 -1
- package/transpiled/MCP/errors.js.map +1 -1
- package/transpiled/MCP/schema.js +1 -1
- package/transpiled/MCP/schema.js.map +1 -1
- package/transpiled/MCP/tools.js +10 -7
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/Mapping.d.ts +2 -2
- package/transpiled/Mapping.js +3 -5
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +6 -2
- package/transpiled/Query.js +23 -8
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RPC/Context.js +0 -7
- package/transpiled/RPC/Context.js.map +1 -1
- package/transpiled/RPC/Dispatcher.js +4 -1
- package/transpiled/RPC/Dispatcher.js.map +1 -1
- package/transpiled/RPC/errors.js.map +1 -1
- package/transpiled/RPC/names.js.map +1 -1
- package/transpiled/RTD/Directives.d.ts +1 -1
- package/transpiled/RTD/Method.js +1 -3
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.js +5 -4
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.js +4 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.js +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/segment.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +6 -0
- package/transpiled/RTD/syntax/types.js +10 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +1 -1
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +3 -0
- package/transpiled/deployment.js +6 -1
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.js +1 -3
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Anyone.js.map +1 -1
- package/transpiled/directives/auth/Assert.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +7 -3
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.js.map +1 -1
- package/transpiled/directives/auth/Echo.js +1 -3
- package/transpiled/directives/auth/Echo.js.map +1 -1
- package/transpiled/directives/auth/Federation.js +3 -7
- package/transpiled/directives/auth/Federation.js.map +1 -1
- package/transpiled/directives/auth/Id.js.map +1 -1
- package/transpiled/directives/auth/Incept.js +1 -1
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Input.js.map +1 -1
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Rule.js.map +1 -1
- package/transpiled/directives/auth/Scheme.js +1 -2
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/create.js.map +1 -1
- package/transpiled/directives/auth/schemes.js.map +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +3 -1
- package/transpiled/directives/cache/Cache.js +28 -2
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.js +1 -1
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cache/etag.d.ts +10 -0
- package/transpiled/directives/cache/etag.js +30 -0
- package/transpiled/directives/cache/etag.js.map +1 -0
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/dev/Faulty.js.map +1 -1
- package/transpiled/directives/dev/Sleep.js.map +1 -1
- package/transpiled/directives/dev/Stub.js.map +1 -1
- package/transpiled/directives/dev/Throw.js.map +1 -1
- package/transpiled/directives/flow/Compose.js +7 -3
- package/transpiled/directives/flow/Compose.js.map +1 -1
- package/transpiled/directives/flow/Fetch.js.map +1 -1
- package/transpiled/directives/flow/Flow.js.map +1 -1
- package/transpiled/directives/index.js +11 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/IO.d.ts +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Input.js +1 -1
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/io/Output.js +3 -3
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/io/Status.js.map +1 -1
- package/transpiled/directives/io/Throttle.js +1 -1
- package/transpiled/directives/io/Throttle.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Configuration.js +8 -2
- package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Quotas.js +4 -3
- package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Sync.d.ts +1 -1
- package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -1
- package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -1
- package/transpiled/directives/map/Authority.js.map +1 -1
- package/transpiled/directives/map/Buffer.js.map +1 -1
- package/transpiled/directives/map/Claims.js.map +1 -1
- package/transpiled/directives/map/Headers.js.map +1 -1
- package/transpiled/directives/map/Language.js.map +1 -1
- package/transpiled/directives/map/Languages.js.map +1 -1
- package/transpiled/directives/map/Map.js.map +1 -1
- package/transpiled/directives/map/Mapping.js.map +1 -1
- package/transpiled/directives/map/Properties.js.map +1 -1
- package/transpiled/directives/map/Segments.js.map +1 -1
- package/transpiled/directives/mcp/MCP.js +1 -1
- package/transpiled/directives/mcp/MCP.js.map +1 -1
- package/transpiled/directives/mcp/Tool.js +3 -1
- package/transpiled/directives/mcp/Tool.js.map +1 -1
- package/transpiled/directives/oauth/Discovery.js.map +1 -1
- package/transpiled/directives/oauth/documents.js.map +1 -1
- package/transpiled/directives/octets/Context.js +1 -1
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/Directive.js.map +1 -1
- package/transpiled/directives/octets/Get.js.map +1 -1
- package/transpiled/directives/octets/Octets.js +1 -1
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Put.js.map +1 -1
- package/transpiled/directives/octets/Workflow.js.map +1 -1
- package/transpiled/directives/octets/bytes.js.map +1 -1
- package/transpiled/directives/octets/workflows/Execution.js +1 -2
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/require/Headers.js.map +1 -1
- package/transpiled/directives/require/Require.js.map +1 -1
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/index.d.ts +1 -1
- package/transpiled/index.js +1 -1
- package/transpiled/index.js.map +1 -1
- package/transpiled/manifest.js +5 -1
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/root.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/source/redact.test.ts +0 -27
- package/source/redact.ts +0 -21
- package/transpiled/redact.d.ts +0 -5
- package/transpiled/redact.js +0 -17
- package/transpiled/redact.js.map +0 -1
|
@@ -23,13 +23,13 @@ basic:
|
|
|
23
23
|
federation:
|
|
24
24
|
- id: 09200d0bcc2448c5863e3f50ae18af84
|
|
25
25
|
iss: https://accounts.google.com
|
|
26
|
-
|
|
26
|
+
CREATED: 1754899200000
|
|
27
27
|
passkeys:
|
|
28
28
|
- id: 54ed430804324e81b39756ea4708b546
|
|
29
29
|
aid: adce0002-35bc-c60a-648b-0b25f1f05503
|
|
30
30
|
synced: true
|
|
31
31
|
label: Personal iPhone
|
|
32
|
-
|
|
32
|
+
CREATED: 1754899200000
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
`basic` is `null` when Basic credentials do not exist. `federation` and `passkeys` are always
|
|
@@ -209,11 +209,9 @@ This can be achieved by using the `auth:incept` directive as follows:
|
|
|
209
209
|
name: users
|
|
210
210
|
|
|
211
211
|
entity:
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
name:
|
|
216
|
-
type: string
|
|
212
|
+
properties:
|
|
213
|
+
name:
|
|
214
|
+
type: string
|
|
217
215
|
|
|
218
216
|
exposition:
|
|
219
217
|
/:
|
|
@@ -266,10 +264,10 @@ The directive itself does not allow or deny access to the requested resource.
|
|
|
266
264
|
> Used authentication scheme must support inception.
|
|
267
265
|
|
|
268
266
|
```yaml
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
267
|
+
/accounts/echo:
|
|
268
|
+
auth:assert: true
|
|
269
|
+
auth:anyone: true
|
|
270
|
+
endpoint: echo
|
|
273
271
|
```
|
|
274
272
|
|
|
275
273
|
```http
|
package/documentation/map.md
CHANGED
|
@@ -9,10 +9,10 @@ The `map` directive family is used to map HTTP request parts to operation call i
|
|
|
9
9
|
```yaml
|
|
10
10
|
exposition:
|
|
11
11
|
/:group:
|
|
12
|
-
languages: [en, fr]
|
|
12
|
+
languages: [en, fr] # supported languages
|
|
13
13
|
GET:
|
|
14
14
|
map:authority: hostname # request authority (e.g., hostname)
|
|
15
|
-
map:language: lang
|
|
15
|
+
map:language: lang # requested language
|
|
16
16
|
map:headers: # raw header values
|
|
17
17
|
token: x-access-token
|
|
18
18
|
map:buffer: body # unparsed request body
|
package/documentation/mcp.md
CHANGED
|
@@ -117,14 +117,14 @@ request is, is read from `MCP-Protocol-Version`, or from
|
|
|
117
117
|
`_meta['io.modelcontextprotocol/protocolVersion']` where the header is absent; `initialize` is one
|
|
118
118
|
by itself, and a request naming no version is of a revision that sent none.
|
|
119
119
|
|
|
120
|
-
| method
|
|
121
|
-
|
|
|
122
|
-
| `server/discover`
|
|
123
|
-
| `tools/list`
|
|
124
|
-
| `tools/call`
|
|
125
|
-
| `initialize`
|
|
126
|
-
| `notifications/initialized` | `202`, and nothing done
|
|
127
|
-
| `ping`
|
|
120
|
+
| method | |
|
|
121
|
+
| --------------------------- | -------------------------------------------------------------------------- |
|
|
122
|
+
| `server/discover` | what is served, and who serves it |
|
|
123
|
+
| `tools/list` | every tool this caller may reach, in a stable order |
|
|
124
|
+
| `tools/call` | the call the tool is |
|
|
125
|
+
| `initialize` | the same as `server/discover`, in the shape a client of `2025-11-25` reads |
|
|
126
|
+
| `notifications/initialized` | `202`, and nothing done |
|
|
127
|
+
| `ping` | `{}` |
|
|
128
128
|
|
|
129
129
|
`POST` only, one message per request; `GET` and `DELETE` are `405`. An `Mcp-Session-Id` is ignored
|
|
130
130
|
and none is minted, a `Last-Event-ID` is ignored, and `accept` is negotiated as everywhere else.
|
|
@@ -164,15 +164,15 @@ say it twice.
|
|
|
164
164
|
|
|
165
165
|
## What refuses
|
|
166
166
|
|
|
167
|
-
|
|
|
168
|
-
|
|
|
169
|
-
| `-32700` | the body is not readable
|
|
170
|
-
| `-32600` | the body is not one JSON-RPC message
|
|
171
|
-
| `-32601` | no method of that name, at `404`
|
|
167
|
+
| | |
|
|
168
|
+
| -------- | ------------------------------------------------------ |
|
|
169
|
+
| `-32700` | the body is not readable |
|
|
170
|
+
| `-32600` | the body is not one JSON-RPC message |
|
|
171
|
+
| `-32601` | no method of that name, at `404` |
|
|
172
172
|
| `-32602` | the arguments do not fit, or `_meta` states too little |
|
|
173
|
-
| `-32603` | anything the gateway did not mean to answer
|
|
174
|
-
| `-32020` | a header says one thing and the body another
|
|
175
|
-
| `-32022` | a revision neither served, naming both
|
|
173
|
+
| `-32603` | anything the gateway did not mean to answer |
|
|
174
|
+
| `-32020` | a header says one thing and the body another |
|
|
175
|
+
| `-32022` | a revision neither served, naming both |
|
|
176
176
|
|
|
177
177
|
The codes MCP reserves for itself are `-32020` to `-32099`, and it has an implementation use none of
|
|
178
178
|
`-32000` to `-32019` — which is where [JSON-RPC](rpc.md#what-refuses) has this gateway's own, so none
|
|
@@ -9,7 +9,7 @@ and the own index of the current instance.
|
|
|
9
9
|
## Forces
|
|
10
10
|
|
|
11
11
|
1. Static configuration is not an option (due to dynamic scaling / failover).
|
|
12
|
-
2. In a distributed system, there is no concept of a
|
|
12
|
+
2. In a distributed system, there is no concept of a _global current time_.
|
|
13
13
|
|
|
14
14
|
## Solution
|
|
15
15
|
|
|
@@ -24,7 +24,7 @@ error.
|
|
|
24
24
|
## Forces
|
|
25
25
|
|
|
26
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
|
|
27
|
+
2. In a distributed system, there is no concept of a _global current time_.
|
|
28
28
|
3. Failure to retrieve the quota state should not result in Gateway failure.
|
|
29
29
|
|
|
30
30
|
## Solution
|
package/documentation/octets.md
CHANGED
|
@@ -210,7 +210,7 @@ The value of the directive is an object with the following properties:
|
|
|
210
210
|
GET:
|
|
211
211
|
octets:get:
|
|
212
212
|
blob: false # prevent access to the original BLOB
|
|
213
|
-
meta: true
|
|
213
|
+
meta: true # allow access to an Entry
|
|
214
214
|
```
|
|
215
215
|
|
|
216
216
|
The `octets:get: ~` declaration is equivalent to defaults.
|
|
@@ -295,9 +295,9 @@ If it's an array, the workflow units are executed in sequence.
|
|
|
295
295
|
```yaml
|
|
296
296
|
octets:put:
|
|
297
297
|
workflow:
|
|
298
|
-
- optimize: images.optimize
|
|
299
|
-
- resize: images.resize
|
|
300
|
-
analyze: images.analyze
|
|
298
|
+
- optimize: images.optimize # executed first
|
|
299
|
+
- resize: images.resize # executed second
|
|
300
|
+
analyze: images.analyze # executed in parallel with `resize`
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
If one of the workflow units returns or throws an error,
|
|
@@ -36,7 +36,7 @@ corresponding to the type of
|
|
|
36
36
|
the parts:
|
|
37
37
|
|
|
38
38
|
| Response type | Part type |
|
|
39
|
-
|
|
39
|
+
| ------------------- | --------------------- |
|
|
40
40
|
| `multipart/msgpack` | `application/msgpack` |
|
|
41
41
|
| `multipart/yaml` | `application/yaml` |
|
|
42
42
|
| `multipart/json` | `application/json` |
|
|
@@ -70,7 +70,7 @@ FIN
|
|
|
70
70
|
See also:
|
|
71
71
|
|
|
72
72
|
- [Multipart Content-Type](https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html) at W3C
|
|
73
|
-
- [Content-Type: multipart](https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/aa493937(v=exchg.140))
|
|
73
|
+
- [Content-Type: multipart](<https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/aa493937(v=exchg.140)>)
|
|
74
74
|
at Microsoft
|
|
75
75
|
|
|
76
76
|
## HTTP version
|
|
@@ -82,7 +82,7 @@ exposition:
|
|
|
82
82
|
protocol: h2c
|
|
83
83
|
service:
|
|
84
84
|
annotations:
|
|
85
|
-
projectcontour.io/upstream-protocol.h2c:
|
|
85
|
+
projectcontour.io/upstream-protocol.h2c: '8000'
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
`h2c` requires an ingress controller that proxies cleartext HTTP/2 upstream, and the
|
package/documentation/query.md
CHANGED
|
@@ -48,9 +48,13 @@ Undefined `query` denies any query arguments in requests.
|
|
|
48
48
|
|
|
49
49
|
Search criteria in [RSQL](https://github.com/jirutka/rsql-parser) format.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
A value is read as what the property it selects on holds, and one that cannot be read as that is
|
|
52
|
+
refused with `400 Bad Request` — `volume>abc` where `volume` is a number, or `booked==yes` where
|
|
53
|
+
`booked` is a boolean. A string property takes whatever is written.
|
|
54
|
+
|
|
55
|
+
The `criteria` property is considered as _open_ when it ends with a `;`, allowing the combination of
|
|
52
56
|
request query criteria using `and` logic.
|
|
53
|
-
Otherwise, criteria property is
|
|
57
|
+
Otherwise, criteria property is _closed_, that is, doesn't allow `criteria` in a request query.
|
|
54
58
|
|
|
55
59
|
```yaml
|
|
56
60
|
# manifest.toa.yaml
|
|
@@ -151,7 +155,9 @@ rank: 5
|
|
|
151
155
|
|
|
152
156
|
## Text search
|
|
153
157
|
|
|
154
|
-
For entities with `text` indexes
|
|
158
|
+
For entities with `text` indexes — declared in a
|
|
159
|
+
[migration](/documentation/component/declaration.md#migrations) — search queries can be enabled
|
|
160
|
+
using the `search` property.
|
|
155
161
|
|
|
156
162
|
```yaml
|
|
157
163
|
# manifest.toa.yaml
|
|
@@ -223,7 +229,7 @@ sort: rank:asc
|
|
|
223
229
|
sort: rank:desc;timestamp:asc
|
|
224
230
|
```
|
|
225
231
|
|
|
226
|
-
If `sort` value ends with a semicolon `;` then the sorting is considered
|
|
232
|
+
If `sort` value ends with a semicolon `;` then the sorting is considered _open_
|
|
227
233
|
and can be extended using request query `sort` argument.
|
|
228
234
|
|
|
229
235
|
```yaml
|
|
@@ -274,10 +280,10 @@ GET /dummies/?foo=0&bar=baz
|
|
|
274
280
|
|
|
275
281
|
## Optimistic concurrency control
|
|
276
282
|
|
|
277
|
-
If an operation
|
|
278
|
-
|
|
279
|
-
the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response
|
|
280
|
-
(
|
|
283
|
+
If an operation answers a safe request (`GET`, `HEAD`) with an object that has a `VERSION`
|
|
284
|
+
property, its value is passed as the value of
|
|
285
|
+
the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response,
|
|
286
|
+
see [validators](cache.md#validators).
|
|
281
287
|
|
|
282
288
|
Client can use the `if-match` request header to perform an operation only if the corresponding
|
|
283
289
|
object has not been modified since the last retrieval.
|
package/documentation/rpc.md
CHANGED
|
@@ -21,14 +21,14 @@ The separator is `.` and not `/` because a name is a tool's name too, and
|
|
|
21
21
|
receives one outside that set may refuse the tool, and one that accepts it rewrites what it shows
|
|
22
22
|
a model — so what is published has to be spellable as it stands.
|
|
23
23
|
|
|
24
|
-
| route
|
|
25
|
-
|
|
|
26
|
-
| `/pots`
|
|
27
|
-
| `/pots`
|
|
28
|
-
| `/pots/:id`
|
|
24
|
+
| route | verb | method |
|
|
25
|
+
| ---------------------------- | ------ | -------------------------------- |
|
|
26
|
+
| `/pots` | `GET` | `pots.GET` |
|
|
27
|
+
| `/pots` | `POST` | `pots.POST` |
|
|
28
|
+
| `/pots/:id` | `GET` | `pots._id.GET` |
|
|
29
29
|
| `/identity/tokens/:identity` | `POST` | `identity.tokens._identity.POST` |
|
|
30
|
-
| `/files/**`
|
|
31
|
-
| `/`
|
|
30
|
+
| `/files/**` | `GET` | `files.__.GET` |
|
|
31
|
+
| `/` | `GET` | `GET` |
|
|
32
32
|
|
|
33
33
|
The verb is always the last segment, so `/pots/GET` answering `POST` is `pots.GET.POST` and
|
|
34
34
|
`/pots` answering `GET` is `pots.GET`. Nothing is declared to make a name: a re-mounted route is
|
|
@@ -55,17 +55,25 @@ A key the template names is a route variable, and is taken by the path. `query`
|
|
|
55
55
|
querystring. Whatever is left is the body.
|
|
56
56
|
|
|
57
57
|
```json
|
|
58
|
-
{"jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": {"id": "a1b2"}}
|
|
58
|
+
{ "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } }
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
```json
|
|
62
|
-
{
|
|
63
|
-
|
|
62
|
+
{
|
|
63
|
+
"jsonrpc": "2.0",
|
|
64
|
+
"id": 2,
|
|
65
|
+
"method": "pots.POST",
|
|
66
|
+
"params": { "title": "Kettle", "volume": 1.7 }
|
|
67
|
+
}
|
|
64
68
|
```
|
|
65
69
|
|
|
66
70
|
```json
|
|
67
|
-
{
|
|
68
|
-
|
|
71
|
+
{
|
|
72
|
+
"jsonrpc": "2.0",
|
|
73
|
+
"id": 3,
|
|
74
|
+
"method": "pots.GET",
|
|
75
|
+
"params": { "query": { "criteria": "volume=gt=1", "limit": 10 } }
|
|
76
|
+
}
|
|
69
77
|
```
|
|
70
78
|
|
|
71
79
|
The querystring has a name of its own because an operation's input is free to have an `id` or
|
|
@@ -91,8 +99,10 @@ A request may carry an array of calls instead of one, and answers an array of wh
|
|
|
91
99
|
answered — shorter than what it was given, where some were notifications.
|
|
92
100
|
|
|
93
101
|
```json
|
|
94
|
-
[
|
|
95
|
-
|
|
102
|
+
[
|
|
103
|
+
{ "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } },
|
|
104
|
+
{ "jsonrpc": "2.0", "method": "pots._id.DELETE", "params": { "id": "c3d4" } }
|
|
105
|
+
]
|
|
96
106
|
```
|
|
97
107
|
|
|
98
108
|
They run one after another, in the order given. `batch` is how many one request may carry, 32
|
|
@@ -114,14 +124,14 @@ authenticate.
|
|
|
114
124
|
|
|
115
125
|
Everything else a call runs into is a value, at `200`, because the request itself succeeded.
|
|
116
126
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
| `-32601` | no route of that name, or no such verb on it
|
|
120
|
-
| `-32602` | a variable is missing, or a query is not one
|
|
121
|
-
| `-32000` | the identity is not authorized to make this call
|
|
127
|
+
| | |
|
|
128
|
+
| -------- | -------------------------------------------------- |
|
|
129
|
+
| `-32601` | no route of that name, or no such verb on it |
|
|
130
|
+
| `-32602` | a variable is missing, or a query is not one |
|
|
131
|
+
| `-32000` | the identity is not authorized to make this call |
|
|
122
132
|
| `-32001` | the operation refused, its own code in `data.code` |
|
|
123
|
-
| `-32603` | anything the gateway did not mean to answer
|
|
124
|
-
| `-32002` | the request carries more calls than `batch`
|
|
133
|
+
| `-32603` | anything the gateway did not mean to answer |
|
|
134
|
+
| `-32002` | the request carries more calls than `batch` |
|
|
125
135
|
|
|
126
136
|
The first five codes JSON-RPC states mean the same to every client. `-32000` and `-32001` are
|
|
127
137
|
this gateway's, from the block the specification reserves and leaves empty, so
|
package/documentation/tracing.md
CHANGED
|
@@ -32,7 +32,7 @@ clients instrumented with OpenTelemetry-compatible tooling, or by upstream proxi
|
|
|
32
32
|
traceparent: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
In addition to the trace ID, it carries the ID of the client span, which becomes the
|
|
35
|
+
In addition to the trace ID, it carries the ID of the client span, which becomes the _parent_ of
|
|
36
36
|
the gateway's server span, linking client-side and server-side spans into a single trace tree.
|
|
37
37
|
|
|
38
38
|
### `ray`
|
|
@@ -52,9 +52,9 @@ Headers with invalid values are ignored, and a new trace is started.
|
|
|
52
52
|
|
|
53
53
|
## Sampling
|
|
54
54
|
|
|
55
|
-
The trace
|
|
55
|
+
The trace _context_ (trace ID) is always created and propagated, so the `ray` header and
|
|
56
56
|
`trace_id` in log entries are always present. The sampling decision only determines whether
|
|
57
|
-
the
|
|
57
|
+
the _spans_ of the trace are recorded.
|
|
58
58
|
|
|
59
59
|
The decision is made once, by the process that starts the trace, and is propagated along with
|
|
60
60
|
the trace context (the flags byte of `traceparent`), so a trace is either recorded as a whole
|
package/documentation/tree.md
CHANGED
|
@@ -112,7 +112,7 @@ key.
|
|
|
112
112
|
HTTP methods can only be mapped to operations of the corresponding types.
|
|
113
113
|
|
|
114
114
|
| HTTP method | Operation type |
|
|
115
|
-
|
|
115
|
+
| ----------- | --------------------------------------------- |
|
|
116
116
|
| `POST` | **Transition** (without Query)<br/>**Effect** |
|
|
117
117
|
| `PUT` | **Transition** (with Query)<br/>**Effect** |
|
|
118
118
|
| `GET` | **Observation**<br/>**Computation** |
|
|
@@ -2,8 +2,8 @@ Feature: Identity assertion
|
|
|
2
2
|
|
|
3
3
|
Scenario: Assert Identity
|
|
4
4
|
Given the `identity.basic` database contains:
|
|
5
|
-
| _id | authority | username | password |
|
|
6
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1
|
|
5
|
+
| _id | authority | username | password | VERSION |
|
|
6
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
7
7
|
And the `echo` is running with the following manifest:
|
|
8
8
|
"""yaml
|
|
9
9
|
exposition:
|
|
@@ -8,7 +8,7 @@ Feature: Federated identity authentication
|
|
|
8
8
|
And the `identity.federation` configuration:
|
|
9
9
|
"""yaml
|
|
10
10
|
trust:
|
|
11
|
-
- iss: http://localhost:
|
|
11
|
+
- iss: http://localhost:31005
|
|
12
12
|
aud: test
|
|
13
13
|
"""
|
|
14
14
|
|
|
@@ -18,7 +18,7 @@ Feature: Federated identity authentication
|
|
|
18
18
|
/:
|
|
19
19
|
GET:
|
|
20
20
|
auth:claims:
|
|
21
|
-
iss: http://localhost:
|
|
21
|
+
iss: http://localhost:31005
|
|
22
22
|
aud: test
|
|
23
23
|
sub: Bob
|
|
24
24
|
dev:stub: ok
|
|
@@ -62,7 +62,7 @@ Feature: Federated identity authentication
|
|
|
62
62
|
/:
|
|
63
63
|
GET:
|
|
64
64
|
auth:claims:
|
|
65
|
-
iss: http://localhost:
|
|
65
|
+
iss: http://localhost:31005
|
|
66
66
|
aud: test
|
|
67
67
|
dev:stub: ok
|
|
68
68
|
"""
|
|
@@ -84,7 +84,7 @@ Feature: Federated identity authentication
|
|
|
84
84
|
/:
|
|
85
85
|
GET:
|
|
86
86
|
auth:claims:
|
|
87
|
-
iss: http://localhost:
|
|
87
|
+
iss: http://localhost:31005
|
|
88
88
|
sub: Alice
|
|
89
89
|
dev:stub: ok
|
|
90
90
|
"""
|
|
@@ -106,7 +106,7 @@ Feature: Federated identity authentication
|
|
|
106
106
|
/:
|
|
107
107
|
GET:
|
|
108
108
|
auth:claims:
|
|
109
|
-
iss: http://localhost:
|
|
109
|
+
iss: http://localhost:31005
|
|
110
110
|
aud: goalkeepers
|
|
111
111
|
dev:stub: ok
|
|
112
112
|
"""
|
|
@@ -121,8 +121,8 @@ Feature: Identity inception
|
|
|
121
121
|
|
|
122
122
|
Scenario: Inception with a wrong password for existing credentials
|
|
123
123
|
Given the `identity.basic` database contains:
|
|
124
|
-
| _id | authority | username | password |
|
|
125
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1
|
|
124
|
+
| _id | authority | username | password | VERSION |
|
|
125
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
126
126
|
And the `users` is running with the following manifest:
|
|
127
127
|
"""yaml
|
|
128
128
|
exposition:
|
|
@@ -28,9 +28,9 @@ Feature: Configuration values
|
|
|
28
28
|
type: string
|
|
29
29
|
bar:
|
|
30
30
|
type: string
|
|
31
|
-
default: world
|
|
32
31
|
defaults:
|
|
33
32
|
foo: deployed
|
|
33
|
+
bar: world
|
|
34
34
|
"""
|
|
35
35
|
And the configuration values are running
|
|
36
36
|
|
|
@@ -49,6 +49,7 @@ Feature: Configuration values
|
|
|
49
49
|
|
|
50
50
|
configuration:
|
|
51
51
|
foo: deployed
|
|
52
|
+
bar: world
|
|
52
53
|
schema:
|
|
53
54
|
type: object
|
|
54
55
|
properties:
|
|
@@ -56,7 +57,6 @@ Feature: Configuration values
|
|
|
56
57
|
type: string
|
|
57
58
|
bar:
|
|
58
59
|
type: string
|
|
59
|
-
default: world
|
|
60
60
|
epoch: e1
|
|
61
61
|
"""
|
|
62
62
|
|
|
@@ -82,9 +82,9 @@ Feature: Configuration values
|
|
|
82
82
|
type: string
|
|
83
83
|
bar:
|
|
84
84
|
type: string
|
|
85
|
-
default: world
|
|
86
85
|
configuration:
|
|
87
86
|
foo: deployed
|
|
87
|
+
bar: world
|
|
88
88
|
"""
|
|
89
89
|
|
|
90
90
|
Scenario: Listing without the role
|
|
@@ -154,7 +154,6 @@ Feature: Configuration values
|
|
|
154
154
|
|
|
155
155
|
configuration:
|
|
156
156
|
foo: created
|
|
157
|
-
bar: world
|
|
158
157
|
epoch: e1
|
|
159
158
|
"""
|
|
160
159
|
|
|
@@ -7,12 +7,12 @@ Feature: Persistent credentials management
|
|
|
7
7
|
| _id | authority | username | password |
|
|
8
8
|
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
9
9
|
And the `identity.federation` database contains:
|
|
10
|
-
| _id | authority | identity | iss | sub |
|
|
11
|
-
| fed3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://accounts.google.com | google | 1000
|
|
12
|
-
| fed3a65ebbee47ed95a73edd911ea329 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://appleid.apple.com | apple | 900
|
|
10
|
+
| _id | authority | identity | iss | sub | CREATED |
|
|
11
|
+
| fed3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://accounts.google.com | google | 1000 |
|
|
12
|
+
| fed3a65ebbee47ed95a73edd911ea329 | nex | efe3a65ebbee47ed95a73edd911ea328 | https://appleid.apple.com | apple | 900 |
|
|
13
13
|
And the `identity.passkeys` database contains:
|
|
14
|
-
| _id | authority | identity | kid | aid | synced | key
|
|
15
|
-
| ace3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | key-one | adce0002-35bc-c60a-648b-0b25f1f05503 | true | cHVibGlj | 0 | Personal iPhone | 2000
|
|
14
|
+
| _id | authority | identity | kid | aid | synced | key | counter | label | CREATED |
|
|
15
|
+
| ace3a65ebbee47ed95a73edd911ea328 | nex | efe3a65ebbee47ed95a73edd911ea328 | key-one | adce0002-35bc-c60a-648b-0b25f1f05503 | true | cHVibGlj | 0 | Personal iPhone | 2000 |
|
|
16
16
|
|
|
17
17
|
Scenario: Listing all persistent credentials
|
|
18
18
|
When the following request is received:
|
|
@@ -32,16 +32,16 @@ Feature: Persistent credentials management
|
|
|
32
32
|
federation:
|
|
33
33
|
- id: fed3a65ebbee47ed95a73edd911ea328
|
|
34
34
|
iss: https://accounts.google.com
|
|
35
|
-
|
|
35
|
+
CREATED: 1000
|
|
36
36
|
- id: fed3a65ebbee47ed95a73edd911ea329
|
|
37
37
|
iss: https://appleid.apple.com
|
|
38
|
-
|
|
38
|
+
CREATED: 900
|
|
39
39
|
passkeys:
|
|
40
40
|
- id: ace3a65ebbee47ed95a73edd911ea328
|
|
41
41
|
aid: adce0002-35bc-c60a-648b-0b25f1f05503
|
|
42
42
|
synced: true
|
|
43
43
|
label: Personal iPhone
|
|
44
|
-
|
|
44
|
+
CREATED: 2000
|
|
45
45
|
"""
|
|
46
46
|
|
|
47
47
|
Scenario: Deleting credentials through their components
|
|
@@ -101,6 +101,6 @@ Feature: Persistent credentials management
|
|
|
101
101
|
federation:
|
|
102
102
|
- id: fed3a65ebbee47ed95a73edd911ea329
|
|
103
103
|
iss: https://appleid.apple.com
|
|
104
|
-
|
|
104
|
+
CREATED: 900
|
|
105
105
|
passkeys: []
|
|
106
106
|
"""
|
package/features/dev.feature
CHANGED
package/features/dynamic.feature
CHANGED
package/features/errors.feature
CHANGED
|
@@ -92,6 +92,27 @@ Feature: Errors
|
|
|
92
92
|
must have required property 'title'
|
|
93
93
|
"""
|
|
94
94
|
|
|
95
|
+
Scenario: Criteria value the property cannot hold
|
|
96
|
+
Given the `pots` is running with the following manifest:
|
|
97
|
+
"""yaml
|
|
98
|
+
exposition:
|
|
99
|
+
/:
|
|
100
|
+
GET: enumerate
|
|
101
|
+
"""
|
|
102
|
+
When the following request is received:
|
|
103
|
+
"""
|
|
104
|
+
GET /pots/?criteria=volume>abc HTTP/1.1
|
|
105
|
+
host: nex.toa.io
|
|
106
|
+
accept: text/plain
|
|
107
|
+
"""
|
|
108
|
+
Then the following reply is sent:
|
|
109
|
+
"""
|
|
110
|
+
400 Bad Request
|
|
111
|
+
content-type: text/plain
|
|
112
|
+
|
|
113
|
+
Criteria selector 'volume' takes a number, and 'abc' is not one
|
|
114
|
+
"""
|
|
115
|
+
|
|
95
116
|
Scenario: Query limit out of range
|
|
96
117
|
Given the `pots` is running with the following manifest:
|
|
97
118
|
"""yaml
|