@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,430 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Custom tokens
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the `identity.basic` database contains:
|
|
6
|
-
| _id | authority | username | password |
|
|
7
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
8
|
-
And the `identity.roles` database contains:
|
|
9
|
-
| _id | identity | role |
|
|
10
|
-
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | app:notes |
|
|
11
|
-
And the `identity.keys` database is empty
|
|
12
|
-
And the annotation:
|
|
13
|
-
"""yaml
|
|
14
|
-
/:
|
|
15
|
-
/notes:
|
|
16
|
-
auth:role: app:notes
|
|
17
|
-
GET:
|
|
18
|
-
io:output: true
|
|
19
|
-
dev:stub:
|
|
20
|
-
access: granted!
|
|
21
|
-
POST:
|
|
22
|
-
io:output: true
|
|
23
|
-
dev:stub:
|
|
24
|
-
access: granted!
|
|
25
|
-
/public:
|
|
26
|
-
GET:
|
|
27
|
-
auth:role: app:notes:public
|
|
28
|
-
io:output: true
|
|
29
|
-
dev:stub:
|
|
30
|
-
access: granted!
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
Scenario: Issuing a token
|
|
34
|
-
When the following request is received:
|
|
35
|
-
"""
|
|
36
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
37
|
-
host: nex.toa.io
|
|
38
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
39
|
-
content-type: application/yaml
|
|
40
|
-
accept: application/yaml
|
|
41
|
-
|
|
42
|
-
label: Dev token
|
|
43
|
-
lifetime: 600
|
|
44
|
-
"""
|
|
45
|
-
Then the following reply is sent:
|
|
46
|
-
"""
|
|
47
|
-
201 Created
|
|
48
|
-
|
|
49
|
-
kid: ${{ kid }}
|
|
50
|
-
exp: ${{ exp }}
|
|
51
|
-
token: ${{ token }}
|
|
52
|
-
"""
|
|
53
|
-
When the following request is received:
|
|
54
|
-
"""
|
|
55
|
-
GET /identity/ HTTP/1.1
|
|
56
|
-
host: nex.toa.io
|
|
57
|
-
authorization: Token ${{ token }}
|
|
58
|
-
accept: application/yaml
|
|
59
|
-
"""
|
|
60
|
-
Then the following reply is sent:
|
|
61
|
-
"""
|
|
62
|
-
200 OK
|
|
63
|
-
|
|
64
|
-
id: efe3a65ebbee47ed95a73edd911ea328
|
|
65
|
-
"""
|
|
66
|
-
|
|
67
|
-
# debug LRU cache
|
|
68
|
-
When the following request is received:
|
|
69
|
-
"""
|
|
70
|
-
GET /identity/ HTTP/1.1
|
|
71
|
-
host: nex.toa.io
|
|
72
|
-
authorization: Token ${{ token }}
|
|
73
|
-
"""
|
|
74
|
-
Then the following reply is sent:
|
|
75
|
-
"""
|
|
76
|
-
200 OK
|
|
77
|
-
"""
|
|
78
|
-
|
|
79
|
-
Scenario: Issuing a token for another identity
|
|
80
|
-
Given the `identity.basic` database contains:
|
|
81
|
-
| _id | authority | username | password |
|
|
82
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
83
|
-
| e8e4f9c2a68d419b861403d71fabc915 | nex | user | $2b$10$Frszmrmsz9iwSXzBbRRMKeDVKsNxozkrLNSsN.SnVC.KPxLtQr/bK |
|
|
84
|
-
And the `identity.roles` database contains:
|
|
85
|
-
| _id | identity | role |
|
|
86
|
-
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | system:identity:tokens |
|
|
87
|
-
When the following request is received:
|
|
88
|
-
"""
|
|
89
|
-
POST /identity/tokens/e8e4f9c2a68d419b861403d71fabc915/ HTTP/1.1
|
|
90
|
-
host: nex.toa.io
|
|
91
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
92
|
-
content-type: application/yaml
|
|
93
|
-
accept: application/yaml
|
|
94
|
-
|
|
95
|
-
label: On behalf
|
|
96
|
-
lifetime: 600
|
|
97
|
-
"""
|
|
98
|
-
Then the following reply is sent:
|
|
99
|
-
"""
|
|
100
|
-
201 Created
|
|
101
|
-
|
|
102
|
-
token: ${{ token }}
|
|
103
|
-
"""
|
|
104
|
-
When the following request is received:
|
|
105
|
-
"""
|
|
106
|
-
GET /identity/ HTTP/1.1
|
|
107
|
-
host: nex.toa.io
|
|
108
|
-
authorization: Token ${{ token }}
|
|
109
|
-
accept: application/yaml
|
|
110
|
-
"""
|
|
111
|
-
Then the following reply is sent:
|
|
112
|
-
"""
|
|
113
|
-
200 OK
|
|
114
|
-
|
|
115
|
-
id: e8e4f9c2a68d419b861403d71fabc915
|
|
116
|
-
"""
|
|
117
|
-
|
|
118
|
-
Scenario: Token with restricted scopes
|
|
119
|
-
When the following request is received:
|
|
120
|
-
"""
|
|
121
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
122
|
-
host: nex.toa.io
|
|
123
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
124
|
-
accept: application/yaml
|
|
125
|
-
content-type: application/yaml
|
|
126
|
-
|
|
127
|
-
label: Production token
|
|
128
|
-
lifetime: 0
|
|
129
|
-
scopes: [app:notes:public]
|
|
130
|
-
"""
|
|
131
|
-
Then the following reply is sent:
|
|
132
|
-
"""
|
|
133
|
-
201 Created
|
|
134
|
-
|
|
135
|
-
token: ${{ token }}
|
|
136
|
-
"""
|
|
137
|
-
When the following request is received:
|
|
138
|
-
"""
|
|
139
|
-
GET /notes/ HTTP/1.1
|
|
140
|
-
host: nex.toa.io
|
|
141
|
-
authorization: Token ${{ token }}
|
|
142
|
-
"""
|
|
143
|
-
Then the following reply is sent:
|
|
144
|
-
"""
|
|
145
|
-
403 Forbidden
|
|
146
|
-
"""
|
|
147
|
-
When the following request is received:
|
|
148
|
-
"""
|
|
149
|
-
GET /notes/public/ HTTP/1.1
|
|
150
|
-
host: nex.toa.io
|
|
151
|
-
authorization: Token ${{ token }}
|
|
152
|
-
"""
|
|
153
|
-
Then the following reply is sent:
|
|
154
|
-
"""
|
|
155
|
-
200 OK
|
|
156
|
-
"""
|
|
157
|
-
|
|
158
|
-
Scenario: Token with restricted permissions
|
|
159
|
-
When the following request is received:
|
|
160
|
-
"""
|
|
161
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
162
|
-
host: nex.toa.io
|
|
163
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
164
|
-
accept: application/yaml
|
|
165
|
-
content-type: application/yaml
|
|
166
|
-
|
|
167
|
-
label: Restricted token
|
|
168
|
-
lifetime: 0
|
|
169
|
-
permissions:
|
|
170
|
-
/notes/: [GET]
|
|
171
|
-
"""
|
|
172
|
-
Then the following reply is sent:
|
|
173
|
-
"""
|
|
174
|
-
201 Created
|
|
175
|
-
|
|
176
|
-
token: ${{ token }}
|
|
177
|
-
"""
|
|
178
|
-
When the following request is received:
|
|
179
|
-
"""
|
|
180
|
-
GET /notes/ HTTP/1.1
|
|
181
|
-
host: nex.toa.io
|
|
182
|
-
authorization: Token ${{ token }}
|
|
183
|
-
"""
|
|
184
|
-
Then the following reply is sent:
|
|
185
|
-
"""
|
|
186
|
-
200 OK
|
|
187
|
-
"""
|
|
188
|
-
|
|
189
|
-
# method is not permitted
|
|
190
|
-
When the following request is received:
|
|
191
|
-
"""
|
|
192
|
-
POST /notes/ HTTP/1.1
|
|
193
|
-
host: nex.toa.io
|
|
194
|
-
authorization: Token ${{ token }}
|
|
195
|
-
"""
|
|
196
|
-
Then the following reply is sent:
|
|
197
|
-
"""
|
|
198
|
-
403 Forbidden
|
|
199
|
-
"""
|
|
200
|
-
|
|
201
|
-
# resource is not permitted
|
|
202
|
-
When the following request is received:
|
|
203
|
-
"""
|
|
204
|
-
GET /notes/public/ HTTP/1.1
|
|
205
|
-
host: nex.toa.io
|
|
206
|
-
authorization: Token ${{ token }}
|
|
207
|
-
"""
|
|
208
|
-
Then the following reply is sent:
|
|
209
|
-
"""
|
|
210
|
-
403 Forbidden
|
|
211
|
-
"""
|
|
212
|
-
|
|
213
|
-
Scenario: Token revocation
|
|
214
|
-
Given the `identity.tokens` configuration:
|
|
215
|
-
"""yaml
|
|
216
|
-
cache:
|
|
217
|
-
ttl: 1
|
|
218
|
-
"""
|
|
219
|
-
When the following request is received:
|
|
220
|
-
"""
|
|
221
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
222
|
-
host: nex.toa.io
|
|
223
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
224
|
-
accept: application/yaml
|
|
225
|
-
content-type: application/yaml
|
|
226
|
-
|
|
227
|
-
label: One-time token
|
|
228
|
-
lifetime: 60
|
|
229
|
-
"""
|
|
230
|
-
Then the following reply is sent:
|
|
231
|
-
"""
|
|
232
|
-
201 Created
|
|
233
|
-
|
|
234
|
-
token: ${{ token }}
|
|
235
|
-
"""
|
|
236
|
-
When the following request is received:
|
|
237
|
-
"""
|
|
238
|
-
GET /identity/ HTTP/1.1
|
|
239
|
-
host: nex.toa.io
|
|
240
|
-
authorization: Token ${{ token }}
|
|
241
|
-
accept: application/yaml
|
|
242
|
-
"""
|
|
243
|
-
Then the following reply is sent:
|
|
244
|
-
"""
|
|
245
|
-
200 OK
|
|
246
|
-
|
|
247
|
-
id: efe3a65ebbee47ed95a73edd911ea328
|
|
248
|
-
"""
|
|
249
|
-
When the following request is received:
|
|
250
|
-
"""
|
|
251
|
-
GET /identity/keys/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
252
|
-
host: nex.toa.io
|
|
253
|
-
authorization: Token ${{ token }}
|
|
254
|
-
accept: application/yaml
|
|
255
|
-
"""
|
|
256
|
-
Then the following reply is sent:
|
|
257
|
-
"""
|
|
258
|
-
200 OK
|
|
259
|
-
|
|
260
|
-
- id: ${{ kid }}
|
|
261
|
-
CREATED: ${{ created }}
|
|
262
|
-
label: One-time token
|
|
263
|
-
expires: ${{ expires }}
|
|
264
|
-
"""
|
|
265
|
-
When the following request is received:
|
|
266
|
-
"""
|
|
267
|
-
DELETE /identity/keys/efe3a65ebbee47ed95a73edd911ea328/${{ kid }}/ HTTP/1.1
|
|
268
|
-
host: nex.toa.io
|
|
269
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
270
|
-
"""
|
|
271
|
-
Then the following reply is sent:
|
|
272
|
-
"""
|
|
273
|
-
200 OK
|
|
274
|
-
"""
|
|
275
|
-
And after 1 second
|
|
276
|
-
When the following request is received:
|
|
277
|
-
"""
|
|
278
|
-
GET /identity/ HTTP/1.1
|
|
279
|
-
host: nex.toa.io
|
|
280
|
-
authorization: Token ${{ token }}
|
|
281
|
-
"""
|
|
282
|
-
Then the following reply is sent:
|
|
283
|
-
"""
|
|
284
|
-
401 Unauthorized
|
|
285
|
-
"""
|
|
286
|
-
|
|
287
|
-
Scenario: Custom token is not refreshed
|
|
288
|
-
Given the `identity.tokens` configuration:
|
|
289
|
-
"""yaml
|
|
290
|
-
refresh: 1
|
|
291
|
-
"""
|
|
292
|
-
When the following request is received:
|
|
293
|
-
"""
|
|
294
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
295
|
-
host: nex.toa.io
|
|
296
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
297
|
-
accept: application/yaml
|
|
298
|
-
content-type: application/yaml
|
|
299
|
-
|
|
300
|
-
label: Restricted token
|
|
301
|
-
lifetime: 600
|
|
302
|
-
permissions:
|
|
303
|
-
/notes/: [GET]
|
|
304
|
-
"""
|
|
305
|
-
Then the following reply is sent:
|
|
306
|
-
"""
|
|
307
|
-
201 Created
|
|
308
|
-
|
|
309
|
-
token: ${{ token }}
|
|
310
|
-
"""
|
|
311
|
-
And after 1 second
|
|
312
|
-
When the following request is received:
|
|
313
|
-
"""
|
|
314
|
-
GET /notes/ HTTP/1.1
|
|
315
|
-
host: nex.toa.io
|
|
316
|
-
authorization: Token ${{ token }}
|
|
317
|
-
"""
|
|
318
|
-
Then the following reply is sent:
|
|
319
|
-
"""
|
|
320
|
-
200 OK
|
|
321
|
-
"""
|
|
322
|
-
And the reply does not contain:
|
|
323
|
-
"""
|
|
324
|
-
authorization: Token
|
|
325
|
-
"""
|
|
326
|
-
When the following request is received:
|
|
327
|
-
"""
|
|
328
|
-
GET /notes/public/ HTTP/1.1
|
|
329
|
-
host: nex.toa.io
|
|
330
|
-
authorization: Token ${{ token }}
|
|
331
|
-
"""
|
|
332
|
-
Then the following reply is sent:
|
|
333
|
-
"""
|
|
334
|
-
403 Forbidden
|
|
335
|
-
"""
|
|
336
|
-
|
|
337
|
-
Scenario: Permissions apply to the path the request is routed by
|
|
338
|
-
When the following request is received:
|
|
339
|
-
"""
|
|
340
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
341
|
-
host: nex.toa.io
|
|
342
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
343
|
-
accept: application/yaml
|
|
344
|
-
content-type: application/yaml
|
|
345
|
-
|
|
346
|
-
label: Public notes token
|
|
347
|
-
lifetime: 0
|
|
348
|
-
permissions:
|
|
349
|
-
/notes/public/: [GET]
|
|
350
|
-
"""
|
|
351
|
-
Then the following reply is sent:
|
|
352
|
-
"""
|
|
353
|
-
201 Created
|
|
354
|
-
|
|
355
|
-
token: ${{ token }}
|
|
356
|
-
"""
|
|
357
|
-
|
|
358
|
-
# the query string is not part of the path
|
|
359
|
-
When the following request is received:
|
|
360
|
-
"""
|
|
361
|
-
GET /notes/public/?page=2 HTTP/1.1
|
|
362
|
-
host: nex.toa.io
|
|
363
|
-
authorization: Token ${{ token }}
|
|
364
|
-
"""
|
|
365
|
-
Then the following reply is sent:
|
|
366
|
-
"""
|
|
367
|
-
200 OK
|
|
368
|
-
"""
|
|
369
|
-
|
|
370
|
-
Scenario: Changing the password revokes custom tokens
|
|
371
|
-
Given the `identity.basic` database contains:
|
|
372
|
-
| _id | VERSION | authority | username | password |
|
|
373
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
374
|
-
And the `identity.tokens` configuration:
|
|
375
|
-
"""yaml
|
|
376
|
-
cache:
|
|
377
|
-
ttl: 1
|
|
378
|
-
"""
|
|
379
|
-
When the following request is received:
|
|
380
|
-
"""
|
|
381
|
-
POST /identity/tokens/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
382
|
-
host: nex.toa.io
|
|
383
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
384
|
-
accept: application/yaml
|
|
385
|
-
content-type: application/yaml
|
|
386
|
-
|
|
387
|
-
label: Forever token
|
|
388
|
-
lifetime: 0
|
|
389
|
-
"""
|
|
390
|
-
Then the following reply is sent:
|
|
391
|
-
"""
|
|
392
|
-
201 Created
|
|
393
|
-
|
|
394
|
-
token: ${{ token }}
|
|
395
|
-
"""
|
|
396
|
-
When the following request is received:
|
|
397
|
-
"""
|
|
398
|
-
GET /identity/ HTTP/1.1
|
|
399
|
-
host: nex.toa.io
|
|
400
|
-
authorization: Token ${{ token }}
|
|
401
|
-
"""
|
|
402
|
-
Then the following reply is sent:
|
|
403
|
-
"""
|
|
404
|
-
200 OK
|
|
405
|
-
"""
|
|
406
|
-
When the following request is received:
|
|
407
|
-
"""
|
|
408
|
-
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
409
|
-
host: nex.toa.io
|
|
410
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
411
|
-
content-type: application/yaml
|
|
412
|
-
|
|
413
|
-
password: new-secret
|
|
414
|
-
"""
|
|
415
|
-
Then the following reply is sent:
|
|
416
|
-
"""
|
|
417
|
-
200 OK
|
|
418
|
-
"""
|
|
419
|
-
# the runtime forgets the key after `cache.ttl`
|
|
420
|
-
Then after 1.5 seconds
|
|
421
|
-
When the following request is received:
|
|
422
|
-
"""
|
|
423
|
-
GET /identity/ HTTP/1.1
|
|
424
|
-
host: nex.toa.io
|
|
425
|
-
authorization: Token ${{ token }}
|
|
426
|
-
"""
|
|
427
|
-
Then the following reply is sent:
|
|
428
|
-
"""
|
|
429
|
-
401 Unauthorized
|
|
430
|
-
"""
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Tokens lifecycle
|
|
3
|
-
|
|
4
|
-
Scenario: Switching to Token authentication scheme
|
|
5
|
-
Given the `identity.basic` database contains:
|
|
6
|
-
| _id | authority | username | password |
|
|
7
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
8
|
-
Given the annotation:
|
|
9
|
-
"""yaml
|
|
10
|
-
/:
|
|
11
|
-
io:output: true
|
|
12
|
-
/hello/:id:
|
|
13
|
-
auth:id: id
|
|
14
|
-
GET:
|
|
15
|
-
dev:stub: Hello
|
|
16
|
-
"""
|
|
17
|
-
When the following request is received:
|
|
18
|
-
"""
|
|
19
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
20
|
-
host: nex.toa.io
|
|
21
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
22
|
-
accept: text/plain
|
|
23
|
-
"""
|
|
24
|
-
Then the following reply is sent:
|
|
25
|
-
"""
|
|
26
|
-
200 OK
|
|
27
|
-
authorization: Token ${{ token }}
|
|
28
|
-
content-type: text/plain
|
|
29
|
-
|
|
30
|
-
Hello
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
Scenario: Refreshing stale token
|
|
34
|
-
Given the `identity.tokens` configuration:
|
|
35
|
-
"""yaml
|
|
36
|
-
refresh: 1
|
|
37
|
-
"""
|
|
38
|
-
And the annotation:
|
|
39
|
-
"""yaml
|
|
40
|
-
/:
|
|
41
|
-
io:output: true
|
|
42
|
-
/hello/:id:
|
|
43
|
-
auth:id: id
|
|
44
|
-
GET:
|
|
45
|
-
dev:stub: Hello
|
|
46
|
-
"""
|
|
47
|
-
When the following request is received:
|
|
48
|
-
"""
|
|
49
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
50
|
-
host: nex.toa.io
|
|
51
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
52
|
-
accept: text/plain
|
|
53
|
-
"""
|
|
54
|
-
Then the following reply is sent:
|
|
55
|
-
"""
|
|
56
|
-
200 OK
|
|
57
|
-
authorization: Token ${{ token }}
|
|
58
|
-
cache-control: no-store
|
|
59
|
-
|
|
60
|
-
Hello
|
|
61
|
-
"""
|
|
62
|
-
Then after 1 second
|
|
63
|
-
When the following request is received:
|
|
64
|
-
"""
|
|
65
|
-
GET /hello/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
66
|
-
host: nex.toa.io
|
|
67
|
-
authorization: Token ${{ token }}
|
|
68
|
-
accept: text/plain
|
|
69
|
-
"""
|
|
70
|
-
Then the following reply is sent:
|
|
71
|
-
"""
|
|
72
|
-
200 OK
|
|
73
|
-
authorization: Token
|
|
74
|
-
cache-control: no-store
|
|
75
|
-
|
|
76
|
-
Hello
|
|
77
|
-
"""
|
|
78
|
-
|
|
79
|
-
Scenario: Token revocation on password change
|
|
80
|
-
Given the annotation:
|
|
81
|
-
"""yaml
|
|
82
|
-
/:
|
|
83
|
-
io:output: true
|
|
84
|
-
/:id:
|
|
85
|
-
id: id
|
|
86
|
-
GET:
|
|
87
|
-
dev:stub:
|
|
88
|
-
access: granted!
|
|
89
|
-
"""
|
|
90
|
-
And the `identity.tokens` configuration:
|
|
91
|
-
"""yaml
|
|
92
|
-
refresh: 1
|
|
93
|
-
"""
|
|
94
|
-
And the `identity.basic` database contains:
|
|
95
|
-
| _id | VERSION | authority | username | password |
|
|
96
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
97
|
-
When the following request is received:
|
|
98
|
-
"""
|
|
99
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
100
|
-
host: nex.toa.io
|
|
101
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
102
|
-
"""
|
|
103
|
-
Then the following reply is sent:
|
|
104
|
-
"""
|
|
105
|
-
200 OK
|
|
106
|
-
authorization: Token ${{ token }}
|
|
107
|
-
"""
|
|
108
|
-
When the following request is received:
|
|
109
|
-
"""
|
|
110
|
-
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
111
|
-
host: nex.toa.io
|
|
112
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
113
|
-
content-type: application/yaml
|
|
114
|
-
|
|
115
|
-
password: new-secret
|
|
116
|
-
"""
|
|
117
|
-
Then the following reply is sent:
|
|
118
|
-
"""
|
|
119
|
-
200 OK
|
|
120
|
-
"""
|
|
121
|
-
Then after 1.1 seconds
|
|
122
|
-
When the following request is received:
|
|
123
|
-
"""
|
|
124
|
-
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
125
|
-
host: nex.toa.io
|
|
126
|
-
authorization: Token ${{ token }}
|
|
127
|
-
"""
|
|
128
|
-
Then the following reply is sent:
|
|
129
|
-
"""
|
|
130
|
-
401 Unauthorized
|
|
131
|
-
"""
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
@timing
|
|
2
|
-
Feature: Request interruptions
|
|
3
|
-
|
|
4
|
-
Scenario: Connection reset while processing a request
|
|
5
|
-
Given the annotation:
|
|
6
|
-
"""yaml
|
|
7
|
-
/:
|
|
8
|
-
io:output: true
|
|
9
|
-
anonymous: true
|
|
10
|
-
dev:sleep: 3000
|
|
11
|
-
GET:
|
|
12
|
-
dev:stub: hello
|
|
13
|
-
"""
|
|
14
|
-
When the following request is interrupted after 1 second:
|
|
15
|
-
"""
|
|
16
|
-
GET / HTTP/1.1
|
|
17
|
-
sleep: 2000
|
|
18
|
-
"""
|
|
19
|
-
Then after 2 seconds
|
|
20
|
-
And the process is running
|