@toa.io/extensions.exposition 1.0.0-alpha.284 → 1.0.0-alpha.286
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/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 +23 -17
- 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 +45 -31
- 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/mcp.feature +32 -28
- package/features/oauth.grants.feature +1 -1
- package/features/octets.cloudinary.feature +1 -1
- package/features/octets.download.feature +1 -0
- package/features/require.feature +1 -2
- package/features/rpc.feature +21 -21
- 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 -71
- 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 +29 -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 -27
- package/source/MCP/types.ts +4 -1
- 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 +51 -32
- package/source/RPC/names.ts +26 -32
- 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 +64 -27
- 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 +14 -5
- package/source/directives/mcp/Tool.test.ts +42 -6
- package/source/directives/mcp/Tool.ts +38 -7
- 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.d.ts +2 -0
- 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 -6
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/MCP/types.d.ts +3 -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.d.ts +3 -2
- package/transpiled/RPC/names.js +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 +7 -1
- package/transpiled/directives/mcp/MCP.js.map +1 -1
- package/transpiled/directives/mcp/Tool.d.ts +6 -1
- package/transpiled/directives/mcp/Tool.js +16 -3
- 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/CHANGELOG.md +0 -541
- 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
package/features/etag.feature
CHANGED
|
@@ -24,7 +24,6 @@ Feature: Optimistic concurrency control
|
|
|
24
24
|
Then the following reply is sent:
|
|
25
25
|
"""
|
|
26
26
|
201 Created
|
|
27
|
-
etag: "1"
|
|
28
27
|
|
|
29
28
|
id: ${{ id }}
|
|
30
29
|
"""
|
|
@@ -74,88 +73,6 @@ Feature: Optimistic concurrency control
|
|
|
74
73
|
Then the following reply is sent:
|
|
75
74
|
"""
|
|
76
75
|
200 OK
|
|
77
|
-
etag: "2"
|
|
78
|
-
"""
|
|
79
|
-
|
|
80
|
-
Scenario: Using etag with enumeration
|
|
81
|
-
Given the `pots` is running with the following manifest:
|
|
82
|
-
"""yaml
|
|
83
|
-
exposition:
|
|
84
|
-
/:
|
|
85
|
-
io:output: true
|
|
86
|
-
GET: enumerate
|
|
87
|
-
"""
|
|
88
|
-
# sorted and bounded, or the collection does not enumerate the same way twice
|
|
89
|
-
When the following request is received:
|
|
90
|
-
"""
|
|
91
|
-
GET /pots/?sort=id:asc&limit=2 HTTP/1.1
|
|
92
|
-
host: nex.toa.io
|
|
93
|
-
accept: application/yaml
|
|
94
|
-
"""
|
|
95
|
-
Then the following reply is sent:
|
|
96
|
-
"""
|
|
97
|
-
200 OK
|
|
98
|
-
etag: "${{ etag }}"
|
|
99
|
-
"""
|
|
100
|
-
# the same representation must be asked for, the tag identifies it
|
|
101
|
-
When the following request is received:
|
|
102
|
-
"""
|
|
103
|
-
GET /pots/?sort=id:asc&limit=2 HTTP/1.1
|
|
104
|
-
host: nex.toa.io
|
|
105
|
-
accept: application/yaml
|
|
106
|
-
if-none-match: "${{ etag }}"
|
|
107
|
-
"""
|
|
108
|
-
Then the following reply is sent:
|
|
109
|
-
"""
|
|
110
|
-
304 Not Modified
|
|
111
|
-
etag: "${{ etag }}"
|
|
112
|
-
"""
|
|
113
|
-
|
|
114
|
-
Scenario: `etag` of a reply that carries no version
|
|
115
|
-
Given the `echo` is running with the following manifest:
|
|
116
|
-
"""yaml
|
|
117
|
-
exposition:
|
|
118
|
-
/:name:
|
|
119
|
-
io:output: true
|
|
120
|
-
GET: compute
|
|
121
|
-
"""
|
|
122
|
-
When the following request is received:
|
|
123
|
-
"""
|
|
124
|
-
GET /echo/Bob/ HTTP/1.1
|
|
125
|
-
host: nex.toa.io
|
|
126
|
-
accept: text/plain
|
|
127
|
-
"""
|
|
128
|
-
Then the following reply is sent:
|
|
129
|
-
"""
|
|
130
|
-
200 OK
|
|
131
|
-
etag: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
|
|
132
|
-
|
|
133
|
-
Hello Bob
|
|
134
|
-
"""
|
|
135
|
-
When the following request is received:
|
|
136
|
-
"""
|
|
137
|
-
GET /echo/Bob/ HTTP/1.1
|
|
138
|
-
host: nex.toa.io
|
|
139
|
-
accept: text/plain
|
|
140
|
-
if-none-match: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
|
|
141
|
-
"""
|
|
142
|
-
Then the following reply is sent:
|
|
143
|
-
"""
|
|
144
|
-
304 Not Modified
|
|
145
|
-
etag: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
|
|
146
|
-
"""
|
|
147
|
-
# the tag identifies the representation, which is what `vary: accept` says
|
|
148
|
-
When the following request is received:
|
|
149
|
-
"""
|
|
150
|
-
GET /echo/Bob/ HTTP/1.1
|
|
151
|
-
host: nex.toa.io
|
|
152
|
-
accept: application/yaml
|
|
153
|
-
if-none-match: "2d6a12ffc0a952fbd09f8909de4e0e4b20ba2b906cd12ac22bbef4ee5bd9003e"
|
|
154
|
-
"""
|
|
155
|
-
Then the following reply is sent:
|
|
156
|
-
"""
|
|
157
|
-
200 OK
|
|
158
|
-
etag: "360c52c694c418b4a793a4815e611206ab17fe04836351a65638a15d1491810b"
|
|
159
76
|
"""
|
|
160
77
|
|
|
161
78
|
Scenario: Weak `etag`
|
|
@@ -182,7 +99,6 @@ Feature: Optimistic concurrency control
|
|
|
182
99
|
Then the following reply is sent:
|
|
183
100
|
"""
|
|
184
101
|
201 Created
|
|
185
|
-
etag: "1"
|
|
186
102
|
|
|
187
103
|
id: ${{ id }}
|
|
188
104
|
"""
|
|
@@ -232,7 +148,6 @@ Feature: Optimistic concurrency control
|
|
|
232
148
|
Then the following reply is sent:
|
|
233
149
|
"""
|
|
234
150
|
200 OK
|
|
235
|
-
etag: "2"
|
|
236
151
|
"""
|
|
237
152
|
|
|
238
153
|
Scenario: Hash `if-none-match` on versioned resource
|
|
@@ -258,7 +173,6 @@ Feature: Optimistic concurrency control
|
|
|
258
173
|
Then the following reply is sent:
|
|
259
174
|
"""
|
|
260
175
|
201 Created
|
|
261
|
-
etag: "1"
|
|
262
176
|
|
|
263
177
|
id: ${{ id }}
|
|
264
178
|
"""
|
|
@@ -5,9 +5,9 @@ Feature: Bans
|
|
|
5
5
|
Given the `identity.basic` database contains:
|
|
6
6
|
# developer:secret
|
|
7
7
|
# user:12345
|
|
8
|
-
| _id | authority | username | password |
|
|
9
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | null
|
|
10
|
-
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK | null
|
|
8
|
+
| _id | authority | username | password | DELETED |
|
|
9
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | null |
|
|
10
|
+
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK | null |
|
|
11
11
|
And the `identity.bans` database is empty
|
|
12
12
|
|
|
13
13
|
Scenario: Banning an Identity
|
|
@@ -132,8 +132,8 @@ Feature: Basic authentication
|
|
|
132
132
|
access: granted!
|
|
133
133
|
"""
|
|
134
134
|
And the `identity.basic` database contains:
|
|
135
|
-
| _id |
|
|
136
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1
|
|
135
|
+
| _id | VERSION | authority | username | password |
|
|
136
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
137
137
|
When the following request is received:
|
|
138
138
|
"""
|
|
139
139
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
@@ -173,9 +173,9 @@ Feature: Basic authentication
|
|
|
173
173
|
|
|
174
174
|
Scenario: Changing other identity's password
|
|
175
175
|
Given the `identity.basic` database contains:
|
|
176
|
-
| _id | authority | username | password |
|
|
177
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1
|
|
178
|
-
| 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1
|
|
176
|
+
| _id | authority | username | password | VERSION |
|
|
177
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
178
|
+
| 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
179
179
|
When the following request is received:
|
|
180
180
|
"""
|
|
181
181
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
@@ -222,8 +222,8 @@ Feature: Basic authentication
|
|
|
222
222
|
- ^[^A]{1,16}$ # should not contain 'A'
|
|
223
223
|
"""
|
|
224
224
|
And the `identity.basic` database contains:
|
|
225
|
-
| _id |
|
|
226
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1
|
|
225
|
+
| _id | VERSION | authority | username | password |
|
|
226
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
227
227
|
When the following request is received:
|
|
228
228
|
"""
|
|
229
229
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
@@ -508,8 +508,8 @@ Feature: Basic authentication
|
|
|
508
508
|
|
|
509
509
|
Scenario: Check if username is available
|
|
510
510
|
Given the `identity.basic` database contains:
|
|
511
|
-
| _id | authority | username | password |
|
|
512
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1
|
|
511
|
+
| _id | authority | username | password | VERSION |
|
|
512
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
513
513
|
When the following request is received:
|
|
514
514
|
"""
|
|
515
515
|
GET /identity/basic/usernames/ZGV2ZWxvcGVy/ HTTP/1.1
|
|
@@ -9,7 +9,7 @@ Feature: Identity Federation
|
|
|
9
9
|
Given the `identity.federation` configuration:
|
|
10
10
|
"""yaml
|
|
11
11
|
trust:
|
|
12
|
-
- iss: http://localhost:
|
|
12
|
+
- iss: http://localhost:31005
|
|
13
13
|
aud: test
|
|
14
14
|
"""
|
|
15
15
|
And the IDP token for User is issued
|
|
@@ -68,14 +68,14 @@ Feature: Identity Federation
|
|
|
68
68
|
200 OK
|
|
69
69
|
|
|
70
70
|
- id: ${{ User.credential }}
|
|
71
|
-
iss: http://localhost:
|
|
71
|
+
iss: http://localhost:31005
|
|
72
72
|
"""
|
|
73
73
|
|
|
74
74
|
Scenario: Creating an Identity using inception
|
|
75
75
|
Given the `identity.federation` configuration:
|
|
76
76
|
"""yaml
|
|
77
77
|
trust:
|
|
78
|
-
- iss: http://localhost:
|
|
78
|
+
- iss: http://localhost:31005
|
|
79
79
|
aud: test
|
|
80
80
|
assert: false
|
|
81
81
|
"""
|
|
@@ -150,7 +150,7 @@ Feature: Identity Federation
|
|
|
150
150
|
200 OK
|
|
151
151
|
|
|
152
152
|
- id: ${{ Bill.credential }}
|
|
153
|
-
iss: http://localhost:
|
|
153
|
+
iss: http://localhost:31005
|
|
154
154
|
"""
|
|
155
155
|
And the following request is received:
|
|
156
156
|
# same credentials
|
|
@@ -171,11 +171,11 @@ Feature: Identity Federation
|
|
|
171
171
|
Given the `identity.federation` configuration:
|
|
172
172
|
"""yaml
|
|
173
173
|
trust:
|
|
174
|
-
- iss: http://localhost:
|
|
174
|
+
- iss: http://localhost:31005
|
|
175
175
|
aud: test
|
|
176
176
|
principal:
|
|
177
177
|
authority: nex
|
|
178
|
-
iss: http://localhost:
|
|
178
|
+
iss: http://localhost:31005
|
|
179
179
|
sub: root
|
|
180
180
|
"""
|
|
181
181
|
And the IDP token for root is issued
|
|
@@ -218,7 +218,7 @@ Feature: Identity Federation
|
|
|
218
218
|
Given the `identity.federation` configuration:
|
|
219
219
|
"""yaml
|
|
220
220
|
trust:
|
|
221
|
-
- iss: http://localhost:
|
|
221
|
+
- iss: http://localhost:31005
|
|
222
222
|
aud: test
|
|
223
223
|
"""
|
|
224
224
|
And the `identity.basic` database is empty
|
|
@@ -260,7 +260,7 @@ Feature: Identity Federation
|
|
|
260
260
|
201 Created
|
|
261
261
|
|
|
262
262
|
id: ${{ Bob.credential }}
|
|
263
|
-
iss: http://localhost:
|
|
263
|
+
iss: http://localhost:31005
|
|
264
264
|
"""
|
|
265
265
|
# the created credential is listed as is
|
|
266
266
|
When the following request is received:
|
|
@@ -275,7 +275,7 @@ Feature: Identity Federation
|
|
|
275
275
|
200 OK
|
|
276
276
|
|
|
277
277
|
- id: ${{ Bob.credential }}
|
|
278
|
-
iss: http://localhost:
|
|
278
|
+
iss: http://localhost:31005
|
|
279
279
|
"""
|
|
280
280
|
And the following request is received:
|
|
281
281
|
"""
|
|
@@ -335,7 +335,7 @@ Feature: Identity Federation
|
|
|
335
335
|
Given the `identity.federation` configuration:
|
|
336
336
|
"""yaml
|
|
337
337
|
trust:
|
|
338
|
-
- iss: http://localhost:
|
|
338
|
+
- iss: http://localhost:31005
|
|
339
339
|
aud: nex
|
|
340
340
|
secret: $IDP_SECRET
|
|
341
341
|
"""
|
|
@@ -363,7 +363,7 @@ Feature: Identity Federation
|
|
|
363
363
|
Given the `identity.federation` configuration:
|
|
364
364
|
"""yaml
|
|
365
365
|
trust:
|
|
366
|
-
- iss: http://localhost:
|
|
366
|
+
- iss: http://localhost:31005
|
|
367
367
|
aud: nex
|
|
368
368
|
signature:
|
|
369
369
|
iss: io.toa.nex.id
|
|
@@ -82,8 +82,8 @@ Feature: Custom tokens
|
|
|
82
82
|
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
83
83
|
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK |
|
|
84
84
|
And the `identity.roles` database contains:
|
|
85
|
-
| _id | identity | role
|
|
86
|
-
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:tokens
|
|
85
|
+
| _id | identity | role |
|
|
86
|
+
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:tokens |
|
|
87
87
|
When the following request is received:
|
|
88
88
|
"""
|
|
89
89
|
POST /identity/tokens/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
|
|
@@ -258,7 +258,7 @@ Feature: Custom tokens
|
|
|
258
258
|
200 OK
|
|
259
259
|
|
|
260
260
|
- id: ${{ kid }}
|
|
261
|
-
|
|
261
|
+
CREATED: ${{ created }}
|
|
262
262
|
label: One-time token
|
|
263
263
|
expires: ${{ expires }}
|
|
264
264
|
"""
|
|
@@ -369,8 +369,8 @@ Feature: Custom tokens
|
|
|
369
369
|
|
|
370
370
|
Scenario: Changing the password revokes custom tokens
|
|
371
371
|
Given the `identity.basic` database contains:
|
|
372
|
-
| _id |
|
|
373
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1
|
|
372
|
+
| _id | VERSION | authority | username | password |
|
|
373
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
374
374
|
And the `identity.tokens` configuration:
|
|
375
375
|
"""yaml
|
|
376
376
|
cache:
|
|
@@ -92,8 +92,8 @@ Feature: Tokens lifecycle
|
|
|
92
92
|
refresh: 1
|
|
93
93
|
"""
|
|
94
94
|
And the `identity.basic` database contains:
|
|
95
|
-
| _id |
|
|
96
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1
|
|
95
|
+
| _id | VERSION | authority | username | password |
|
|
96
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
97
97
|
When the following request is received:
|
|
98
98
|
"""
|
|
99
99
|
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
@@ -20,8 +20,8 @@ Feature: Reading the introspection map
|
|
|
20
20
|
|
|
21
21
|
Scenario: Reading the nodes
|
|
22
22
|
Given the `introspection.nodes` database contains:
|
|
23
|
-
| _id | namespace | component | version |
|
|
24
|
-
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1
|
|
23
|
+
| _id | namespace | component | version | VERSION | DELETED |
|
|
24
|
+
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
|
|
25
25
|
When the following request is received:
|
|
26
26
|
"""
|
|
27
27
|
GET /introspection/nodes/ HTTP/1.1
|
|
@@ -42,8 +42,8 @@ Feature: Reading the introspection map
|
|
|
42
42
|
|
|
43
43
|
Scenario: Reading one node
|
|
44
44
|
Given the `introspection.nodes` database contains:
|
|
45
|
-
| _id | namespace | component | version |
|
|
46
|
-
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1
|
|
45
|
+
| _id | namespace | component | version | VERSION | DELETED |
|
|
46
|
+
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
|
|
47
47
|
When the following request is received:
|
|
48
48
|
"""
|
|
49
49
|
GET /introspection/nodes/70e1a6551346c6932657cdb2526df0fa/ HTTP/1.1
|
package/features/map.feature
CHANGED
|
@@ -234,7 +234,7 @@ Feature: HTTP context mapping
|
|
|
234
234
|
And the `identity.federation` configuration:
|
|
235
235
|
"""yaml
|
|
236
236
|
trust:
|
|
237
|
-
- iss: http://localhost:
|
|
237
|
+
- iss: http://localhost:31005
|
|
238
238
|
aud: test
|
|
239
239
|
"""
|
|
240
240
|
And the `echo` is running with the following manifest:
|
|
@@ -269,7 +269,7 @@ Feature: HTTP context mapping
|
|
|
269
269
|
And the `identity.federation` configuration:
|
|
270
270
|
"""yaml
|
|
271
271
|
trust:
|
|
272
|
-
- iss: http://localhost:
|
|
272
|
+
- iss: http://localhost:31005
|
|
273
273
|
aud: test
|
|
274
274
|
assert: false
|
|
275
275
|
"""
|
package/features/mcp.feature
CHANGED
|
@@ -8,7 +8,8 @@ Feature: Model Context Protocol
|
|
|
8
8
|
says.
|
|
9
9
|
|
|
10
10
|
What a tool is, is stated on the route and nowhere else. The operation states what it is
|
|
11
|
-
too, and that is not this: one operation mounted on two routes is two tools.
|
|
11
|
+
too, and that is not this: one operation mounted on two routes is two tools. A `title`
|
|
12
|
+
beside the description is what a person is shown where a client lists what it may call.
|
|
12
13
|
|
|
13
14
|
Two revisions are answered from one endpoint that remembers nothing between requests: the
|
|
14
15
|
modern one, where every request carries its own version and capabilities, and the one
|
|
@@ -42,7 +43,9 @@ Feature: Model Context Protocol
|
|
|
42
43
|
GET:
|
|
43
44
|
query:
|
|
44
45
|
criteria: volume>=100
|
|
45
|
-
mcp:tool:
|
|
46
|
+
mcp:tool:
|
|
47
|
+
title: Large pots
|
|
48
|
+
description: The pots that hold a hundred or more, newest first.
|
|
46
49
|
endpoint: enumerate
|
|
47
50
|
/unpublished:
|
|
48
51
|
GET: enumerate
|
|
@@ -160,7 +163,7 @@ Feature: Model Context Protocol
|
|
|
160
163
|
id: 2
|
|
161
164
|
result:
|
|
162
165
|
tools:
|
|
163
|
-
- name: pots
|
|
166
|
+
- name: pots.GET
|
|
164
167
|
description: All the pots, newest first.
|
|
165
168
|
inputSchema:
|
|
166
169
|
type: object
|
|
@@ -178,7 +181,7 @@ Feature: Model Context Protocol
|
|
|
178
181
|
additionalProperties: false
|
|
179
182
|
annotations:
|
|
180
183
|
readOnlyHint: true
|
|
181
|
-
- name: pots
|
|
184
|
+
- name: pots.POST
|
|
182
185
|
description: Start a new pot brewing.
|
|
183
186
|
inputSchema:
|
|
184
187
|
type: object
|
|
@@ -192,7 +195,7 @@ Feature: Model Context Protocol
|
|
|
192
195
|
- title
|
|
193
196
|
- volume
|
|
194
197
|
additionalProperties: false
|
|
195
|
-
- name: pots
|
|
198
|
+
- name: pots._id.GET
|
|
196
199
|
description: One pot, by its id.
|
|
197
200
|
inputSchema:
|
|
198
201
|
type: object
|
|
@@ -202,7 +205,8 @@ Feature: Model Context Protocol
|
|
|
202
205
|
required:
|
|
203
206
|
- id
|
|
204
207
|
additionalProperties: false
|
|
205
|
-
- name: pots
|
|
208
|
+
- name: pots.large.GET
|
|
209
|
+
title: Large pots
|
|
206
210
|
description: The pots that hold a hundred or more, newest first.
|
|
207
211
|
annotations:
|
|
208
212
|
readOnlyHint: true
|
|
@@ -212,11 +216,11 @@ Feature: Model Context Protocol
|
|
|
212
216
|
"""
|
|
213
217
|
And the reply does not contain:
|
|
214
218
|
"""
|
|
215
|
-
pots
|
|
219
|
+
pots.guarded.GET
|
|
216
220
|
"""
|
|
217
221
|
And the reply does not contain:
|
|
218
222
|
"""
|
|
219
|
-
pots
|
|
223
|
+
pots.unpublished.GET
|
|
220
224
|
"""
|
|
221
225
|
And the reply does not contain:
|
|
222
226
|
"""
|
|
@@ -235,10 +239,10 @@ Feature: Model Context Protocol
|
|
|
235
239
|
content-type: application/json
|
|
236
240
|
mcp-protocol-version: 2026-07-28
|
|
237
241
|
mcp-method: tools/call
|
|
238
|
-
mcp-name: pots
|
|
242
|
+
mcp-name: pots.unpublished.GET
|
|
239
243
|
|
|
240
244
|
{"jsonrpc": "2.0", "id": 30, "method": "tools/call",
|
|
241
|
-
"params": {"name": "pots
|
|
245
|
+
"params": {"name": "pots.unpublished.GET", "arguments": {},
|
|
242
246
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
243
247
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
244
248
|
"""
|
|
@@ -283,7 +287,7 @@ Feature: Model Context Protocol
|
|
|
283
287
|
id: 20
|
|
284
288
|
result:
|
|
285
289
|
tools:
|
|
286
|
-
- name: pots
|
|
290
|
+
- name: pots.GET
|
|
287
291
|
"""
|
|
288
292
|
|
|
289
293
|
Scenario: A tool takes what the procedure takes
|
|
@@ -295,10 +299,10 @@ Feature: Model Context Protocol
|
|
|
295
299
|
content-type: application/json
|
|
296
300
|
mcp-protocol-version: 2026-07-28
|
|
297
301
|
mcp-method: tools/call
|
|
298
|
-
mcp-name: pots
|
|
302
|
+
mcp-name: pots._id.GET
|
|
299
303
|
|
|
300
304
|
{"jsonrpc": "2.0", "id": 3, "method": "tools/call",
|
|
301
|
-
"params": {"name": "pots
|
|
305
|
+
"params": {"name": "pots._id.GET",
|
|
302
306
|
"arguments": {"id": "4c4759e6f9c74da989d64511df42d6f4"},
|
|
303
307
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
304
308
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
@@ -326,10 +330,10 @@ Feature: Model Context Protocol
|
|
|
326
330
|
content-type: application/json
|
|
327
331
|
mcp-protocol-version: 2026-07-28
|
|
328
332
|
mcp-method: tools/call
|
|
329
|
-
mcp-name: pots
|
|
333
|
+
mcp-name: pots.POST
|
|
330
334
|
|
|
331
335
|
{"jsonrpc": "2.0", "id": 4, "method": "tools/call",
|
|
332
|
-
"params": {"name": "pots
|
|
336
|
+
"params": {"name": "pots.POST", "arguments": {"title": "Kettle", "volume": 1.7},
|
|
333
337
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
334
338
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
335
339
|
"""
|
|
@@ -354,10 +358,10 @@ Feature: Model Context Protocol
|
|
|
354
358
|
content-type: application/json
|
|
355
359
|
mcp-protocol-version: 2026-07-28
|
|
356
360
|
mcp-method: tools/call
|
|
357
|
-
mcp-name: kettles
|
|
361
|
+
mcp-name: kettles.GET
|
|
358
362
|
|
|
359
363
|
{"jsonrpc": "2.0", "id": 5, "method": "tools/call",
|
|
360
|
-
"params": {"name": "kettles
|
|
364
|
+
"params": {"name": "kettles.GET", "arguments": {},
|
|
361
365
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
362
366
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
363
367
|
"""
|
|
@@ -403,10 +407,10 @@ Feature: Model Context Protocol
|
|
|
403
407
|
content-type: application/json
|
|
404
408
|
mcp-protocol-version: 2026-07-28
|
|
405
409
|
mcp-method: tools/call
|
|
406
|
-
mcp-name: pots
|
|
410
|
+
mcp-name: pots.GET
|
|
407
411
|
|
|
408
412
|
{"jsonrpc": "2.0", "id": 7, "method": "tools/call",
|
|
409
|
-
"params": {"name": "pots
|
|
413
|
+
"params": {"name": "pots.POST", "arguments": {},
|
|
410
414
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
411
415
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
412
416
|
"""
|
|
@@ -484,7 +488,7 @@ Feature: Model Context Protocol
|
|
|
484
488
|
named a record that is not the caller's, which it may correct itself by naming another.
|
|
485
489
|
A challenge here would send the client to ask for a scope that would not help.
|
|
486
490
|
|
|
487
|
-
# developer:secret, who is not an `admin` and so may not reach `pots
|
|
491
|
+
# developer:secret, who is not an `admin` and so may not reach `pots.guarded.GET`
|
|
488
492
|
Given the `identity.basic` database contains:
|
|
489
493
|
| _id | authority | username | password |
|
|
490
494
|
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
@@ -498,10 +502,10 @@ Feature: Model Context Protocol
|
|
|
498
502
|
content-type: application/json
|
|
499
503
|
mcp-protocol-version: 2026-07-28
|
|
500
504
|
mcp-method: tools/call
|
|
501
|
-
mcp-name: pots
|
|
505
|
+
mcp-name: pots.guarded.GET
|
|
502
506
|
|
|
503
507
|
{"jsonrpc": "2.0", "id": 31, "method": "tools/call",
|
|
504
|
-
"params": {"name": "pots
|
|
508
|
+
"params": {"name": "pots.guarded.GET", "arguments": {},
|
|
505
509
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
506
510
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
507
511
|
"""
|
|
@@ -531,10 +535,10 @@ Feature: Model Context Protocol
|
|
|
531
535
|
content-type: application/json
|
|
532
536
|
mcp-protocol-version: 2026-07-28
|
|
533
537
|
mcp-method: tools/call
|
|
534
|
-
mcp-name: pots
|
|
538
|
+
mcp-name: pots._id.GET
|
|
535
539
|
|
|
536
540
|
{"jsonrpc": "2.0", "id": 32, "method": "tools/call",
|
|
537
|
-
"params": {"name": "pots
|
|
541
|
+
"params": {"name": "pots._id.GET",
|
|
538
542
|
"arguments": {"id": "not-an-id"},
|
|
539
543
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
540
544
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
@@ -570,10 +574,10 @@ Feature: Model Context Protocol
|
|
|
570
574
|
content-type: application/json
|
|
571
575
|
mcp-protocol-version: 2026-07-28
|
|
572
576
|
mcp-method: tools/call
|
|
573
|
-
mcp-name: echo
|
|
577
|
+
mcp-name: echo.GET
|
|
574
578
|
|
|
575
579
|
{"jsonrpc": "2.0", "id": 10, "method": "tools/call",
|
|
576
|
-
"params": {"name": "echo
|
|
580
|
+
"params": {"name": "echo.GET", "arguments": {},
|
|
577
581
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
578
582
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
579
583
|
"""
|
|
@@ -612,10 +616,10 @@ Feature: Model Context Protocol
|
|
|
612
616
|
content-type: application/json
|
|
613
617
|
mcp-protocol-version: 2026-07-28
|
|
614
618
|
mcp-method: tools/call
|
|
615
|
-
mcp-name: echo
|
|
619
|
+
mcp-name: echo.GET
|
|
616
620
|
|
|
617
621
|
{"jsonrpc": "2.0", "id": 11, "method": "tools/call",
|
|
618
|
-
"params": {"name": "echo
|
|
622
|
+
"params": {"name": "echo.GET", "arguments": {"greeting": "hello"},
|
|
619
623
|
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
|
|
620
624
|
"io.modelcontextprotocol/clientCapabilities": {}}}}
|
|
621
625
|
"""
|
package/features/require.feature
CHANGED
|
@@ -27,7 +27,6 @@ Feature: Request requirements
|
|
|
27
27
|
Then the following reply is sent:
|
|
28
28
|
"""
|
|
29
29
|
201 Created
|
|
30
|
-
etag: "${{ etag }}"
|
|
31
30
|
|
|
32
31
|
id: ${{ id }}
|
|
33
32
|
"""
|
|
@@ -53,7 +52,7 @@ Feature: Request requirements
|
|
|
53
52
|
host: nex.toa.io
|
|
54
53
|
content-type: application/yaml
|
|
55
54
|
accept: text/plain
|
|
56
|
-
if-match: "
|
|
55
|
+
if-match: "1"
|
|
57
56
|
|
|
58
57
|
title: Bye
|
|
59
58
|
"""
|