@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,120 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: More than one provider claims Bearer
|
|
3
|
-
|
|
4
|
-
An OpenID `id_token` and a token this gateway issued are both presented as `Bearer`,
|
|
5
|
-
and only their own provider can verify either. The gateway asks each in turn.
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given local IDP is running
|
|
9
|
-
And the `identity.basic` database contains:
|
|
10
|
-
| _id | authority | username | password |
|
|
11
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
12
|
-
And the annotation:
|
|
13
|
-
"""yaml
|
|
14
|
-
/:
|
|
15
|
-
io:output: true
|
|
16
|
-
/hello/:id:
|
|
17
|
-
auth:id: id
|
|
18
|
-
GET:
|
|
19
|
-
dev:stub: Hello
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
Scenario: A token this gateway issued is presented as Bearer
|
|
23
|
-
When the following request is received:
|
|
24
|
-
"""
|
|
25
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
26
|
-
host: nex.toa.io
|
|
27
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
28
|
-
accept: text/plain
|
|
29
|
-
"""
|
|
30
|
-
Then the following reply is sent:
|
|
31
|
-
"""
|
|
32
|
-
200 OK
|
|
33
|
-
authorization: Token ${{ token }}
|
|
34
|
-
content-type: text/plain
|
|
35
|
-
|
|
36
|
-
Hello
|
|
37
|
-
"""
|
|
38
|
-
When the following request is received:
|
|
39
|
-
"""
|
|
40
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
41
|
-
host: nex.toa.io
|
|
42
|
-
authorization: Bearer ${{ token }}
|
|
43
|
-
accept: text/plain
|
|
44
|
-
"""
|
|
45
|
-
Then the following reply is sent:
|
|
46
|
-
"""
|
|
47
|
-
200 OK
|
|
48
|
-
content-type: text/plain
|
|
49
|
-
|
|
50
|
-
Hello
|
|
51
|
-
"""
|
|
52
|
-
# the token was answered by its own provider, so nothing rotates it
|
|
53
|
-
And the reply does not contain:
|
|
54
|
-
"""
|
|
55
|
-
authorization: Token
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
Scenario: A Bearer this gateway did not issue is answered by federation
|
|
59
|
-
Given the IDP token for Stranger is issued
|
|
60
|
-
When the following request is received:
|
|
61
|
-
"""
|
|
62
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
63
|
-
host: nex.toa.io
|
|
64
|
-
authorization: Bearer ${{ Stranger.id_token }}
|
|
65
|
-
accept: text/plain
|
|
66
|
-
"""
|
|
67
|
-
# `identity.tokens` declines it, and federation rejects an issuer it does not trust
|
|
68
|
-
Then the following reply is sent:
|
|
69
|
-
"""
|
|
70
|
-
401 Unauthorized
|
|
71
|
-
"""
|
|
72
|
-
|
|
73
|
-
Scenario: A malformed Bearer is rejected, not an error
|
|
74
|
-
When the following request is received:
|
|
75
|
-
"""
|
|
76
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
77
|
-
host: nex.toa.io
|
|
78
|
-
authorization: Bearer not.a.token
|
|
79
|
-
accept: text/plain
|
|
80
|
-
"""
|
|
81
|
-
Then the following reply is sent:
|
|
82
|
-
"""
|
|
83
|
-
401 Unauthorized
|
|
84
|
-
"""
|
|
85
|
-
|
|
86
|
-
Scenario: Both kinds of Bearer against one authority
|
|
87
|
-
Given the `identity.federation` configuration:
|
|
88
|
-
"""yaml
|
|
89
|
-
trust:
|
|
90
|
-
- iss: http://localhost:31005
|
|
91
|
-
aud: test
|
|
92
|
-
"""
|
|
93
|
-
And the IDP token for User is issued
|
|
94
|
-
When the following request is received:
|
|
95
|
-
"""
|
|
96
|
-
GET /identity/ HTTP/1.1
|
|
97
|
-
host: nex.toa.io
|
|
98
|
-
authorization: Bearer ${{ User.id_token }}
|
|
99
|
-
accept: application/yaml
|
|
100
|
-
"""
|
|
101
|
-
Then the following reply is sent:
|
|
102
|
-
"""
|
|
103
|
-
200 OK
|
|
104
|
-
authorization: Token ${{ federated }}
|
|
105
|
-
|
|
106
|
-
id: ${{ User.id }}
|
|
107
|
-
"""
|
|
108
|
-
When the following request is received:
|
|
109
|
-
"""
|
|
110
|
-
GET /identity/ HTTP/1.1
|
|
111
|
-
host: nex.toa.io
|
|
112
|
-
authorization: Bearer ${{ federated }}
|
|
113
|
-
accept: application/yaml
|
|
114
|
-
"""
|
|
115
|
-
Then the following reply is sent:
|
|
116
|
-
"""
|
|
117
|
-
200 OK
|
|
118
|
-
|
|
119
|
-
id: ${{ User.id }}
|
|
120
|
-
"""
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Federated identity authentication
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the `identity.federation` database is empty
|
|
6
|
-
And local IDP is running
|
|
7
|
-
And the IDP token for Bob is issued
|
|
8
|
-
And the `identity.federation` configuration:
|
|
9
|
-
"""yaml
|
|
10
|
-
trust:
|
|
11
|
-
- iss: http://localhost:31005
|
|
12
|
-
aud: test
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
Scenario: Full claim
|
|
16
|
-
Given the annotation:
|
|
17
|
-
"""yaml
|
|
18
|
-
/:
|
|
19
|
-
GET:
|
|
20
|
-
auth:claims:
|
|
21
|
-
iss: http://localhost:31005
|
|
22
|
-
aud: test
|
|
23
|
-
sub: Bob
|
|
24
|
-
dev:stub: ok
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
When the following request is received:
|
|
28
|
-
"""
|
|
29
|
-
GET / HTTP/1.1
|
|
30
|
-
host: nex.toa.io
|
|
31
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
32
|
-
"""
|
|
33
|
-
Then the following reply is sent:
|
|
34
|
-
"""
|
|
35
|
-
200 OK
|
|
36
|
-
"""
|
|
37
|
-
|
|
38
|
-
Scenario: Only `sub`
|
|
39
|
-
Given the annotation:
|
|
40
|
-
"""yaml
|
|
41
|
-
/:
|
|
42
|
-
GET:
|
|
43
|
-
auth:claims:
|
|
44
|
-
sub: Bob
|
|
45
|
-
dev:stub: ok
|
|
46
|
-
"""
|
|
47
|
-
|
|
48
|
-
When the following request is received:
|
|
49
|
-
"""
|
|
50
|
-
GET / HTTP/1.1
|
|
51
|
-
host: nex.toa.io
|
|
52
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
53
|
-
"""
|
|
54
|
-
Then the following reply is sent:
|
|
55
|
-
"""
|
|
56
|
-
200 OK
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
Scenario: No `sub`
|
|
60
|
-
Given the annotation:
|
|
61
|
-
"""yaml
|
|
62
|
-
/:
|
|
63
|
-
GET:
|
|
64
|
-
auth:claims:
|
|
65
|
-
iss: http://localhost:31005
|
|
66
|
-
aud: test
|
|
67
|
-
dev:stub: ok
|
|
68
|
-
"""
|
|
69
|
-
|
|
70
|
-
When the following request is received:
|
|
71
|
-
"""
|
|
72
|
-
GET / HTTP/1.1
|
|
73
|
-
host: nex.toa.io
|
|
74
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
75
|
-
"""
|
|
76
|
-
Then the following reply is sent:
|
|
77
|
-
"""
|
|
78
|
-
200 OK
|
|
79
|
-
"""
|
|
80
|
-
|
|
81
|
-
Scenario: `sub` mismatch
|
|
82
|
-
Given the annotation:
|
|
83
|
-
"""yaml
|
|
84
|
-
/:
|
|
85
|
-
GET:
|
|
86
|
-
auth:claims:
|
|
87
|
-
iss: http://localhost:31005
|
|
88
|
-
sub: Alice
|
|
89
|
-
dev:stub: ok
|
|
90
|
-
"""
|
|
91
|
-
|
|
92
|
-
When the following request is received:
|
|
93
|
-
"""
|
|
94
|
-
GET / HTTP/1.1
|
|
95
|
-
host: nex.toa.io
|
|
96
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
97
|
-
"""
|
|
98
|
-
Then the following reply is sent:
|
|
99
|
-
"""
|
|
100
|
-
403 Forbidden
|
|
101
|
-
"""
|
|
102
|
-
|
|
103
|
-
Scenario: `aud` mismatch
|
|
104
|
-
Given the annotation:
|
|
105
|
-
"""yaml
|
|
106
|
-
/:
|
|
107
|
-
GET:
|
|
108
|
-
auth:claims:
|
|
109
|
-
iss: http://localhost:31005
|
|
110
|
-
aud: goalkeepers
|
|
111
|
-
dev:stub: ok
|
|
112
|
-
"""
|
|
113
|
-
|
|
114
|
-
When the following request is received:
|
|
115
|
-
"""
|
|
116
|
-
GET / HTTP/1.1
|
|
117
|
-
host: nex.toa.io
|
|
118
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
119
|
-
"""
|
|
120
|
-
Then the following reply is sent:
|
|
121
|
-
"""
|
|
122
|
-
403 Forbidden
|
|
123
|
-
"""
|
|
124
|
-
|
|
125
|
-
Scenario: Matching authority and Route parameter
|
|
126
|
-
Given the annotation:
|
|
127
|
-
"""yaml
|
|
128
|
-
authorities:
|
|
129
|
-
test: the.test.local
|
|
130
|
-
/:
|
|
131
|
-
/:id:
|
|
132
|
-
GET:
|
|
133
|
-
auth:claims:
|
|
134
|
-
aud: :authority
|
|
135
|
-
sub: /:id
|
|
136
|
-
dev:stub: ok
|
|
137
|
-
"""
|
|
138
|
-
|
|
139
|
-
When the following request is received:
|
|
140
|
-
"""
|
|
141
|
-
GET /Bob/ HTTP/1.1
|
|
142
|
-
host: the.test.local
|
|
143
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
144
|
-
"""
|
|
145
|
-
Then the following reply is sent:
|
|
146
|
-
"""
|
|
147
|
-
200 OK
|
|
148
|
-
"""
|
|
149
|
-
|
|
150
|
-
Scenario: `iss` matching authority common domain
|
|
151
|
-
Given the annotation:
|
|
152
|
-
"""yaml
|
|
153
|
-
/:
|
|
154
|
-
/:id:
|
|
155
|
-
GET:
|
|
156
|
-
auth:claims:
|
|
157
|
-
iss: :domain
|
|
158
|
-
sub: /:id
|
|
159
|
-
dev:stub: ok
|
|
160
|
-
"""
|
|
161
|
-
|
|
162
|
-
When the following request is received:
|
|
163
|
-
"""
|
|
164
|
-
GET /Bob/ HTTP/1.1
|
|
165
|
-
host: localhost
|
|
166
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
167
|
-
"""
|
|
168
|
-
Then the following reply is sent:
|
|
169
|
-
"""
|
|
170
|
-
200 OK
|
|
171
|
-
"""
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
Feature: Identity inception
|
|
2
|
-
|
|
3
|
-
Scenario: Non-associated Identity inception
|
|
4
|
-
Given the `identity.basic` database is empty
|
|
5
|
-
When the following request is received:
|
|
6
|
-
"""
|
|
7
|
-
POST /identity/ HTTP/1.1
|
|
8
|
-
host: nex.toa.io
|
|
9
|
-
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
10
|
-
accept: application/yaml
|
|
11
|
-
"""
|
|
12
|
-
Then the following reply is sent:
|
|
13
|
-
"""
|
|
14
|
-
201 Created
|
|
15
|
-
authorization: Token ${{ token }}
|
|
16
|
-
|
|
17
|
-
id: ${{ id }}
|
|
18
|
-
roles: []
|
|
19
|
-
"""
|
|
20
|
-
When the following request is received:
|
|
21
|
-
"""
|
|
22
|
-
GET /identity/ HTTP/1.1
|
|
23
|
-
host: nex.toa.io
|
|
24
|
-
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
25
|
-
accept: application/yaml
|
|
26
|
-
"""
|
|
27
|
-
Then the following reply is sent:
|
|
28
|
-
"""
|
|
29
|
-
200 OK
|
|
30
|
-
|
|
31
|
-
id: ${{ id }}
|
|
32
|
-
roles: []
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
Scenario: Creating new Identity using inception with Basic scheme
|
|
36
|
-
Given the `users` is running with the following manifest:
|
|
37
|
-
"""yaml
|
|
38
|
-
exposition:
|
|
39
|
-
/:
|
|
40
|
-
POST:
|
|
41
|
-
io:input: [name]
|
|
42
|
-
io:output: true
|
|
43
|
-
incept: id
|
|
44
|
-
query: ~
|
|
45
|
-
endpoint: transit
|
|
46
|
-
"""
|
|
47
|
-
When the following request is received:
|
|
48
|
-
"""
|
|
49
|
-
POST /users/ HTTP/1.1
|
|
50
|
-
host: nex.toa.io
|
|
51
|
-
authorization: Basic #{{ basic }}
|
|
52
|
-
accept: application/yaml
|
|
53
|
-
content-type: application/yaml
|
|
54
|
-
|
|
55
|
-
name: Bill Smith
|
|
56
|
-
"""
|
|
57
|
-
Then the following reply is sent:
|
|
58
|
-
"""
|
|
59
|
-
201 Created
|
|
60
|
-
authorization: Token ${{ token }}
|
|
61
|
-
|
|
62
|
-
id: ${{ id }}
|
|
63
|
-
"""
|
|
64
|
-
|
|
65
|
-
Scenario: Inception with operation error
|
|
66
|
-
Given the `users` is running with the following manifest:
|
|
67
|
-
"""yaml
|
|
68
|
-
exposition:
|
|
69
|
-
/:
|
|
70
|
-
POST:
|
|
71
|
-
io:input: [name]
|
|
72
|
-
io:output: true
|
|
73
|
-
incept: id
|
|
74
|
-
endpoint: create
|
|
75
|
-
"""
|
|
76
|
-
When the following request is received:
|
|
77
|
-
"""
|
|
78
|
-
POST /users/ HTTP/1.1
|
|
79
|
-
host: nex.toa.io
|
|
80
|
-
authorization: Basic #{{ basic }}
|
|
81
|
-
accept: application/yaml
|
|
82
|
-
content-type: application/yaml
|
|
83
|
-
|
|
84
|
-
name: return_error
|
|
85
|
-
"""
|
|
86
|
-
Then the following reply is sent:
|
|
87
|
-
"""
|
|
88
|
-
422 Unprocessable Entity
|
|
89
|
-
"""
|
|
90
|
-
|
|
91
|
-
Scenario: Incept without credentials
|
|
92
|
-
Given the `echo` is running with the following manifest:
|
|
93
|
-
"""yaml
|
|
94
|
-
exposition:
|
|
95
|
-
/:
|
|
96
|
-
POST:
|
|
97
|
-
auth:incept: id
|
|
98
|
-
io:output: true
|
|
99
|
-
query: ~
|
|
100
|
-
endpoint: echo
|
|
101
|
-
"""
|
|
102
|
-
And transient identity
|
|
103
|
-
When the following request is received:
|
|
104
|
-
"""
|
|
105
|
-
POST /echo/ HTTP/1.1
|
|
106
|
-
host: nex.toa.io
|
|
107
|
-
accept: application/yaml
|
|
108
|
-
content-type: application/yaml
|
|
109
|
-
|
|
110
|
-
id: ${{ identity.id }}
|
|
111
|
-
foo: bar
|
|
112
|
-
"""
|
|
113
|
-
Then the following reply is sent:
|
|
114
|
-
"""
|
|
115
|
-
201 Created
|
|
116
|
-
authorization: Token ${{ token }}
|
|
117
|
-
|
|
118
|
-
id: ${{ identity.id }}
|
|
119
|
-
foo: bar
|
|
120
|
-
"""
|
|
121
|
-
|
|
122
|
-
Scenario: Inception with a wrong password for existing credentials
|
|
123
|
-
Given the `identity.basic` database contains:
|
|
124
|
-
| _id | authority | username | password | VERSION |
|
|
125
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
126
|
-
And the `users` is running with the following manifest:
|
|
127
|
-
"""yaml
|
|
128
|
-
exposition:
|
|
129
|
-
/:
|
|
130
|
-
POST:
|
|
131
|
-
io:input: [name]
|
|
132
|
-
io:output: true
|
|
133
|
-
incept: id
|
|
134
|
-
query: ~
|
|
135
|
-
endpoint: transit
|
|
136
|
-
"""
|
|
137
|
-
# developer:wrong
|
|
138
|
-
When the following request is received:
|
|
139
|
-
"""
|
|
140
|
-
POST /users/ HTTP/1.1
|
|
141
|
-
host: nex.toa.io
|
|
142
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
143
|
-
accept: application/yaml
|
|
144
|
-
content-type: application/yaml
|
|
145
|
-
|
|
146
|
-
name: Bill Smith
|
|
147
|
-
"""
|
|
148
|
-
Then the following reply is sent:
|
|
149
|
-
"""
|
|
150
|
-
401 Unauthorized
|
|
151
|
-
"""
|
|
152
|
-
# a token that does not decrypt
|
|
153
|
-
When the following request is received:
|
|
154
|
-
"""
|
|
155
|
-
POST /users/ HTTP/1.1
|
|
156
|
-
host: nex.toa.io
|
|
157
|
-
authorization: Token garbage
|
|
158
|
-
accept: application/yaml
|
|
159
|
-
content-type: application/yaml
|
|
160
|
-
|
|
161
|
-
name: Bill Smith
|
|
162
|
-
"""
|
|
163
|
-
Then the following reply is sent:
|
|
164
|
-
"""
|
|
165
|
-
401 Unauthorized
|
|
166
|
-
"""
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
Feature: Input properties authorization
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given the `identity.basic` database contains:
|
|
5
|
-
| _id | authority | username | password |
|
|
6
|
-
| 72cf9b0ab0ac4ab2b8036e4e940ddcae | nex | root | $2b$10$Qq/qnyyU5wjrbDXyWok14OnqAZv/z.pLhz.UddatjI6eHU/rFof4i |
|
|
7
|
-
And the `identity.roles` database contains:
|
|
8
|
-
| _id | identity | role |
|
|
9
|
-
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | 72cf9b0ab0ac4ab2b8036e4e940ddcae | app:b |
|
|
10
|
-
|
|
11
|
-
Scenario: Input properties authorization
|
|
12
|
-
Given the `echo` is running with the following manifest:
|
|
13
|
-
"""yaml
|
|
14
|
-
exposition:
|
|
15
|
-
/:
|
|
16
|
-
io:input: [a, b]
|
|
17
|
-
io:output: [a, b]
|
|
18
|
-
anonymous: true
|
|
19
|
-
auth:role: app:b
|
|
20
|
-
auth:input:
|
|
21
|
-
- prop: b
|
|
22
|
-
role: app:b
|
|
23
|
-
PUT: parameters
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
When the following request is received:
|
|
27
|
-
"""
|
|
28
|
-
PUT /echo/ HTTP/1.1
|
|
29
|
-
host: nex.toa.io
|
|
30
|
-
accept: application/yaml
|
|
31
|
-
content-type: application/yaml
|
|
32
|
-
|
|
33
|
-
a: foo
|
|
34
|
-
b: bar
|
|
35
|
-
"""
|
|
36
|
-
Then the following reply is sent:
|
|
37
|
-
"""
|
|
38
|
-
403 Forbidden
|
|
39
|
-
|
|
40
|
-
Input property is not authorized
|
|
41
|
-
"""
|
|
42
|
-
When the following request is received:
|
|
43
|
-
"""
|
|
44
|
-
PUT /echo/ HTTP/1.1
|
|
45
|
-
host: nex.toa.io
|
|
46
|
-
authorization: Basic cm9vdDpzZWNyZXQ=
|
|
47
|
-
accept: application/yaml
|
|
48
|
-
content-type: application/yaml
|
|
49
|
-
|
|
50
|
-
a: foo
|
|
51
|
-
b: bar
|
|
52
|
-
"""
|
|
53
|
-
Then the following reply is sent:
|
|
54
|
-
"""
|
|
55
|
-
200 OK
|
|
56
|
-
|
|
57
|
-
a: foo
|
|
58
|
-
b: bar
|
|
59
|
-
"""
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
Feature: Basic credentials with authorities
|
|
2
|
-
|
|
3
|
-
Scenario: Basic credentials are scoped to authorities
|
|
4
|
-
Given the annotation:
|
|
5
|
-
"""yaml
|
|
6
|
-
authorities:
|
|
7
|
-
one: the.one.com
|
|
8
|
-
two: the.two.com
|
|
9
|
-
/:
|
|
10
|
-
/:id:
|
|
11
|
-
auth:id: id
|
|
12
|
-
io:output: true
|
|
13
|
-
GET:
|
|
14
|
-
dev:stub: Hello
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
# create basic credentials within the `one` authority
|
|
18
|
-
When the following request is received:
|
|
19
|
-
"""
|
|
20
|
-
POST /identity/basic/ HTTP/1.1
|
|
21
|
-
host: the.one.com
|
|
22
|
-
content-type: application/yaml
|
|
23
|
-
accept: application/yaml
|
|
24
|
-
|
|
25
|
-
username: #{{ id | set one.username }}
|
|
26
|
-
password: #{{ password 8 | set one.password }}
|
|
27
|
-
"""
|
|
28
|
-
Then the following reply is sent:
|
|
29
|
-
"""
|
|
30
|
-
201 Created
|
|
31
|
-
|
|
32
|
-
id: ${{ one.id }}
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
# create basic credentials within the `two` authority
|
|
36
|
-
When the following request is received:
|
|
37
|
-
"""
|
|
38
|
-
POST /identity/basic/ HTTP/1.1
|
|
39
|
-
host: the.two.com
|
|
40
|
-
content-type: application/yaml
|
|
41
|
-
accept: application/yaml
|
|
42
|
-
|
|
43
|
-
username: #{{ id | set two.username }}
|
|
44
|
-
password: #{{ password 8 | set two.password }}
|
|
45
|
-
"""
|
|
46
|
-
Then the following reply is sent:
|
|
47
|
-
"""
|
|
48
|
-
201 Created
|
|
49
|
-
|
|
50
|
-
id: ${{ two.id }}
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
# access the resource with the `one` authority
|
|
54
|
-
When the following request is received:
|
|
55
|
-
"""
|
|
56
|
-
GET /${{ one.id }}/ HTTP/1.1
|
|
57
|
-
host: the.one.com
|
|
58
|
-
authorization: Basic #{{ basic one }}
|
|
59
|
-
"""
|
|
60
|
-
Then the following reply is sent:
|
|
61
|
-
"""
|
|
62
|
-
200 OK
|
|
63
|
-
"""
|
|
64
|
-
When the following request is received:
|
|
65
|
-
"""
|
|
66
|
-
GET /${{ two.id }}/ HTTP/1.1
|
|
67
|
-
host: the.one.com
|
|
68
|
-
authorization: Basic #{{ basic two }}
|
|
69
|
-
"""
|
|
70
|
-
Then the following reply is sent:
|
|
71
|
-
"""
|
|
72
|
-
401 Unauthorized
|
|
73
|
-
"""
|
|
74
|
-
|
|
75
|
-
# access the resource with the `two` authority
|
|
76
|
-
When the following request is received:
|
|
77
|
-
"""
|
|
78
|
-
GET /${{ one.id }}/ HTTP/1.1
|
|
79
|
-
host: the.two.com
|
|
80
|
-
authorization: Basic #{{ basic one }}
|
|
81
|
-
"""
|
|
82
|
-
Then the following reply is sent:
|
|
83
|
-
"""
|
|
84
|
-
401 Unauthorized
|
|
85
|
-
"""
|
|
86
|
-
When the following request is received:
|
|
87
|
-
"""
|
|
88
|
-
GET /${{ two.id }}/ HTTP/1.1
|
|
89
|
-
host: the.two.com
|
|
90
|
-
authorization: Basic #{{ basic two }}
|
|
91
|
-
"""
|
|
92
|
-
Then the following reply is sent:
|
|
93
|
-
"""
|
|
94
|
-
200 OK
|
|
95
|
-
"""
|
|
96
|
-
|
|
97
|
-
# create `one` credentials in the `two` authority
|
|
98
|
-
When the following request is received:
|
|
99
|
-
"""
|
|
100
|
-
POST /identity/basic/ HTTP/1.1
|
|
101
|
-
host: the.one.com
|
|
102
|
-
content-type: application/yaml
|
|
103
|
-
accept: application/yaml
|
|
104
|
-
|
|
105
|
-
username: ${{ one.username }}
|
|
106
|
-
password: ${{ one.password }}
|
|
107
|
-
"""
|
|
108
|
-
Then the following reply is sent:
|
|
109
|
-
"""
|
|
110
|
-
409 Conflict
|
|
111
|
-
"""
|
|
112
|
-
When the following request is received:
|
|
113
|
-
"""
|
|
114
|
-
POST /identity/basic/ HTTP/1.1
|
|
115
|
-
host: the.two.com
|
|
116
|
-
content-type: application/yaml
|
|
117
|
-
accept: application/yaml
|
|
118
|
-
|
|
119
|
-
username: ${{ one.username }}
|
|
120
|
-
password: ${{ one.password }}
|
|
121
|
-
"""
|
|
122
|
-
Then the following reply is sent:
|
|
123
|
-
"""
|
|
124
|
-
201 Created
|
|
125
|
-
"""
|
|
126
|
-
|
|
127
|
-
# create `two` credentials in the `one` authority
|
|
128
|
-
When the following request is received:
|
|
129
|
-
"""
|
|
130
|
-
POST /identity/basic/ HTTP/1.1
|
|
131
|
-
host: the.one.com
|
|
132
|
-
content-type: application/yaml
|
|
133
|
-
accept: application/yaml
|
|
134
|
-
|
|
135
|
-
username: ${{ two.username }}
|
|
136
|
-
password: ${{ two.password }}
|
|
137
|
-
"""
|
|
138
|
-
Then the following reply is sent:
|
|
139
|
-
"""
|
|
140
|
-
201 Created
|
|
141
|
-
"""
|