@toa.io/extensions.exposition 1.0.0-alpha.291 → 1.0.0-alpha.293
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/identity.basic/package.json +8 -0
- package/components/identity.federation/package.json +8 -0
- package/components/identity.passkeys/package.json +8 -0
- package/components/identity.tokens/package.json +10 -0
- package/package.json +25 -13
- package/transpiled/Discovery/Explorer.js +1 -1
- package/transpiled/Discovery/Explorer.js.map +1 -1
- package/transpiled/Discovery/Site.js +1 -1
- package/transpiled/Discovery/Site.js.map +1 -1
- package/transpiled/Discovery/trunk.js +1 -1
- package/transpiled/Discovery/trunk.js.map +1 -1
- package/transpiled/Endpoint.js +3 -0
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.js +1 -1
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.js +1 -1
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +1 -1
- package/transpiled/HTTP/Server.js +1 -1
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/Introspection.d.ts +6 -0
- package/transpiled/Introspection.js +1 -0
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/MCP/Server.d.ts +1 -1
- package/transpiled/MCP/Server.js +1 -1
- package/transpiled/MCP/Server.js.map +1 -1
- package/transpiled/MCP/discover.d.ts +1 -1
- package/transpiled/MCP/schema.js +2 -2
- package/transpiled/Query.d.ts +2 -12
- package/transpiled/Query.js +3 -13
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RPC/Dispatcher.d.ts +1 -1
- package/transpiled/RPC/Dispatcher.js +2 -2
- package/transpiled/RPC/Dispatcher.js.map +1 -1
- package/transpiled/RTD/Endpoint.d.ts +2 -3
- package/transpiled/RTD/Tree.js +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +1 -1
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/index.d.ts +1 -2
- package/transpiled/RTD/syntax/index.js +1 -2
- package/transpiled/RTD/syntax/index.js.map +1 -1
- package/transpiled/Tenant.js +1 -1
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +1 -1
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/io/IO.js +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/oauth/documents.d.ts +1 -1
- package/transpiled/index.d.ts +0 -2
- package/transpiled/index.js +0 -2
- package/transpiled/index.js.map +1 -1
- package/transpiled/service.js +1 -1
- package/transpiled/service.js.map +1 -1
- package/ui/dist/_app/immutable/assets/0.Cu0AnR_8.css +2 -0
- package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
- package/ui/dist/_app/immutable/assets/ui.C8aD6zzF.css +1 -0
- package/ui/dist/_app/immutable/chunks/B8GvXrmq.js +1 -0
- package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
- package/ui/dist/_app/immutable/chunks/D6q28_Ok.js +86 -0
- package/ui/dist/_app/immutable/chunks/{D9tE1yyO.js → DVlaUfVU.js} +1 -1
- package/ui/dist/_app/immutable/chunks/DpB73ZB6.js +6 -0
- package/ui/dist/_app/immutable/entry/app.CTava8yn.js +2 -0
- package/ui/dist/_app/immutable/entry/start.yWN0gSLA.js +1 -0
- package/ui/dist/_app/immutable/nodes/0.HKRDBYrC.js +1 -0
- package/ui/dist/_app/immutable/nodes/1.CLa0ydOi.js +1 -0
- package/ui/dist/_app/immutable/nodes/2.C9Kaym8C.js +8 -0
- package/ui/dist/_app/immutable/nodes/3.C1X4_rXZ.js +1 -0
- package/ui/dist/_app/immutable/nodes/4.DdzDIi9E.js +1 -0
- package/ui/dist/_app/immutable/nodes/5.DpbmCMdw.js +1 -0
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +12 -12
- package/CHANGELOG.md +0 -35
- package/components/identity.bans/tsconfig.tsbuildinfo +0 -1
- package/components/identity.basic/source/lib/credentials.test.ts +0 -18
- package/components/identity.basic/tsconfig.tsbuildinfo +0 -1
- package/components/identity.clients/source/lib/canonical.test.ts +0 -43
- package/components/identity.clients/source/lib/cimd.test.ts +0 -122
- package/components/identity.clients/source/lib/redirect.test.ts +0 -47
- package/components/identity.clients/tsconfig.tsbuildinfo +0 -1
- package/components/identity.credentials/source/list.test.ts +0 -70
- package/components/identity.credentials/tsconfig.tsbuildinfo +0 -1
- package/components/identity.federation/source/lib/discovery.test.ts +0 -60
- package/components/identity.federation/source/list.test.ts +0 -41
- package/components/identity.federation/tsconfig.tsbuildinfo +0 -1
- package/components/identity.grants/tsconfig.tsbuildinfo +0 -1
- package/components/identity.keys/tsconfig.tsbuildinfo +0 -1
- package/components/identity.otp/tsconfig.tsbuildinfo +0 -1
- package/components/identity.passkeys/source/errors.test.ts +0 -34
- package/components/identity.passkeys/source/webauthn.test.ts +0 -26
- package/components/identity.passkeys/tsconfig.tsbuildinfo +0 -1
- package/components/identity.roles/tsconfig.tsbuildinfo +0 -1
- package/components/identity.tokens/source/authenticate.test.ts +0 -112
- package/components/identity.tokens/source/decrypt.test.ts +0 -216
- package/components/identity.tokens/source/encrypt.test.ts +0 -150
- package/components/identity.tokens/source/issue.test.ts +0 -73
- package/components/identity.tokens/source/lib/form.test.ts +0 -25
- package/components/identity.tokens/source/lib/paseto.test.ts +0 -62
- package/components/identity.tokens/tsconfig.tsbuildinfo +0 -1
- package/context.toa.yaml +0 -31
- package/cucumber.mjs +0 -7
- package/documentation/.assets/ia3-dark.jpg +0 -0
- package/documentation/.assets/ia3-light.jpg +0 -0
- package/documentation/.assets/overview-dark.jpg +0 -0
- package/documentation/.assets/overview-light.jpg +0 -0
- package/documentation/.assets/role-scopes-dark.jpg +0 -0
- package/documentation/.assets/role-scopes-light.jpg +0 -0
- package/documentation/.assets/rtd-dark.jpg +0 -0
- package/documentation/.assets/rtd-light.jpg +0 -0
- package/documentation/access.md +0 -350
- package/documentation/authorities.md +0 -51
- package/documentation/cache.md +0 -72
- package/documentation/components.md +0 -472
- package/documentation/consent.md +0 -101
- package/documentation/credentials.md +0 -88
- package/documentation/dev.md +0 -30
- package/documentation/discovery.md +0 -81
- package/documentation/flow.md +0 -44
- package/documentation/help.md +0 -122
- package/documentation/identity.md +0 -304
- package/documentation/introspection.md +0 -123
- package/documentation/io.md +0 -167
- package/documentation/ip.md +0 -24
- package/documentation/map.md +0 -123
- package/documentation/mcp.md +0 -183
- package/documentation/notes/desync.jpg +0 -0
- package/documentation/notes/peers.md +0 -59
- package/documentation/notes/sse.md +0 -71
- package/documentation/notes/throttling.md +0 -122
- package/documentation/oauth.md +0 -180
- package/documentation/octets.md +0 -334
- package/documentation/passkeys.md +0 -11
- package/documentation/protocol.md +0 -120
- package/documentation/query.md +0 -324
- package/documentation/require.md +0 -15
- package/documentation/rpc.md +0 -154
- package/documentation/tracing.md +0 -70
- package/documentation/tree.md +0 -199
- package/features/access.feature +0 -596
- package/features/annotation.feature +0 -32
- package/features/auth.assert.feature +0 -55
- package/features/auth.bearer.feature +0 -120
- package/features/auth.claims.feature +0 -171
- package/features/auth.incept.feature +0 -166
- package/features/auth.input.feature +0 -59
- package/features/authorities.basic.feature +0 -141
- package/features/authorities.feature +0 -71
- package/features/authorities.federation.feature +0 -100
- package/features/authorities.tokens.feature +0 -117
- package/features/body.feature +0 -76
- package/features/cache.feature +0 -368
- package/features/configuration.feature +0 -206
- package/features/cors.feature +0 -127
- package/features/credentials.feature +0 -106
- package/features/debug.feature +0 -34
- package/features/dev.feature +0 -90
- package/features/directives.feature +0 -61
- package/features/discovery.feature +0 -213
- package/features/discovery.ui.feature +0 -213
- package/features/dynamic.feature +0 -192
- package/features/errors.feature +0 -258
- package/features/etag.feature +0 -239
- package/features/flow.feature +0 -148
- package/features/help.feature +0 -512
- package/features/identity.bans.feature +0 -200
- package/features/identity.basic.feature +0 -666
- package/features/identity.feature +0 -240
- package/features/identity.federation.feature +0 -396
- package/features/identity.otp.feature +0 -142
- package/features/identity.roles.feature +0 -568
- package/features/identity.tokens.custom.feature +0 -430
- package/features/identity.tokens.feature +0 -131
- package/features/interruptions.feature +0 -20
- package/features/introspection.feature +0 -565
- package/features/introspection.map.feature +0 -108
- package/features/io.feature +0 -204
- package/features/io.throttle.feature +0 -166
- package/features/map.feature +0 -360
- package/features/mcp.feature +0 -753
- package/features/methods.feature +0 -48
- package/features/oauth.clients.feature +0 -195
- package/features/oauth.discovery.feature +0 -164
- package/features/oauth.grants.feature +0 -301
- package/features/octets.cloudinary.feature +0 -233
- package/features/octets.download.feature +0 -194
- package/features/octets.entries.feature +0 -83
- package/features/octets.feature +0 -306
- package/features/octets.head.feature +0 -40
- package/features/octets.location.feature +0 -83
- package/features/octets.meta.feature +0 -117
- package/features/octets.workflows.feature +0 -565
- package/features/passkeys.feature +0 -66
- package/features/probes.feature +0 -18
- package/features/query.feature +0 -389
- package/features/realtime.feature +0 -34
- package/features/require.feature +0 -66
- package/features/response.feature +0 -103
- package/features/routes.feature +0 -224
- package/features/rpc.feature +0 -429
- package/features/server.feature +0 -21
- package/features/site/_app/immutable/asset.js +0 -1
- package/features/site/favicon.ico +0 -0
- package/features/site/index.html +0 -10
- package/features/steps/.env.example +0 -5
- package/features/steps/Captures.ts +0 -20
- package/features/steps/Cloudinary.ts +0 -12
- package/features/steps/Common.ts +0 -38
- package/features/steps/Components.ts +0 -115
- package/features/steps/Database.ts +0 -106
- package/features/steps/Gateway.ts +0 -240
- package/features/steps/HTTP.ts +0 -96
- package/features/steps/IDP.ts +0 -361
- package/features/steps/Identity.ts +0 -54
- package/features/steps/OTP.ts +0 -42
- package/features/steps/Parameters.ts +0 -162
- package/features/steps/Probe.ts +0 -38
- package/features/steps/Realtime.ts +0 -175
- package/features/steps/Workspace.ts +0 -48
- package/features/steps/components/audit/manifest.toa.yaml +0 -20
- package/features/steps/components/audit/operations/record.js +0 -5
- package/features/steps/components/echo/manifest.toa.yaml +0 -59
- package/features/steps/components/echo/operations/affect.js +0 -3
- package/features/steps/components/echo/operations/compute.js +0 -3
- package/features/steps/components/echo/operations/echo.js +0 -3
- package/features/steps/components/echo/operations/error.js +0 -7
- package/features/steps/components/echo/operations/identity.js +0 -3
- package/features/steps/components/echo/operations/parameters.js +0 -3
- package/features/steps/components/echo/operations/ping.js +0 -3
- package/features/steps/components/echo/operations/unwrap.js +0 -3
- package/features/steps/components/echo.beacon/manifest.toa.yaml +0 -2
- package/features/steps/components/echo.beacon/operations/hello.js +0 -3
- package/features/steps/components/greeter/manifest.toa.yaml +0 -5
- package/features/steps/components/greeter/operations/greet.js +0 -3
- package/features/steps/components/notify/manifest.toa.yaml +0 -20
- package/features/steps/components/notify/operations/send.js +0 -5
- package/features/steps/components/octets.tester/manifest.toa.yaml +0 -73
- package/features/steps/components/octets.tester/operations/authority.js +0 -3
- package/features/steps/components/octets.tester/operations/bar.js +0 -9
- package/features/steps/components/octets.tester/operations/baz.js +0 -9
- package/features/steps/components/octets.tester/operations/concat.js +0 -5
- package/features/steps/components/octets.tester/operations/echo.js +0 -5
- package/features/steps/components/octets.tester/operations/err.js +0 -14
- package/features/steps/components/octets.tester/operations/foo.js +0 -5
- package/features/steps/components/octets.tester/operations/id.js +0 -5
- package/features/steps/components/octets.tester/operations/identity.js +0 -5
- package/features/steps/components/octets.tester/operations/lenna.png +0 -0
- package/features/steps/components/octets.tester/operations/redirect.js +0 -17
- package/features/steps/components/octets.tester/operations/yex.js +0 -14
- package/features/steps/components/octets.tester/operations/yield.js +0 -11
- package/features/steps/components/orders/manifest.toa.yaml +0 -30
- package/features/steps/components/orders/operations/create.js +0 -7
- package/features/steps/components/pots/manifest.toa.yaml +0 -91
- package/features/steps/components/pots/migrations/0002-indexes.yaml +0 -4
- package/features/steps/components/pricing/manifest.toa.yaml +0 -13
- package/features/steps/components/pricing/operations/quote.js +0 -3
- package/features/steps/components/sequences/manifest.toa.yaml +0 -11
- package/features/steps/components/sequences/operations/numbers.js +0 -5
- package/features/steps/components/sequences/operations/tokens.js +0 -14
- package/features/steps/components/users/manifest.toa.yaml +0 -30
- package/features/steps/components/users/operations/create.js +0 -11
- package/features/steps/components/users.properties/manifest.toa.yaml +0 -22
- package/features/steps/map.ts +0 -30
- package/features/steps/tsconfig.json +0 -9
- package/features/streams.feature +0 -35
- package/features/timestamps.feature +0 -41
- package/features/timing.feature +0 -49
- package/features/tracing.feature +0 -123
- package/schemas/annotation.cos.yaml +0 -125
- package/schemas/call.cos.yaml +0 -18
- package/schemas/directive.cos.yaml +0 -7
- package/schemas/method.cos.yaml +0 -23
- package/schemas/node.cos.yaml +0 -22
- package/schemas/query.cos.yaml +0 -31
- package/schemas/querystring.cos.yaml +0 -19
- package/schemas/range.cos.yaml +0 -10
- package/schemas/route.cos.yaml +0 -6
- package/source/Annotation.ts +0 -89
- package/source/Branch.test.ts +0 -40
- package/source/Branch.ts +0 -44
- package/source/Composition.ts +0 -51
- package/source/Context.ts +0 -11
- package/source/Directive.test.ts +0 -199
- package/source/Directive.ts +0 -248
- package/source/Discovery/Explorer.ts +0 -34
- package/source/Discovery/Site.test.ts +0 -147
- package/source/Discovery/Site.ts +0 -202
- package/source/Discovery/index.ts +0 -3
- package/source/Discovery/tree.test.ts +0 -175
- package/source/Discovery/tree.ts +0 -77
- package/source/Discovery/trunk.ts +0 -33
- package/source/Endpoint.test.ts +0 -67
- package/source/Endpoint.ts +0 -157
- package/source/Factory.ts +0 -42
- package/source/Gateway.ts +0 -390
- package/source/HTTP/Context.ts +0 -143
- package/source/HTTP/Probe.ts +0 -99
- package/source/HTTP/Server.ts +0 -430
- package/source/HTTP/Timing.ts +0 -14
- package/source/HTTP/address.test.ts +0 -28
- package/source/HTTP/address.ts +0 -16
- package/source/HTTP/exceptions.ts +0 -99
- package/source/HTTP/formats/form.ts +0 -21
- package/source/HTTP/formats/index.ts +0 -36
- package/source/HTTP/formats/json.ts +0 -14
- package/source/HTTP/formats/msgpack.ts +0 -14
- package/source/HTTP/formats/text.ts +0 -10
- package/source/HTTP/formats/yaml.test.ts +0 -22
- package/source/HTTP/formats/yaml.ts +0 -40
- package/source/HTTP/index.ts +0 -6
- package/source/HTTP/messages.test.ts +0 -196
- package/source/HTTP/messages.ts +0 -186
- package/source/HTTP/types.ts +0 -39
- package/source/Interception.ts +0 -37
- package/source/Introspection.ts +0 -179
- package/source/MCP/Server.ts +0 -335
- package/source/MCP/discover.ts +0 -51
- package/source/MCP/errors.ts +0 -80
- package/source/MCP/index.ts +0 -1
- package/source/MCP/schema.test.ts +0 -91
- package/source/MCP/schema.ts +0 -94
- package/source/MCP/tools.ts +0 -144
- package/source/MCP/types.ts +0 -84
- package/source/Mapping.ts +0 -101
- package/source/Query.test.ts +0 -54
- package/source/Query.ts +0 -277
- package/source/RPC/Context.ts +0 -75
- package/source/RPC/Dispatcher.ts +0 -150
- package/source/RPC/errors.test.ts +0 -77
- package/source/RPC/errors.ts +0 -82
- package/source/RPC/index.ts +0 -1
- package/source/RPC/names.test.ts +0 -141
- package/source/RPC/names.ts +0 -176
- package/source/RPC/types.ts +0 -34
- package/source/RTD/Context.ts +0 -16
- package/source/RTD/Directives.ts +0 -126
- package/source/RTD/Endpoint.ts +0 -27
- package/source/RTD/Match.ts +0 -11
- package/source/RTD/Method.ts +0 -39
- package/source/RTD/Node.ts +0 -169
- package/source/RTD/Route.ts +0 -93
- package/source/RTD/Tree.ts +0 -137
- package/source/RTD/expiration.test.ts +0 -81
- package/source/RTD/factory.ts +0 -105
- package/source/RTD/index.ts +0 -8
- package/source/RTD/segment.test.ts +0 -35
- package/source/RTD/segment.ts +0 -51
- package/source/RTD/syntax/index.ts +0 -2
- package/source/RTD/syntax/parse.test.ts +0 -196
- package/source/RTD/syntax/parse.ts +0 -171
- package/source/RTD/syntax/types.ts +0 -69
- package/source/RTD/walk.test.ts +0 -147
- package/source/Remotes.test.ts +0 -79
- package/source/Remotes.ts +0 -39
- package/source/Tenant.ts +0 -73
- package/source/const.ts +0 -45
- package/source/deployment.ts +0 -96
- package/source/directives/auth/Anonymous.test.ts +0 -70
- package/source/directives/auth/Anonymous.ts +0 -36
- package/source/directives/auth/Anyone.ts +0 -23
- package/source/directives/auth/Assert.ts +0 -43
- package/source/directives/auth/Authorization.test.ts +0 -24
- package/source/directives/auth/Authorization.ts +0 -388
- package/source/directives/auth/Delegate.test.ts +0 -36
- package/source/directives/auth/Delegate.ts +0 -54
- package/source/directives/auth/Echo.ts +0 -24
- package/source/directives/auth/Federation.ts +0 -104
- package/source/directives/auth/Id.ts +0 -37
- package/source/directives/auth/Incept.ts +0 -117
- package/source/directives/auth/Input.ts +0 -92
- package/source/directives/auth/Role.test.ts +0 -147
- package/source/directives/auth/Role.ts +0 -99
- package/source/directives/auth/Rule.ts +0 -59
- package/source/directives/auth/Scheme.ts +0 -31
- package/source/directives/auth/create.ts +0 -11
- package/source/directives/auth/index.ts +0 -3
- package/source/directives/auth/schemes.test.ts +0 -18
- package/source/directives/auth/schemes.ts +0 -39
- package/source/directives/auth/split.ts +0 -14
- package/source/directives/auth/types.ts +0 -75
- package/source/directives/cache/Cache.ts +0 -92
- package/source/directives/cache/Control.ts +0 -81
- package/source/directives/cache/Exact.ts +0 -7
- package/source/directives/cache/etag.ts +0 -38
- package/source/directives/cache/index.ts +0 -3
- package/source/directives/cache/types.ts +0 -9
- package/source/directives/cors/CORS.test.ts +0 -75
- package/source/directives/cors/CORS.ts +0 -88
- package/source/directives/cors/index.ts +0 -3
- package/source/directives/dev/Development.ts +0 -41
- package/source/directives/dev/Faulty.ts +0 -31
- package/source/directives/dev/Sleep.ts +0 -53
- package/source/directives/dev/Stub.ts +0 -14
- package/source/directives/dev/Throw.ts +0 -14
- package/source/directives/dev/index.ts +0 -3
- package/source/directives/dev/types.ts +0 -5
- package/source/directives/flow/Compose.ts +0 -98
- package/source/directives/flow/Fetch.ts +0 -86
- package/source/directives/flow/Flow.ts +0 -43
- package/source/directives/flow/index.ts +0 -3
- package/source/directives/flow/types.ts +0 -7
- package/source/directives/help/Family.ts +0 -122
- package/source/directives/help/Help.test.ts +0 -227
- package/source/directives/help/Help.ts +0 -47
- package/source/directives/help/Parameters.ts +0 -47
- package/source/directives/help/described.ts +0 -57
- package/source/directives/help/index.ts +0 -45
- package/source/directives/index.ts +0 -33
- package/source/directives/io/Directive.ts +0 -17
- package/source/directives/io/IO.ts +0 -118
- package/source/directives/io/Input.ts +0 -55
- package/source/directives/io/Message.ts +0 -1
- package/source/directives/io/Output.ts +0 -81
- package/source/directives/io/Status.test.ts +0 -88
- package/source/directives/io/Status.ts +0 -47
- package/source/directives/io/Throttle.ts +0 -30
- package/source/directives/io/index.ts +0 -3
- package/source/directives/io/lib/throttle/Configuration.test.ts +0 -72
- package/source/directives/io/lib/throttle/Configuration.ts +0 -68
- package/source/directives/io/lib/throttle/Keys.ts +0 -53
- package/source/directives/io/lib/throttle/Quotas.test.ts +0 -411
- package/source/directives/io/lib/throttle/Quotas.ts +0 -190
- package/source/directives/io/lib/throttle/Sync.test.ts +0 -163
- package/source/directives/io/lib/throttle/Sync.ts +0 -93
- package/source/directives/io/lib/throttle/Warning.test.ts +0 -32
- package/source/directives/io/lib/throttle/Warning.ts +0 -29
- package/source/directives/io/lib/throttle/components/Component.ts +0 -7
- package/source/directives/io/lib/throttle/components/IP.ts +0 -30
- package/source/directives/io/lib/throttle/components/Identity.ts +0 -19
- package/source/directives/io/lib/throttle/components/Path.ts +0 -8
- package/source/directives/io/lib/throttle/components/Route.ts +0 -19
- package/source/directives/io/lib/throttle/components/Segment.ts +0 -19
- package/source/directives/io/lib/throttle/components/index.ts +0 -19
- package/source/directives/io/lib/throttle/conditions/Condition.ts +0 -5
- package/source/directives/io/lib/throttle/conditions/Status.ts +0 -17
- package/source/directives/io/lib/throttle/conditions/index.ts +0 -11
- package/source/directives/io/lib/throttle/index.ts +0 -4
- package/source/directives/io/schemas.test.ts +0 -40
- package/source/directives/io/schemas.ts +0 -16
- package/source/directives/map/Authority.ts +0 -15
- package/source/directives/map/Buffer.ts +0 -15
- package/source/directives/map/Claims.ts +0 -63
- package/source/directives/map/Directive.ts +0 -4
- package/source/directives/map/Headers.ts +0 -60
- package/source/directives/map/Language.ts +0 -45
- package/source/directives/map/Languages.ts +0 -17
- package/source/directives/map/Map.ts +0 -85
- package/source/directives/map/Mapping.ts +0 -45
- package/source/directives/map/Properties.ts +0 -15
- package/source/directives/map/Segments.ts +0 -52
- package/source/directives/map/index.ts +0 -3
- package/source/directives/mcp/MCP.ts +0 -33
- package/source/directives/mcp/Tool.test.ts +0 -56
- package/source/directives/mcp/Tool.ts +0 -32
- package/source/directives/mcp/index.ts +0 -6
- package/source/directives/oauth/Discovery.ts +0 -66
- package/source/directives/oauth/documents.ts +0 -110
- package/source/directives/oauth/index.ts +0 -3
- package/source/directives/octets/Context.ts +0 -23
- package/source/directives/octets/Delete.ts +0 -96
- package/source/directives/octets/Directive.ts +0 -21
- package/source/directives/octets/Get.ts +0 -88
- package/source/directives/octets/Octets.ts +0 -82
- package/source/directives/octets/Put.ts +0 -186
- package/source/directives/octets/Workflow.ts +0 -60
- package/source/directives/octets/bytes.test.ts +0 -33
- package/source/directives/octets/bytes.ts +0 -18
- package/source/directives/octets/index.ts +0 -3
- package/source/directives/octets/schemas.test.ts +0 -20
- package/source/directives/octets/schemas.ts +0 -15
- package/source/directives/octets/types.ts +0 -9
- package/source/directives/octets/workflows/Execution.ts +0 -130
- package/source/directives/octets/workflows/Workflow.ts +0 -51
- package/source/directives/octets/workflows/index.ts +0 -1
- package/source/directives/require/Directive.ts +0 -5
- package/source/directives/require/Headers.ts +0 -19
- package/source/directives/require/Require.ts +0 -27
- package/source/directives/require/index.ts +0 -3
- package/source/discovery.ts +0 -1
- package/source/exceptions.ts +0 -47
- package/source/index.ts +0 -12
- package/source/io.ts +0 -4
- package/source/manifest.test.ts +0 -56
- package/source/manifest.ts +0 -56
- package/source/octets.d.ts +0 -17
- package/source/root.ts +0 -59
- package/source/schemas.test.ts +0 -31
- package/source/schemas.ts +0 -15
- package/source/service.ts +0 -94
- package/source/shortcuts.ts +0 -14
- package/source/userland.ts +0 -47
- package/transpiled/Annotation.d.ts +0 -70
- package/transpiled/Annotation.js +0 -2
- package/transpiled/Annotation.js.map +0 -1
- package/transpiled/RTD/syntax/parse.d.ts +0 -4
- package/transpiled/RTD/syntax/parse.js +0 -112
- package/transpiled/RTD/syntax/parse.js.map +0 -1
- package/transpiled/RTD/syntax/types.d.ts +0 -52
- package/transpiled/RTD/syntax/types.js +0 -11
- package/transpiled/RTD/syntax/types.js.map +0 -1
- package/transpiled/const.d.ts +0 -36
- package/transpiled/const.js +0 -37
- package/transpiled/const.js.map +0 -1
- package/transpiled/deployment.d.ts +0 -6
- package/transpiled/deployment.js +0 -76
- package/transpiled/deployment.js.map +0 -1
- package/transpiled/manifest.d.ts +0 -3
- package/transpiled/manifest.js +0 -39
- package/transpiled/manifest.js.map +0 -1
- package/transpiled/schemas.d.ts +0 -9
- package/transpiled/schemas.js +0 -9
- package/transpiled/schemas.js.map +0 -1
- package/transpiled/shortcuts.d.ts +0 -3
- package/transpiled/shortcuts.js +0 -13
- package/transpiled/shortcuts.js.map +0 -1
- package/tsconfig.json +0 -13
- package/tsconfig.tsbuildinfo +0 -1
- package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +0 -2
- package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +0 -1
- package/ui/dist/_app/immutable/chunks/B_pK3U1C.js +0 -6
- package/ui/dist/_app/immutable/chunks/CiKbPLyY.js +0 -1
- package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +0 -3
- package/ui/dist/_app/immutable/entry/app.DMqmL4NY.js +0 -2
- package/ui/dist/_app/immutable/entry/start.CRe7HWBI.js +0 -1
- package/ui/dist/_app/immutable/nodes/0.D9m-6cbM.js +0 -1
- package/ui/dist/_app/immutable/nodes/1.Cgi_RcSO.js +0 -1
- package/ui/dist/_app/immutable/nodes/2.D_Cbxgz4.js +0 -14
|
@@ -1,565 +0,0 @@
|
|
|
1
|
-
Feature: Introspection
|
|
2
|
-
|
|
3
|
-
Scenario: Resource introspection
|
|
4
|
-
Given the `pots` is running with the following manifest:
|
|
5
|
-
"""yaml
|
|
6
|
-
exposition:
|
|
7
|
-
/:
|
|
8
|
-
io:output: true
|
|
9
|
-
GET: enumerate
|
|
10
|
-
POST: create
|
|
11
|
-
"""
|
|
12
|
-
When the following request is received:
|
|
13
|
-
"""
|
|
14
|
-
OPTIONS /pots/ HTTP/1.1
|
|
15
|
-
host: nex.toa.io
|
|
16
|
-
accept: application/yaml
|
|
17
|
-
"""
|
|
18
|
-
Then the following reply is sent:
|
|
19
|
-
"""
|
|
20
|
-
200 OK
|
|
21
|
-
Allow: GET, POST
|
|
22
|
-
|
|
23
|
-
GET:
|
|
24
|
-
output:
|
|
25
|
-
type: array
|
|
26
|
-
items:
|
|
27
|
-
properties:
|
|
28
|
-
id:
|
|
29
|
-
type: string
|
|
30
|
-
pattern: ^[a-fA-F0-9]{32}$
|
|
31
|
-
title:
|
|
32
|
-
type: string
|
|
33
|
-
maxLength: 64
|
|
34
|
-
volume:
|
|
35
|
-
type: number
|
|
36
|
-
exclusiveMinimum: 0
|
|
37
|
-
maximum: 1000
|
|
38
|
-
temperature:
|
|
39
|
-
type: number
|
|
40
|
-
exclusiveMinimum: 0
|
|
41
|
-
maximum: 300
|
|
42
|
-
type: object
|
|
43
|
-
required:
|
|
44
|
-
- id
|
|
45
|
-
- title
|
|
46
|
-
- volume
|
|
47
|
-
POST:
|
|
48
|
-
input:
|
|
49
|
-
properties:
|
|
50
|
-
temperature:
|
|
51
|
-
type: number
|
|
52
|
-
exclusiveMinimum: 0
|
|
53
|
-
maximum: 300
|
|
54
|
-
title:
|
|
55
|
-
type: string
|
|
56
|
-
maxLength: 64
|
|
57
|
-
volume:
|
|
58
|
-
type: number
|
|
59
|
-
exclusiveMinimum: 0
|
|
60
|
-
maximum: 1000
|
|
61
|
-
type: object
|
|
62
|
-
required:
|
|
63
|
-
- title
|
|
64
|
-
- volume
|
|
65
|
-
output:
|
|
66
|
-
type: object
|
|
67
|
-
properties:
|
|
68
|
-
title:
|
|
69
|
-
type: string
|
|
70
|
-
maxLength: 64
|
|
71
|
-
errors:
|
|
72
|
-
- NO_WAY
|
|
73
|
-
- WONT_CREATE
|
|
74
|
-
"""
|
|
75
|
-
|
|
76
|
-
Scenario: What a method states it is
|
|
77
|
-
An operation states what it is for the Introspection to read, and that is not what a
|
|
78
|
-
resource is: an operation is written without knowledge of any route, and the same one
|
|
79
|
-
mounted twice is two methods. What a method states is what its route states.
|
|
80
|
-
|
|
81
|
-
Given the `pots` is running with the following manifest:
|
|
82
|
-
"""yaml
|
|
83
|
-
exposition:
|
|
84
|
-
/:
|
|
85
|
-
io:output: true
|
|
86
|
-
GET:
|
|
87
|
-
help:method:
|
|
88
|
-
description: Every pot there is, newest first.
|
|
89
|
-
endpoint: enumerate
|
|
90
|
-
POST: create
|
|
91
|
-
"""
|
|
92
|
-
When the following request is received:
|
|
93
|
-
"""
|
|
94
|
-
OPTIONS /pots/ HTTP/1.1
|
|
95
|
-
host: nex.toa.io
|
|
96
|
-
accept: application/yaml
|
|
97
|
-
"""
|
|
98
|
-
Then the following reply is sent:
|
|
99
|
-
"""
|
|
100
|
-
200 OK
|
|
101
|
-
Allow: GET, POST
|
|
102
|
-
|
|
103
|
-
GET:
|
|
104
|
-
description: Every pot there is, newest first.
|
|
105
|
-
"""
|
|
106
|
-
And the reply does not contain:
|
|
107
|
-
"""
|
|
108
|
-
Put a pot on to brew.
|
|
109
|
-
"""
|
|
110
|
-
|
|
111
|
-
Scenario: What the directives of the route admit
|
|
112
|
-
A schema states what may be sent and what comes back, which is what the route's
|
|
113
|
-
directives leave of what the operation declared — not what the operation declared.
|
|
114
|
-
|
|
115
|
-
Given the `pots` is running with the following manifest:
|
|
116
|
-
"""yaml
|
|
117
|
-
exposition:
|
|
118
|
-
/:
|
|
119
|
-
io:input: [title]
|
|
120
|
-
io:output: [id, title]
|
|
121
|
-
GET: enumerate
|
|
122
|
-
POST: create
|
|
123
|
-
"""
|
|
124
|
-
When the following request is received:
|
|
125
|
-
"""
|
|
126
|
-
OPTIONS /pots/ HTTP/1.1
|
|
127
|
-
host: nex.toa.io
|
|
128
|
-
accept: application/yaml
|
|
129
|
-
"""
|
|
130
|
-
Then the following reply is sent:
|
|
131
|
-
"""
|
|
132
|
-
200 OK
|
|
133
|
-
Allow: GET, POST
|
|
134
|
-
|
|
135
|
-
GET:
|
|
136
|
-
output:
|
|
137
|
-
type: array
|
|
138
|
-
items:
|
|
139
|
-
properties:
|
|
140
|
-
id:
|
|
141
|
-
type: string
|
|
142
|
-
pattern: ^[a-fA-F0-9]{32}$
|
|
143
|
-
title:
|
|
144
|
-
type: string
|
|
145
|
-
maxLength: 64
|
|
146
|
-
type: object
|
|
147
|
-
required:
|
|
148
|
-
- id
|
|
149
|
-
- title
|
|
150
|
-
POST:
|
|
151
|
-
input:
|
|
152
|
-
properties:
|
|
153
|
-
title:
|
|
154
|
-
type: string
|
|
155
|
-
maxLength: 64
|
|
156
|
-
type: object
|
|
157
|
-
required:
|
|
158
|
-
- title
|
|
159
|
-
"""
|
|
160
|
-
And the reply does not contain:
|
|
161
|
-
"""
|
|
162
|
-
volume
|
|
163
|
-
"""
|
|
164
|
-
|
|
165
|
-
Scenario: A method whose reply is dropped describes none
|
|
166
|
-
Without an `io:output` nothing of the reply is sent, so there is no output to state.
|
|
167
|
-
|
|
168
|
-
Given the `pots` is running with the following manifest:
|
|
169
|
-
"""yaml
|
|
170
|
-
exposition:
|
|
171
|
-
/:
|
|
172
|
-
GET: enumerate
|
|
173
|
-
"""
|
|
174
|
-
When the following request is received:
|
|
175
|
-
"""
|
|
176
|
-
OPTIONS /pots/ HTTP/1.1
|
|
177
|
-
host: nex.toa.io
|
|
178
|
-
accept: application/yaml
|
|
179
|
-
"""
|
|
180
|
-
Then the following reply is sent:
|
|
181
|
-
"""
|
|
182
|
-
200 OK
|
|
183
|
-
Allow: GET
|
|
184
|
-
"""
|
|
185
|
-
And the reply does not contain:
|
|
186
|
-
"""
|
|
187
|
-
output
|
|
188
|
-
"""
|
|
189
|
-
|
|
190
|
-
Scenario: A method the caller cannot reach is not described
|
|
191
|
-
What a resource says about itself is what this caller may use of it, so a method they
|
|
192
|
-
could only be refused is not in the answer, nor in `Allow`.
|
|
193
|
-
|
|
194
|
-
Given the `pots` is running with the following manifest:
|
|
195
|
-
"""yaml
|
|
196
|
-
exposition:
|
|
197
|
-
/:
|
|
198
|
-
isolated: true
|
|
199
|
-
io:output: true
|
|
200
|
-
GET:
|
|
201
|
-
anonymous: true
|
|
202
|
-
endpoint: enumerate
|
|
203
|
-
POST:
|
|
204
|
-
auth:role: admin
|
|
205
|
-
endpoint: create
|
|
206
|
-
"""
|
|
207
|
-
When the following request is received:
|
|
208
|
-
"""
|
|
209
|
-
OPTIONS /pots/ HTTP/1.1
|
|
210
|
-
host: nex.toa.io
|
|
211
|
-
accept: application/yaml
|
|
212
|
-
"""
|
|
213
|
-
Then the following reply is sent:
|
|
214
|
-
"""
|
|
215
|
-
200 OK
|
|
216
|
-
Allow: GET
|
|
217
|
-
"""
|
|
218
|
-
And the reply does not contain:
|
|
219
|
-
"""
|
|
220
|
-
POST:
|
|
221
|
-
"""
|
|
222
|
-
|
|
223
|
-
Scenario: A credential does not hide what is anonymous
|
|
224
|
-
A credential refuses an `anonymous` route because it would make the reply uncacheable,
|
|
225
|
-
and a description is not that reply — it is what the resource is, and it varies by who
|
|
226
|
-
asked in any case. Without this an identity would be told less than someone presenting
|
|
227
|
-
nothing at all.
|
|
228
|
-
|
|
229
|
-
Given the `pots` is running with the following manifest:
|
|
230
|
-
"""yaml
|
|
231
|
-
exposition:
|
|
232
|
-
/:
|
|
233
|
-
isolated: true
|
|
234
|
-
anonymous: true
|
|
235
|
-
io:output: [id]
|
|
236
|
-
GET: enumerate
|
|
237
|
-
"""
|
|
238
|
-
When the following request is received:
|
|
239
|
-
"""
|
|
240
|
-
OPTIONS /pots/ HTTP/1.1
|
|
241
|
-
host: nex.toa.io
|
|
242
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
243
|
-
accept: application/yaml
|
|
244
|
-
"""
|
|
245
|
-
Then the following reply is sent:
|
|
246
|
-
"""
|
|
247
|
-
200 OK
|
|
248
|
-
Allow: GET
|
|
249
|
-
"""
|
|
250
|
-
|
|
251
|
-
Scenario: A method that takes an identity is not described to nobody
|
|
252
|
-
Which identity it is about cannot be told from a description, which has no route
|
|
253
|
-
variable to read. That there must be one can, and a caller with none is refused
|
|
254
|
-
whatever the value would have been — so they are not shown it.
|
|
255
|
-
|
|
256
|
-
Given the `identity.basic` database contains:
|
|
257
|
-
# developer:secret
|
|
258
|
-
| _id | authority | username | password |
|
|
259
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
260
|
-
And the `identity.bans` database is empty
|
|
261
|
-
And the `pots` is running with the following manifest:
|
|
262
|
-
"""yaml
|
|
263
|
-
exposition:
|
|
264
|
-
/:id:
|
|
265
|
-
isolated: true
|
|
266
|
-
io:output: [id]
|
|
267
|
-
GET:
|
|
268
|
-
anonymous: true
|
|
269
|
-
endpoint: observe
|
|
270
|
-
PATCH:
|
|
271
|
-
auth:id: id
|
|
272
|
-
endpoint: assign
|
|
273
|
-
"""
|
|
274
|
-
When the following request is received:
|
|
275
|
-
"""
|
|
276
|
-
OPTIONS /pots/:id/ HTTP/1.1
|
|
277
|
-
host: nex.toa.io
|
|
278
|
-
accept: application/yaml
|
|
279
|
-
"""
|
|
280
|
-
Then the following reply is sent:
|
|
281
|
-
"""
|
|
282
|
-
200 OK
|
|
283
|
-
Allow: GET
|
|
284
|
-
"""
|
|
285
|
-
And the reply does not contain:
|
|
286
|
-
"""
|
|
287
|
-
PATCH:
|
|
288
|
-
"""
|
|
289
|
-
When the following request is received:
|
|
290
|
-
"""
|
|
291
|
-
OPTIONS /pots/:id/ HTTP/1.1
|
|
292
|
-
host: nex.toa.io
|
|
293
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
294
|
-
accept: application/yaml
|
|
295
|
-
"""
|
|
296
|
-
Then the following reply is sent:
|
|
297
|
-
"""
|
|
298
|
-
200 OK
|
|
299
|
-
Allow: GET, PATCH
|
|
300
|
-
"""
|
|
301
|
-
|
|
302
|
-
Scenario: A resource the caller cannot reach at all
|
|
303
|
-
Given the `pots` is running with the following manifest:
|
|
304
|
-
"""yaml
|
|
305
|
-
exposition:
|
|
306
|
-
/:
|
|
307
|
-
isolated: true
|
|
308
|
-
io:output: true
|
|
309
|
-
GET:
|
|
310
|
-
auth:role: admin
|
|
311
|
-
endpoint: enumerate
|
|
312
|
-
"""
|
|
313
|
-
When the following request is received:
|
|
314
|
-
"""
|
|
315
|
-
OPTIONS /pots/ HTTP/1.1
|
|
316
|
-
host: nex.toa.io
|
|
317
|
-
accept: application/yaml
|
|
318
|
-
"""
|
|
319
|
-
Then the following reply is sent:
|
|
320
|
-
"""
|
|
321
|
-
403 Forbidden
|
|
322
|
-
"""
|
|
323
|
-
|
|
324
|
-
Scenario: Introspection with route parameters
|
|
325
|
-
Given the `echo` is running with the following manifest:
|
|
326
|
-
"""yaml
|
|
327
|
-
exposition:
|
|
328
|
-
/:a:
|
|
329
|
-
io:output: true
|
|
330
|
-
PATCH: parameters
|
|
331
|
-
"""
|
|
332
|
-
When the following request is received:
|
|
333
|
-
"""
|
|
334
|
-
OPTIONS /echo/:a/ HTTP/1.1
|
|
335
|
-
host: nex.toa.io
|
|
336
|
-
accept: application/yaml
|
|
337
|
-
"""
|
|
338
|
-
Then the following reply is sent:
|
|
339
|
-
"""
|
|
340
|
-
200 OK
|
|
341
|
-
Allow: PATCH
|
|
342
|
-
|
|
343
|
-
PATCH:
|
|
344
|
-
route:
|
|
345
|
-
a:
|
|
346
|
-
type: string
|
|
347
|
-
input:
|
|
348
|
-
type: object
|
|
349
|
-
properties:
|
|
350
|
-
b:
|
|
351
|
-
type: string
|
|
352
|
-
output:
|
|
353
|
-
type: object
|
|
354
|
-
properties:
|
|
355
|
-
a:
|
|
356
|
-
type: string
|
|
357
|
-
b:
|
|
358
|
-
type: string
|
|
359
|
-
"""
|
|
360
|
-
|
|
361
|
-
Scenario: A property a header carries
|
|
362
|
-
`map:headers` fills the property from the request, so it is not the body's to send.
|
|
363
|
-
Which header it reads is not answered: what an application takes off a request is its
|
|
364
|
-
own, and a caller has nowhere to put one.
|
|
365
|
-
|
|
366
|
-
Given the `echo` is running with the following manifest:
|
|
367
|
-
"""yaml
|
|
368
|
-
exposition:
|
|
369
|
-
/:
|
|
370
|
-
io:output: true
|
|
371
|
-
PATCH:
|
|
372
|
-
map:headers:
|
|
373
|
-
a: x-first
|
|
374
|
-
endpoint: parameters
|
|
375
|
-
"""
|
|
376
|
-
When the following request is received:
|
|
377
|
-
"""
|
|
378
|
-
OPTIONS /echo/ HTTP/1.1
|
|
379
|
-
host: nex.toa.io
|
|
380
|
-
accept: application/yaml
|
|
381
|
-
"""
|
|
382
|
-
Then the following reply is sent:
|
|
383
|
-
"""
|
|
384
|
-
200 OK
|
|
385
|
-
Allow: PATCH
|
|
386
|
-
|
|
387
|
-
PATCH:
|
|
388
|
-
input:
|
|
389
|
-
type: object
|
|
390
|
-
properties:
|
|
391
|
-
b:
|
|
392
|
-
type: string
|
|
393
|
-
"""
|
|
394
|
-
And the reply does not contain:
|
|
395
|
-
"""
|
|
396
|
-
x-first
|
|
397
|
-
"""
|
|
398
|
-
|
|
399
|
-
Scenario: A property a segment carries under another name
|
|
400
|
-
`map:segments` names the property differently from the segment it reads, so the route
|
|
401
|
-
states the property — which is what a caller writes.
|
|
402
|
-
|
|
403
|
-
Given the `echo` is running with the following manifest:
|
|
404
|
-
"""yaml
|
|
405
|
-
exposition:
|
|
406
|
-
/:first:
|
|
407
|
-
io:output: true
|
|
408
|
-
PATCH:
|
|
409
|
-
map:segments:
|
|
410
|
-
a: ~first
|
|
411
|
-
endpoint: parameters
|
|
412
|
-
"""
|
|
413
|
-
When the following request is received:
|
|
414
|
-
"""
|
|
415
|
-
OPTIONS /echo/:first/ HTTP/1.1
|
|
416
|
-
host: nex.toa.io
|
|
417
|
-
accept: application/yaml
|
|
418
|
-
"""
|
|
419
|
-
Then the following reply is sent:
|
|
420
|
-
"""
|
|
421
|
-
200 OK
|
|
422
|
-
Allow: PATCH
|
|
423
|
-
|
|
424
|
-
PATCH:
|
|
425
|
-
route:
|
|
426
|
-
a:
|
|
427
|
-
type: string
|
|
428
|
-
input:
|
|
429
|
-
type: object
|
|
430
|
-
properties:
|
|
431
|
-
b:
|
|
432
|
-
type: string
|
|
433
|
-
"""
|
|
434
|
-
|
|
435
|
-
Scenario: A property the token carries
|
|
436
|
-
`map:claims` reads the identity, and a caller has nowhere to put one.
|
|
437
|
-
|
|
438
|
-
Given the `echo` is running with the following manifest:
|
|
439
|
-
"""yaml
|
|
440
|
-
exposition:
|
|
441
|
-
/:
|
|
442
|
-
io:output: true
|
|
443
|
-
anonymous: true
|
|
444
|
-
PATCH:
|
|
445
|
-
map:claims:
|
|
446
|
-
a: email
|
|
447
|
-
endpoint: parameters
|
|
448
|
-
"""
|
|
449
|
-
When the following request is received:
|
|
450
|
-
"""
|
|
451
|
-
OPTIONS /echo/ HTTP/1.1
|
|
452
|
-
host: nex.toa.io
|
|
453
|
-
accept: application/yaml
|
|
454
|
-
"""
|
|
455
|
-
Then the following reply is sent:
|
|
456
|
-
"""
|
|
457
|
-
200 OK
|
|
458
|
-
Allow: PATCH
|
|
459
|
-
|
|
460
|
-
PATCH:
|
|
461
|
-
input:
|
|
462
|
-
type: object
|
|
463
|
-
properties:
|
|
464
|
-
b:
|
|
465
|
-
type: string
|
|
466
|
-
"""
|
|
467
|
-
And the reply does not contain:
|
|
468
|
-
"""
|
|
469
|
-
headers
|
|
470
|
-
"""
|
|
471
|
-
|
|
472
|
-
Scenario: Two routes on one endpoint
|
|
473
|
-
A route takes its variables out of the operation's input to state them as its own. The
|
|
474
|
-
input it takes them out of is the operation's, shared by every route that mounts it, so
|
|
475
|
-
the one that describes itself second must still find them there.
|
|
476
|
-
|
|
477
|
-
Given the `echo` is running with the following manifest:
|
|
478
|
-
"""yaml
|
|
479
|
-
exposition:
|
|
480
|
-
/:
|
|
481
|
-
io:output: true
|
|
482
|
-
/:a:
|
|
483
|
-
PATCH: parameters
|
|
484
|
-
/plain:
|
|
485
|
-
PATCH: parameters
|
|
486
|
-
"""
|
|
487
|
-
When the following request is received:
|
|
488
|
-
"""
|
|
489
|
-
OPTIONS /echo/:a/ HTTP/1.1
|
|
490
|
-
host: nex.toa.io
|
|
491
|
-
accept: application/yaml
|
|
492
|
-
"""
|
|
493
|
-
Then the following reply is sent:
|
|
494
|
-
"""
|
|
495
|
-
200 OK
|
|
496
|
-
|
|
497
|
-
PATCH:
|
|
498
|
-
route:
|
|
499
|
-
a:
|
|
500
|
-
type: string
|
|
501
|
-
input:
|
|
502
|
-
type: object
|
|
503
|
-
properties:
|
|
504
|
-
b:
|
|
505
|
-
type: string
|
|
506
|
-
"""
|
|
507
|
-
When the following request is received:
|
|
508
|
-
"""
|
|
509
|
-
OPTIONS /echo/plain/ HTTP/1.1
|
|
510
|
-
host: nex.toa.io
|
|
511
|
-
accept: application/yaml
|
|
512
|
-
"""
|
|
513
|
-
Then the following reply is sent:
|
|
514
|
-
"""
|
|
515
|
-
200 OK
|
|
516
|
-
|
|
517
|
-
PATCH:
|
|
518
|
-
input:
|
|
519
|
-
type: object
|
|
520
|
-
properties:
|
|
521
|
-
a:
|
|
522
|
-
type: string
|
|
523
|
-
b:
|
|
524
|
-
type: string
|
|
525
|
-
"""
|
|
526
|
-
|
|
527
|
-
Scenario: Introspection with query parameters
|
|
528
|
-
Given the `echo` is running with the following manifest:
|
|
529
|
-
"""yaml
|
|
530
|
-
exposition:
|
|
531
|
-
/:
|
|
532
|
-
io:output: true
|
|
533
|
-
PATCH:
|
|
534
|
-
query:
|
|
535
|
-
parameters: [a]
|
|
536
|
-
endpoint: parameters
|
|
537
|
-
"""
|
|
538
|
-
When the following request is received:
|
|
539
|
-
"""
|
|
540
|
-
OPTIONS /echo/ HTTP/1.1
|
|
541
|
-
host: nex.toa.io
|
|
542
|
-
accept: application/yaml
|
|
543
|
-
"""
|
|
544
|
-
Then the following reply is sent:
|
|
545
|
-
"""
|
|
546
|
-
200 OK
|
|
547
|
-
Allow: PATCH
|
|
548
|
-
|
|
549
|
-
PATCH:
|
|
550
|
-
query:
|
|
551
|
-
a:
|
|
552
|
-
type: string
|
|
553
|
-
input:
|
|
554
|
-
type: object
|
|
555
|
-
properties:
|
|
556
|
-
b:
|
|
557
|
-
type: string
|
|
558
|
-
output:
|
|
559
|
-
type: object
|
|
560
|
-
properties:
|
|
561
|
-
a:
|
|
562
|
-
type: string
|
|
563
|
-
b:
|
|
564
|
-
type: string
|
|
565
|
-
"""
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Reading the introspection map
|
|
3
|
-
|
|
4
|
-
The map declares how it is exposed in its own manifests, and those manifests are what
|
|
5
|
-
this mounts — not a copy of them. A route the gateway cannot answer, or an answer it
|
|
6
|
-
drops for want of a directive, is caught here rather than in a running application.
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
# developer:secret, user:12345
|
|
10
|
-
Given the `identity.basic` database contains:
|
|
11
|
-
| _id | authority | username | password |
|
|
12
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
13
|
-
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK |
|
|
14
|
-
And the `identity.roles` database contains:
|
|
15
|
-
| _id | identity | role |
|
|
16
|
-
| 3e2b0c8a1f7d4e9ab0c6d5e4f3a2b1c0 | efe3a65ebbee47ed95a73edd911ea328 | system:introspection |
|
|
17
|
-
And the `identity.bans` database is empty
|
|
18
|
-
And the annotation of the introspection map
|
|
19
|
-
And the introspection components are running
|
|
20
|
-
|
|
21
|
-
Scenario: Reading the nodes
|
|
22
|
-
Given the `introspection.nodes` database contains:
|
|
23
|
-
| _id | namespace | component | version | VERSION | DELETED |
|
|
24
|
-
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
|
|
25
|
-
When the following request is received:
|
|
26
|
-
"""
|
|
27
|
-
GET /introspection/nodes/ HTTP/1.1
|
|
28
|
-
host: nex.toa.io
|
|
29
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
30
|
-
accept: application/yaml
|
|
31
|
-
"""
|
|
32
|
-
Then the following reply is sent:
|
|
33
|
-
"""
|
|
34
|
-
200 OK
|
|
35
|
-
content-type: application/yaml
|
|
36
|
-
|
|
37
|
-
- id: 70e1a6551346c6932657cdb2526df0fa
|
|
38
|
-
namespace: pots
|
|
39
|
-
component: tea
|
|
40
|
-
version: 7bb04bba
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
Scenario: Reading one node
|
|
44
|
-
Given the `introspection.nodes` database contains:
|
|
45
|
-
| _id | namespace | component | version | VERSION | DELETED |
|
|
46
|
-
| 70e1a6551346c6932657cdb2526df0fa | pots | tea | 7bb04bba | 1 | null |
|
|
47
|
-
When the following request is received:
|
|
48
|
-
"""
|
|
49
|
-
GET /introspection/nodes/70e1a6551346c6932657cdb2526df0fa/ HTTP/1.1
|
|
50
|
-
host: nex.toa.io
|
|
51
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
52
|
-
accept: application/yaml
|
|
53
|
-
"""
|
|
54
|
-
Then the following reply is sent:
|
|
55
|
-
"""
|
|
56
|
-
200 OK
|
|
57
|
-
content-type: application/yaml
|
|
58
|
-
|
|
59
|
-
namespace: pots
|
|
60
|
-
component: tea
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
Scenario: Reading the edges
|
|
64
|
-
An empty map is still a body — the directive that would drop it is the point.
|
|
65
|
-
|
|
66
|
-
Given the `introspection.edges` database is empty
|
|
67
|
-
When the following request is received:
|
|
68
|
-
"""
|
|
69
|
-
GET /introspection/edges/ HTTP/1.1
|
|
70
|
-
host: nex.toa.io
|
|
71
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
72
|
-
accept: application/yaml
|
|
73
|
-
"""
|
|
74
|
-
Then the following reply is sent:
|
|
75
|
-
"""
|
|
76
|
-
200 OK
|
|
77
|
-
content-type: application/yaml
|
|
78
|
-
|
|
79
|
-
[]
|
|
80
|
-
"""
|
|
81
|
-
|
|
82
|
-
Scenario: The map is not readable without the role
|
|
83
|
-
When the following request is received:
|
|
84
|
-
"""
|
|
85
|
-
GET /introspection/nodes/ HTTP/1.1
|
|
86
|
-
host: nex.toa.io
|
|
87
|
-
authorization: Basic dXNlcjoxMjM0NQ==
|
|
88
|
-
"""
|
|
89
|
-
Then the following reply is sent:
|
|
90
|
-
"""
|
|
91
|
-
403 Forbidden
|
|
92
|
-
"""
|
|
93
|
-
|
|
94
|
-
Scenario: The map does not take the application's root directives
|
|
95
|
-
Given the annotation of the introspection map under:
|
|
96
|
-
"""yaml
|
|
97
|
-
/:
|
|
98
|
-
auth:anonymous: true
|
|
99
|
-
"""
|
|
100
|
-
When the following request is received:
|
|
101
|
-
"""
|
|
102
|
-
GET /introspection/nodes/ HTTP/1.1
|
|
103
|
-
host: nex.toa.io
|
|
104
|
-
"""
|
|
105
|
-
Then the following reply is sent:
|
|
106
|
-
"""
|
|
107
|
-
401 Unauthorized
|
|
108
|
-
"""
|