@toa.io/extensions.exposition 1.0.0-alpha.8 → 1.0.0-alpha.82
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/context.toa.yaml +2 -2
- package/components/identity.bans/manifest.toa.yaml +15 -7
- package/components/identity.bans/operations/transit.d.ts +14 -0
- package/components/identity.bans/operations/transit.js +11 -0
- package/components/identity.bans/operations/transit.js.map +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/source/transit.ts +21 -0
- package/components/identity.bans/tsconfig.json +9 -0
- package/components/identity.basic/manifest.toa.yaml +20 -11
- package/components/identity.basic/operations/authenticate.d.ts +5 -1
- package/components/identity.basic/operations/authenticate.js +5 -2
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/incept.d.ts +12 -0
- package/components/identity.basic/operations/incept.js +26 -0
- package/components/identity.basic/operations/incept.js.map +1 -0
- package/components/identity.basic/operations/transit.d.ts +4 -4
- package/components/identity.basic/operations/transit.js +5 -3
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/operations/types.d.ts +8 -4
- package/components/identity.basic/source/authenticate.ts +16 -5
- package/components/identity.basic/source/incept.ts +38 -0
- package/components/identity.basic/source/transit.ts +8 -6
- package/components/identity.basic/source/types.ts +8 -4
- package/components/identity.federation/manifest.toa.yaml +32 -16
- package/components/identity.federation/operations/authenticate.d.ts +2 -2
- package/components/identity.federation/operations/authenticate.js +4 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/{create.js → incept.js} +6 -7
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
- package/components/identity.federation/operations/lib/jwt.js +25 -12
- package/components/identity.federation/operations/lib/jwt.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +14 -0
- package/components/identity.federation/operations/types/configuration.js +3 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
- package/components/identity.federation/operations/types/context.js +3 -0
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +6 -0
- package/components/identity.federation/operations/types/entity.js +3 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +3 -0
- package/components/identity.federation/operations/types/index.js +20 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +6 -19
- package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
- package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
- package/components/identity.federation/source/lib/jwt.test.ts +123 -4
- package/components/identity.federation/source/lib/jwt.ts +36 -16
- package/components/identity.federation/source/types/configuration.ts +15 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +3 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.roles/manifest.toa.yaml +17 -8
- package/components/identity.roles/operations/grant.d.ts +10 -0
- package/components/identity.roles/operations/grant.js +21 -0
- package/components/identity.roles/operations/grant.js.map +1 -0
- package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
- package/components/identity.roles/operations/lib/Entity.js +3 -0
- package/components/identity.roles/operations/lib/Entity.js.map +1 -0
- package/components/identity.roles/operations/list.d.ts +1 -4
- package/components/identity.roles/operations/list.js.map +1 -1
- package/components/identity.roles/operations/principal.d.ts +4 -6
- package/components/identity.roles/operations/principal.js +6 -1
- package/components/identity.roles/operations/principal.js.map +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +32 -0
- package/components/identity.roles/source/lib/Entity.ts +5 -0
- package/components/identity.roles/source/list.ts +2 -4
- package/components/identity.roles/source/principal.ts +10 -8
- package/components/identity.tokens/manifest.toa.yaml +19 -5
- package/components/identity.tokens/operations/authenticate.d.ts +2 -2
- package/components/identity.tokens/operations/authenticate.js +12 -5
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.js +1 -0
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.js +5 -1
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/operations/types.d.ts +8 -2
- package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
- package/components/identity.tokens/source/authenticate.test.ts +11 -4
- package/components/identity.tokens/source/authenticate.ts +14 -6
- package/components/identity.tokens/source/decrypt.test.ts +5 -3
- package/components/identity.tokens/source/decrypt.ts +9 -8
- package/components/identity.tokens/source/encrypt.test.ts +26 -2
- package/components/identity.tokens/source/encrypt.ts +5 -1
- package/components/identity.tokens/source/types.ts +9 -2
- package/components/octets.storage/manifest.toa.yaml +6 -7
- package/components/octets.storage/operations/get.js +2 -2
- package/components/octets.storage/operations/store.js +113 -3
- package/documentation/access.md +75 -38
- package/documentation/authorities.md +49 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +47 -22
- package/documentation/flow.md +31 -0
- package/documentation/identity.md +17 -22
- package/documentation/introspection.md +82 -0
- package/documentation/octets.md +81 -23
- package/documentation/protocol.md +13 -3
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/documentation/vary.md +14 -14
- package/features/access.feature +78 -46
- package/features/annotation.feature +1 -0
- package/features/auth.claim.feature +170 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +100 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +2 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +6 -1
- package/features/debug.feature +34 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +48 -0
- package/features/errors.feature +32 -7
- package/features/etag.feature +31 -0
- package/features/flow.feature +45 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +113 -23
- package/features/identity.feature +7 -2
- package/features/identity.federation.feature +66 -11
- package/features/identity.roles.feature +250 -7
- package/features/identity.tokens.feature +54 -4
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/methods.feature +47 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +8 -1
- package/features/octets.feature +82 -54
- package/features/octets.meta.feature +3 -0
- package/features/octets.workflows.feature +239 -19
- package/features/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +77 -2
- package/features/realtime.feature +34 -0
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- package/features/steps/Database.ts +16 -9
- package/features/steps/Gateway.ts +23 -6
- package/features/steps/IdP.ts +30 -25
- package/features/steps/Parameters.ts +4 -1
- package/features/steps/Realtime.ts +151 -0
- package/features/steps/components/echo/manifest.toa.yaml +14 -1
- package/features/steps/components/echo/operations/identity.js +7 -0
- package/features/steps/components/echo/operations/parameters.js +7 -0
- package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
- package/features/steps/components/echo.beacon/operations/hello.js +5 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +22 -1
- package/features/steps/components/octets.tester/operations/authority.js +7 -0
- package/features/steps/components/octets.tester/operations/baz.js +1 -2
- package/features/steps/components/octets.tester/operations/diversify.js +3 -1
- package/features/steps/components/octets.tester/operations/foo.js +2 -2
- package/features/steps/components/octets.tester/operations/redirect.js +12 -0
- package/features/steps/components/octets.tester/operations/yex.js +16 -0
- package/features/steps/components/octets.tester/operations/yield.js +13 -0
- package/features/steps/components/pots/manifest.toa.yaml +14 -3
- package/features/steps/components/users/manifest.toa.yaml +0 -1
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
- package/features/streams.feature +5 -0
- package/features/timing.feature +4 -1
- package/features/vary.feature +71 -0
- package/package.json +23 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/store.cos.yaml +25 -3
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Branch.ts +1 -0
- package/source/Composition.ts +0 -6
- package/source/Context.ts +1 -0
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +55 -15
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +67 -19
- package/source/HTTP/Context.ts +25 -2
- package/source/HTTP/Server.ts +54 -44
- package/source/HTTP/exceptions.ts +13 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +45 -2
- package/source/HTTP/messages.ts +23 -5
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +63 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +123 -33
- package/source/RTD/Context.ts +1 -1
- package/source/RTD/Endpoint.ts +3 -0
- package/source/RTD/Method.ts +16 -0
- package/source/RTD/Node.ts +29 -13
- package/source/RTD/Route.ts +5 -4
- package/source/RTD/Tree.ts +2 -2
- package/source/RTD/factory.ts +5 -2
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +7 -6
- package/source/Tenant.ts +6 -20
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Authorization.ts +37 -14
- package/source/directives/auth/Delegate.ts +42 -0
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Incept.ts +4 -3
- package/source/directives/auth/Role.test.ts +53 -6
- package/source/directives/auth/Role.ts +22 -14
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +1 -1
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/cors/CORS.ts +1 -1
- package/source/directives/dev/Development.ts +1 -1
- package/source/directives/flow/Fetch.ts +88 -0
- package/source/directives/flow/Flow.ts +34 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +6 -0
- package/source/directives/index.ts +3 -1
- package/source/directives/io/Input.ts +4 -4
- package/source/directives/io/Output.ts +4 -3
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Fetch.ts +11 -10
- package/source/directives/octets/List.ts +5 -5
- package/source/directives/octets/Octets.ts +1 -3
- package/source/directives/octets/Store.ts +30 -10
- package/source/directives/octets/bytes.test.ts +30 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/schemas.ts +4 -6
- package/source/directives/octets/workflows/Execution.ts +60 -8
- package/source/directives/octets/workflows/Workflow.ts +2 -1
- package/source/directives/require/Directive.ts +5 -0
- package/source/directives/require/Headers.ts +20 -0
- package/source/directives/require/Require.ts +28 -0
- package/source/directives/require/index.ts +3 -0
- package/source/directives/vary/Directive.ts +2 -1
- package/source/directives/vary/Embed.ts +14 -8
- package/source/directives/vary/Vary.ts +6 -4
- package/source/directives/vary/embeddings/Authority.ts +8 -0
- package/source/directives/vary/embeddings/Embedding.ts +2 -1
- package/source/directives/vary/embeddings/Parameter.ts +14 -0
- package/source/directives/vary/embeddings/index.ts +6 -4
- package/source/exceptions.ts +17 -11
- package/source/manifest.ts +10 -11
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Branch.d.ts +1 -0
- package/transpiled/Composition.d.ts +0 -1
- package/transpiled/Composition.js +0 -4
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +1 -0
- package/transpiled/Directive.js +4 -4
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +35 -7
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +3 -2
- package/transpiled/Factory.js +18 -10
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +3 -0
- package/transpiled/Gateway.js +51 -12
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +8 -1
- package/transpiled/HTTP/Context.js +16 -2
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +13 -2
- package/transpiled/HTTP/Server.js +41 -36
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +7 -1
- package/transpiled/HTTP/exceptions.js +13 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/index.js +3 -3
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +1 -0
- package/transpiled/HTTP/messages.js +24 -5
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +3 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +10 -2
- package/transpiled/Mapping.js +48 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +87 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +1 -1
- package/transpiled/RTD/Endpoint.d.ts +1 -0
- package/transpiled/RTD/Method.d.ts +4 -0
- package/transpiled/RTD/Method.js +11 -0
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -1
- package/transpiled/RTD/Node.js +23 -12
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +0 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +5 -2
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +34 -22
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +5 -3
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +4 -4
- package/transpiled/Remotes.js +6 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +5 -5
- package/transpiled/Tenant.js +2 -13
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +28 -20
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +26 -10
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +10 -0
- package/transpiled/directives/auth/Delegate.js +34 -0
- package/transpiled/directives/auth/Delegate.js.map +1 -0
- package/transpiled/directives/auth/Federation.d.ts +16 -0
- package/transpiled/directives/auth/Federation.js +57 -0
- package/transpiled/directives/auth/Federation.js.map +1 -0
- package/transpiled/directives/auth/Incept.js +4 -3
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Role.d.ts +4 -1
- package/transpiled/directives/auth/Role.js +20 -14
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +10 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +2 -1
- package/transpiled/directives/cache/Control.js +29 -12
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.js +1 -1
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/flow/Fetch.d.ts +13 -0
- package/transpiled/directives/flow/Fetch.js +59 -0
- package/transpiled/directives/flow/Fetch.js.map +1 -0
- package/transpiled/directives/flow/Flow.d.ts +10 -0
- package/transpiled/directives/flow/Flow.js +27 -0
- package/transpiled/directives/flow/Flow.js.map +1 -0
- package/transpiled/directives/flow/index.d.ts +2 -0
- package/transpiled/directives/flow/index.js +6 -0
- package/transpiled/directives/flow/index.js.map +1 -0
- package/transpiled/directives/flow/types.d.ts +5 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +3 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Input.js +2 -2
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/io/Output.js +2 -2
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Fetch.d.ts +3 -3
- package/transpiled/directives/octets/Fetch.js +8 -8
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +3 -3
- package/transpiled/directives/octets/List.js +3 -3
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.js +1 -3
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +6 -1
- package/transpiled/directives/octets/Store.js +17 -7
- package/transpiled/directives/octets/Store.js.map +1 -1
- package/transpiled/directives/octets/bytes.d.ts +1 -0
- package/transpiled/directives/octets/bytes.js +21 -0
- package/transpiled/directives/octets/bytes.js.map +1 -0
- package/transpiled/directives/octets/schemas.d.ts +4 -6
- package/transpiled/directives/octets/schemas.js +1 -3
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
- package/transpiled/directives/octets/workflows/Execution.js +44 -9
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.js +2 -1
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/require/Directive.d.ts +4 -0
- package/transpiled/directives/require/Directive.js +3 -0
- package/transpiled/directives/require/Directive.js.map +1 -0
- package/transpiled/directives/require/Headers.d.ts +7 -0
- package/transpiled/directives/require/Headers.js +19 -0
- package/transpiled/directives/require/Headers.js.map +1 -0
- package/transpiled/directives/require/Require.d.ts +9 -0
- package/transpiled/directives/require/Require.js +27 -0
- package/transpiled/directives/require/Require.js.map +1 -0
- package/transpiled/directives/require/index.d.ts +2 -0
- package/transpiled/directives/require/index.js +6 -0
- package/transpiled/directives/require/index.js.map +1 -0
- package/transpiled/directives/vary/Directive.d.ts +2 -1
- package/transpiled/directives/vary/Embed.d.ts +2 -1
- package/transpiled/directives/vary/Embed.js +8 -6
- package/transpiled/directives/vary/Embed.js.map +1 -1
- package/transpiled/directives/vary/Vary.d.ts +2 -2
- package/transpiled/directives/vary/Vary.js +3 -3
- package/transpiled/directives/vary/Vary.js.map +1 -1
- package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
- package/transpiled/directives/vary/embeddings/Authority.js +10 -0
- package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
- package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
- package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
- package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
- package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
- package/transpiled/directives/vary/embeddings/index.js +8 -4
- package/transpiled/directives/vary/embeddings/index.js.map +1 -1
- package/transpiled/exceptions.d.ts +3 -2
- package/transpiled/exceptions.js +10 -5
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/schemas.d.ts +1 -1
- package/transpiled/schemas.js +2 -2
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.json +9 -7
- package/components/identity.basic/operations/create.d.ts +0 -10
- package/components/identity.basic/operations/create.js +0 -10
- package/components/identity.basic/operations/create.js.map +0 -1
- package/components/identity.basic/source/create.ts +0 -18
- package/components/identity.federation/operations/create.d.ts +0 -10
- package/components/identity.federation/operations/create.js.map +0 -1
- package/components/identity.federation/operations/schemas.d.ts +0 -59
- package/components/identity.federation/operations/schemas.js +0 -9
- package/components/identity.federation/operations/schemas.js.map +0 -1
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/octets.storage/operations/permute.js +0 -7
- package/schemas/octets/context.cos.yaml +0 -1
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Permute.ts +0 -44
- package/transpiled/directives/octets/Permute.d.ts +0 -11
- package/transpiled/directives/octets/Permute.js +0 -58
- package/transpiled/directives/octets/Permute.js.map +0 -1
- /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@security
|
|
1
2
|
Feature: Basic authentication
|
|
2
3
|
|
|
3
4
|
Background:
|
|
@@ -7,6 +8,7 @@ Feature: Basic authentication
|
|
|
7
8
|
When the following request is received:
|
|
8
9
|
"""
|
|
9
10
|
POST /identity/basic/ HTTP/1.1
|
|
11
|
+
host: nex.toa.io
|
|
10
12
|
content-type: application/yaml
|
|
11
13
|
|
|
12
14
|
username: developer
|
|
@@ -19,7 +21,9 @@ Feature: Basic authentication
|
|
|
19
21
|
When the following request is received:
|
|
20
22
|
"""
|
|
21
23
|
POST /identity/basic/ HTTP/1.1
|
|
24
|
+
host: nex.toa.io
|
|
22
25
|
content-type: application/yaml
|
|
26
|
+
accept: application/yaml
|
|
23
27
|
|
|
24
28
|
username: developer
|
|
25
29
|
password: secret#1234
|
|
@@ -35,18 +39,19 @@ Feature: Basic authentication
|
|
|
35
39
|
exposition:
|
|
36
40
|
/:
|
|
37
41
|
io:output: true
|
|
38
|
-
anonymous: true
|
|
42
|
+
anonymous: true # checking compatibility with anonymous access
|
|
39
43
|
POST:
|
|
40
44
|
incept: id
|
|
41
45
|
endpoint: transit
|
|
42
46
|
query: ~
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
/:id: # credential testing route
|
|
48
|
+
id: id
|
|
49
|
+
GET: observe
|
|
46
50
|
"""
|
|
47
51
|
When the following request is received:
|
|
48
52
|
"""
|
|
49
53
|
POST /users/ HTTP/1.1
|
|
54
|
+
host: nex.toa.io
|
|
50
55
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
51
56
|
accept: application/yaml
|
|
52
57
|
content-type: application/yaml
|
|
@@ -64,6 +69,7 @@ Feature: Basic authentication
|
|
|
64
69
|
# basic credentials have been created
|
|
65
70
|
"""
|
|
66
71
|
GET /users/${{ id }}/ HTTP/1.1
|
|
72
|
+
host: nex.toa.io
|
|
67
73
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
68
74
|
"""
|
|
69
75
|
Then the following reply is sent:
|
|
@@ -74,6 +80,7 @@ Feature: Basic authentication
|
|
|
74
80
|
# valid token has been issued
|
|
75
81
|
"""
|
|
76
82
|
GET /users/${{ id }}/ HTTP/1.1
|
|
83
|
+
host: nex.toa.io
|
|
77
84
|
authorization: Token ${{ token }}
|
|
78
85
|
"""
|
|
79
86
|
Then the following reply is sent:
|
|
@@ -81,6 +88,38 @@ Feature: Basic authentication
|
|
|
81
88
|
200 OK
|
|
82
89
|
"""
|
|
83
90
|
|
|
91
|
+
# username is taken
|
|
92
|
+
When the following request is received:
|
|
93
|
+
"""
|
|
94
|
+
POST /users/ HTTP/1.1
|
|
95
|
+
host: nex.toa.io
|
|
96
|
+
authorization: Basic dXNlcjphbm90aGVycGFzczEyMzQ=
|
|
97
|
+
accept: application/yaml
|
|
98
|
+
content-type: application/yaml
|
|
99
|
+
|
|
100
|
+
name: Bill Smith
|
|
101
|
+
"""
|
|
102
|
+
Then the following reply is sent:
|
|
103
|
+
"""
|
|
104
|
+
409 Conflict
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
# credentials already exists
|
|
108
|
+
When the following request is received:
|
|
109
|
+
"""
|
|
110
|
+
POST /users/ HTTP/1.1
|
|
111
|
+
host: nex.toa.io
|
|
112
|
+
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
113
|
+
accept: application/yaml
|
|
114
|
+
content-type: application/yaml
|
|
115
|
+
|
|
116
|
+
name: Bill Smith
|
|
117
|
+
"""
|
|
118
|
+
Then the following reply is sent:
|
|
119
|
+
"""
|
|
120
|
+
409 Conflict
|
|
121
|
+
"""
|
|
122
|
+
|
|
84
123
|
Scenario: Changing the password
|
|
85
124
|
Given the annotation:
|
|
86
125
|
"""yaml
|
|
@@ -93,11 +132,12 @@ Feature: Basic authentication
|
|
|
93
132
|
access: granted!
|
|
94
133
|
"""
|
|
95
134
|
And the `identity.basic` database contains:
|
|
96
|
-
| _id | _version | username | password |
|
|
97
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
135
|
+
| _id | _version | authority | username | password |
|
|
136
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
98
137
|
When the following request is received:
|
|
99
138
|
"""
|
|
100
139
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
140
|
+
host: nex.toa.io
|
|
101
141
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
102
142
|
accept: application/yaml
|
|
103
143
|
content-type: application/yaml
|
|
@@ -112,6 +152,7 @@ Feature: Basic authentication
|
|
|
112
152
|
# old password
|
|
113
153
|
"""
|
|
114
154
|
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
155
|
+
host: nex.toa.io
|
|
115
156
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
116
157
|
"""
|
|
117
158
|
Then the following reply is sent:
|
|
@@ -122,6 +163,7 @@ Feature: Basic authentication
|
|
|
122
163
|
# new password
|
|
123
164
|
"""
|
|
124
165
|
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
166
|
+
host: nex.toa.io
|
|
125
167
|
authorization: Basic ZGV2ZWxvcGVyOm5ldy1zZWNyZXQ=
|
|
126
168
|
"""
|
|
127
169
|
Then the following reply is sent:
|
|
@@ -129,14 +171,15 @@ Feature: Basic authentication
|
|
|
129
171
|
200 OK
|
|
130
172
|
"""
|
|
131
173
|
|
|
132
|
-
Scenario: Changing other identity
|
|
174
|
+
Scenario: Changing other identity's password
|
|
133
175
|
Given the `identity.basic` database contains:
|
|
134
|
-
| _id | username | password | _version |
|
|
135
|
-
| efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
136
|
-
| 6c0be50cbfb043acafe69cc7d3895f84 | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
176
|
+
| _id | authority | username | password | _version |
|
|
177
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
178
|
+
| 6c0be50cbfb043acafe69cc7d3895f84 | nex | attacker | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
137
179
|
When the following request is received:
|
|
138
180
|
"""
|
|
139
181
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
182
|
+
host: nex.toa.io
|
|
140
183
|
authorization: Basic YXR0YWNrZXI6c2VjcmV0
|
|
141
184
|
accept: application/yaml
|
|
142
185
|
content-type: application/yaml
|
|
@@ -152,6 +195,7 @@ Feature: Basic authentication
|
|
|
152
195
|
When the following request is received:
|
|
153
196
|
"""
|
|
154
197
|
POST /identity/basic/ HTTP/1.1
|
|
198
|
+
host: nex.toa.io
|
|
155
199
|
accept: application/yaml
|
|
156
200
|
content-type: application/yaml
|
|
157
201
|
|
|
@@ -160,17 +204,17 @@ Feature: Basic authentication
|
|
|
160
204
|
"""
|
|
161
205
|
Then the following reply is sent:
|
|
162
206
|
"""
|
|
163
|
-
|
|
207
|
+
422 Unprocessable Entity
|
|
164
208
|
|
|
165
209
|
code: <code>
|
|
166
210
|
message: <problem> is not meeting the requirements.
|
|
167
211
|
"""
|
|
168
212
|
Examples:
|
|
169
|
-
| username
|
|
170
|
-
|
|
|
171
|
-
| root
|
|
213
|
+
| username | password | problem | code |
|
|
214
|
+
| zYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOrzYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOris129 | secret#1234 | Username | INVALID_USERNAME |
|
|
215
|
+
| root | short | Password | INVALID_PASSWORD |
|
|
172
216
|
|
|
173
|
-
Scenario Outline:
|
|
217
|
+
Scenario Outline: <property> is not meeting one of requirements
|
|
174
218
|
Given the `identity.basic` configuration:
|
|
175
219
|
"""yaml
|
|
176
220
|
<property>:
|
|
@@ -178,11 +222,12 @@ Feature: Basic authentication
|
|
|
178
222
|
- ^[^A]{1,16}$ # should not contain 'A'
|
|
179
223
|
"""
|
|
180
224
|
And the `identity.basic` database contains:
|
|
181
|
-
| _id | _version | username | password |
|
|
182
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
225
|
+
| _id | _version | authority | username | password |
|
|
226
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
183
227
|
When the following request is received:
|
|
184
228
|
"""
|
|
185
229
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
230
|
+
host: nex.toa.io
|
|
186
231
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
187
232
|
accept: application/yaml
|
|
188
233
|
content-type: application/yaml
|
|
@@ -191,7 +236,7 @@ Feature: Basic authentication
|
|
|
191
236
|
"""
|
|
192
237
|
Then the following reply is sent:
|
|
193
238
|
"""
|
|
194
|
-
|
|
239
|
+
422 Unprocessable Entity
|
|
195
240
|
"""
|
|
196
241
|
Examples:
|
|
197
242
|
| property |
|
|
@@ -215,6 +260,7 @@ Feature: Basic authentication
|
|
|
215
260
|
When the following request is received:
|
|
216
261
|
"""
|
|
217
262
|
POST /identity/basic/ HTTP/1.1
|
|
263
|
+
host: nex.toa.io
|
|
218
264
|
accept: application/yaml
|
|
219
265
|
content-type: application/yaml
|
|
220
266
|
|
|
@@ -232,6 +278,7 @@ Feature: Basic authentication
|
|
|
232
278
|
When the following request is received:
|
|
233
279
|
"""
|
|
234
280
|
GET /identity/roles/${{ id }}/ HTTP/1.1
|
|
281
|
+
host: nex.toa.io
|
|
235
282
|
authorization: Basic cm9vdDpzZWNyZXQjMTIzNA==
|
|
236
283
|
accept: application/yaml
|
|
237
284
|
"""
|
|
@@ -245,6 +292,7 @@ Feature: Basic authentication
|
|
|
245
292
|
When the following request is received:
|
|
246
293
|
"""
|
|
247
294
|
GET / HTTP/1.1
|
|
295
|
+
host: nex.toa.io
|
|
248
296
|
authorization: Token ${{ token }}
|
|
249
297
|
accept: application/yaml
|
|
250
298
|
"""
|
|
@@ -258,6 +306,7 @@ Feature: Basic authentication
|
|
|
258
306
|
When the following request is received:
|
|
259
307
|
"""
|
|
260
308
|
PATCH /identity/basic/${{ id }}/ HTTP/1.1
|
|
309
|
+
host: nex.toa.io
|
|
261
310
|
authorization: Token ${{ token }}
|
|
262
311
|
accept: application/yaml
|
|
263
312
|
content-type: application/yaml
|
|
@@ -266,15 +315,14 @@ Feature: Basic authentication
|
|
|
266
315
|
"""
|
|
267
316
|
Then the following reply is sent:
|
|
268
317
|
"""
|
|
269
|
-
|
|
318
|
+
422 Unprocessable Entity
|
|
270
319
|
|
|
271
320
|
code: PRINCIPAL_LOCKED
|
|
272
321
|
message: Principal username cannot be changed.
|
|
273
322
|
"""
|
|
274
323
|
|
|
275
324
|
Scenario: Creating an Identity using inception with existing credentials
|
|
276
|
-
Given the `
|
|
277
|
-
And the `users` is running with the following manifest:
|
|
325
|
+
Given the `users` is running with the following manifest:
|
|
278
326
|
"""yaml
|
|
279
327
|
exposition:
|
|
280
328
|
/:
|
|
@@ -282,12 +330,14 @@ Feature: Basic authentication
|
|
|
282
330
|
anonymous: true
|
|
283
331
|
POST:
|
|
284
332
|
incept: id
|
|
333
|
+
query: false
|
|
285
334
|
endpoint: transit
|
|
286
335
|
"""
|
|
287
336
|
When the following request is received:
|
|
288
337
|
# identity inception
|
|
289
338
|
"""
|
|
290
339
|
POST /users/ HTTP/1.1
|
|
340
|
+
host: nex.toa.io
|
|
291
341
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
292
342
|
accept: application/yaml
|
|
293
343
|
content-type: application/yaml
|
|
@@ -302,12 +352,52 @@ Feature: Basic authentication
|
|
|
302
352
|
# same credentials
|
|
303
353
|
"""
|
|
304
354
|
POST /users/ HTTP/1.1
|
|
355
|
+
host: nex.toa.io
|
|
305
356
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
306
|
-
content-type:
|
|
357
|
+
content-type: application/yaml
|
|
307
358
|
|
|
308
359
|
name: Mary Louis
|
|
309
360
|
"""
|
|
310
361
|
Then the following reply is sent:
|
|
311
362
|
"""
|
|
312
|
-
|
|
363
|
+
409 Conflict
|
|
364
|
+
"""
|
|
365
|
+
|
|
366
|
+
Scenario: Incorrect credentials format
|
|
367
|
+
Given the `identity.basic` database is empty
|
|
368
|
+
And the `users` is running with the following manifest:
|
|
369
|
+
"""yaml
|
|
370
|
+
exposition:
|
|
371
|
+
/:
|
|
372
|
+
io:output: true
|
|
373
|
+
anonymous: true
|
|
374
|
+
POST:
|
|
375
|
+
incept: id
|
|
376
|
+
endpoint: transit
|
|
377
|
+
"""
|
|
378
|
+
When the following request is received:
|
|
379
|
+
"""
|
|
380
|
+
GET /identity/ HTTP/1.1
|
|
381
|
+
host: nex.toa.io
|
|
382
|
+
authorization: Basic not-base64
|
|
383
|
+
"""
|
|
384
|
+
Then the following reply is sent:
|
|
385
|
+
"""
|
|
386
|
+
401 Unauthorized
|
|
387
|
+
"""
|
|
388
|
+
When the following request is received:
|
|
389
|
+
"""
|
|
390
|
+
POST /users/ HTTP/1.1
|
|
391
|
+
host: nex.toa.io
|
|
392
|
+
authorization: Basic not-base64
|
|
393
|
+
accept: application/yaml
|
|
394
|
+
content-type: application/yaml
|
|
395
|
+
|
|
396
|
+
name: Bill Smith
|
|
397
|
+
"""
|
|
398
|
+
Then the following reply is sent:
|
|
399
|
+
"""
|
|
400
|
+
422 Unprocessable Entity
|
|
401
|
+
|
|
402
|
+
code: INVALID_CREDENTIALS
|
|
313
403
|
"""
|
|
@@ -2,8 +2,8 @@ Feature: Identity resource
|
|
|
2
2
|
|
|
3
3
|
Scenario: Requesting own Identity
|
|
4
4
|
Given the `identity.basic` database contains:
|
|
5
|
-
| _id | username | password |
|
|
6
|
-
| efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
5
|
+
| _id | authority | username | password |
|
|
6
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
7
7
|
And the `identity.roles` database contains:
|
|
8
8
|
| _id | identity | role |
|
|
9
9
|
| 9c4702490ff84f2a9e1b1da2ab64bdd4 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
@@ -11,6 +11,7 @@ Feature: Identity resource
|
|
|
11
11
|
When the following request is received:
|
|
12
12
|
"""
|
|
13
13
|
GET /identity/ HTTP/1.1
|
|
14
|
+
host: nex.toa.io
|
|
14
15
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
15
16
|
accept: application/yaml
|
|
16
17
|
"""
|
|
@@ -27,6 +28,7 @@ Feature: Identity resource
|
|
|
27
28
|
When the following request is received:
|
|
28
29
|
"""
|
|
29
30
|
GET /identity/ HTTP/1.1
|
|
31
|
+
host: nex.toa.io
|
|
30
32
|
authorization: Token ${{ User.token }}
|
|
31
33
|
accept: application/yaml
|
|
32
34
|
"""
|
|
@@ -43,6 +45,7 @@ Feature: Identity resource
|
|
|
43
45
|
When the following request is received:
|
|
44
46
|
"""
|
|
45
47
|
GET /identity/ HTTP/1.1
|
|
48
|
+
host: nex.toa.io
|
|
46
49
|
authorization: Token ${{ User.token }}
|
|
47
50
|
accept: application/yaml
|
|
48
51
|
"""
|
|
@@ -61,6 +64,7 @@ Feature: Identity resource
|
|
|
61
64
|
When the following request is received:
|
|
62
65
|
"""
|
|
63
66
|
GET /identity/ HTTP/1.1
|
|
67
|
+
host: nex.toa.io
|
|
64
68
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
65
69
|
"""
|
|
66
70
|
Then the following reply is sent:
|
|
@@ -70,6 +74,7 @@ Feature: Identity resource
|
|
|
70
74
|
When the following request is received:
|
|
71
75
|
"""
|
|
72
76
|
GET /identity/ HTTP/1.1
|
|
77
|
+
host: nex.toa.io
|
|
73
78
|
"""
|
|
74
79
|
Then the following reply is sent:
|
|
75
80
|
"""
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
@security
|
|
1
2
|
Feature: Identity Federation
|
|
2
3
|
|
|
3
4
|
Background:
|
|
4
5
|
Given the `identity.federation` database is empty
|
|
5
|
-
|
|
6
|
+
And local IDP is running
|
|
6
7
|
|
|
7
8
|
Scenario: Getting identity for a new user
|
|
8
9
|
Given the `identity.federation` configuration:
|
|
9
10
|
"""yaml
|
|
10
|
-
explicit_identity_creation: false
|
|
11
11
|
trust:
|
|
12
|
-
-
|
|
12
|
+
- iss: http://localhost:44444
|
|
13
13
|
"""
|
|
14
14
|
And the IDP token for User is issued
|
|
15
15
|
When the following request is received:
|
|
16
16
|
"""
|
|
17
17
|
GET /identity/ HTTP/1.1
|
|
18
|
+
host: nex.toa.io
|
|
18
19
|
authorization: Bearer ${{ User.id_token }}
|
|
19
20
|
accept: application/yaml
|
|
20
21
|
content-type: application/yaml
|
|
@@ -31,33 +32,36 @@ Feature: Identity Federation
|
|
|
31
32
|
When the following request is received:
|
|
32
33
|
"""
|
|
33
34
|
GET /identity/ HTTP/1.1
|
|
35
|
+
host: nex.toa.io
|
|
34
36
|
accept: application/yaml
|
|
35
37
|
authorization: Token ${{ User.token }}
|
|
36
38
|
"""
|
|
37
39
|
Then the following reply is sent:
|
|
38
40
|
"""
|
|
39
41
|
200 OK
|
|
42
|
+
|
|
40
43
|
id: ${{ User.id }}
|
|
41
44
|
"""
|
|
42
45
|
# ensuring identity idempotency
|
|
43
46
|
When the following request is received:
|
|
44
47
|
"""
|
|
45
48
|
GET /identity/ HTTP/1.1
|
|
49
|
+
host: nex.toa.io
|
|
46
50
|
authorization: Bearer ${{ User.id_token }}
|
|
47
51
|
accept: application/yaml
|
|
48
52
|
"""
|
|
49
53
|
Then the following reply is sent:
|
|
50
54
|
"""
|
|
51
55
|
200 OK
|
|
56
|
+
|
|
52
57
|
id: ${{ User.id }}
|
|
53
58
|
"""
|
|
54
59
|
|
|
55
60
|
Scenario: Getting identity for a user with symmetric tokens
|
|
56
61
|
Given the `identity.federation` configuration:
|
|
57
62
|
"""yaml
|
|
58
|
-
explicit_identity_creation: false
|
|
59
63
|
trust:
|
|
60
|
-
-
|
|
64
|
+
- iss: http://localhost:44444
|
|
61
65
|
secrets:
|
|
62
66
|
HS384:
|
|
63
67
|
k1: the-secret
|
|
@@ -69,6 +73,7 @@ Feature: Identity Federation
|
|
|
69
73
|
When the following request is received:
|
|
70
74
|
"""
|
|
71
75
|
GET /identity/ HTTP/1.1
|
|
76
|
+
host: nex.toa.io
|
|
72
77
|
authorization: Bearer ${{ GoodUser.id_token }}
|
|
73
78
|
accept: application/yaml
|
|
74
79
|
content-type: application/yaml
|
|
@@ -81,11 +86,11 @@ Feature: Identity Federation
|
|
|
81
86
|
id: ${{ GoodUser.id }}
|
|
82
87
|
"""
|
|
83
88
|
|
|
84
|
-
Scenario: Creating an Identity using inception
|
|
89
|
+
Scenario: Creating an Identity using inception
|
|
85
90
|
Given the `identity.federation` configuration:
|
|
86
91
|
"""yaml
|
|
87
92
|
trust:
|
|
88
|
-
-
|
|
93
|
+
- iss: http://localhost:44444
|
|
89
94
|
"""
|
|
90
95
|
Given the `users` is running with the following manifest:
|
|
91
96
|
"""yaml
|
|
@@ -93,8 +98,8 @@ Feature: Identity Federation
|
|
|
93
98
|
/:
|
|
94
99
|
anonymous: true
|
|
95
100
|
POST:
|
|
96
|
-
io:output:
|
|
97
|
-
incept: id
|
|
101
|
+
io:output: [id]
|
|
102
|
+
auth:incept: id
|
|
98
103
|
endpoint: create
|
|
99
104
|
"""
|
|
100
105
|
And the IDP token for Bill is issued
|
|
@@ -102,6 +107,7 @@ Feature: Identity Federation
|
|
|
102
107
|
# identity inception
|
|
103
108
|
"""
|
|
104
109
|
POST /users/ HTTP/1.1
|
|
110
|
+
host: nex.toa.io
|
|
105
111
|
authorization: Bearer ${{ Bill.id_token }}
|
|
106
112
|
accept: application/yaml
|
|
107
113
|
content-type: application/yaml
|
|
@@ -119,6 +125,7 @@ Feature: Identity Federation
|
|
|
119
125
|
When the following request is received:
|
|
120
126
|
"""
|
|
121
127
|
GET /identity/ HTTP/1.1
|
|
128
|
+
host: nex.toa.io
|
|
122
129
|
authorization: Token ${{ Bill.token }}
|
|
123
130
|
accept: application/yaml
|
|
124
131
|
"""
|
|
@@ -130,24 +137,72 @@ Feature: Identity Federation
|
|
|
130
137
|
When the following request is received:
|
|
131
138
|
"""
|
|
132
139
|
GET /identity/ HTTP/1.1
|
|
140
|
+
host: nex.toa.io
|
|
133
141
|
authorization: Bearer ${{ Bill.id_token }}
|
|
134
142
|
accept: application/yaml
|
|
135
143
|
"""
|
|
136
144
|
Then the following reply is sent:
|
|
137
145
|
"""
|
|
138
146
|
200 OK
|
|
147
|
+
|
|
139
148
|
id: ${{ Bill.id }}
|
|
140
149
|
"""
|
|
141
150
|
And the following request is received:
|
|
142
151
|
# same credentials
|
|
143
152
|
"""
|
|
144
153
|
POST /users/ HTTP/1.1
|
|
154
|
+
host: nex.toa.io
|
|
145
155
|
authorization: Bearer ${{ Bill.id_token }}
|
|
146
|
-
content-type:
|
|
156
|
+
content-type: application/yaml
|
|
147
157
|
|
|
148
158
|
name: Mary Louis
|
|
149
159
|
"""
|
|
150
160
|
Then the following reply is sent:
|
|
151
161
|
"""
|
|
152
|
-
|
|
162
|
+
409 Conflict
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
Scenario: Granting a `system` role to a Principal
|
|
166
|
+
Given the `identity.federation` configuration:
|
|
167
|
+
"""yaml
|
|
168
|
+
trust:
|
|
169
|
+
- iss: http://localhost:44444
|
|
170
|
+
principal:
|
|
171
|
+
iss: http://localhost:44444
|
|
172
|
+
sub: root
|
|
173
|
+
"""
|
|
174
|
+
And the IDP token for root is issued
|
|
175
|
+
|
|
176
|
+
# create an identity
|
|
177
|
+
When the following request is received:
|
|
178
|
+
"""
|
|
179
|
+
GET /identity/ HTTP/1.1
|
|
180
|
+
host: nex.toa.io
|
|
181
|
+
authorization: Bearer ${{ root.id_token }}
|
|
182
|
+
accept: application/yaml
|
|
183
|
+
content-type: application/yaml
|
|
184
|
+
"""
|
|
185
|
+
Then the following reply is sent:
|
|
186
|
+
"""
|
|
187
|
+
200 OK
|
|
188
|
+
authorization: Token ${{ root.token }}
|
|
189
|
+
|
|
190
|
+
id: ${{ root.id }}
|
|
191
|
+
"""
|
|
192
|
+
|
|
193
|
+
# check the role
|
|
194
|
+
When the following request is received:
|
|
195
|
+
"""
|
|
196
|
+
GET /identity/ HTTP/1.1
|
|
197
|
+
host: nex.toa.io
|
|
198
|
+
accept: application/yaml
|
|
199
|
+
authorization: Token ${{ root.token }}
|
|
200
|
+
"""
|
|
201
|
+
Then the following reply is sent:
|
|
202
|
+
"""
|
|
203
|
+
200 OK
|
|
204
|
+
|
|
205
|
+
id: ${{ root.id }}
|
|
206
|
+
roles:
|
|
207
|
+
- system
|
|
153
208
|
"""
|