@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,170 @@
|
|
|
1
|
+
@security
|
|
2
|
+
Feature: Federated identity authentication
|
|
3
|
+
|
|
4
|
+
Background:
|
|
5
|
+
Given the `identity.federation` database is empty
|
|
6
|
+
And local IDP is running
|
|
7
|
+
And the IDP token for Bob is issued
|
|
8
|
+
And the `identity.federation` configuration:
|
|
9
|
+
"""yaml
|
|
10
|
+
trust:
|
|
11
|
+
- iss: http://localhost:44444
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
Scenario: Full claim
|
|
15
|
+
Given the annotation:
|
|
16
|
+
"""yaml
|
|
17
|
+
/:
|
|
18
|
+
GET:
|
|
19
|
+
auth:claim:
|
|
20
|
+
iss: http://localhost:44444
|
|
21
|
+
aud: test
|
|
22
|
+
sub: Bob
|
|
23
|
+
dev:stub: ok
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
When the following request is received:
|
|
27
|
+
"""
|
|
28
|
+
GET / HTTP/1.1
|
|
29
|
+
host: nex.toa.io
|
|
30
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
31
|
+
"""
|
|
32
|
+
Then the following reply is sent:
|
|
33
|
+
"""
|
|
34
|
+
200 OK
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
Scenario: Only `sub`
|
|
38
|
+
Given the annotation:
|
|
39
|
+
"""yaml
|
|
40
|
+
/:
|
|
41
|
+
GET:
|
|
42
|
+
auth:claim:
|
|
43
|
+
sub: Bob
|
|
44
|
+
dev:stub: ok
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
When the following request is received:
|
|
48
|
+
"""
|
|
49
|
+
GET / HTTP/1.1
|
|
50
|
+
host: nex.toa.io
|
|
51
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
52
|
+
"""
|
|
53
|
+
Then the following reply is sent:
|
|
54
|
+
"""
|
|
55
|
+
200 OK
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
Scenario: No `sub`
|
|
59
|
+
Given the annotation:
|
|
60
|
+
"""yaml
|
|
61
|
+
/:
|
|
62
|
+
GET:
|
|
63
|
+
auth:claim:
|
|
64
|
+
iss: http://localhost:44444
|
|
65
|
+
aud: test
|
|
66
|
+
dev:stub: ok
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
When the following request is received:
|
|
70
|
+
"""
|
|
71
|
+
GET / HTTP/1.1
|
|
72
|
+
host: nex.toa.io
|
|
73
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
74
|
+
"""
|
|
75
|
+
Then the following reply is sent:
|
|
76
|
+
"""
|
|
77
|
+
200 OK
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
Scenario: `sub` mismatch
|
|
81
|
+
Given the annotation:
|
|
82
|
+
"""yaml
|
|
83
|
+
/:
|
|
84
|
+
GET:
|
|
85
|
+
auth:claim:
|
|
86
|
+
iss: http://localhost:44444
|
|
87
|
+
sub: Alice
|
|
88
|
+
dev:stub: ok
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
When the following request is received:
|
|
92
|
+
"""
|
|
93
|
+
GET / HTTP/1.1
|
|
94
|
+
host: nex.toa.io
|
|
95
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
96
|
+
"""
|
|
97
|
+
Then the following reply is sent:
|
|
98
|
+
"""
|
|
99
|
+
403 Forbidden
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
Scenario: `aud` mismatch
|
|
103
|
+
Given the annotation:
|
|
104
|
+
"""yaml
|
|
105
|
+
/:
|
|
106
|
+
GET:
|
|
107
|
+
auth:claim:
|
|
108
|
+
iss: http://localhost:44444
|
|
109
|
+
aud: goalkeepers
|
|
110
|
+
dev:stub: ok
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
When the following request is received:
|
|
114
|
+
"""
|
|
115
|
+
GET / HTTP/1.1
|
|
116
|
+
host: nex.toa.io
|
|
117
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
118
|
+
"""
|
|
119
|
+
Then the following reply is sent:
|
|
120
|
+
"""
|
|
121
|
+
403 Forbidden
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
Scenario: Matching authority and Route parameter
|
|
125
|
+
Given the annotation:
|
|
126
|
+
"""yaml
|
|
127
|
+
authorities:
|
|
128
|
+
test: the.test.local
|
|
129
|
+
/:
|
|
130
|
+
/:id:
|
|
131
|
+
GET:
|
|
132
|
+
auth:claim:
|
|
133
|
+
aud: :authority
|
|
134
|
+
sub: /:id
|
|
135
|
+
dev:stub: ok
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
When the following request is received:
|
|
139
|
+
"""
|
|
140
|
+
GET /Bob/ HTTP/1.1
|
|
141
|
+
host: the.test.local
|
|
142
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
143
|
+
"""
|
|
144
|
+
Then the following reply is sent:
|
|
145
|
+
"""
|
|
146
|
+
200 OK
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
Scenario: `iss` matching authority common domain
|
|
150
|
+
Given the annotation:
|
|
151
|
+
"""yaml
|
|
152
|
+
/:
|
|
153
|
+
/:id:
|
|
154
|
+
GET:
|
|
155
|
+
auth:claim:
|
|
156
|
+
iss: :domain
|
|
157
|
+
sub: /:id
|
|
158
|
+
dev:stub: ok
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
When the following request is received:
|
|
162
|
+
"""
|
|
163
|
+
GET /Bob/ HTTP/1.1
|
|
164
|
+
host: localhost
|
|
165
|
+
authorization: Bearer ${{ Bob.id_token }}
|
|
166
|
+
"""
|
|
167
|
+
Then the following reply is sent:
|
|
168
|
+
"""
|
|
169
|
+
200 OK
|
|
170
|
+
"""
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
Feature: Basic credentials with authorities
|
|
2
|
+
|
|
3
|
+
Scenario: Basic credentials are scoped to authorities
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
authorities:
|
|
7
|
+
one: the.one.com
|
|
8
|
+
two: the.two.com
|
|
9
|
+
/:
|
|
10
|
+
/:id:
|
|
11
|
+
auth:id: id
|
|
12
|
+
io:output: true
|
|
13
|
+
GET:
|
|
14
|
+
dev:stub: Hello
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
# create basic credentials within the `one` authority
|
|
18
|
+
When the following request is received:
|
|
19
|
+
"""
|
|
20
|
+
POST /identity/basic/ HTTP/1.1
|
|
21
|
+
host: the.one.com
|
|
22
|
+
content-type: application/yaml
|
|
23
|
+
accept: application/yaml
|
|
24
|
+
|
|
25
|
+
username: #{{ id | set one.username }}
|
|
26
|
+
password: #{{ password 8 | set one.password }}
|
|
27
|
+
"""
|
|
28
|
+
Then the following reply is sent:
|
|
29
|
+
"""
|
|
30
|
+
201 Created
|
|
31
|
+
|
|
32
|
+
id: ${{ one.id }}
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
# create basic credentials within the `two` authority
|
|
36
|
+
When the following request is received:
|
|
37
|
+
"""
|
|
38
|
+
POST /identity/basic/ HTTP/1.1
|
|
39
|
+
host: the.two.com
|
|
40
|
+
content-type: application/yaml
|
|
41
|
+
accept: application/yaml
|
|
42
|
+
|
|
43
|
+
username: #{{ id | set two.username }}
|
|
44
|
+
password: #{{ password 8 | set two.password }}
|
|
45
|
+
"""
|
|
46
|
+
Then the following reply is sent:
|
|
47
|
+
"""
|
|
48
|
+
201 Created
|
|
49
|
+
|
|
50
|
+
id: ${{ two.id }}
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
# access the resource with the `one` authority
|
|
54
|
+
When the following request is received:
|
|
55
|
+
"""
|
|
56
|
+
GET /${{ one.id }}/ HTTP/1.1
|
|
57
|
+
host: the.one.com
|
|
58
|
+
authorization: Basic #{{ basic one }}
|
|
59
|
+
"""
|
|
60
|
+
Then the following reply is sent:
|
|
61
|
+
"""
|
|
62
|
+
200 OK
|
|
63
|
+
"""
|
|
64
|
+
When the following request is received:
|
|
65
|
+
"""
|
|
66
|
+
GET /${{ two.id }}/ HTTP/1.1
|
|
67
|
+
host: the.one.com
|
|
68
|
+
authorization: Basic #{{ basic two }}
|
|
69
|
+
"""
|
|
70
|
+
Then the following reply is sent:
|
|
71
|
+
"""
|
|
72
|
+
401 Unauthorized
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
# access the resource with the `two` authority
|
|
76
|
+
When the following request is received:
|
|
77
|
+
"""
|
|
78
|
+
GET /${{ one.id }}/ HTTP/1.1
|
|
79
|
+
host: the.two.com
|
|
80
|
+
authorization: Basic #{{ basic one }}
|
|
81
|
+
"""
|
|
82
|
+
Then the following reply is sent:
|
|
83
|
+
"""
|
|
84
|
+
401 Unauthorized
|
|
85
|
+
"""
|
|
86
|
+
When the following request is received:
|
|
87
|
+
"""
|
|
88
|
+
GET /${{ two.id }}/ HTTP/1.1
|
|
89
|
+
host: the.two.com
|
|
90
|
+
authorization: Basic #{{ basic two }}
|
|
91
|
+
"""
|
|
92
|
+
Then the following reply is sent:
|
|
93
|
+
"""
|
|
94
|
+
200 OK
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
# create `one` credentials in the `two` authority
|
|
98
|
+
When the following request is received:
|
|
99
|
+
"""
|
|
100
|
+
POST /identity/basic/ HTTP/1.1
|
|
101
|
+
host: the.one.com
|
|
102
|
+
content-type: application/yaml
|
|
103
|
+
accept: application/yaml
|
|
104
|
+
|
|
105
|
+
username: ${{ one.username }}
|
|
106
|
+
password: ${{ one.password }}
|
|
107
|
+
"""
|
|
108
|
+
Then the following reply is sent:
|
|
109
|
+
"""
|
|
110
|
+
409 Conflict
|
|
111
|
+
"""
|
|
112
|
+
When the following request is received:
|
|
113
|
+
"""
|
|
114
|
+
POST /identity/basic/ HTTP/1.1
|
|
115
|
+
host: the.two.com
|
|
116
|
+
content-type: application/yaml
|
|
117
|
+
accept: application/yaml
|
|
118
|
+
|
|
119
|
+
username: ${{ one.username }}
|
|
120
|
+
password: ${{ one.password }}
|
|
121
|
+
"""
|
|
122
|
+
Then the following reply is sent:
|
|
123
|
+
"""
|
|
124
|
+
201 Created
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
# create `two` credentials in the `one` authority
|
|
128
|
+
When the following request is received:
|
|
129
|
+
"""
|
|
130
|
+
POST /identity/basic/ HTTP/1.1
|
|
131
|
+
host: the.one.com
|
|
132
|
+
content-type: application/yaml
|
|
133
|
+
accept: application/yaml
|
|
134
|
+
|
|
135
|
+
username: ${{ two.username }}
|
|
136
|
+
password: ${{ two.password }}
|
|
137
|
+
"""
|
|
138
|
+
Then the following reply is sent:
|
|
139
|
+
"""
|
|
140
|
+
201 Created
|
|
141
|
+
"""
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Feature: Authorities
|
|
2
|
+
|
|
3
|
+
Scenario: Accessing an authority
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
authorities:
|
|
7
|
+
example: the.example.com
|
|
8
|
+
/:
|
|
9
|
+
anonymous: true
|
|
10
|
+
GET:
|
|
11
|
+
dev:stub: Hello
|
|
12
|
+
"""
|
|
13
|
+
When the following request is received:
|
|
14
|
+
"""
|
|
15
|
+
GET / HTTP/1.1
|
|
16
|
+
host: the.example.com
|
|
17
|
+
"""
|
|
18
|
+
Then the following reply is sent:
|
|
19
|
+
"""
|
|
20
|
+
200 OK
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
# arbitrary authorities are also allowed
|
|
24
|
+
When the following request is received:
|
|
25
|
+
"""
|
|
26
|
+
GET / HTTP/1.1
|
|
27
|
+
host: the.other.com
|
|
28
|
+
"""
|
|
29
|
+
Then the following reply is sent:
|
|
30
|
+
"""
|
|
31
|
+
200 OK
|
|
32
|
+
"""
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
Feature: OIDC tokens with authorities
|
|
2
|
+
|
|
3
|
+
Scenario: OIDC tokens are scoped to authorities
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
authorities:
|
|
7
|
+
one: the.one.com
|
|
8
|
+
/:
|
|
9
|
+
/:id:
|
|
10
|
+
auth:id: id
|
|
11
|
+
GET:
|
|
12
|
+
dev:stub: Hello
|
|
13
|
+
"""
|
|
14
|
+
And local IDP is running
|
|
15
|
+
And the `identity.federation` database is empty
|
|
16
|
+
And the `identity.federation` configuration:
|
|
17
|
+
"""yaml
|
|
18
|
+
trust:
|
|
19
|
+
- iss: http://localhost:44444
|
|
20
|
+
"""
|
|
21
|
+
And the IDP token for One is issued
|
|
22
|
+
And the IDP token for Two is issued
|
|
23
|
+
|
|
24
|
+
# create identities
|
|
25
|
+
When the following request is received:
|
|
26
|
+
"""
|
|
27
|
+
POST /identity/federation/ HTTP/1.1
|
|
28
|
+
host: the.one.com
|
|
29
|
+
accept: application/yaml
|
|
30
|
+
content-type: application/yaml
|
|
31
|
+
|
|
32
|
+
credentials: ${{ One.id_token }}
|
|
33
|
+
"""
|
|
34
|
+
Then the following reply is sent:
|
|
35
|
+
"""
|
|
36
|
+
201 Created
|
|
37
|
+
|
|
38
|
+
id: ${{ One.id }}
|
|
39
|
+
"""
|
|
40
|
+
When the following request is received:
|
|
41
|
+
"""
|
|
42
|
+
POST /identity/federation/ HTTP/1.1
|
|
43
|
+
host: the.two.com
|
|
44
|
+
accept: application/yaml
|
|
45
|
+
content-type: application/yaml
|
|
46
|
+
|
|
47
|
+
credentials: ${{ Two.id_token }}
|
|
48
|
+
"""
|
|
49
|
+
Then the following reply is sent:
|
|
50
|
+
"""
|
|
51
|
+
201 Created
|
|
52
|
+
|
|
53
|
+
id: ${{ Two.id }}
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
# access `one` authority
|
|
57
|
+
When the following request is received:
|
|
58
|
+
"""
|
|
59
|
+
GET /${{ One.id }}/ HTTP/1.1
|
|
60
|
+
host: the.one.com
|
|
61
|
+
authorization: Bearer ${{ One.id_token }}
|
|
62
|
+
"""
|
|
63
|
+
Then the following reply is sent:
|
|
64
|
+
"""
|
|
65
|
+
200 OK
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
# authorization will create new identity within `one` authority
|
|
69
|
+
When the following request is received:
|
|
70
|
+
"""
|
|
71
|
+
GET /${{ Two.id }}/ HTTP/1.1
|
|
72
|
+
host: the.one.com
|
|
73
|
+
authorization: Bearer ${{ Two.id_token }}
|
|
74
|
+
"""
|
|
75
|
+
Then the following reply is sent:
|
|
76
|
+
"""
|
|
77
|
+
403 Forbidden
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
# access `two` authority
|
|
81
|
+
When the following request is received:
|
|
82
|
+
"""
|
|
83
|
+
GET /${{ One.id }}/ HTTP/1.1
|
|
84
|
+
host: the.two.com
|
|
85
|
+
authorization: Bearer ${{ One.id_token }}
|
|
86
|
+
"""
|
|
87
|
+
Then the following reply is sent:
|
|
88
|
+
"""
|
|
89
|
+
403 Forbidden
|
|
90
|
+
"""
|
|
91
|
+
When the following request is received:
|
|
92
|
+
"""
|
|
93
|
+
GET /${{ Two.id }}/ HTTP/1.1
|
|
94
|
+
host: the.two.com
|
|
95
|
+
authorization: Bearer ${{ Two.id_token }}
|
|
96
|
+
"""
|
|
97
|
+
Then the following reply is sent:
|
|
98
|
+
"""
|
|
99
|
+
200 OK
|
|
100
|
+
"""
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Feature: Token credentials with authorities
|
|
2
|
+
|
|
3
|
+
Scenario: Tokens are scoped to authorities
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
authorities:
|
|
7
|
+
one: the.one.com
|
|
8
|
+
/:
|
|
9
|
+
/:id:
|
|
10
|
+
auth:id: id
|
|
11
|
+
GET:
|
|
12
|
+
dev:stub: Hello
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
# create identity within the `one` authority
|
|
16
|
+
When the following request is received:
|
|
17
|
+
"""
|
|
18
|
+
POST /identity/basic/ HTTP/1.1
|
|
19
|
+
host: the.one.com
|
|
20
|
+
content-type: application/yaml
|
|
21
|
+
accept: application/yaml
|
|
22
|
+
|
|
23
|
+
username: #{{ id | set one.username }}
|
|
24
|
+
password: '#{{ password 8 | set one.password }}'
|
|
25
|
+
"""
|
|
26
|
+
Then the following reply is sent:
|
|
27
|
+
"""
|
|
28
|
+
201 Created
|
|
29
|
+
"""
|
|
30
|
+
When the following request is received:
|
|
31
|
+
"""
|
|
32
|
+
GET /identity/ HTTP/1.1
|
|
33
|
+
host: the.one.com
|
|
34
|
+
accept: application/yaml
|
|
35
|
+
authorization: Basic #{{ basic one }}
|
|
36
|
+
"""
|
|
37
|
+
Then the following reply is sent:
|
|
38
|
+
"""
|
|
39
|
+
200 OK
|
|
40
|
+
authorization: Token ${{ one.token }}
|
|
41
|
+
|
|
42
|
+
id: ${{ one.id }}
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
# create identity within the `the.two.com` authority
|
|
46
|
+
When the following request is received:
|
|
47
|
+
"""
|
|
48
|
+
POST /identity/basic/ HTTP/1.1
|
|
49
|
+
host: the.two.com
|
|
50
|
+
content-type: application/yaml
|
|
51
|
+
accept: application/yaml
|
|
52
|
+
|
|
53
|
+
username: #{{ id | set two.username }}
|
|
54
|
+
password: '#{{ password 8 | set two.password }}'
|
|
55
|
+
"""
|
|
56
|
+
Then the following reply is sent:
|
|
57
|
+
"""
|
|
58
|
+
201 Created
|
|
59
|
+
"""
|
|
60
|
+
When the following request is received:
|
|
61
|
+
"""
|
|
62
|
+
GET /identity/ HTTP/1.1
|
|
63
|
+
host: the.two.com
|
|
64
|
+
accept: application/yaml
|
|
65
|
+
authorization: Basic #{{ basic two }}
|
|
66
|
+
"""
|
|
67
|
+
Then the following reply is sent:
|
|
68
|
+
"""
|
|
69
|
+
200 OK
|
|
70
|
+
authorization: Token ${{ two.token }}
|
|
71
|
+
|
|
72
|
+
id: ${{ two.id }}
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
# access `one` authority
|
|
76
|
+
When the following request is received:
|
|
77
|
+
"""
|
|
78
|
+
GET /${{ one.id }}/ HTTP/1.1
|
|
79
|
+
host: the.one.com
|
|
80
|
+
authorization: Token ${{ one.token }}
|
|
81
|
+
"""
|
|
82
|
+
Then the following reply is sent:
|
|
83
|
+
"""
|
|
84
|
+
200 OK
|
|
85
|
+
"""
|
|
86
|
+
When the following request is received:
|
|
87
|
+
"""
|
|
88
|
+
GET /${{ two.id }}/ HTTP/1.1
|
|
89
|
+
host: the.one.com
|
|
90
|
+
authorization: Token ${{ two.token }}
|
|
91
|
+
"""
|
|
92
|
+
Then the following reply is sent:
|
|
93
|
+
"""
|
|
94
|
+
401 Unauthorized
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
# access `two` authority
|
|
98
|
+
When the following request is received:
|
|
99
|
+
"""
|
|
100
|
+
GET /${{ one.id }}/ HTTP/1.1
|
|
101
|
+
host: the.two.com
|
|
102
|
+
authorization: Token ${{ one.token }}
|
|
103
|
+
"""
|
|
104
|
+
Then the following reply is sent:
|
|
105
|
+
"""
|
|
106
|
+
401 Unauthorized
|
|
107
|
+
"""
|
|
108
|
+
When the following request is received:
|
|
109
|
+
"""
|
|
110
|
+
GET /${{ two.id }}/ HTTP/1.1
|
|
111
|
+
host: the.two.com
|
|
112
|
+
authorization: Token ${{ two.token }}
|
|
113
|
+
"""
|
|
114
|
+
Then the following reply is sent:
|
|
115
|
+
"""
|
|
116
|
+
200 OK
|
|
117
|
+
"""
|
package/features/body.feature
CHANGED
|
@@ -5,11 +5,13 @@ Feature: Request body
|
|
|
5
5
|
"""yaml
|
|
6
6
|
exposition:
|
|
7
7
|
/:
|
|
8
|
+
io:output: true
|
|
8
9
|
POST: create
|
|
9
10
|
"""
|
|
10
11
|
When the following request is received:
|
|
11
12
|
"""
|
|
12
13
|
POST /pots/ HTTP/1.1
|
|
14
|
+
host: nex.toa.io
|
|
13
15
|
content-type: application/yaml
|
|
14
16
|
|
|
15
17
|
title: Hello
|
|
@@ -31,6 +33,7 @@ Feature: Request body
|
|
|
31
33
|
When the following request is received:
|
|
32
34
|
"""
|
|
33
35
|
GET /echo/world/ HTTP/1.1
|
|
36
|
+
host: nex.toa.io
|
|
34
37
|
accept: text/plain
|
|
35
38
|
"""
|
|
36
39
|
Then the following reply is sent:
|