@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
package/features/access.feature
DELETED
|
@@ -1,596 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Access authorization
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the `identity.basic` database contains:
|
|
6
|
-
# developer:secret
|
|
7
|
-
# user:12345
|
|
8
|
-
| _id | authority | username | password |
|
|
9
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
10
|
-
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK |
|
|
11
|
-
And the `identity.bans` database is empty
|
|
12
|
-
|
|
13
|
-
Scenario: Deny by default
|
|
14
|
-
Given the annotation:
|
|
15
|
-
"""yaml
|
|
16
|
-
/:
|
|
17
|
-
GET:
|
|
18
|
-
dev:stub:
|
|
19
|
-
access: granted!
|
|
20
|
-
"""
|
|
21
|
-
When the following request is received:
|
|
22
|
-
"""
|
|
23
|
-
GET / HTTP/1.1
|
|
24
|
-
host: nex.toa.io
|
|
25
|
-
"""
|
|
26
|
-
Then the following reply is sent:
|
|
27
|
-
"""
|
|
28
|
-
401 Unauthorized
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
Scenario: Allow anonymous access
|
|
32
|
-
Given the annotation:
|
|
33
|
-
"""yaml
|
|
34
|
-
/:
|
|
35
|
-
io:output: true
|
|
36
|
-
auth:anonymous: true
|
|
37
|
-
GET:
|
|
38
|
-
dev:stub:
|
|
39
|
-
access: granted!
|
|
40
|
-
"""
|
|
41
|
-
When the following request is received:
|
|
42
|
-
"""
|
|
43
|
-
GET / HTTP/1.1
|
|
44
|
-
host: nex.toa.io
|
|
45
|
-
accept: application/yaml
|
|
46
|
-
"""
|
|
47
|
-
Then the following reply is sent:
|
|
48
|
-
"""
|
|
49
|
-
200 OK
|
|
50
|
-
content-type: application/yaml
|
|
51
|
-
|
|
52
|
-
access: granted!
|
|
53
|
-
"""
|
|
54
|
-
|
|
55
|
-
Scenario: Allow access to anyone
|
|
56
|
-
Given the annotation:
|
|
57
|
-
"""yaml
|
|
58
|
-
/:
|
|
59
|
-
io:output: true
|
|
60
|
-
auth:anyone: true
|
|
61
|
-
GET:
|
|
62
|
-
dev:stub:
|
|
63
|
-
access: granted!
|
|
64
|
-
"""
|
|
65
|
-
When the following request is received:
|
|
66
|
-
"""
|
|
67
|
-
GET / HTTP/1.1
|
|
68
|
-
host: nex.toa.io
|
|
69
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
70
|
-
accept: application/yaml
|
|
71
|
-
"""
|
|
72
|
-
Then the following reply is sent:
|
|
73
|
-
"""
|
|
74
|
-
200 OK
|
|
75
|
-
content-type: application/yaml
|
|
76
|
-
|
|
77
|
-
access: granted!
|
|
78
|
-
"""
|
|
79
|
-
|
|
80
|
-
# request without credentials
|
|
81
|
-
When the following request is received:
|
|
82
|
-
"""
|
|
83
|
-
GET / HTTP/1.1
|
|
84
|
-
host: nex.toa.io
|
|
85
|
-
accept: application/yaml
|
|
86
|
-
"""
|
|
87
|
-
Then the following reply is sent:
|
|
88
|
-
"""
|
|
89
|
-
401 Unauthorized
|
|
90
|
-
"""
|
|
91
|
-
|
|
92
|
-
# request with invalid credentials
|
|
93
|
-
When the following request is received:
|
|
94
|
-
"""
|
|
95
|
-
GET / HTTP/1.1
|
|
96
|
-
host: nex.toa.io
|
|
97
|
-
authorization: Basic bm9uOmV4aXN0ZW50
|
|
98
|
-
accept: application/yaml
|
|
99
|
-
"""
|
|
100
|
-
Then the following reply is sent:
|
|
101
|
-
"""
|
|
102
|
-
401 Unauthorized
|
|
103
|
-
"""
|
|
104
|
-
|
|
105
|
-
Scenario: Deny access with credentials to a resource with anonymous access
|
|
106
|
-
Given the annotation:
|
|
107
|
-
"""yaml
|
|
108
|
-
/:
|
|
109
|
-
auth:anonymous: true
|
|
110
|
-
GET:
|
|
111
|
-
dev:stub:
|
|
112
|
-
access: granted!
|
|
113
|
-
"""
|
|
114
|
-
When the following request is received:
|
|
115
|
-
"""
|
|
116
|
-
GET / HTTP/1.1
|
|
117
|
-
host: nex.toa.io
|
|
118
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
119
|
-
"""
|
|
120
|
-
Then the following reply is sent:
|
|
121
|
-
"""
|
|
122
|
-
403 Forbidden
|
|
123
|
-
"""
|
|
124
|
-
|
|
125
|
-
Scenario: Using `auth:id` directive
|
|
126
|
-
Given the annotation:
|
|
127
|
-
"""yaml
|
|
128
|
-
/:
|
|
129
|
-
io:output: true
|
|
130
|
-
/:id:
|
|
131
|
-
auth:id: id
|
|
132
|
-
GET:
|
|
133
|
-
dev:stub:
|
|
134
|
-
access: granted!
|
|
135
|
-
"""
|
|
136
|
-
When the following request is received:
|
|
137
|
-
"""
|
|
138
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
139
|
-
host: nex.toa.io
|
|
140
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
141
|
-
accept: application/yaml
|
|
142
|
-
"""
|
|
143
|
-
Then the following reply is sent:
|
|
144
|
-
"""
|
|
145
|
-
200 OK
|
|
146
|
-
content-type: application/yaml
|
|
147
|
-
|
|
148
|
-
access: granted!
|
|
149
|
-
"""
|
|
150
|
-
When the following request is received:
|
|
151
|
-
"""
|
|
152
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
153
|
-
host: nex.toa.io
|
|
154
|
-
authorization: Basic dXNlcjoxMjM0NQ==
|
|
155
|
-
accept: application/yaml
|
|
156
|
-
"""
|
|
157
|
-
Then the following reply is sent:
|
|
158
|
-
"""
|
|
159
|
-
403 Forbidden
|
|
160
|
-
"""
|
|
161
|
-
|
|
162
|
-
Scenario: Using `auth:role` directive
|
|
163
|
-
Given the `identity.roles` database contains:
|
|
164
|
-
| _id | identity | role |
|
|
165
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
166
|
-
| 1d95bd2c764142818f6ece5e084015b5 | efe3a65ebbee47ed95a73edd911ea328 | user |
|
|
167
|
-
And the annotation:
|
|
168
|
-
"""yaml
|
|
169
|
-
/:
|
|
170
|
-
io:output: true
|
|
171
|
-
auth:role: developer
|
|
172
|
-
GET:
|
|
173
|
-
dev:stub:
|
|
174
|
-
access: granted!
|
|
175
|
-
"""
|
|
176
|
-
When the following request is received:
|
|
177
|
-
# identity with `developer` and `user` roles
|
|
178
|
-
"""
|
|
179
|
-
GET / HTTP/1.1
|
|
180
|
-
host: nex.toa.io
|
|
181
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
182
|
-
accept: application/yaml
|
|
183
|
-
"""
|
|
184
|
-
Then the following reply is sent:
|
|
185
|
-
"""
|
|
186
|
-
200 OK
|
|
187
|
-
content-type: application/yaml
|
|
188
|
-
|
|
189
|
-
access: granted!
|
|
190
|
-
"""
|
|
191
|
-
When the following request is received:
|
|
192
|
-
# identity with no roles
|
|
193
|
-
"""
|
|
194
|
-
GET / HTTP/1.1
|
|
195
|
-
host: nex.toa.io
|
|
196
|
-
authorization: Basic dXNlcjoxMjM0NQ==
|
|
197
|
-
"""
|
|
198
|
-
Then the following reply is sent:
|
|
199
|
-
"""
|
|
200
|
-
403 Forbidden
|
|
201
|
-
"""
|
|
202
|
-
|
|
203
|
-
Scenario: Using `auth:role` directive with scope matching
|
|
204
|
-
Given the `identity.roles` database contains:
|
|
205
|
-
| _id | identity | role |
|
|
206
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer:rust |
|
|
207
|
-
And the annotation:
|
|
208
|
-
"""yaml
|
|
209
|
-
/:
|
|
210
|
-
io:output: true
|
|
211
|
-
/:
|
|
212
|
-
auth:role: developer:rust:junior # role scope matches
|
|
213
|
-
/nested:
|
|
214
|
-
GET:
|
|
215
|
-
dev:stub: good!
|
|
216
|
-
/javascript:
|
|
217
|
-
auth:role: developer:javascript # role scope does not match
|
|
218
|
-
GET:
|
|
219
|
-
dev:stub: no good!
|
|
220
|
-
"""
|
|
221
|
-
When the following request is received:
|
|
222
|
-
"""
|
|
223
|
-
GET /nested/ HTTP/1.1
|
|
224
|
-
host: nex.toa.io
|
|
225
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
226
|
-
accept: text/plain
|
|
227
|
-
"""
|
|
228
|
-
Then the following reply is sent:
|
|
229
|
-
"""
|
|
230
|
-
200 OK
|
|
231
|
-
content-type: text/plain
|
|
232
|
-
|
|
233
|
-
good!
|
|
234
|
-
"""
|
|
235
|
-
When the following request is received:
|
|
236
|
-
"""
|
|
237
|
-
GET /javascript/ HTTP/1.1
|
|
238
|
-
host: nex.toa.io
|
|
239
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
240
|
-
"""
|
|
241
|
-
Then the following reply is sent:
|
|
242
|
-
"""
|
|
243
|
-
403 Forbidden
|
|
244
|
-
"""
|
|
245
|
-
|
|
246
|
-
Scenario: Allow by `auth:role` matching one of the roles
|
|
247
|
-
Given the `identity.roles` database contains:
|
|
248
|
-
| _id | identity | role |
|
|
249
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
250
|
-
And the annotation:
|
|
251
|
-
"""yaml
|
|
252
|
-
/:
|
|
253
|
-
role:
|
|
254
|
-
- developer
|
|
255
|
-
- admin
|
|
256
|
-
GET:
|
|
257
|
-
io:output: true
|
|
258
|
-
dev:stub:
|
|
259
|
-
access: granted!
|
|
260
|
-
"""
|
|
261
|
-
When the following request is received:
|
|
262
|
-
# identity with `developer` and `user` roles
|
|
263
|
-
"""
|
|
264
|
-
GET / HTTP/1.1
|
|
265
|
-
host: nex.toa.io
|
|
266
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
267
|
-
accept: application/yaml
|
|
268
|
-
"""
|
|
269
|
-
Then the following reply is sent:
|
|
270
|
-
"""
|
|
271
|
-
200 OK
|
|
272
|
-
content-type: application/yaml
|
|
273
|
-
|
|
274
|
-
access: granted!
|
|
275
|
-
"""
|
|
276
|
-
|
|
277
|
-
Scenario: Using `auth:rule` directive
|
|
278
|
-
Given the `identity.roles` database contains:
|
|
279
|
-
| _id | identity | role |
|
|
280
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer:rust |
|
|
281
|
-
And the annotation:
|
|
282
|
-
"""yaml
|
|
283
|
-
/:
|
|
284
|
-
io:output: true
|
|
285
|
-
/rust/:id:
|
|
286
|
-
auth:rule:
|
|
287
|
-
id: id
|
|
288
|
-
role: developer:rust
|
|
289
|
-
GET:
|
|
290
|
-
dev:stub:
|
|
291
|
-
access: granted!
|
|
292
|
-
/javascript/:id:
|
|
293
|
-
rule:
|
|
294
|
-
id: id
|
|
295
|
-
role: developer:javascript
|
|
296
|
-
GET:
|
|
297
|
-
dev:stub:
|
|
298
|
-
access: granted!
|
|
299
|
-
"""
|
|
300
|
-
When the following request is received:
|
|
301
|
-
"""
|
|
302
|
-
GET /rust/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
303
|
-
host: nex.toa.io
|
|
304
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
305
|
-
accept: application/yaml
|
|
306
|
-
"""
|
|
307
|
-
Then the following reply is sent:
|
|
308
|
-
"""
|
|
309
|
-
200 OK
|
|
310
|
-
content-type: application/yaml
|
|
311
|
-
|
|
312
|
-
access: granted!
|
|
313
|
-
"""
|
|
314
|
-
When the following request is received:
|
|
315
|
-
"""
|
|
316
|
-
GET /javascript/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
317
|
-
host: nex.toa.io
|
|
318
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
319
|
-
"""
|
|
320
|
-
Then the following reply is sent:
|
|
321
|
-
"""
|
|
322
|
-
403 Forbidden
|
|
323
|
-
"""
|
|
324
|
-
|
|
325
|
-
Scenario: Token authentication scheme
|
|
326
|
-
Given the annotation:
|
|
327
|
-
"""yaml
|
|
328
|
-
/:
|
|
329
|
-
io:output: true
|
|
330
|
-
/:id:
|
|
331
|
-
auth:id: id
|
|
332
|
-
GET:
|
|
333
|
-
dev:stub:
|
|
334
|
-
access: granted!
|
|
335
|
-
"""
|
|
336
|
-
When the following request is received:
|
|
337
|
-
"""
|
|
338
|
-
GET /identity/ HTTP/1.1
|
|
339
|
-
host: nex.toa.io
|
|
340
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
341
|
-
accept: application/yaml
|
|
342
|
-
"""
|
|
343
|
-
Then the following reply is sent:
|
|
344
|
-
"""
|
|
345
|
-
200 OK
|
|
346
|
-
authorization: Token ${{ developer.token }}
|
|
347
|
-
|
|
348
|
-
id: ${{ developer.id }}
|
|
349
|
-
"""
|
|
350
|
-
When the following request is received:
|
|
351
|
-
"""
|
|
352
|
-
GET /identity/ HTTP/1.1
|
|
353
|
-
host: nex.toa.io
|
|
354
|
-
authorization: Basic dXNlcjoxMjM0NQ==
|
|
355
|
-
accept: application/yaml
|
|
356
|
-
"""
|
|
357
|
-
Then the following reply is sent:
|
|
358
|
-
"""
|
|
359
|
-
200 OK
|
|
360
|
-
authorization: Token ${{ user.token }}
|
|
361
|
-
|
|
362
|
-
id: ${{ user.id }}
|
|
363
|
-
"""
|
|
364
|
-
When the following request is received:
|
|
365
|
-
"""
|
|
366
|
-
GET /${{ developer.id }}/ HTTP/1.1
|
|
367
|
-
host: nex.toa.io
|
|
368
|
-
authorization: Token ${{ developer.token }}
|
|
369
|
-
accept: application/yaml
|
|
370
|
-
"""
|
|
371
|
-
Then the following reply is sent:
|
|
372
|
-
"""
|
|
373
|
-
200 OK
|
|
374
|
-
content-type: application/yaml
|
|
375
|
-
|
|
376
|
-
access: granted!
|
|
377
|
-
"""
|
|
378
|
-
And the reply does not contain:
|
|
379
|
-
"""
|
|
380
|
-
authorization: Token
|
|
381
|
-
"""
|
|
382
|
-
When the following request is received:
|
|
383
|
-
"""
|
|
384
|
-
GET /${{ user.id }}/ HTTP/1.1
|
|
385
|
-
host: nex.toa.io
|
|
386
|
-
authorization: Token ${{ developer.token }}
|
|
387
|
-
accept: application/yaml
|
|
388
|
-
"""
|
|
389
|
-
Then the following reply is sent:
|
|
390
|
-
"""
|
|
391
|
-
403 Forbidden
|
|
392
|
-
"""
|
|
393
|
-
|
|
394
|
-
Scenario: Using token with roles
|
|
395
|
-
Given the annotation:
|
|
396
|
-
"""yaml
|
|
397
|
-
/:
|
|
398
|
-
io:output: true
|
|
399
|
-
auth:role: developer
|
|
400
|
-
GET:
|
|
401
|
-
dev:stub:
|
|
402
|
-
access: granted!
|
|
403
|
-
"""
|
|
404
|
-
And the `identity.roles` database contains:
|
|
405
|
-
| _id | identity | role |
|
|
406
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
407
|
-
When the following request is received:
|
|
408
|
-
"""
|
|
409
|
-
GET / HTTP/1.1
|
|
410
|
-
host: nex.toa.io
|
|
411
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
412
|
-
accept: application/yaml
|
|
413
|
-
"""
|
|
414
|
-
Then the following reply is sent:
|
|
415
|
-
"""
|
|
416
|
-
200 OK
|
|
417
|
-
authorization: Token ${{ token }}
|
|
418
|
-
content-type: application/yaml
|
|
419
|
-
|
|
420
|
-
access: granted!
|
|
421
|
-
"""
|
|
422
|
-
When the following request is received:
|
|
423
|
-
"""
|
|
424
|
-
GET / HTTP/1.1
|
|
425
|
-
host: nex.toa.io
|
|
426
|
-
authorization: Token ${{ token }}
|
|
427
|
-
accept: application/yaml
|
|
428
|
-
"""
|
|
429
|
-
Then the following reply is sent:
|
|
430
|
-
"""
|
|
431
|
-
200 OK
|
|
432
|
-
content-type: application/yaml
|
|
433
|
-
|
|
434
|
-
access: granted!
|
|
435
|
-
"""
|
|
436
|
-
|
|
437
|
-
Scenario: Using `auth:scheme` directive
|
|
438
|
-
Given the annotation:
|
|
439
|
-
"""yaml
|
|
440
|
-
/:
|
|
441
|
-
io:output: true
|
|
442
|
-
/:id:
|
|
443
|
-
auth:scheme: basic
|
|
444
|
-
auth:id: id
|
|
445
|
-
GET:
|
|
446
|
-
dev:stub:
|
|
447
|
-
access: granted!
|
|
448
|
-
"""
|
|
449
|
-
When the following request is received:
|
|
450
|
-
"""
|
|
451
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
452
|
-
host: nex.toa.io
|
|
453
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
454
|
-
accept: application/yaml
|
|
455
|
-
"""
|
|
456
|
-
Then the following reply is sent:
|
|
457
|
-
"""
|
|
458
|
-
200 OK
|
|
459
|
-
content-type: application/yaml
|
|
460
|
-
|
|
461
|
-
access: granted!
|
|
462
|
-
"""
|
|
463
|
-
When the following request is received:
|
|
464
|
-
"""
|
|
465
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
466
|
-
host: nex.toa.io
|
|
467
|
-
authorization: Token v3.local.9oEtVJkfRw4cOJ8M4DxuVuAN29dGT26XMYyPAoXtwrkdkiJVSVj46sMNAOdlxwKGszJZV_ReOL26dxDVlsQ7QAIuRhRPlvsHYNOhcD-LApoAXV0S3IK16EMoEv7tE9z70FCLC3WoIW9RIQ8PR3uZhAdhSgBilsVOpWrk4XtnfCIlVwhYMKu79a66oZZhV2Q7Kl3nfYsf84-6rAL_1H0MsqCDUHVXuIg
|
|
468
|
-
accept: text/plain
|
|
469
|
-
"""
|
|
470
|
-
Then the following reply is sent:
|
|
471
|
-
"""
|
|
472
|
-
403 Forbidden
|
|
473
|
-
|
|
474
|
-
Basic authentication scheme is required to access this resource
|
|
475
|
-
"""
|
|
476
|
-
|
|
477
|
-
Scenario: Adding a role without required permissions
|
|
478
|
-
|
|
479
|
-
Trunk directives should not be applied to the Identity management resources
|
|
480
|
-
|
|
481
|
-
Given the annotation:
|
|
482
|
-
"""yaml
|
|
483
|
-
/:
|
|
484
|
-
anonymous: true
|
|
485
|
-
"""
|
|
486
|
-
When the following request is received:
|
|
487
|
-
"""
|
|
488
|
-
POST /identity/roles/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
489
|
-
host: nex.toa.io
|
|
490
|
-
content-type: application/yaml
|
|
491
|
-
|
|
492
|
-
role: developer
|
|
493
|
-
"""
|
|
494
|
-
Then the following reply is sent:
|
|
495
|
-
"""
|
|
496
|
-
401 Unauthorized
|
|
497
|
-
"""
|
|
498
|
-
|
|
499
|
-
Scenario: Authorization delegation
|
|
500
|
-
Given the `identity.roles` database contains:
|
|
501
|
-
| _id | identity | role |
|
|
502
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
503
|
-
And the `echo` is running with the following manifest:
|
|
504
|
-
"""yaml
|
|
505
|
-
exposition:
|
|
506
|
-
/:
|
|
507
|
-
io:output: true
|
|
508
|
-
auth:delegate: identity
|
|
509
|
-
GET: identity
|
|
510
|
-
"""
|
|
511
|
-
When the following request is received:
|
|
512
|
-
"""
|
|
513
|
-
GET /echo/ HTTP/1.1
|
|
514
|
-
host: nex.toa.io
|
|
515
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
516
|
-
accept: application/yaml
|
|
517
|
-
"""
|
|
518
|
-
Then the following reply is sent:
|
|
519
|
-
"""
|
|
520
|
-
200 OK
|
|
521
|
-
authorization: Token ${{ token }}
|
|
522
|
-
|
|
523
|
-
identity:
|
|
524
|
-
id: efe3a65ebbee47ed95a73edd911ea328
|
|
525
|
-
roles:
|
|
526
|
-
- developer
|
|
527
|
-
"""
|
|
528
|
-
When the following request is received:
|
|
529
|
-
"""
|
|
530
|
-
GET /echo/ HTTP/1.1
|
|
531
|
-
host: nex.toa.io
|
|
532
|
-
authorization: Token ${{ token }}
|
|
533
|
-
"""
|
|
534
|
-
Then the following reply is sent:
|
|
535
|
-
"""
|
|
536
|
-
200 OK
|
|
537
|
-
"""
|
|
538
|
-
And the reply does not contain:
|
|
539
|
-
"""
|
|
540
|
-
authorization: Token
|
|
541
|
-
"""
|
|
542
|
-
|
|
543
|
-
Scenario: Delegation does not violate input restrictions
|
|
544
|
-
Given the `identity.roles` database contains:
|
|
545
|
-
| _id | identity | role |
|
|
546
|
-
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
547
|
-
# `auth:` is declared before `io:`, and the identity it embeds is the server's
|
|
548
|
-
# own addition — what `io:input` restricts is the body the client sent
|
|
549
|
-
And the `echo` is running with the following manifest:
|
|
550
|
-
"""yaml
|
|
551
|
-
exposition:
|
|
552
|
-
/:
|
|
553
|
-
POST:
|
|
554
|
-
auth:rule:
|
|
555
|
-
role: developer
|
|
556
|
-
delegate: identity
|
|
557
|
-
io:input: [foo]
|
|
558
|
-
io:output: true
|
|
559
|
-
endpoint: echo
|
|
560
|
-
"""
|
|
561
|
-
When the following request is received:
|
|
562
|
-
"""
|
|
563
|
-
POST /echo/ HTTP/1.1
|
|
564
|
-
host: nex.toa.io
|
|
565
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
566
|
-
accept: application/yaml
|
|
567
|
-
content-type: application/yaml
|
|
568
|
-
|
|
569
|
-
foo: bar
|
|
570
|
-
"""
|
|
571
|
-
Then the following reply is sent:
|
|
572
|
-
"""
|
|
573
|
-
201 Created
|
|
574
|
-
|
|
575
|
-
foo: bar
|
|
576
|
-
identity:
|
|
577
|
-
id: efe3a65ebbee47ed95a73edd911ea328
|
|
578
|
-
"""
|
|
579
|
-
# and a property the client is not allowed to send is still refused
|
|
580
|
-
When the following request is received:
|
|
581
|
-
"""
|
|
582
|
-
POST /echo/ HTTP/1.1
|
|
583
|
-
host: nex.toa.io
|
|
584
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
585
|
-
accept: application/yaml
|
|
586
|
-
content-type: application/yaml
|
|
587
|
-
|
|
588
|
-
foo: bar
|
|
589
|
-
baz: qux
|
|
590
|
-
"""
|
|
591
|
-
Then the following reply is sent:
|
|
592
|
-
"""
|
|
593
|
-
400 Bad Request
|
|
594
|
-
|
|
595
|
-
'Unexpected input: baz'
|
|
596
|
-
"""
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
Feature: Annotation
|
|
2
|
-
|
|
3
|
-
Scenario: Simple annotation
|
|
4
|
-
Given the annotation:
|
|
5
|
-
"""yaml
|
|
6
|
-
/:
|
|
7
|
-
io:output: true
|
|
8
|
-
anonymous: true
|
|
9
|
-
/foo:
|
|
10
|
-
GET:
|
|
11
|
-
query: {}
|
|
12
|
-
endpoint: pots.enumerate
|
|
13
|
-
"""
|
|
14
|
-
And the `pots` is running
|
|
15
|
-
And the `pots` database contains:
|
|
16
|
-
| _id | title | volume |
|
|
17
|
-
| 4c4759e6f9c74da989d64511df42d6f4 | First pot | 100 |
|
|
18
|
-
When the following request is received:
|
|
19
|
-
"""
|
|
20
|
-
GET /foo/ HTTP/1.1
|
|
21
|
-
host: nex.toa.io
|
|
22
|
-
accept: application/yaml
|
|
23
|
-
"""
|
|
24
|
-
Then the following reply is sent:
|
|
25
|
-
"""
|
|
26
|
-
200 OK
|
|
27
|
-
content-type: application/yaml
|
|
28
|
-
|
|
29
|
-
- id: 4c4759e6f9c74da989d64511df42d6f4
|
|
30
|
-
title: First pot
|
|
31
|
-
volume: 100
|
|
32
|
-
"""
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
Feature: Identity assertion
|
|
2
|
-
|
|
3
|
-
Scenario: Assert Identity
|
|
4
|
-
Given the `identity.basic` database contains:
|
|
5
|
-
| _id | authority | username | password | VERSION |
|
|
6
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
7
|
-
And the `echo` is running with the following manifest:
|
|
8
|
-
"""yaml
|
|
9
|
-
exposition:
|
|
10
|
-
/:
|
|
11
|
-
GET:
|
|
12
|
-
auth:assert: true
|
|
13
|
-
anyone: true
|
|
14
|
-
io:output: true
|
|
15
|
-
endpoint: ping
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
# existent identity
|
|
19
|
-
When the following request is received:
|
|
20
|
-
"""
|
|
21
|
-
GET /echo/ HTTP/1.1
|
|
22
|
-
host: nex.toa.io
|
|
23
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
24
|
-
"""
|
|
25
|
-
Then the following reply is sent:
|
|
26
|
-
"""
|
|
27
|
-
200 OK
|
|
28
|
-
authorization: Token ${{ developer.token }}
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
# new identity
|
|
32
|
-
When the following request is received:
|
|
33
|
-
"""
|
|
34
|
-
GET /echo/ HTTP/1.1
|
|
35
|
-
host: nex.toa.io
|
|
36
|
-
authorization: Basic dXNlcjpwYSQkdzByZCE=
|
|
37
|
-
"""
|
|
38
|
-
Then the following reply is sent:
|
|
39
|
-
"""
|
|
40
|
-
201 Created
|
|
41
|
-
authorization: Token ${{ user.token }}
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
# wrong password for the credentials just created
|
|
45
|
-
When the following request is received:
|
|
46
|
-
"""
|
|
47
|
-
GET /echo/ HTTP/1.1
|
|
48
|
-
host: nex.toa.io
|
|
49
|
-
authorization: Basic dXNlcjpwYXNz
|
|
50
|
-
accept: application/yaml
|
|
51
|
-
"""
|
|
52
|
-
Then the following reply is sent:
|
|
53
|
-
"""
|
|
54
|
-
401 Unauthorized
|
|
55
|
-
"""
|