@toa.io/extensions.exposition 1.0.0-alpha.9 → 1.0.0-alpha.90
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 +14 -6
- package/components/identity.bans/operations/transit.d.ts +14 -0
- package/components/identity.bans/operations/transit.js +11 -0
- package/components/identity.bans/operations/transit.js.map +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/source/transit.ts +21 -0
- package/components/identity.bans/tsconfig.json +9 -0
- package/components/identity.basic/manifest.toa.yaml +20 -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 +8 -6
- 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 +11 -9
- package/components/identity.basic/source/types.ts +8 -4
- package/components/identity.federation/manifest.toa.yaml +32 -15
- package/components/identity.federation/operations/authenticate.d.ts +2 -2
- package/components/identity.federation/operations/authenticate.js +4 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/{create.js → incept.js} +6 -7
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
- package/components/identity.federation/operations/lib/jwt.js +25 -12
- package/components/identity.federation/operations/lib/jwt.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +14 -0
- package/components/identity.federation/operations/types/configuration.js +3 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
- package/components/identity.federation/operations/types/context.js +3 -0
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +6 -0
- package/components/identity.federation/operations/types/entity.js +3 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +3 -0
- package/components/identity.federation/operations/types/index.js +20 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +6 -19
- package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
- package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
- package/components/identity.federation/source/lib/jwt.test.ts +123 -4
- package/components/identity.federation/source/lib/jwt.ts +36 -16
- package/components/identity.federation/source/types/configuration.ts +15 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +3 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.roles/manifest.toa.yaml +16 -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 -4
- 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 +9 -11
- package/components/octets.storage/operations/get.js +3 -3
- package/components/octets.storage/operations/head.js +7 -0
- package/components/octets.storage/operations/put.js +121 -0
- package/documentation/access.md +75 -38
- package/documentation/authorities.md +49 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +61 -22
- package/documentation/flow.md +31 -0
- package/documentation/identity.md +17 -22
- package/documentation/introspection.md +82 -0
- package/documentation/octets.md +95 -67
- package/documentation/protocol.md +13 -3
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/documentation/vary.md +14 -14
- package/features/access.feature +77 -46
- package/features/annotation.feature +1 -0
- package/features/auth.claim.feature +170 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +100 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +2 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +6 -1
- package/features/debug.feature +34 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +48 -0
- package/features/errors.feature +32 -7
- package/features/etag.feature +108 -0
- package/features/flow.feature +45 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +97 -26
- package/features/identity.feature +18 -6
- package/features/identity.federation.feature +66 -11
- package/features/identity.roles.feature +250 -7
- package/features/identity.tokens.feature +54 -4
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/methods.feature +47 -0
- package/features/{octets.meta.feature → octets.attributes.feature} +16 -12
- package/features/octets.cloudinary.feature +68 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +13 -55
- package/features/octets.feature +83 -107
- package/features/octets.workflows.feature +242 -58
- package/features/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +77 -2
- package/features/realtime.feature +34 -0
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- package/features/server.feature +21 -0
- package/features/steps/.env.example +3 -0
- package/features/steps/Database.ts +16 -9
- package/features/steps/Gateway.ts +23 -6
- package/features/steps/IdP.ts +30 -25
- package/features/steps/Parameters.ts +45 -3
- package/features/steps/Realtime.ts +151 -0
- package/features/steps/components/echo/manifest.toa.yaml +14 -1
- package/features/steps/components/echo/operations/identity.js +7 -0
- package/features/steps/components/echo/operations/parameters.js +7 -0
- package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
- package/features/steps/components/echo.beacon/operations/hello.js +5 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +22 -2
- package/features/steps/components/octets.tester/operations/authority.js +7 -0
- package/features/steps/components/octets.tester/operations/bar.js +0 -1
- package/features/steps/components/octets.tester/operations/baz.js +0 -2
- package/features/steps/components/octets.tester/operations/foo.js +1 -2
- package/features/steps/components/octets.tester/operations/redirect.js +12 -0
- package/features/steps/components/octets.tester/operations/yex.js +16 -0
- package/features/steps/components/octets.tester/operations/yield.js +13 -0
- package/features/steps/components/pots/manifest.toa.yaml +14 -3
- package/features/steps/components/users/manifest.toa.yaml +0 -1
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
- package/features/streams.feature +5 -0
- package/features/timing.feature +4 -1
- package/features/vary.feature +71 -0
- package/package.json +23 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/put.cos.yaml +25 -0
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Branch.ts +1 -0
- package/source/Composition.ts +0 -6
- package/source/Context.ts +1 -0
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +59 -17
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +64 -17
- package/source/HTTP/Context.ts +25 -2
- package/source/HTTP/Server.ts +57 -43
- package/source/HTTP/exceptions.ts +13 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +45 -2
- package/source/HTTP/messages.ts +29 -5
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +68 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +123 -33
- package/source/RTD/Context.ts +1 -1
- package/source/RTD/Endpoint.ts +3 -0
- package/source/RTD/Method.ts +16 -0
- package/source/RTD/Node.ts +29 -13
- package/source/RTD/Route.ts +5 -4
- package/source/RTD/Tree.ts +2 -2
- package/source/RTD/factory.ts +5 -2
- package/source/RTD/syntax/parse.test.ts +1 -1
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +7 -6
- package/source/Tenant.ts +6 -20
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Authorization.ts +44 -21
- package/source/directives/auth/Delegate.ts +42 -0
- package/source/directives/auth/Echo.ts +19 -5
- 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/Scheme.ts +1 -1
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +2 -2
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/cors/CORS.ts +1 -1
- package/source/directives/dev/Development.ts +1 -1
- package/source/directives/flow/Fetch.ts +88 -0
- package/source/directives/flow/Flow.ts +34 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +6 -0
- package/source/directives/index.ts +3 -1
- package/source/directives/io/Input.ts +4 -4
- package/source/directives/io/Output.ts +5 -4
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Delete.ts +11 -11
- package/source/directives/octets/Get.ts +84 -0
- package/source/directives/octets/Octets.ts +7 -11
- package/source/directives/octets/{Store.ts → Put.ts} +36 -21
- package/source/directives/octets/Workflow.ts +1 -1
- package/source/directives/octets/bytes.test.ts +30 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/schemas.ts +4 -8
- package/source/directives/octets/workflows/Execution.ts +60 -8
- package/source/directives/octets/workflows/Workflow.ts +4 -4
- 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/Language.ts +2 -2
- package/source/directives/vary/embeddings/Parameter.ts +14 -0
- package/source/directives/vary/embeddings/index.ts +6 -4
- package/source/exceptions.ts +17 -11
- package/source/manifest.ts +10 -11
- package/source/root.ts +5 -5
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Branch.d.ts +1 -0
- package/transpiled/Composition.d.ts +0 -1
- package/transpiled/Composition.js +0 -4
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +1 -0
- package/transpiled/Directive.js +4 -4
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +39 -9
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +3 -2
- package/transpiled/Factory.js +18 -10
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +3 -0
- package/transpiled/Gateway.js +49 -10
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +8 -1
- package/transpiled/HTTP/Context.js +16 -2
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +13 -2
- package/transpiled/HTTP/Server.js +43 -36
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +7 -1
- package/transpiled/HTTP/exceptions.js +13 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/index.js +3 -3
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +1 -0
- package/transpiled/HTTP/messages.js +28 -5
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +3 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +11 -2
- package/transpiled/Mapping.js +50 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +87 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +1 -1
- package/transpiled/RTD/Endpoint.d.ts +1 -0
- package/transpiled/RTD/Method.d.ts +4 -0
- package/transpiled/RTD/Method.js +11 -0
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -1
- package/transpiled/RTD/Node.js +23 -12
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +0 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +5 -2
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +34 -22
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +5 -3
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +4 -4
- package/transpiled/Remotes.js +6 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +5 -5
- package/transpiled/Tenant.js +2 -13
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +28 -20
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.d.ts +1 -1
- package/transpiled/directives/auth/Authorization.js +32 -18
- 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/Echo.d.ts +4 -3
- package/transpiled/directives/auth/Echo.js +13 -3
- package/transpiled/directives/auth/Echo.js.map +1 -1
- 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/Scheme.js +1 -1
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +1 -1
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +10 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +2 -1
- package/transpiled/directives/cache/Control.js +29 -12
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.js +1 -1
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/flow/Fetch.d.ts +13 -0
- package/transpiled/directives/flow/Fetch.js +59 -0
- package/transpiled/directives/flow/Fetch.js.map +1 -0
- package/transpiled/directives/flow/Flow.d.ts +10 -0
- package/transpiled/directives/flow/Flow.js +27 -0
- package/transpiled/directives/flow/Flow.js.map +1 -0
- package/transpiled/directives/flow/index.d.ts +2 -0
- package/transpiled/directives/flow/index.js +6 -0
- package/transpiled/directives/flow/index.js.map +1 -0
- package/transpiled/directives/flow/types.d.ts +5 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +3 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Input.js +2 -2
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/io/Output.js +2 -2
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.js +8 -8
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
- package/transpiled/directives/octets/{Fetch.js → Get.js} +24 -29
- package/transpiled/directives/octets/Get.js.map +1 -0
- package/transpiled/directives/octets/Octets.js +7 -11
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +7 -2
- package/transpiled/directives/octets/{Store.js → Put.js} +26 -19
- package/transpiled/directives/octets/Put.js.map +1 -0
- package/transpiled/directives/octets/Workflow.js +1 -1
- package/transpiled/directives/octets/Workflow.js.map +1 -1
- package/transpiled/directives/octets/bytes.d.ts +1 -0
- package/transpiled/directives/octets/bytes.js +21 -0
- package/transpiled/directives/octets/bytes.js.map +1 -0
- package/transpiled/directives/octets/schemas.d.ts +4 -8
- package/transpiled/directives/octets/schemas.js +3 -6
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
- package/transpiled/directives/octets/workflows/Execution.js +44 -9
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.d.ts +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/Language.js +2 -2
- package/transpiled/directives/vary/embeddings/Language.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 +10 -5
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/root.js +5 -5
- 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/tsconfig.json +8 -2
- 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/fetch.js +0 -46
- package/components/octets.storage/operations/list.js +0 -7
- package/components/octets.storage/operations/permute.js +0 -7
- package/components/octets.storage/operations/store.js +0 -11
- package/features/steps/components/octets.tester/operations/diversify.js +0 -14
- package/schemas/octets/context.cos.yaml +0 -1
- package/schemas/octets/fetch.cos.yaml +0 -3
- package/schemas/octets/permute.cos.yaml +0 -1
- package/schemas/octets/store.cos.yaml +0 -3
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Fetch.ts +0 -100
- package/source/directives/octets/List.ts +0 -72
- package/source/directives/octets/Permute.ts +0 -44
- package/transpiled/directives/octets/Fetch.js.map +0 -1
- package/transpiled/directives/octets/List.d.ts +0 -16
- package/transpiled/directives/octets/List.js +0 -74
- package/transpiled/directives/octets/List.js.map +0 -1
- package/transpiled/directives/octets/Permute.d.ts +0 -11
- package/transpiled/directives/octets/Permute.js +0 -58
- package/transpiled/directives/octets/Permute.js.map +0 -1
- package/transpiled/directives/octets/Store.js.map +0 -1
- /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
- /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
|
@@ -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
|
@@ -11,6 +11,7 @@ Feature: Request body
|
|
|
11
11
|
When the following request is received:
|
|
12
12
|
"""
|
|
13
13
|
POST /pots/ HTTP/1.1
|
|
14
|
+
host: nex.toa.io
|
|
14
15
|
content-type: application/yaml
|
|
15
16
|
|
|
16
17
|
title: Hello
|
|
@@ -32,6 +33,7 @@ Feature: Request body
|
|
|
32
33
|
When the following request is received:
|
|
33
34
|
"""
|
|
34
35
|
GET /echo/world/ HTTP/1.1
|
|
36
|
+
host: nex.toa.io
|
|
35
37
|
accept: text/plain
|
|
36
38
|
"""
|
|
37
39
|
Then the following reply is sent:
|
package/features/cache.feature
CHANGED
|
@@ -1,15 +1,50 @@
|
|
|
1
|
+
@security
|
|
1
2
|
Feature: Caching
|
|
2
3
|
|
|
3
4
|
Background:
|
|
4
5
|
Given the `identity.basic` database contains:
|
|
5
6
|
# developer:secret
|
|
6
7
|
# user:12345
|
|
7
|
-
| _id | username | password |
|
|
8
|
-
| b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
8
|
+
| _id | authority | username | password |
|
|
9
|
+
| b70a7dbca6b14a2eaac8a9eb4b2ff4db | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
9
10
|
Given the `identity.roles` database contains:
|
|
10
11
|
| _id | identity | role |
|
|
11
12
|
| 775a648d054e4ce1a65f8f17e5b51803 | b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer |
|
|
12
13
|
|
|
14
|
+
Scenario: Default caching
|
|
15
|
+
Given the annotation:
|
|
16
|
+
"""yaml
|
|
17
|
+
/:
|
|
18
|
+
anonymous: true
|
|
19
|
+
GET:
|
|
20
|
+
dev:stub: foo
|
|
21
|
+
/private:
|
|
22
|
+
auth:role: developer
|
|
23
|
+
GET:
|
|
24
|
+
dev:stub: bar
|
|
25
|
+
"""
|
|
26
|
+
When the following request is received:
|
|
27
|
+
"""
|
|
28
|
+
GET / HTTP/1.1
|
|
29
|
+
host: nex.toa.io
|
|
30
|
+
"""
|
|
31
|
+
Then the reply does not contain:
|
|
32
|
+
"""
|
|
33
|
+
cache-control:
|
|
34
|
+
"""
|
|
35
|
+
When the following request is received:
|
|
36
|
+
"""
|
|
37
|
+
GET /private/ HTTP/1.1
|
|
38
|
+
host: nex.toa.io
|
|
39
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
40
|
+
"""
|
|
41
|
+
Then the following reply is sent:
|
|
42
|
+
"""
|
|
43
|
+
200 OK
|
|
44
|
+
|
|
45
|
+
cache-control: private
|
|
46
|
+
"""
|
|
47
|
+
|
|
13
48
|
Scenario: Caching successful response
|
|
14
49
|
Given the annotation:
|
|
15
50
|
"""yaml
|
|
@@ -23,6 +58,7 @@ Feature: Caching
|
|
|
23
58
|
When the following request is received:
|
|
24
59
|
"""
|
|
25
60
|
GET / HTTP/1.1
|
|
61
|
+
host: nex.toa.io
|
|
26
62
|
accept: text/plain
|
|
27
63
|
"""
|
|
28
64
|
Then the following reply is sent:
|
|
@@ -53,9 +89,22 @@ Feature: Caching
|
|
|
53
89
|
GET:
|
|
54
90
|
dev:stub: hello
|
|
55
91
|
"""
|
|
92
|
+
When the following request is received:
|
|
93
|
+
"""
|
|
94
|
+
GET /identity/ HTTP/1.1
|
|
95
|
+
host: nex.toa.io
|
|
96
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
97
|
+
"""
|
|
98
|
+
Then the following reply is sent:
|
|
99
|
+
"""
|
|
100
|
+
200 OK
|
|
101
|
+
authorization: Token ${{ token }}
|
|
102
|
+
cache-control: private
|
|
103
|
+
"""
|
|
56
104
|
When the following request is received:
|
|
57
105
|
"""
|
|
58
106
|
GET / HTTP/1.1
|
|
107
|
+
host: nex.toa.io
|
|
59
108
|
accept: text/plain
|
|
60
109
|
"""
|
|
61
110
|
Then the following reply is sent:
|
|
@@ -69,8 +118,9 @@ Feature: Caching
|
|
|
69
118
|
When the following request is received:
|
|
70
119
|
"""
|
|
71
120
|
GET /foo/ HTTP/1.1
|
|
121
|
+
host: nex.toa.io
|
|
72
122
|
accept: text/plain
|
|
73
|
-
authorization:
|
|
123
|
+
authorization: Token ${{ token }}
|
|
74
124
|
"""
|
|
75
125
|
Then the following reply is sent:
|
|
76
126
|
"""
|
|
@@ -83,8 +133,9 @@ Feature: Caching
|
|
|
83
133
|
When the following request is received:
|
|
84
134
|
"""
|
|
85
135
|
GET /bar/ HTTP/1.1
|
|
136
|
+
host: nex.toa.io
|
|
86
137
|
accept: text/plain
|
|
87
|
-
authorization:
|
|
138
|
+
authorization: Token ${{ token }}
|
|
88
139
|
"""
|
|
89
140
|
Then the following reply is sent:
|
|
90
141
|
"""
|
|
@@ -111,6 +162,7 @@ Feature: Caching
|
|
|
111
162
|
When the following request is received:
|
|
112
163
|
"""
|
|
113
164
|
POST / HTTP/1.1
|
|
165
|
+
host: nex.toa.io
|
|
114
166
|
accept: application/yaml
|
|
115
167
|
"""
|
|
116
168
|
Then the reply does not contain:
|
|
@@ -130,8 +182,21 @@ Feature: Caching
|
|
|
130
182
|
"""
|
|
131
183
|
When the following request is received:
|
|
132
184
|
"""
|
|
133
|
-
GET / HTTP/1.1
|
|
185
|
+
GET /identity/ HTTP/1.1
|
|
186
|
+
host: nex.toa.io
|
|
134
187
|
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
188
|
+
"""
|
|
189
|
+
Then the following reply is sent:
|
|
190
|
+
"""
|
|
191
|
+
200 OK
|
|
192
|
+
authorization: Token ${{ token }}
|
|
193
|
+
cache-control: private
|
|
194
|
+
"""
|
|
195
|
+
When the following request is received:
|
|
196
|
+
"""
|
|
197
|
+
GET / HTTP/1.1
|
|
198
|
+
host: nex.toa.io
|
|
199
|
+
authorization: Token ${{ token }}
|
|
135
200
|
accept: text/plain
|
|
136
201
|
|
|
137
202
|
"""
|
|
@@ -155,9 +220,48 @@ Feature: Caching
|
|
|
155
220
|
When the following request is received:
|
|
156
221
|
"""
|
|
157
222
|
GET / HTTP/1.1
|
|
223
|
+
host: nex.toa.io
|
|
158
224
|
accept: text/plain
|
|
159
225
|
"""
|
|
160
226
|
Then the reply does not contain:
|
|
161
227
|
"""
|
|
162
228
|
cache-control:
|
|
163
229
|
"""
|
|
230
|
+
|
|
231
|
+
Scenario: Private responses are sent with `vary: authorization`
|
|
232
|
+
Given the `identity.basic` database contains:
|
|
233
|
+
| _id | authority | username | password |
|
|
234
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
235
|
+
And the annotation:
|
|
236
|
+
"""yaml
|
|
237
|
+
/:
|
|
238
|
+
/:id:
|
|
239
|
+
auth:id: id
|
|
240
|
+
cache:control: max-age=10000
|
|
241
|
+
GET:
|
|
242
|
+
dev:stub: Keep it
|
|
243
|
+
"""
|
|
244
|
+
When the following request is received:
|
|
245
|
+
"""
|
|
246
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
247
|
+
host: nex.toa.io
|
|
248
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
249
|
+
"""
|
|
250
|
+
Then the following reply is sent:
|
|
251
|
+
"""
|
|
252
|
+
200 OK
|
|
253
|
+
authorization: Token ${{ token }}
|
|
254
|
+
cache-control: private
|
|
255
|
+
"""
|
|
256
|
+
When the following request is received:
|
|
257
|
+
"""
|
|
258
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
259
|
+
host: nex.toa.io
|
|
260
|
+
authorization: Token ${{ token }}
|
|
261
|
+
"""
|
|
262
|
+
Then the following reply is sent:
|
|
263
|
+
"""
|
|
264
|
+
200 OK
|
|
265
|
+
cache-control: private, max-age=10000
|
|
266
|
+
vary: authorization
|
|
267
|
+
"""
|
package/features/cors.feature
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@security
|
|
1
2
|
Feature: CORS Support
|
|
2
3
|
|
|
3
4
|
Scenario: Using CORS
|
|
@@ -12,13 +13,14 @@ Feature: CORS Support
|
|
|
12
13
|
When the following request is received:
|
|
13
14
|
"""
|
|
14
15
|
OPTIONS / HTTP/1.1
|
|
16
|
+
host: nex.toa.io
|
|
15
17
|
origin: https://hello.world
|
|
16
18
|
"""
|
|
17
19
|
Then the following reply is sent:
|
|
18
20
|
"""
|
|
19
21
|
204 No Content
|
|
20
22
|
access-control-allow-origin: https://hello.world
|
|
21
|
-
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
|
|
23
|
+
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
|
|
22
24
|
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match
|
|
23
25
|
access-control-allow-credentials: true
|
|
24
26
|
access-control-max-age: 3600
|
|
@@ -28,6 +30,7 @@ Feature: CORS Support
|
|
|
28
30
|
When the following request is received:
|
|
29
31
|
"""
|
|
30
32
|
GET /foo/ HTTP/1.1
|
|
33
|
+
host: nex.toa.io
|
|
31
34
|
origin: https://hello.world
|
|
32
35
|
"""
|
|
33
36
|
Then the following reply is sent:
|
|
@@ -49,6 +52,7 @@ Feature: CORS Support
|
|
|
49
52
|
When the following request is received:
|
|
50
53
|
"""
|
|
51
54
|
GET /bar/ HTTP/1.1
|
|
55
|
+
host: nex.toa.io
|
|
52
56
|
origin: https://hello.world
|
|
53
57
|
"""
|
|
54
58
|
Then the following reply is sent:
|
|
@@ -61,6 +65,7 @@ Feature: CORS Support
|
|
|
61
65
|
When the following request is received:
|
|
62
66
|
"""
|
|
63
67
|
GET /foo/ HTTP/1.1
|
|
68
|
+
host: nex.toa.io
|
|
64
69
|
origin: https://hello.world
|
|
65
70
|
"""
|
|
66
71
|
Then the following reply is sent:
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Feature: Debugging
|
|
2
|
+
|
|
3
|
+
Scenario: Operation call
|
|
4
|
+
Given the `identity.basic` database contains:
|
|
5
|
+
| _id | authority | username | password |
|
|
6
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
7
|
+
And the `identity.roles` database contains:
|
|
8
|
+
| _id | identity | role |
|
|
9
|
+
| 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
|
|
10
|
+
And the annotation:
|
|
11
|
+
"""yaml
|
|
12
|
+
debug: true
|
|
13
|
+
"""
|
|
14
|
+
And the `greeter` is running with the following manifest:
|
|
15
|
+
"""yaml
|
|
16
|
+
exposition:
|
|
17
|
+
/:
|
|
18
|
+
auth:role: developer
|
|
19
|
+
io:output: true
|
|
20
|
+
GET: greet
|
|
21
|
+
"""
|
|
22
|
+
When the following request is received:
|
|
23
|
+
"""
|
|
24
|
+
GET /greeter/ HTTP/1.1
|
|
25
|
+
host: nex.toa.io
|
|
26
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
27
|
+
accept: text/plain
|
|
28
|
+
"""
|
|
29
|
+
Then the following reply is sent:
|
|
30
|
+
"""
|
|
31
|
+
200 OK
|
|
32
|
+
|
|
33
|
+
Hello
|
|
34
|
+
"""
|
|
@@ -13,6 +13,7 @@ Feature: Directives
|
|
|
13
13
|
When the following request is received:
|
|
14
14
|
"""
|
|
15
15
|
GET / HTTP/1.1
|
|
16
|
+
host: nex.toa.io
|
|
16
17
|
accept: application/json
|
|
17
18
|
"""
|
|
18
19
|
Then the following reply is sent:
|
|
@@ -38,6 +39,7 @@ Feature: Directives
|
|
|
38
39
|
When the following request is received:
|
|
39
40
|
"""
|
|
40
41
|
GET /pots/ HTTP/1.1
|
|
42
|
+
host: nex.toa.io
|
|
41
43
|
accept: application/yaml
|
|
42
44
|
"""
|
|
43
45
|
Then the following reply is sent:
|
|
@@ -50,6 +52,7 @@ Feature: Directives
|
|
|
50
52
|
When the following request is received:
|
|
51
53
|
"""
|
|
52
54
|
GET /pots/non-existent/ HTTP/1.1
|
|
55
|
+
host: nex.toa.io
|
|
53
56
|
accept: application/yaml
|
|
54
57
|
"""
|
|
55
58
|
Then the following reply is sent:
|
package/features/dynamic.feature
CHANGED
|
@@ -9,6 +9,7 @@ Feature: Dynamic tree updates
|
|
|
9
9
|
Given the Gateway is running
|
|
10
10
|
And the `pots` is running with the following manifest:
|
|
11
11
|
"""yaml
|
|
12
|
+
version: 1
|
|
12
13
|
exposition:
|
|
13
14
|
/:
|
|
14
15
|
io:output: true
|
|
@@ -18,6 +19,7 @@ Feature: Dynamic tree updates
|
|
|
18
19
|
When the following request is received:
|
|
19
20
|
"""
|
|
20
21
|
GET /pots/ HTTP/1.1
|
|
22
|
+
host: nex.toa.io
|
|
21
23
|
"""
|
|
22
24
|
Then the following reply is sent:
|
|
23
25
|
"""
|
|
@@ -26,6 +28,7 @@ Feature: Dynamic tree updates
|
|
|
26
28
|
Then the `pots` is stopped
|
|
27
29
|
Then the `pots` is running with the following manifest:
|
|
28
30
|
"""yaml
|
|
31
|
+
version: 2
|
|
29
32
|
exposition:
|
|
30
33
|
/:
|
|
31
34
|
io:output: true
|
|
@@ -34,6 +37,45 @@ Feature: Dynamic tree updates
|
|
|
34
37
|
When the following request is received:
|
|
35
38
|
"""
|
|
36
39
|
GET /pots/ HTTP/1.1
|
|
40
|
+
host: nex.toa.io
|
|
41
|
+
accept: application/yaml
|
|
42
|
+
"""
|
|
43
|
+
Then the following reply is sent:
|
|
44
|
+
"""
|
|
45
|
+
200 OK
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
Scenario: Repeat routes
|
|
49
|
+
Given the Gateway is running
|
|
50
|
+
And the `pots` is running with the following manifest:
|
|
51
|
+
"""yaml
|
|
52
|
+
exposition:
|
|
53
|
+
/:
|
|
54
|
+
io:output: true
|
|
55
|
+
GET: enumerate
|
|
56
|
+
"""
|
|
57
|
+
When the following request is received:
|
|
58
|
+
"""
|
|
59
|
+
GET /pots/ HTTP/1.1
|
|
60
|
+
host: nex.toa.io
|
|
61
|
+
accept: application/yaml
|
|
62
|
+
"""
|
|
63
|
+
Then the following reply is sent:
|
|
64
|
+
"""
|
|
65
|
+
200 OK
|
|
66
|
+
"""
|
|
67
|
+
Then the `pots` is stopped
|
|
68
|
+
And the `pots` is running with the following manifest:
|
|
69
|
+
"""yaml
|
|
70
|
+
exposition:
|
|
71
|
+
/:
|
|
72
|
+
io:output: true
|
|
73
|
+
GET: enumerate
|
|
74
|
+
"""
|
|
75
|
+
When the following request is received:
|
|
76
|
+
"""
|
|
77
|
+
GET /pots/ HTTP/1.1
|
|
78
|
+
host: nex.toa.io
|
|
37
79
|
accept: application/yaml
|
|
38
80
|
"""
|
|
39
81
|
Then the following reply is sent:
|
|
@@ -44,6 +86,7 @@ Feature: Dynamic tree updates
|
|
|
44
86
|
Scenario: Updating routes with conflict
|
|
45
87
|
And the `pots` is running with the following manifest:
|
|
46
88
|
"""yaml
|
|
89
|
+
version: 1.0.0
|
|
47
90
|
exposition:
|
|
48
91
|
/:id:
|
|
49
92
|
io:output: true
|
|
@@ -52,6 +95,7 @@ Feature: Dynamic tree updates
|
|
|
52
95
|
Then the `pots` is stopped
|
|
53
96
|
Then the `pots` is running with the following manifest:
|
|
54
97
|
"""yaml
|
|
98
|
+
version: 1.1.0
|
|
55
99
|
exposition:
|
|
56
100
|
/:
|
|
57
101
|
io:output: true
|
|
@@ -66,6 +110,7 @@ Feature: Dynamic tree updates
|
|
|
66
110
|
When the following request is received:
|
|
67
111
|
"""
|
|
68
112
|
GET /pots/big/ HTTP/1.1
|
|
113
|
+
host: nex.toa.io
|
|
69
114
|
accept: application/yaml
|
|
70
115
|
"""
|
|
71
116
|
Then the following reply is sent:
|
|
@@ -76,6 +121,7 @@ Feature: Dynamic tree updates
|
|
|
76
121
|
Scenario: Updating method mapping
|
|
77
122
|
Given the `pots` is running with the following manifest:
|
|
78
123
|
"""yaml
|
|
124
|
+
version: a
|
|
79
125
|
exposition:
|
|
80
126
|
/big:
|
|
81
127
|
io:output: true
|
|
@@ -87,6 +133,7 @@ Feature: Dynamic tree updates
|
|
|
87
133
|
Then the `pots` is stopped
|
|
88
134
|
Then the `pots` is running with the following manifest:
|
|
89
135
|
"""yaml
|
|
136
|
+
version: b
|
|
90
137
|
exposition:
|
|
91
138
|
/big:
|
|
92
139
|
io:output: true
|
|
@@ -98,6 +145,7 @@ Feature: Dynamic tree updates
|
|
|
98
145
|
When the following request is received:
|
|
99
146
|
"""
|
|
100
147
|
GET /pots/big/?criteria=temperature>50 HTTP/1.1
|
|
148
|
+
host: nex.toa.io
|
|
101
149
|
accept: application/yaml
|
|
102
150
|
"""
|
|
103
151
|
Then the following reply is sent:
|