@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,240 +0,0 @@
|
|
|
1
|
-
Feature: Identity resource
|
|
2
|
-
|
|
3
|
-
Scenario: Requesting own Identity
|
|
4
|
-
Given the `identity.basic` database contains:
|
|
5
|
-
| _id | authority | username | password |
|
|
6
|
-
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
7
|
-
And the `identity.roles` database contains:
|
|
8
|
-
| _id | identity | role |
|
|
9
|
-
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
10
|
-
| 88ec8e348a5c48aaa2d25faa904cd9ff | efe3a65ebbee47ed95a73edd911ea328 | system:identity |
|
|
11
|
-
When the following request is received:
|
|
12
|
-
"""
|
|
13
|
-
GET /identity/ HTTP/1.1
|
|
14
|
-
host: nex.toa.io
|
|
15
|
-
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
16
|
-
accept: application/yaml
|
|
17
|
-
"""
|
|
18
|
-
Then the following reply is sent:
|
|
19
|
-
"""
|
|
20
|
-
200 OK
|
|
21
|
-
authorization: Token ${{ User.token }}
|
|
22
|
-
|
|
23
|
-
id: efe3a65ebbee47ed95a73edd911ea328
|
|
24
|
-
roles:
|
|
25
|
-
- developer
|
|
26
|
-
- system:identity
|
|
27
|
-
"""
|
|
28
|
-
When the following request is received:
|
|
29
|
-
"""
|
|
30
|
-
GET /identity/ HTTP/1.1
|
|
31
|
-
host: nex.toa.io
|
|
32
|
-
authorization: Token ${{ User.token }}
|
|
33
|
-
accept: application/yaml
|
|
34
|
-
"""
|
|
35
|
-
Then the following reply is sent:
|
|
36
|
-
"""
|
|
37
|
-
200 OK
|
|
38
|
-
|
|
39
|
-
id: ${{ User.id }}
|
|
40
|
-
roles:
|
|
41
|
-
- developer
|
|
42
|
-
- system:identity
|
|
43
|
-
"""
|
|
44
|
-
# checking that it returns the same id for given token
|
|
45
|
-
When the following request is received:
|
|
46
|
-
"""
|
|
47
|
-
GET /identity/ HTTP/1.1
|
|
48
|
-
host: nex.toa.io
|
|
49
|
-
authorization: Token ${{ User.token }}
|
|
50
|
-
accept: application/yaml
|
|
51
|
-
"""
|
|
52
|
-
Then the following reply is sent:
|
|
53
|
-
"""
|
|
54
|
-
200 OK
|
|
55
|
-
|
|
56
|
-
id: ${{ User.id }}
|
|
57
|
-
roles:
|
|
58
|
-
- developer
|
|
59
|
-
- system:identity
|
|
60
|
-
"""
|
|
61
|
-
|
|
62
|
-
Scenario: Getting transient Identity
|
|
63
|
-
When the following request is received:
|
|
64
|
-
"""
|
|
65
|
-
GET /identity/ HTTP/1.1
|
|
66
|
-
host: nex.toa.io
|
|
67
|
-
accept: application/yaml
|
|
68
|
-
"""
|
|
69
|
-
Then the following reply is sent:
|
|
70
|
-
"""
|
|
71
|
-
201 Created
|
|
72
|
-
authorization: Token ${{ token }}
|
|
73
|
-
|
|
74
|
-
id: ${{ id }}
|
|
75
|
-
roles: []
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
Scenario: Requesting Identity with non-existent credentials
|
|
79
|
-
Given the `identity.basic` database is empty
|
|
80
|
-
When the following request is received:
|
|
81
|
-
"""
|
|
82
|
-
GET /identity/ HTTP/1.1
|
|
83
|
-
host: nex.toa.io
|
|
84
|
-
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
85
|
-
"""
|
|
86
|
-
Then the following reply is sent:
|
|
87
|
-
"""
|
|
88
|
-
401 Unauthorized
|
|
89
|
-
"""
|
|
90
|
-
|
|
91
|
-
Scenario: Authenticating with a scheme named after an object property
|
|
92
|
-
When the following request is received:
|
|
93
|
-
"""
|
|
94
|
-
GET /identity/ HTTP/1.1
|
|
95
|
-
host: nex.toa.io
|
|
96
|
-
authorization: Constructor abc
|
|
97
|
-
"""
|
|
98
|
-
Then the following reply is sent:
|
|
99
|
-
"""
|
|
100
|
-
401 Unauthorized
|
|
101
|
-
"""
|
|
102
|
-
When the following request is received:
|
|
103
|
-
"""
|
|
104
|
-
GET /identity/ HTTP/1.1
|
|
105
|
-
host: nex.toa.io
|
|
106
|
-
authorization: __proto__ abc
|
|
107
|
-
"""
|
|
108
|
-
Then the following reply is sent:
|
|
109
|
-
"""
|
|
110
|
-
401 Unauthorized
|
|
111
|
-
"""
|
|
112
|
-
|
|
113
|
-
Scenario: Failing authentication repeatedly
|
|
114
|
-
Given the annotation:
|
|
115
|
-
"""yaml
|
|
116
|
-
ip: x-real-ip
|
|
117
|
-
bouncer:
|
|
118
|
-
attempts: 2
|
|
119
|
-
interval: 60
|
|
120
|
-
"""
|
|
121
|
-
# developer:wrong
|
|
122
|
-
When the following request is received:
|
|
123
|
-
"""
|
|
124
|
-
GET /identity/ HTTP/1.1
|
|
125
|
-
host: nex.toa.io
|
|
126
|
-
x-real-ip: 203.0.113.9
|
|
127
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
128
|
-
"""
|
|
129
|
-
Then the following reply is sent:
|
|
130
|
-
"""
|
|
131
|
-
401 Unauthorized
|
|
132
|
-
"""
|
|
133
|
-
When the following request is received:
|
|
134
|
-
"""
|
|
135
|
-
GET /identity/ HTTP/1.1
|
|
136
|
-
host: nex.toa.io
|
|
137
|
-
x-real-ip: 203.0.113.9
|
|
138
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
139
|
-
"""
|
|
140
|
-
Then the following reply is sent:
|
|
141
|
-
"""
|
|
142
|
-
401 Unauthorized
|
|
143
|
-
"""
|
|
144
|
-
# the address has spent its attempts, and earns one back in interval / attempts seconds
|
|
145
|
-
When the following request is received:
|
|
146
|
-
"""
|
|
147
|
-
GET /identity/ HTTP/1.1
|
|
148
|
-
host: nex.toa.io
|
|
149
|
-
x-real-ip: 203.0.113.9
|
|
150
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
151
|
-
"""
|
|
152
|
-
Then the following reply is sent:
|
|
153
|
-
"""
|
|
154
|
-
429 Too Many Requests
|
|
155
|
-
retry-after: 30
|
|
156
|
-
"""
|
|
157
|
-
# a request without credentials is not metered
|
|
158
|
-
When the following request is received:
|
|
159
|
-
"""
|
|
160
|
-
GET /identity/ HTTP/1.1
|
|
161
|
-
host: nex.toa.io
|
|
162
|
-
"""
|
|
163
|
-
Then the following reply is sent:
|
|
164
|
-
"""
|
|
165
|
-
201 Created
|
|
166
|
-
"""
|
|
167
|
-
|
|
168
|
-
Scenario: Failing authentication behind a trusted proxy
|
|
169
|
-
Given the annotation:
|
|
170
|
-
"""yaml
|
|
171
|
-
ip: x-real-ip
|
|
172
|
-
bouncer:
|
|
173
|
-
attempts: 1
|
|
174
|
-
interval: 60
|
|
175
|
-
"""
|
|
176
|
-
# developer:wrong
|
|
177
|
-
When the following request is received:
|
|
178
|
-
"""
|
|
179
|
-
GET /identity/ HTTP/1.1
|
|
180
|
-
host: nex.toa.io
|
|
181
|
-
x-real-ip: 203.0.113.1
|
|
182
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
183
|
-
"""
|
|
184
|
-
Then the following reply is sent:
|
|
185
|
-
"""
|
|
186
|
-
401 Unauthorized
|
|
187
|
-
"""
|
|
188
|
-
When the following request is received:
|
|
189
|
-
"""
|
|
190
|
-
GET /identity/ HTTP/1.1
|
|
191
|
-
host: nex.toa.io
|
|
192
|
-
x-real-ip: 203.0.113.1
|
|
193
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
194
|
-
"""
|
|
195
|
-
Then the following reply is sent:
|
|
196
|
-
"""
|
|
197
|
-
429 Too Many Requests
|
|
198
|
-
"""
|
|
199
|
-
# another address, as the proxy reports it
|
|
200
|
-
When the following request is received:
|
|
201
|
-
"""
|
|
202
|
-
GET /identity/ HTTP/1.1
|
|
203
|
-
host: nex.toa.io
|
|
204
|
-
x-real-ip: 203.0.113.2
|
|
205
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
206
|
-
"""
|
|
207
|
-
Then the following reply is sent:
|
|
208
|
-
"""
|
|
209
|
-
401 Unauthorized
|
|
210
|
-
"""
|
|
211
|
-
|
|
212
|
-
Scenario: Failing authentication without a client address
|
|
213
|
-
Given the annotation:
|
|
214
|
-
"""yaml
|
|
215
|
-
ip: x-real-ip
|
|
216
|
-
bouncer:
|
|
217
|
-
attempts: 1
|
|
218
|
-
interval: 60
|
|
219
|
-
"""
|
|
220
|
-
# the header the address is read from is not sent, so nothing is metered
|
|
221
|
-
When the following request is received:
|
|
222
|
-
"""
|
|
223
|
-
GET /identity/ HTTP/1.1
|
|
224
|
-
host: nex.toa.io
|
|
225
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
226
|
-
"""
|
|
227
|
-
Then the following reply is sent:
|
|
228
|
-
"""
|
|
229
|
-
401 Unauthorized
|
|
230
|
-
"""
|
|
231
|
-
When the following request is received:
|
|
232
|
-
"""
|
|
233
|
-
GET /identity/ HTTP/1.1
|
|
234
|
-
host: nex.toa.io
|
|
235
|
-
authorization: Basic ZGV2ZWxvcGVyOndyb25n
|
|
236
|
-
"""
|
|
237
|
-
Then the following reply is sent:
|
|
238
|
-
"""
|
|
239
|
-
401 Unauthorized
|
|
240
|
-
"""
|
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
@security
|
|
2
|
-
Feature: Identity Federation
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the `identity.federation` database is empty
|
|
6
|
-
And local IDP is running
|
|
7
|
-
|
|
8
|
-
Scenario: Asymmetric tokens
|
|
9
|
-
Given the `identity.federation` configuration:
|
|
10
|
-
"""yaml
|
|
11
|
-
trust:
|
|
12
|
-
- iss: http://localhost:31005
|
|
13
|
-
aud: test
|
|
14
|
-
"""
|
|
15
|
-
And the IDP token for User is issued
|
|
16
|
-
When the following request is received:
|
|
17
|
-
"""
|
|
18
|
-
GET /identity/ HTTP/1.1
|
|
19
|
-
host: nex.toa.io
|
|
20
|
-
authorization: Bearer ${{ User.id_token }}
|
|
21
|
-
accept: application/yaml
|
|
22
|
-
"""
|
|
23
|
-
Then the following reply is sent:
|
|
24
|
-
"""
|
|
25
|
-
200 OK
|
|
26
|
-
authorization: Token ${{ User.token }}
|
|
27
|
-
|
|
28
|
-
id: ${{ User.id }}
|
|
29
|
-
roles: []
|
|
30
|
-
"""
|
|
31
|
-
When the following request is received:
|
|
32
|
-
"""
|
|
33
|
-
GET /identity/ HTTP/1.1
|
|
34
|
-
host: nex.toa.io
|
|
35
|
-
accept: application/yaml
|
|
36
|
-
authorization: Token ${{ User.token }}
|
|
37
|
-
"""
|
|
38
|
-
Then the following reply is sent:
|
|
39
|
-
"""
|
|
40
|
-
200 OK
|
|
41
|
-
|
|
42
|
-
id: ${{ User.id }}
|
|
43
|
-
"""
|
|
44
|
-
# ensuring identity idempotency
|
|
45
|
-
When the following request is received:
|
|
46
|
-
"""
|
|
47
|
-
GET /identity/ HTTP/1.1
|
|
48
|
-
host: nex.toa.io
|
|
49
|
-
authorization: Bearer ${{ User.id_token }}
|
|
50
|
-
accept: application/yaml
|
|
51
|
-
"""
|
|
52
|
-
Then the following reply is sent:
|
|
53
|
-
"""
|
|
54
|
-
200 OK
|
|
55
|
-
|
|
56
|
-
id: ${{ User.id }}
|
|
57
|
-
"""
|
|
58
|
-
# credential id is detached from the Identity
|
|
59
|
-
When the following request is received:
|
|
60
|
-
"""
|
|
61
|
-
GET /identity/federation/${{ User.id }}/ HTTP/1.1
|
|
62
|
-
host: nex.toa.io
|
|
63
|
-
authorization: Bearer ${{ User.id_token }}
|
|
64
|
-
accept: application/yaml
|
|
65
|
-
"""
|
|
66
|
-
Then the following reply is sent:
|
|
67
|
-
"""
|
|
68
|
-
200 OK
|
|
69
|
-
|
|
70
|
-
- id: ${{ User.credential }}
|
|
71
|
-
iss: http://localhost:31005
|
|
72
|
-
"""
|
|
73
|
-
|
|
74
|
-
Scenario: Creating an Identity using inception
|
|
75
|
-
Given the `identity.federation` configuration:
|
|
76
|
-
"""yaml
|
|
77
|
-
trust:
|
|
78
|
-
- iss: http://localhost:31005
|
|
79
|
-
aud: test
|
|
80
|
-
assert: false
|
|
81
|
-
"""
|
|
82
|
-
Given the `users` is running with the following manifest:
|
|
83
|
-
"""yaml
|
|
84
|
-
exposition:
|
|
85
|
-
/:
|
|
86
|
-
anonymous: true
|
|
87
|
-
POST:
|
|
88
|
-
io:output: [id]
|
|
89
|
-
auth:incept: id
|
|
90
|
-
endpoint: create
|
|
91
|
-
"""
|
|
92
|
-
And the IDP token for Bill is issued
|
|
93
|
-
When the following request is received:
|
|
94
|
-
# identity inception
|
|
95
|
-
"""
|
|
96
|
-
POST /users/ HTTP/1.1
|
|
97
|
-
host: nex.toa.io
|
|
98
|
-
authorization: Bearer ${{ Bill.id_token }}
|
|
99
|
-
accept: application/yaml
|
|
100
|
-
content-type: application/yaml
|
|
101
|
-
|
|
102
|
-
name: Bill Smith
|
|
103
|
-
"""
|
|
104
|
-
Then the following reply is sent:
|
|
105
|
-
"""
|
|
106
|
-
201 Created
|
|
107
|
-
authorization: Token ${{ Bill.token }}
|
|
108
|
-
|
|
109
|
-
id: ${{ Bill.id }}
|
|
110
|
-
"""
|
|
111
|
-
# check that both tokens authenticate the created user's Identity
|
|
112
|
-
When the following request is received:
|
|
113
|
-
"""
|
|
114
|
-
GET /identity/ HTTP/1.1
|
|
115
|
-
host: nex.toa.io
|
|
116
|
-
authorization: Token ${{ Bill.token }}
|
|
117
|
-
accept: application/yaml
|
|
118
|
-
"""
|
|
119
|
-
Then the following reply is sent:
|
|
120
|
-
"""
|
|
121
|
-
200 OK
|
|
122
|
-
|
|
123
|
-
id: ${{ Bill.id }}
|
|
124
|
-
roles: []
|
|
125
|
-
"""
|
|
126
|
-
When the following request is received:
|
|
127
|
-
"""
|
|
128
|
-
GET /identity/ HTTP/1.1
|
|
129
|
-
host: nex.toa.io
|
|
130
|
-
authorization: Bearer ${{ Bill.id_token }}
|
|
131
|
-
accept: application/yaml
|
|
132
|
-
"""
|
|
133
|
-
Then the following reply is sent:
|
|
134
|
-
"""
|
|
135
|
-
200 OK
|
|
136
|
-
|
|
137
|
-
id: ${{ Bill.id }}
|
|
138
|
-
roles: []
|
|
139
|
-
"""
|
|
140
|
-
# credential id is detached from the Identity
|
|
141
|
-
When the following request is received:
|
|
142
|
-
"""
|
|
143
|
-
GET /identity/federation/${{ Bill.id }}/ HTTP/1.1
|
|
144
|
-
host: nex.toa.io
|
|
145
|
-
authorization: Bearer ${{ Bill.id_token }}
|
|
146
|
-
accept: application/yaml
|
|
147
|
-
"""
|
|
148
|
-
Then the following reply is sent:
|
|
149
|
-
"""
|
|
150
|
-
200 OK
|
|
151
|
-
|
|
152
|
-
- id: ${{ Bill.credential }}
|
|
153
|
-
iss: http://localhost:31005
|
|
154
|
-
"""
|
|
155
|
-
And the following request is received:
|
|
156
|
-
# same credentials
|
|
157
|
-
"""
|
|
158
|
-
POST /users/ HTTP/1.1
|
|
159
|
-
host: nex.toa.io
|
|
160
|
-
authorization: Bearer ${{ Bill.id_token }}
|
|
161
|
-
content-type: application/yaml
|
|
162
|
-
|
|
163
|
-
name: Mary Louis
|
|
164
|
-
"""
|
|
165
|
-
Then the following reply is sent:
|
|
166
|
-
"""
|
|
167
|
-
403 Forbidden
|
|
168
|
-
"""
|
|
169
|
-
|
|
170
|
-
Scenario: Granting a `system` role to a Principal
|
|
171
|
-
Given the `identity.federation` configuration:
|
|
172
|
-
"""yaml
|
|
173
|
-
trust:
|
|
174
|
-
- iss: http://localhost:31005
|
|
175
|
-
aud: test
|
|
176
|
-
principal:
|
|
177
|
-
authority: nex
|
|
178
|
-
iss: http://localhost:31005
|
|
179
|
-
sub: root
|
|
180
|
-
"""
|
|
181
|
-
And the IDP token for root is issued
|
|
182
|
-
|
|
183
|
-
# create an identity
|
|
184
|
-
When the following request is received:
|
|
185
|
-
"""
|
|
186
|
-
GET /identity/ HTTP/1.1
|
|
187
|
-
host: nex.toa.io
|
|
188
|
-
authorization: Bearer ${{ root.id_token }}
|
|
189
|
-
accept: application/yaml
|
|
190
|
-
content-type: application/yaml
|
|
191
|
-
"""
|
|
192
|
-
Then the following reply is sent:
|
|
193
|
-
"""
|
|
194
|
-
200 OK
|
|
195
|
-
authorization: Token ${{ root.token }}
|
|
196
|
-
|
|
197
|
-
id: ${{ root.id }}
|
|
198
|
-
"""
|
|
199
|
-
|
|
200
|
-
# the Role is granted before the reply, so the Token that reply carries holds it
|
|
201
|
-
When the following request is received:
|
|
202
|
-
"""
|
|
203
|
-
GET /identity/ HTTP/1.1
|
|
204
|
-
host: nex.toa.io
|
|
205
|
-
accept: application/yaml
|
|
206
|
-
authorization: Token ${{ root.token }}
|
|
207
|
-
"""
|
|
208
|
-
Then the following reply is sent:
|
|
209
|
-
"""
|
|
210
|
-
200 OK
|
|
211
|
-
|
|
212
|
-
id: ${{ root.id }}
|
|
213
|
-
roles:
|
|
214
|
-
- system
|
|
215
|
-
"""
|
|
216
|
-
|
|
217
|
-
Scenario: Adding federation to an existing identity
|
|
218
|
-
Given the `identity.federation` configuration:
|
|
219
|
-
"""yaml
|
|
220
|
-
trust:
|
|
221
|
-
- iss: http://localhost:31005
|
|
222
|
-
aud: test
|
|
223
|
-
"""
|
|
224
|
-
And the `identity.basic` database is empty
|
|
225
|
-
|
|
226
|
-
# create an identity
|
|
227
|
-
When the following request is received:
|
|
228
|
-
"""
|
|
229
|
-
POST /identity/basic/ HTTP/1.1
|
|
230
|
-
host: nex.toa.io
|
|
231
|
-
content-type: application/yaml
|
|
232
|
-
accept: application/yaml
|
|
233
|
-
|
|
234
|
-
username: #{{ id | set Bob.username }}
|
|
235
|
-
password: #{{ password 8 | set Bob.password }}
|
|
236
|
-
"""
|
|
237
|
-
Then the following reply is sent:
|
|
238
|
-
"""
|
|
239
|
-
201 Created
|
|
240
|
-
|
|
241
|
-
id: ${{ Bob.id }}
|
|
242
|
-
"""
|
|
243
|
-
|
|
244
|
-
When the IDP token for Bob is issued
|
|
245
|
-
|
|
246
|
-
# add federation
|
|
247
|
-
When the following request is received:
|
|
248
|
-
"""
|
|
249
|
-
POST /identity/federation/${{ Bob.id }}/ HTTP/1.1
|
|
250
|
-
host: nex.toa.io
|
|
251
|
-
authorization: Basic #{{ basic Bob }}
|
|
252
|
-
content-type: application/yaml
|
|
253
|
-
accept: application/yaml
|
|
254
|
-
|
|
255
|
-
scheme: bearer
|
|
256
|
-
credentials: ${{ Bob.id_token }}
|
|
257
|
-
"""
|
|
258
|
-
Then the following reply is sent:
|
|
259
|
-
"""
|
|
260
|
-
201 Created
|
|
261
|
-
|
|
262
|
-
id: ${{ Bob.credential }}
|
|
263
|
-
iss: http://localhost:31005
|
|
264
|
-
"""
|
|
265
|
-
# the created credential is listed as is
|
|
266
|
-
When the following request is received:
|
|
267
|
-
"""
|
|
268
|
-
GET /identity/federation/${{ Bob.id }}/ HTTP/1.1
|
|
269
|
-
host: nex.toa.io
|
|
270
|
-
authorization: Basic #{{ basic Bob }}
|
|
271
|
-
accept: application/yaml
|
|
272
|
-
"""
|
|
273
|
-
Then the following reply is sent:
|
|
274
|
-
"""
|
|
275
|
-
200 OK
|
|
276
|
-
|
|
277
|
-
- id: ${{ Bob.credential }}
|
|
278
|
-
iss: http://localhost:31005
|
|
279
|
-
"""
|
|
280
|
-
And the following request is received:
|
|
281
|
-
"""
|
|
282
|
-
GET /identity/ HTTP/1.1
|
|
283
|
-
host: nex.toa.io
|
|
284
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
285
|
-
accept: application/yaml
|
|
286
|
-
"""
|
|
287
|
-
Then the following reply is sent:
|
|
288
|
-
"""
|
|
289
|
-
200 OK
|
|
290
|
-
|
|
291
|
-
id: ${{ Bob.id }}
|
|
292
|
-
"""
|
|
293
|
-
# delete the federation credential
|
|
294
|
-
When the following request is received:
|
|
295
|
-
"""
|
|
296
|
-
DELETE /identity/federation/${{ Bob.id }}/${{ Bob.credential }}/ HTTP/1.1
|
|
297
|
-
host: nex.toa.io
|
|
298
|
-
authorization: Basic #{{ basic Bob }}
|
|
299
|
-
"""
|
|
300
|
-
Then the following reply is sent:
|
|
301
|
-
"""
|
|
302
|
-
200 OK
|
|
303
|
-
"""
|
|
304
|
-
# add the same federation again
|
|
305
|
-
When the following request is received:
|
|
306
|
-
"""
|
|
307
|
-
POST /identity/federation/${{ Bob.id }}/ HTTP/1.1
|
|
308
|
-
host: nex.toa.io
|
|
309
|
-
authorization: Basic #{{ basic Bob }}
|
|
310
|
-
content-type: application/yaml
|
|
311
|
-
accept: application/yaml
|
|
312
|
-
|
|
313
|
-
scheme: bearer
|
|
314
|
-
credentials: ${{ Bob.id_token }}
|
|
315
|
-
"""
|
|
316
|
-
Then the following reply is sent:
|
|
317
|
-
"""
|
|
318
|
-
201 Created
|
|
319
|
-
"""
|
|
320
|
-
And the following request is received:
|
|
321
|
-
"""
|
|
322
|
-
GET /identity/ HTTP/1.1
|
|
323
|
-
host: nex.toa.io
|
|
324
|
-
authorization: Bearer ${{ Bob.id_token }}
|
|
325
|
-
accept: application/yaml
|
|
326
|
-
"""
|
|
327
|
-
Then the following reply is sent:
|
|
328
|
-
"""
|
|
329
|
-
200 OK
|
|
330
|
-
|
|
331
|
-
id: ${{ Bob.id }}
|
|
332
|
-
"""
|
|
333
|
-
|
|
334
|
-
Scenario: Authorization code flow with secret
|
|
335
|
-
Given the `identity.federation` configuration:
|
|
336
|
-
"""yaml
|
|
337
|
-
trust:
|
|
338
|
-
- iss: http://localhost:31005
|
|
339
|
-
aud: nex
|
|
340
|
-
secret: $IDP_SECRET
|
|
341
|
-
"""
|
|
342
|
-
And the configuration secrets:
|
|
343
|
-
"""yaml
|
|
344
|
-
IDP_SECRET: secret
|
|
345
|
-
"""
|
|
346
|
-
And auth code for Alice is issued for https://web.toa.io/callback/
|
|
347
|
-
When the following request is received:
|
|
348
|
-
"""
|
|
349
|
-
GET /identity/ HTTP/1.1
|
|
350
|
-
authorization: Code ${{ Alice.code_credentials }}
|
|
351
|
-
host: nex.toa.io
|
|
352
|
-
accept: application/yaml
|
|
353
|
-
"""
|
|
354
|
-
Then the following reply is sent:
|
|
355
|
-
"""
|
|
356
|
-
200 OK
|
|
357
|
-
authorization: Token ${{ Alice.token }}
|
|
358
|
-
|
|
359
|
-
id: ${{ Alice.id }}
|
|
360
|
-
"""
|
|
361
|
-
|
|
362
|
-
Scenario: Authorization code flow with signature
|
|
363
|
-
Given the `identity.federation` configuration:
|
|
364
|
-
"""yaml
|
|
365
|
-
trust:
|
|
366
|
-
- iss: http://localhost:31005
|
|
367
|
-
aud: nex
|
|
368
|
-
signature:
|
|
369
|
-
iss: io.toa.nex.id
|
|
370
|
-
kid: key-id
|
|
371
|
-
key: $IDP_KEY
|
|
372
|
-
"""
|
|
373
|
-
And the configuration secrets:
|
|
374
|
-
"""yaml
|
|
375
|
-
IDP_KEY: |
|
|
376
|
-
-----BEGIN PRIVATE KEY-----
|
|
377
|
-
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9x9DatwH0GZHSCo9
|
|
378
|
-
TMHTVXyeY0YQ8qb73jHV2v4MsyehRANCAAQwaYlna2hSV3G/RIlNLV41lg8Pm4Kf
|
|
379
|
-
HfCuKKiw3BIJTnSArAMJLSy1vYwSIMHz720mkmWTrWuQkkjvkDpZxfRv
|
|
380
|
-
-----END PRIVATE KEY-----
|
|
381
|
-
"""
|
|
382
|
-
And auth code for Bob is issued for https://web.toa.io/callback/
|
|
383
|
-
When the following request is received:
|
|
384
|
-
"""
|
|
385
|
-
GET /identity/ HTTP/1.1
|
|
386
|
-
authorization: Code ${{ Bob.code_credentials }}
|
|
387
|
-
host: nex.toa.io
|
|
388
|
-
accept: application/yaml
|
|
389
|
-
"""
|
|
390
|
-
Then the following reply is sent:
|
|
391
|
-
"""
|
|
392
|
-
200 OK
|
|
393
|
-
authorization: Token ${{ Bob.token }}
|
|
394
|
-
|
|
395
|
-
id: ${{ Bob.id }}
|
|
396
|
-
"""
|