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