@toa.io/extensions.exposition 1.0.0-alpha.6 → 1.0.0-alpha.60
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 +21 -10
- 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/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/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 +18 -7
- 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 +5 -7
- package/components/octets.storage/operations/store.js +105 -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 +64 -23
- package/documentation/protocol.md +3 -0
- 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 +3 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +5 -0
- package/features/debug.feature +34 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +4 -0
- package/features/errors.feature +20 -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 +125 -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/octets.download.feature +117 -0
- package/features/octets.entries.feature +8 -1
- package/features/octets.feature +58 -64
- 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} +65 -2
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- 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 +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 +1 -0
- package/features/timing.feature +27 -1
- package/features/vary.feature +71 -0
- package/package.json +22 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/node.cos.yaml +1 -0
- package/schemas/octets/store.cos.yaml +1 -0
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Composition.ts +2 -2
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +48 -12
- package/source/Factory.ts +10 -11
- package/source/Gateway.ts +49 -20
- package/source/HTTP/Context.ts +24 -2
- package/source/HTTP/Server.ts +50 -43
- package/source/HTTP/exceptions.ts +7 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +39 -2
- package/source/HTTP/messages.ts +7 -3
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +63 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +117 -33
- 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/factory.ts +5 -2
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +2 -9
- package/source/Tenant.ts +0 -8
- package/source/deployment.ts +32 -22
- 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/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 +2 -2
- 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 +21 -8
- 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/Parameter.ts +14 -0
- package/source/directives/vary/embeddings/index.ts +6 -4
- package/source/exceptions.ts +22 -11
- package/source/manifest.ts +10 -11
- 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 +6 -4
- package/transpiled/Endpoint.js +28 -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 +36 -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 +37 -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/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 +9 -3
- 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 +83 -30
- package/transpiled/Query.js.map +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/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 +2 -4
- package/transpiled/Remotes.js +0 -5
- 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 +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/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/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 +6 -3
- package/transpiled/directives/octets/Store.js +12 -6
- 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/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 +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/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 +0 -56
- 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,6 +18,20 @@ 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:
|
|
@@ -23,18 +39,19 @@ Feature: Basic authentication
|
|
|
23
39
|
exposition:
|
|
24
40
|
/:
|
|
25
41
|
io:output: true
|
|
26
|
-
anonymous: true
|
|
42
|
+
anonymous: true # checking compatibility with anonymous access
|
|
27
43
|
POST:
|
|
28
44
|
incept: id
|
|
29
45
|
endpoint: transit
|
|
30
46
|
query: ~
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
/:id: # credential testing route
|
|
48
|
+
id: id
|
|
49
|
+
GET: observe
|
|
34
50
|
"""
|
|
35
51
|
When the following request is received:
|
|
36
52
|
"""
|
|
37
53
|
POST /users/ HTTP/1.1
|
|
54
|
+
host: nex.toa.io
|
|
38
55
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
39
56
|
accept: application/yaml
|
|
40
57
|
content-type: application/yaml
|
|
@@ -52,6 +69,7 @@ Feature: Basic authentication
|
|
|
52
69
|
# basic credentials have been created
|
|
53
70
|
"""
|
|
54
71
|
GET /users/${{ id }}/ HTTP/1.1
|
|
72
|
+
host: nex.toa.io
|
|
55
73
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
56
74
|
"""
|
|
57
75
|
Then the following reply is sent:
|
|
@@ -62,6 +80,7 @@ Feature: Basic authentication
|
|
|
62
80
|
# valid token has been issued
|
|
63
81
|
"""
|
|
64
82
|
GET /users/${{ id }}/ HTTP/1.1
|
|
83
|
+
host: nex.toa.io
|
|
65
84
|
authorization: Token ${{ token }}
|
|
66
85
|
"""
|
|
67
86
|
Then the following reply is sent:
|
|
@@ -69,6 +88,38 @@ Feature: Basic authentication
|
|
|
69
88
|
200 OK
|
|
70
89
|
"""
|
|
71
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
|
+
|
|
72
123
|
Scenario: Changing the password
|
|
73
124
|
Given the annotation:
|
|
74
125
|
"""yaml
|
|
@@ -81,11 +132,12 @@ Feature: Basic authentication
|
|
|
81
132
|
access: granted!
|
|
82
133
|
"""
|
|
83
134
|
And the `identity.basic` database contains:
|
|
84
|
-
| _id | _version | username | password |
|
|
85
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
135
|
+
| _id | _version | authority | username | password |
|
|
136
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
86
137
|
When the following request is received:
|
|
87
138
|
"""
|
|
88
139
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
140
|
+
host: nex.toa.io
|
|
89
141
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
90
142
|
accept: application/yaml
|
|
91
143
|
content-type: application/yaml
|
|
@@ -100,6 +152,7 @@ Feature: Basic authentication
|
|
|
100
152
|
# old password
|
|
101
153
|
"""
|
|
102
154
|
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
155
|
+
host: nex.toa.io
|
|
103
156
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
104
157
|
"""
|
|
105
158
|
Then the following reply is sent:
|
|
@@ -110,6 +163,7 @@ Feature: Basic authentication
|
|
|
110
163
|
# new password
|
|
111
164
|
"""
|
|
112
165
|
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
166
|
+
host: nex.toa.io
|
|
113
167
|
authorization: Basic ZGV2ZWxvcGVyOm5ldy1zZWNyZXQ=
|
|
114
168
|
"""
|
|
115
169
|
Then the following reply is sent:
|
|
@@ -117,14 +171,15 @@ Feature: Basic authentication
|
|
|
117
171
|
200 OK
|
|
118
172
|
"""
|
|
119
173
|
|
|
120
|
-
Scenario: Changing other identity
|
|
174
|
+
Scenario: Changing other identity's password
|
|
121
175
|
Given the `identity.basic` database contains:
|
|
122
|
-
| _id | username | password | _version |
|
|
123
|
-
| efe3a65ebbee47ed95a73edd911ea328 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
|
|
124
|
-
| 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 |
|
|
125
179
|
When the following request is received:
|
|
126
180
|
"""
|
|
127
181
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
182
|
+
host: nex.toa.io
|
|
128
183
|
authorization: Basic YXR0YWNrZXI6c2VjcmV0
|
|
129
184
|
accept: application/yaml
|
|
130
185
|
content-type: application/yaml
|
|
@@ -140,6 +195,7 @@ Feature: Basic authentication
|
|
|
140
195
|
When the following request is received:
|
|
141
196
|
"""
|
|
142
197
|
POST /identity/basic/ HTTP/1.1
|
|
198
|
+
host: nex.toa.io
|
|
143
199
|
accept: application/yaml
|
|
144
200
|
content-type: application/yaml
|
|
145
201
|
|
|
@@ -148,17 +204,17 @@ Feature: Basic authentication
|
|
|
148
204
|
"""
|
|
149
205
|
Then the following reply is sent:
|
|
150
206
|
"""
|
|
151
|
-
|
|
207
|
+
422 Unprocessable Entity
|
|
152
208
|
|
|
153
209
|
code: <code>
|
|
154
210
|
message: <problem> is not meeting the requirements.
|
|
155
211
|
"""
|
|
156
212
|
Examples:
|
|
157
|
-
| username
|
|
158
|
-
|
|
|
159
|
-
| root
|
|
213
|
+
| username | password | problem | code |
|
|
214
|
+
| zYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOrzYF8G6obtE3c5ARpZjnMwv0L7lX2dQUyJ1KiHS9ag4fThDPVxCsuIWmNeBqkOris129 | secret#1234 | Username | INVALID_USERNAME |
|
|
215
|
+
| root | short | Password | INVALID_PASSWORD |
|
|
160
216
|
|
|
161
|
-
Scenario Outline:
|
|
217
|
+
Scenario Outline: <property> is not meeting one of requirements
|
|
162
218
|
Given the `identity.basic` configuration:
|
|
163
219
|
"""yaml
|
|
164
220
|
<property>:
|
|
@@ -166,11 +222,12 @@ Feature: Basic authentication
|
|
|
166
222
|
- ^[^A]{1,16}$ # should not contain 'A'
|
|
167
223
|
"""
|
|
168
224
|
And the `identity.basic` database contains:
|
|
169
|
-
| _id | _version | username | password |
|
|
170
|
-
| efe3a65ebbee47ed95a73edd911ea328 | 1 | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
225
|
+
| _id | _version | authority | username | password |
|
|
226
|
+
| efe3a65ebbee47ed95a73edd911ea328 | 1 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
171
227
|
When the following request is received:
|
|
172
228
|
"""
|
|
173
229
|
PATCH /identity/basic/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
230
|
+
host: nex.toa.io
|
|
174
231
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
175
232
|
accept: application/yaml
|
|
176
233
|
content-type: application/yaml
|
|
@@ -179,7 +236,7 @@ Feature: Basic authentication
|
|
|
179
236
|
"""
|
|
180
237
|
Then the following reply is sent:
|
|
181
238
|
"""
|
|
182
|
-
|
|
239
|
+
422 Unprocessable Entity
|
|
183
240
|
"""
|
|
184
241
|
Examples:
|
|
185
242
|
| property |
|
|
@@ -203,6 +260,7 @@ Feature: Basic authentication
|
|
|
203
260
|
When the following request is received:
|
|
204
261
|
"""
|
|
205
262
|
POST /identity/basic/ HTTP/1.1
|
|
263
|
+
host: nex.toa.io
|
|
206
264
|
accept: application/yaml
|
|
207
265
|
content-type: application/yaml
|
|
208
266
|
|
|
@@ -220,6 +278,7 @@ Feature: Basic authentication
|
|
|
220
278
|
When the following request is received:
|
|
221
279
|
"""
|
|
222
280
|
GET /identity/roles/${{ id }}/ HTTP/1.1
|
|
281
|
+
host: nex.toa.io
|
|
223
282
|
authorization: Basic cm9vdDpzZWNyZXQjMTIzNA==
|
|
224
283
|
accept: application/yaml
|
|
225
284
|
"""
|
|
@@ -233,6 +292,7 @@ Feature: Basic authentication
|
|
|
233
292
|
When the following request is received:
|
|
234
293
|
"""
|
|
235
294
|
GET / HTTP/1.1
|
|
295
|
+
host: nex.toa.io
|
|
236
296
|
authorization: Token ${{ token }}
|
|
237
297
|
accept: application/yaml
|
|
238
298
|
"""
|
|
@@ -246,6 +306,7 @@ Feature: Basic authentication
|
|
|
246
306
|
When the following request is received:
|
|
247
307
|
"""
|
|
248
308
|
PATCH /identity/basic/${{ id }}/ HTTP/1.1
|
|
309
|
+
host: nex.toa.io
|
|
249
310
|
authorization: Token ${{ token }}
|
|
250
311
|
accept: application/yaml
|
|
251
312
|
content-type: application/yaml
|
|
@@ -254,15 +315,14 @@ Feature: Basic authentication
|
|
|
254
315
|
"""
|
|
255
316
|
Then the following reply is sent:
|
|
256
317
|
"""
|
|
257
|
-
|
|
318
|
+
422 Unprocessable Entity
|
|
258
319
|
|
|
259
320
|
code: PRINCIPAL_LOCKED
|
|
260
321
|
message: Principal username cannot be changed.
|
|
261
322
|
"""
|
|
262
323
|
|
|
263
324
|
Scenario: Creating an Identity using inception with existing credentials
|
|
264
|
-
Given the `
|
|
265
|
-
And the `users` is running with the following manifest:
|
|
325
|
+
Given the `users` is running with the following manifest:
|
|
266
326
|
"""yaml
|
|
267
327
|
exposition:
|
|
268
328
|
/:
|
|
@@ -270,12 +330,14 @@ Feature: Basic authentication
|
|
|
270
330
|
anonymous: true
|
|
271
331
|
POST:
|
|
272
332
|
incept: id
|
|
333
|
+
query: false
|
|
273
334
|
endpoint: transit
|
|
274
335
|
"""
|
|
275
336
|
When the following request is received:
|
|
276
337
|
# identity inception
|
|
277
338
|
"""
|
|
278
339
|
POST /users/ HTTP/1.1
|
|
340
|
+
host: nex.toa.io
|
|
279
341
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
280
342
|
accept: application/yaml
|
|
281
343
|
content-type: application/yaml
|
|
@@ -290,12 +352,52 @@ Feature: Basic authentication
|
|
|
290
352
|
# same credentials
|
|
291
353
|
"""
|
|
292
354
|
POST /users/ HTTP/1.1
|
|
355
|
+
host: nex.toa.io
|
|
293
356
|
authorization: Basic dXNlcjpwYXNzMTIzNA==
|
|
294
|
-
content-type:
|
|
357
|
+
content-type: application/yaml
|
|
295
358
|
|
|
296
359
|
name: Mary Louis
|
|
297
360
|
"""
|
|
298
361
|
Then the following reply is sent:
|
|
299
362
|
"""
|
|
300
|
-
|
|
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
|
|
301
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
|
"""
|