@toa.io/extensions.exposition 1.0.0-alpha.15 → 1.0.0-alpha.150
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 +1 -1
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/manifest.toa.yaml +47 -10
- package/components/identity.basic/operations/authenticate.d.ts +5 -1
- package/components/identity.basic/operations/authenticate.js +7 -4
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/check.d.ts +7 -0
- package/components/identity.basic/operations/check.js +15 -0
- package/components/identity.basic/operations/check.js.map +1 -0
- 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 +18 -7
- package/components/identity.basic/source/check.ts +20 -0
- 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 +81 -38
- package/components/identity.federation/operations/authenticate.d.ts +16 -3
- package/components/identity.federation/operations/authenticate.js +26 -15
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/decode.d.ts +3 -0
- package/components/identity.federation/operations/decode.js +13 -0
- package/components/identity.federation/operations/decode.js.map +1 -0
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/incept.js +24 -0
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/Configuration.d.ts +39 -0
- package/components/identity.federation/operations/lib/Configuration.js +3 -0
- package/components/identity.federation/operations/lib/Configuration.js.map +1 -0
- package/components/identity.federation/operations/lib/Ctx.d.ts +7 -0
- package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/lib/Ctx.js} +1 -1
- package/components/identity.federation/operations/lib/Ctx.js.map +1 -0
- package/components/identity.federation/operations/lib/Payload.d.ts +5 -0
- package/components/identity.federation/operations/lib/Payload.js +3 -0
- package/components/identity.federation/operations/lib/Payload.js.map +1 -0
- package/components/identity.federation/operations/lib/decode.d.ts +3 -0
- package/components/identity.federation/operations/lib/decode.js +59 -0
- package/components/identity.federation/operations/lib/decode.js.map +1 -0
- package/components/identity.federation/operations/lib/discovery.d.ts +4 -0
- package/components/identity.federation/operations/lib/{assertions-as-values.js → discovery.js} +23 -19
- package/components/identity.federation/operations/lib/discovery.js.map +1 -0
- package/components/identity.federation/operations/lib/errors.d.ts +11 -0
- package/components/identity.federation/operations/lib/errors.js +15 -0
- package/components/identity.federation/operations/lib/errors.js.map +1 -0
- package/components/identity.federation/operations/lib/exchange.d.ts +3 -0
- package/components/identity.federation/operations/lib/exchange.js +107 -0
- package/components/identity.federation/operations/lib/exchange.js.map +1 -0
- package/components/identity.federation/operations/lib/index.d.ts +3 -0
- package/components/identity.federation/operations/lib/index.js +8 -0
- package/components/identity.federation/operations/lib/index.js.map +1 -0
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/Scheme.d.ts +1 -0
- package/components/identity.federation/operations/types/Scheme.js +3 -0
- package/components/identity.federation/operations/types/Scheme.js.map +1 -0
- package/components/identity.federation/operations/types/configuration.d.ts +20 -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/context.d.ts +37 -0
- 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 +4 -0
- package/components/identity.federation/operations/types/index.js +21 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +45 -19
- package/components/identity.federation/source/decode.ts +11 -0
- package/components/identity.federation/source/incept.ts +38 -0
- package/components/identity.federation/source/lib/Configuration.ts +39 -0
- package/components/identity.federation/source/lib/Ctx.ts +8 -0
- package/components/identity.federation/source/lib/Payload.ts +6 -0
- package/components/identity.federation/source/lib/decode.ts +48 -0
- package/components/identity.federation/source/lib/discovery.ts +30 -0
- package/components/identity.federation/source/lib/errors.ts +12 -0
- package/components/identity.federation/source/lib/exchange.ts +116 -0
- package/components/identity.federation/source/lib/index.ts +3 -0
- package/components/identity.federation/source/types/Scheme.ts +1 -0
- package/components/identity.federation/source/types/configuration.ts +21 -0
- package/components/identity.federation/source/types/context.ts +42 -0
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +4 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.keys/manifest.toa.yaml +57 -0
- package/components/identity.keys/operations/create.d.ts +22 -0
- package/components/identity.keys/operations/create.js +16 -0
- package/components/identity.keys/operations/create.js.map +1 -0
- package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.keys/source/create.ts +35 -0
- package/components/identity.keys/tsconfig.json +9 -0
- package/components/identity.otp/manifest.toa.yaml +39 -0
- package/components/identity.otp/operations/authenticate.d.ts +12 -0
- package/components/identity.otp/operations/authenticate.js +30 -0
- package/components/identity.otp/operations/authenticate.js.map +1 -0
- package/components/identity.otp/operations/issue.d.ts +10 -0
- package/components/identity.otp/operations/issue.js +13 -0
- package/components/identity.otp/operations/issue.js.map +1 -0
- package/components/identity.otp/operations/lib/Context.d.ts +13 -0
- package/components/identity.otp/operations/lib/Context.js +3 -0
- package/components/identity.otp/operations/lib/Context.js.map +1 -0
- package/components/identity.otp/operations/lib/Entity.d.ts +5 -0
- package/components/identity.otp/operations/lib/Entity.js +3 -0
- package/components/identity.otp/operations/lib/Entity.js.map +1 -0
- package/components/identity.otp/operations/lib/index.d.ts +1 -0
- package/components/identity.otp/operations/lib/index.js +3 -0
- package/components/identity.otp/operations/lib/index.js.map +1 -0
- package/components/identity.otp/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.otp/source/authenticate.ts +46 -0
- package/components/identity.otp/source/issue.ts +22 -0
- package/components/identity.otp/source/lib/Context.ts +14 -0
- package/components/identity.otp/source/lib/Entity.ts +5 -0
- package/components/identity.otp/source/lib/index.ts +1 -0
- package/components/identity.otp/tsconfig.json +9 -0
- package/components/identity.passkeys/manifest.toa.yaml +268 -0
- package/components/identity.passkeys/operations/authenticate.d.ts +16 -0
- package/components/identity.passkeys/operations/authenticate.js +34 -0
- package/components/identity.passkeys/operations/authenticate.js.map +1 -0
- package/components/identity.passkeys/operations/challenge.d.ts +35 -0
- package/components/identity.passkeys/operations/challenge.js +73 -0
- package/components/identity.passkeys/operations/challenge.js.map +1 -0
- package/components/identity.passkeys/operations/create.d.ts +19 -0
- package/components/identity.passkeys/operations/create.js +58 -0
- package/components/identity.passkeys/operations/create.js.map +1 -0
- package/components/identity.passkeys/operations/delete.d.ts +8 -0
- package/components/identity.passkeys/operations/delete.js +12 -0
- package/components/identity.passkeys/operations/delete.js.map +1 -0
- package/components/identity.passkeys/operations/lib/const.d.ts +1 -0
- package/components/identity.passkeys/operations/lib/const.js +5 -0
- package/components/identity.passkeys/operations/lib/const.js.map +1 -0
- package/components/identity.passkeys/operations/list.d.ts +7 -0
- package/components/identity.passkeys/operations/list.js +15 -0
- package/components/identity.passkeys/operations/list.js.map +1 -0
- package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.passkeys/operations/types/Configuration.d.ts +6 -0
- package/components/identity.passkeys/operations/types/Configuration.js +3 -0
- package/components/identity.passkeys/operations/types/Configuration.js.map +1 -0
- package/components/identity.passkeys/operations/types/Context.d.ts +15 -0
- package/components/identity.passkeys/operations/types/Context.js +3 -0
- package/components/identity.passkeys/operations/types/Context.js.map +1 -0
- package/components/identity.passkeys/operations/types/Passkey.d.ts +13 -0
- package/components/identity.passkeys/operations/types/Passkey.js +3 -0
- package/components/identity.passkeys/operations/types/Passkey.js.map +1 -0
- package/components/identity.passkeys/operations/types/index.d.ts +2 -0
- package/components/identity.passkeys/operations/types/index.js +3 -0
- package/components/identity.passkeys/operations/types/index.js.map +1 -0
- package/components/identity.passkeys/operations/use.d.ts +16 -0
- package/components/identity.passkeys/operations/use.js +57 -0
- package/components/identity.passkeys/operations/use.js.map +1 -0
- package/components/identity.passkeys/source/authenticate.ts +48 -0
- package/components/identity.passkeys/source/challenge.ts +115 -0
- package/components/identity.passkeys/source/create.ts +77 -0
- package/components/identity.passkeys/source/delete.ts +15 -0
- package/components/identity.passkeys/source/lib/const.ts +1 -0
- package/components/identity.passkeys/source/list.ts +17 -0
- package/components/identity.passkeys/source/types/Configuration.ts +6 -0
- package/components/identity.passkeys/source/types/Context.ts +16 -0
- package/components/identity.passkeys/source/types/Passkey.ts +14 -0
- package/components/identity.passkeys/source/types/index.ts +2 -0
- package/components/identity.passkeys/source/use.ts +75 -0
- package/components/identity.passkeys/tsconfig.json +9 -0
- package/components/identity.roles/manifest.toa.yaml +3 -1
- package/components/identity.roles/operations/grant.js +2 -2
- package/components/identity.roles/operations/grant.js.map +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +2 -2
- package/components/identity.tokens/manifest.toa.yaml +97 -13
- package/components/identity.tokens/operations/authenticate.d.ts +3 -3
- package/components/identity.tokens/operations/authenticate.js +15 -11
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.d.ts +12 -3
- package/components/identity.tokens/operations/decrypt.js +62 -17
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.d.ts +3 -3
- package/components/identity.tokens/operations/encrypt.js +24 -7
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/issue.d.ts +24 -0
- package/components/identity.tokens/operations/issue.js +59 -0
- package/components/identity.tokens/operations/issue.js.map +1 -0
- package/components/identity.tokens/operations/lib/index.d.ts +2 -0
- package/components/identity.tokens/operations/lib/index.js +19 -0
- package/components/identity.tokens/operations/lib/index.js.map +1 -0
- package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
- package/components/identity.tokens/operations/lib/pad.js +5 -0
- package/components/identity.tokens/operations/lib/pad.js.map +1 -0
- package/components/identity.tokens/operations/lib/types.d.ts +74 -0
- package/components/identity.tokens/operations/lib/types.js.map +1 -0
- package/components/identity.tokens/operations/revoke.d.ts +2 -2
- package/components/identity.tokens/operations/revoke.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/source/authenticate.test.ts +22 -9
- package/components/identity.tokens/source/authenticate.ts +18 -13
- package/components/identity.tokens/source/decrypt.test.ts +33 -18
- package/components/identity.tokens/source/decrypt.ts +91 -20
- package/components/identity.tokens/source/encrypt.test.ts +47 -13
- package/components/identity.tokens/source/encrypt.ts +36 -11
- package/components/identity.tokens/source/issue.ts +82 -0
- package/components/identity.tokens/source/lib/index.ts +2 -0
- package/components/identity.tokens/source/lib/pad.ts +1 -0
- package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
- package/components/identity.tokens/source/lib/types.ts +85 -0
- package/components/identity.tokens/source/revoke.ts +2 -2
- package/components/octets.storage/manifest.toa.yaml +11 -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 +135 -0
- package/documentation/access.md +83 -31
- package/documentation/authorities.md +48 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +123 -51
- package/documentation/dev.md +30 -0
- package/documentation/flow.md +44 -0
- package/documentation/identity.md +129 -24
- package/documentation/introspection.md +82 -0
- package/documentation/map.md +86 -0
- package/documentation/octets.md +122 -69
- package/documentation/passkeys.md +4 -0
- package/documentation/protocol.md +11 -4
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/features/access.feature +122 -9
- package/features/annotation.feature +1 -0
- package/features/auth.assert.feature +57 -0
- package/features/auth.claims.feature +170 -0
- package/features/auth.incept.feature +120 -0
- package/features/auth.input.feature +59 -0
- package/features/auth.issue.feature +32 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +99 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +2 -0
- package/features/cache.feature +164 -5
- package/features/cors.feature +8 -2
- package/features/debug.feature +34 -0
- package/features/dev.feature +56 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +48 -0
- package/features/errors.feature +29 -6
- package/features/etag.feature +109 -1
- package/features/flow.feature +148 -0
- package/features/identity.bans.feature +12 -3
- package/features/identity.basic.feature +104 -21
- package/features/identity.feature +18 -6
- package/features/identity.federation.feature +170 -44
- package/features/identity.otp.feature +71 -0
- package/features/identity.roles.feature +60 -20
- package/features/identity.tokens.feature +12 -44
- package/features/identtiy.tokens.custom.feature +247 -0
- package/features/interruptions.feature +19 -0
- package/features/introspection.feature +153 -0
- package/features/io.feature +9 -1
- package/features/map.feature +304 -0
- package/features/methods.feature +47 -0
- package/features/octets.cloudinary.feature +71 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +13 -55
- package/features/octets.feature +90 -114
- package/features/octets.head.feature +40 -0
- package/features/octets.location.feature +83 -0
- package/features/octets.meta.feature +65 -15
- package/features/octets.workflows.feature +339 -66
- package/features/passkeys.feature +66 -0
- 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 +34 -2
- package/features/routes.feature +93 -2
- package/features/server.feature +21 -0
- package/features/steps/.env.example +3 -0
- package/features/steps/Common.ts +4 -0
- package/features/steps/Gateway.ts +26 -7
- package/features/steps/HTTP.ts +25 -2
- package/features/steps/IDP.ts +334 -0
- package/features/steps/Identity.ts +51 -0
- package/features/steps/OTP.ts +39 -0
- package/features/steps/Parameters.ts +45 -2
- package/features/steps/Realtime.ts +151 -0
- package/features/steps/components/echo/manifest.toa.yaml +12 -0
- package/features/steps/components/echo/operations/echo.js +7 -0
- package/features/steps/components/echo/operations/parameters.js +7 -0
- package/features/steps/components/echo/operations/ping.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/greeter/manifest.toa.yaml +0 -1
- package/features/steps/components/octets.tester/manifest.toa.yaml +25 -3
- 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/echo.js +1 -1
- package/features/steps/components/octets.tester/operations/foo.js +1 -2
- package/features/steps/components/octets.tester/operations/id.js +7 -0
- package/features/steps/components/octets.tester/operations/identity.js +7 -0
- 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 +12 -4
- package/features/steps/components/sequences/manifest.toa.yaml +0 -1
- package/features/steps/components/users/manifest.toa.yaml +4 -2
- package/features/steps/components/users/operations/create.js +15 -0
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
- package/features/streams.feature +5 -0
- package/features/timestamps.feature +41 -0
- package/features/timing.feature +4 -1
- package/package.json +28 -17
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +2 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/put.cos.yaml +28 -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.test.ts +1 -1
- package/source/Directive.ts +14 -8
- package/source/Endpoint.ts +70 -17
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +73 -19
- package/source/HTTP/Context.ts +29 -7
- package/source/HTTP/Server.ts +120 -49
- package/source/HTTP/exceptions.ts +12 -0
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +46 -2
- package/source/HTTP/messages.ts +44 -9
- 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 +4 -1
- 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 -12
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Anonymous.ts +3 -3
- package/source/directives/auth/Anyone.ts +13 -0
- package/source/directives/auth/Assert.ts +35 -0
- package/source/directives/auth/Authorization.ts +70 -27
- package/source/directives/auth/Delegate.ts +9 -5
- package/source/directives/auth/Echo.ts +16 -6
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Id.ts +1 -1
- package/source/directives/auth/Incept.ts +62 -24
- package/source/directives/auth/Input.ts +72 -0
- package/source/directives/auth/Role.ts +5 -9
- package/source/directives/auth/Rule.ts +3 -5
- package/source/directives/auth/Scheme.ts +5 -5
- package/source/directives/auth/create.ts +11 -0
- package/source/directives/auth/schemes.ts +5 -2
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +12 -7
- package/source/directives/cache/Cache.ts +15 -6
- package/source/directives/cache/Control.ts +45 -19
- package/source/directives/cors/CORS.ts +3 -2
- package/source/directives/dev/Development.ts +12 -7
- package/source/directives/dev/Sleep.ts +40 -0
- package/source/directives/dev/types.ts +1 -1
- package/source/directives/flow/Compose.ts +92 -0
- package/source/directives/flow/Fetch.ts +86 -0
- package/source/directives/flow/Flow.ts +42 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +7 -0
- package/source/directives/index.ts +4 -2
- package/source/directives/io/IO.ts +1 -1
- package/source/directives/io/Input.ts +8 -5
- package/source/directives/io/Output.ts +5 -4
- package/source/directives/map/Authority.ts +15 -0
- package/source/directives/map/Claims.ts +58 -0
- package/source/directives/map/Directive.ts +4 -0
- package/source/directives/map/Headers.ts +38 -0
- package/source/directives/map/Language.ts +42 -0
- package/source/directives/map/Languages.ts +11 -0
- package/source/directives/map/Map.ts +61 -0
- package/source/directives/map/Mapping.ts +19 -0
- package/source/directives/{vary → map}/Properties.ts +2 -4
- package/source/directives/map/Segments.ts +33 -0
- package/source/directives/map/index.ts +3 -0
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Delete.ts +21 -17
- package/source/directives/octets/Get.ts +86 -0
- package/source/directives/octets/Octets.ts +9 -12
- package/source/directives/octets/{Store.ts → Put.ts} +52 -38
- package/source/directives/octets/Workflow.ts +9 -3
- 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/types.ts +2 -0
- package/source/directives/octets/workflows/Execution.ts +61 -8
- package/source/directives/octets/workflows/Workflow.ts +17 -7
- package/source/directives/octets/workflows/index.ts +1 -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/exceptions.ts +2 -1
- package/source/manifest.ts +10 -11
- package/source/root.ts +16 -1
- 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 +13 -8
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +46 -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 +55 -12
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +9 -2
- package/transpiled/HTTP/Context.js +19 -6
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +15 -4
- package/transpiled/HTTP/Server.js +87 -42
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +6 -0
- 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 +2 -1
- package/transpiled/HTTP/messages.js +40 -8
- 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 +4 -1
- 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 -4
- package/transpiled/Tenant.js +2 -7
- 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/Anonymous.d.ts +2 -2
- package/transpiled/directives/auth/Anonymous.js +2 -2
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Anyone.d.ts +6 -0
- package/transpiled/directives/auth/Anyone.js +14 -0
- package/transpiled/directives/auth/Anyone.js.map +1 -0
- package/transpiled/directives/auth/Assert.d.ts +7 -0
- package/transpiled/directives/auth/Assert.js +57 -0
- package/transpiled/directives/auth/Assert.js.map +1 -0
- package/transpiled/directives/auth/Authorization.d.ts +4 -3
- package/transpiled/directives/auth/Authorization.js +54 -24
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +5 -4
- package/transpiled/directives/auth/Delegate.js +7 -3
- package/transpiled/directives/auth/Delegate.js.map +1 -1
- package/transpiled/directives/auth/Echo.d.ts +4 -4
- package/transpiled/directives/auth/Echo.js +11 -4
- 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/Id.d.ts +1 -1
- package/transpiled/directives/auth/Id.js.map +1 -1
- package/transpiled/directives/auth/Incept.d.ts +7 -5
- package/transpiled/directives/auth/Incept.js +47 -18
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Input.d.ts +13 -0
- package/transpiled/directives/auth/Input.js +49 -0
- package/transpiled/directives/auth/Input.js.map +1 -0
- package/transpiled/directives/auth/Role.d.ts +1 -1
- package/transpiled/directives/auth/Role.js +4 -6
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Rule.d.ts +2 -4
- package/transpiled/directives/auth/Rule.js +2 -2
- package/transpiled/directives/auth/Rule.js.map +1 -1
- package/transpiled/directives/auth/Scheme.d.ts +2 -2
- package/transpiled/directives/auth/Scheme.js +4 -4
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/create.d.ts +2 -0
- package/transpiled/directives/auth/create.js +14 -0
- package/transpiled/directives/auth/create.js.map +1 -0
- package/transpiled/directives/auth/schemes.d.ts +2 -1
- package/transpiled/directives/auth/schemes.js +5 -2
- package/transpiled/directives/auth/schemes.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 +10 -7
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +12 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +3 -2
- package/transpiled/directives/cache/Control.js +32 -15
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +3 -2
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.d.ts +1 -1
- package/transpiled/directives/dev/Development.js +13 -7
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/dev/Sleep.d.ts +8 -0
- package/transpiled/directives/dev/Sleep.js +36 -0
- package/transpiled/directives/dev/Sleep.js.map +1 -0
- package/transpiled/directives/dev/types.d.ts +1 -1
- package/transpiled/directives/flow/Compose.d.ts +9 -0
- package/transpiled/directives/flow/Compose.js +94 -0
- package/transpiled/directives/flow/Compose.js.map +1 -0
- package/transpiled/directives/flow/Fetch.d.ts +12 -0
- package/transpiled/directives/flow/Fetch.js +58 -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 +33 -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 +6 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +4 -2
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/IO.js +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Input.js +4 -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/map/Authority.d.ts +6 -0
- package/transpiled/directives/map/Authority.js +19 -0
- package/transpiled/directives/map/Authority.js.map +1 -0
- package/transpiled/directives/map/Claims.d.ts +10 -0
- package/transpiled/directives/map/Claims.js +44 -0
- package/transpiled/directives/map/Claims.js.map +1 -0
- package/transpiled/directives/map/Directive.d.ts +3 -0
- package/transpiled/directives/map/Directive.js.map +1 -0
- package/transpiled/directives/map/Headers.d.ts +7 -0
- package/transpiled/directives/map/Headers.js +34 -0
- package/transpiled/directives/map/Headers.js.map +1 -0
- package/transpiled/directives/map/Language.d.ts +10 -0
- package/transpiled/directives/map/Language.js +38 -0
- package/transpiled/directives/map/Language.js.map +1 -0
- package/transpiled/directives/map/Languages.d.ts +4 -0
- package/transpiled/directives/map/Languages.js +17 -0
- package/transpiled/directives/map/Languages.js.map +1 -0
- package/transpiled/directives/map/Map.d.ts +13 -0
- package/transpiled/directives/map/Map.js +46 -0
- package/transpiled/directives/map/Map.js.map +1 -0
- package/transpiled/directives/map/Mapping.d.ts +13 -0
- package/transpiled/directives/map/Mapping.js +13 -0
- package/transpiled/directives/map/Mapping.js.map +1 -0
- package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
- package/transpiled/directives/{vary → map}/Properties.js +1 -3
- package/transpiled/directives/map/Properties.js.map +1 -0
- package/transpiled/directives/map/Segments.d.ts +6 -0
- package/transpiled/directives/map/Segments.js +30 -0
- package/transpiled/directives/map/Segments.js.map +1 -0
- package/transpiled/directives/map/index.d.ts +2 -0
- package/transpiled/directives/map/index.js +6 -0
- package/transpiled/directives/map/index.js.map +1 -0
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.js +15 -12
- 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} +25 -29
- package/transpiled/directives/octets/Get.js.map +1 -0
- package/transpiled/directives/octets/Octets.js +9 -12
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
- package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
- package/transpiled/directives/octets/Put.js.map +1 -0
- package/transpiled/directives/octets/Workflow.js +7 -2
- 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/types.d.ts +2 -0
- package/transpiled/directives/octets/workflows/Execution.d.ts +6 -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 +8 -3
- package/transpiled/directives/octets/workflows/Workflow.js +9 -4
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/octets/workflows/index.d.ts +1 -1
- package/transpiled/directives/octets/workflows/index.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/exceptions.js +2 -1
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/root.js +16 -1
- package/transpiled/root.js.map +1 -1
- package/transpiled/schemas.d.ts +1 -1
- package/transpiled/schemas.js +2 -2
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/operations/create.d.ts +0 -10
- package/components/identity.basic/operations/create.js +0 -10
- package/components/identity.basic/operations/create.js.map +0 -1
- package/components/identity.basic/source/create.ts +0 -18
- package/components/identity.federation/operations/create.d.ts +0 -10
- package/components/identity.federation/operations/create.js +0 -15
- package/components/identity.federation/operations/create.js.map +0 -1
- package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
- package/components/identity.federation/operations/lib/jwt.d.ts +0 -20
- package/components/identity.federation/operations/lib/jwt.js +0 -136
- package/components/identity.federation/operations/lib/jwt.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.d.ts +0 -51
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/create.ts +0 -26
- package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
- package/components/identity.federation/source/lib/jwt.test.ts +0 -56
- package/components/identity.federation/source/lib/jwt.ts +0 -171
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/identity.federation/source/types.ts +0 -56
- package/components/identity.tokens/operations/types.d.ts +0 -39
- package/components/identity.tokens/operations/types.js.map +0 -1
- package/components/identity.tokens/source/types.ts +0 -47
- 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/documentation/vary.md +0 -75
- package/features/steps/IdP.ts +0 -154
- package/features/steps/components/octets.tester/operations/diversify.js +0 -14
- package/features/vary.feature +0 -203
- 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/source/directives/vary/Directive.ts +0 -7
- package/source/directives/vary/Embed.ts +0 -68
- package/source/directives/vary/Vary.ts +0 -50
- package/source/directives/vary/embeddings/Embedding.ts +0 -7
- package/source/directives/vary/embeddings/Header.ts +0 -32
- package/source/directives/vary/embeddings/Language.ts +0 -31
- package/source/directives/vary/embeddings/Parameter.ts +0 -14
- package/source/directives/vary/embeddings/index.ts +0 -11
- package/source/directives/vary/index.ts +0 -3
- 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/transpiled/directives/vary/Directive.d.ts +0 -6
- package/transpiled/directives/vary/Directive.js.map +0 -1
- package/transpiled/directives/vary/Embed.d.ts +0 -11
- package/transpiled/directives/vary/Embed.js +0 -51
- package/transpiled/directives/vary/Embed.js.map +0 -1
- package/transpiled/directives/vary/Properties.js.map +0 -1
- package/transpiled/directives/vary/Vary.d.ts +0 -10
- package/transpiled/directives/vary/Vary.js +0 -36
- package/transpiled/directives/vary/Vary.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
- package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Header.js +0 -28
- package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Language.js +0 -28
- package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
- package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
- package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/index.js +0 -12
- package/transpiled/directives/vary/embeddings/index.js.map +0 -1
- package/transpiled/directives/vary/index.d.ts +0 -2
- package/transpiled/directives/vary/index.js +0 -6
- package/transpiled/directives/vary/index.js.map +0 -1
- /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
- /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
- /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
- /package/transpiled/directives/{vary → map}/Directive.js +0 -0
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: no-store
|
|
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: no-store
|
|
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: no-store
|
|
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,103 @@ 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
|
+
/sessions/:id:
|
|
244
|
+
auth:id: id
|
|
245
|
+
GET:
|
|
246
|
+
dev:stub: Keep it
|
|
247
|
+
"""
|
|
248
|
+
When the following request is received:
|
|
249
|
+
"""
|
|
250
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
251
|
+
host: nex.toa.io
|
|
252
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
253
|
+
"""
|
|
254
|
+
Then the following reply is sent:
|
|
255
|
+
"""
|
|
256
|
+
200 OK
|
|
257
|
+
authorization: Token ${{ token }}
|
|
258
|
+
cache-control: no-store
|
|
259
|
+
"""
|
|
260
|
+
When the following request is received:
|
|
261
|
+
"""
|
|
262
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
263
|
+
host: nex.toa.io
|
|
264
|
+
authorization: Token ${{ token }}
|
|
265
|
+
"""
|
|
266
|
+
Then the following reply is sent:
|
|
267
|
+
"""
|
|
268
|
+
200 OK
|
|
269
|
+
cache-control: private, max-age=10000
|
|
270
|
+
vary: authorization
|
|
271
|
+
"""
|
|
272
|
+
When the following request is received:
|
|
273
|
+
"""
|
|
274
|
+
GET /sessions/efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
275
|
+
host: nex.toa.io
|
|
276
|
+
authorization: Token ${{ token }}
|
|
277
|
+
"""
|
|
278
|
+
Then the following reply is sent:
|
|
279
|
+
"""
|
|
280
|
+
200 OK
|
|
281
|
+
cache-control: private
|
|
282
|
+
vary: authorization
|
|
283
|
+
"""
|
|
284
|
+
|
|
285
|
+
Scenario: Authenticated `no-cache` responses
|
|
286
|
+
Given the `identity.basic` database contains:
|
|
287
|
+
| _id | authority | username | password |
|
|
288
|
+
| efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
|
|
289
|
+
And the annotation:
|
|
290
|
+
"""yaml
|
|
291
|
+
/:
|
|
292
|
+
/:id:
|
|
293
|
+
auth:id: id
|
|
294
|
+
cache:control: no-cache
|
|
295
|
+
GET:
|
|
296
|
+
dev:stub: Keep it
|
|
297
|
+
"""
|
|
298
|
+
When the following request is received:
|
|
299
|
+
"""
|
|
300
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
301
|
+
host: nex.toa.io
|
|
302
|
+
authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
|
|
303
|
+
"""
|
|
304
|
+
# no-store since the response contains the token
|
|
305
|
+
Then the following reply is sent:
|
|
306
|
+
"""
|
|
307
|
+
200 OK
|
|
308
|
+
authorization: Token ${{ token }}
|
|
309
|
+
cache-control: no-store
|
|
310
|
+
"""
|
|
311
|
+
When the following request is received:
|
|
312
|
+
"""
|
|
313
|
+
GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
|
|
314
|
+
host: nex.toa.io
|
|
315
|
+
authorization: Token ${{ token }}
|
|
316
|
+
"""
|
|
317
|
+
# private is added since the response is authenticated
|
|
318
|
+
Then the following reply is sent:
|
|
319
|
+
"""
|
|
320
|
+
200 OK
|
|
321
|
+
cache-control: private, no-cache
|
|
322
|
+
"""
|
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,13 +30,15 @@ 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:
|
|
34
37
|
"""
|
|
35
38
|
200 OK
|
|
36
39
|
access-control-allow-origin: https://hello.world
|
|
37
|
-
access-control-
|
|
40
|
+
access-control-allow-credentials: true
|
|
41
|
+
access-control-expose-headers: authorization, content-type, content-length, etag, last-modified
|
|
38
42
|
vary: origin
|
|
39
43
|
"""
|
|
40
44
|
|
|
@@ -49,6 +53,7 @@ Feature: CORS Support
|
|
|
49
53
|
When the following request is received:
|
|
50
54
|
"""
|
|
51
55
|
GET /bar/ HTTP/1.1
|
|
56
|
+
host: nex.toa.io
|
|
52
57
|
origin: https://hello.world
|
|
53
58
|
"""
|
|
54
59
|
Then the following reply is sent:
|
|
@@ -61,6 +66,7 @@ Feature: CORS Support
|
|
|
61
66
|
When the following request is received:
|
|
62
67
|
"""
|
|
63
68
|
GET /foo/ HTTP/1.1
|
|
69
|
+
host: nex.toa.io
|
|
64
70
|
origin: https://hello.world
|
|
65
71
|
"""
|
|
66
72
|
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
|
+
"""
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Feature: Dev
|
|
2
|
+
|
|
3
|
+
Scenario: Delays
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
/:
|
|
7
|
+
io:output: true
|
|
8
|
+
anonymous: true
|
|
9
|
+
dev:sleep: 3000
|
|
10
|
+
GET:
|
|
11
|
+
dev:stub: hello
|
|
12
|
+
/nested:
|
|
13
|
+
GET:
|
|
14
|
+
dev:stub: world
|
|
15
|
+
"""
|
|
16
|
+
# CORS permission
|
|
17
|
+
When the following request is received:
|
|
18
|
+
"""
|
|
19
|
+
OPTIONS / HTTP/1.1
|
|
20
|
+
origin: http://example.com
|
|
21
|
+
"""
|
|
22
|
+
Then the following reply is sent:
|
|
23
|
+
"""
|
|
24
|
+
204 No Content
|
|
25
|
+
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, sleep
|
|
26
|
+
"""
|
|
27
|
+
When the following request is received:
|
|
28
|
+
"""
|
|
29
|
+
GET / HTTP/1.1
|
|
30
|
+
sleep: 2500
|
|
31
|
+
"""
|
|
32
|
+
# check the response time
|
|
33
|
+
Then the following reply is sent:
|
|
34
|
+
"""
|
|
35
|
+
200 OK
|
|
36
|
+
"""
|
|
37
|
+
When the following request is received:
|
|
38
|
+
"""
|
|
39
|
+
GET /nested/ HTTP/1.1
|
|
40
|
+
sleep: 500
|
|
41
|
+
"""
|
|
42
|
+
Then the following reply is sent:
|
|
43
|
+
"""
|
|
44
|
+
200 OK
|
|
45
|
+
"""
|
|
46
|
+
When the following request is received:
|
|
47
|
+
"""
|
|
48
|
+
GET / HTTP/1.1
|
|
49
|
+
sleep: 3500
|
|
50
|
+
"""
|
|
51
|
+
Then the following reply is sent:
|
|
52
|
+
"""
|
|
53
|
+
400 Bad Request
|
|
54
|
+
|
|
55
|
+
"Invalid sleep duration"
|
|
56
|
+
"""
|
|
@@ -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:
|
package/features/errors.feature
CHANGED
|
@@ -8,6 +8,7 @@ Feature: Errors
|
|
|
8
8
|
When the following request is received:
|
|
9
9
|
"""
|
|
10
10
|
GET <path> HTTP/1.1
|
|
11
|
+
host: nex.toa.io
|
|
11
12
|
accept: text/plain
|
|
12
13
|
"""
|
|
13
14
|
Then the following reply is sent:
|
|
@@ -30,6 +31,7 @@ Feature: Errors
|
|
|
30
31
|
When the following request is received:
|
|
31
32
|
"""
|
|
32
33
|
GET /basic/greeter HTTP/1.1
|
|
34
|
+
host: nex.toa.io
|
|
33
35
|
accept: application/json
|
|
34
36
|
"""
|
|
35
37
|
Then the following reply is sent:
|
|
@@ -37,7 +39,7 @@ Feature: Errors
|
|
|
37
39
|
404 Not Found
|
|
38
40
|
content-type: application/json
|
|
39
41
|
|
|
40
|
-
"Trailing slash is required
|
|
42
|
+
"Trailing slash is required"
|
|
41
43
|
"""
|
|
42
44
|
|
|
43
45
|
Scenario: Missing method
|
|
@@ -45,6 +47,7 @@ Feature: Errors
|
|
|
45
47
|
When the following request is received:
|
|
46
48
|
"""
|
|
47
49
|
PATCH /greeter/ HTTP/1.1
|
|
50
|
+
host: nex.toa.io
|
|
48
51
|
accept: application/yaml
|
|
49
52
|
"""
|
|
50
53
|
Then the following reply is sent:
|
|
@@ -56,6 +59,7 @@ Feature: Errors
|
|
|
56
59
|
When the following request is received:
|
|
57
60
|
"""
|
|
58
61
|
COPY /basic/greeter/ HTTP/1.1
|
|
62
|
+
host: nex.toa.io
|
|
59
63
|
accept: application/yaml
|
|
60
64
|
"""
|
|
61
65
|
Then the following reply is sent:
|
|
@@ -73,6 +77,7 @@ Feature: Errors
|
|
|
73
77
|
When the following request is received:
|
|
74
78
|
"""
|
|
75
79
|
POST /pots/ HTTP/1.1
|
|
80
|
+
host: nex.toa.io
|
|
76
81
|
accept: application/yaml
|
|
77
82
|
content-type: application/yaml
|
|
78
83
|
|
|
@@ -97,6 +102,7 @@ Feature: Errors
|
|
|
97
102
|
When the following request is received:
|
|
98
103
|
"""
|
|
99
104
|
GET /pots/?limit=1001 HTTP/1.1
|
|
105
|
+
host: nex.toa.io
|
|
100
106
|
accept: text/plain
|
|
101
107
|
"""
|
|
102
108
|
Then the following reply is sent:
|
|
@@ -104,7 +110,7 @@ Feature: Errors
|
|
|
104
110
|
400 Bad Request
|
|
105
111
|
content-type: text/plain
|
|
106
112
|
|
|
107
|
-
Query limit must be between 1 and
|
|
113
|
+
Query limit must be between 1 and 100 inclusive
|
|
108
114
|
"""
|
|
109
115
|
|
|
110
116
|
Scenario: Closed query criteria
|
|
@@ -115,11 +121,12 @@ Feature: Errors
|
|
|
115
121
|
GET:
|
|
116
122
|
endpoint: enumerate
|
|
117
123
|
query:
|
|
118
|
-
criteria:
|
|
124
|
+
criteria: temperature>60
|
|
119
125
|
"""
|
|
120
126
|
When the following request is received:
|
|
121
127
|
"""
|
|
122
128
|
GET /pots/hot/?criteria=volume>500 HTTP/1.1
|
|
129
|
+
host: nex.toa.io
|
|
123
130
|
accept: text/plain
|
|
124
131
|
"""
|
|
125
132
|
Then the following reply is sent:
|
|
@@ -127,7 +134,7 @@ Feature: Errors
|
|
|
127
134
|
400 Bad Request
|
|
128
135
|
content-type: text/plain
|
|
129
136
|
|
|
130
|
-
Query criteria is closed
|
|
137
|
+
Query criteria is closed
|
|
131
138
|
"""
|
|
132
139
|
|
|
133
140
|
Scenario: Additional query parameters
|
|
@@ -141,6 +148,7 @@ Feature: Errors
|
|
|
141
148
|
When the following request is received:
|
|
142
149
|
"""
|
|
143
150
|
GET /pots/?foo=bar HTTP/1.1
|
|
151
|
+
host: nex.toa.io
|
|
144
152
|
accept: text/plain
|
|
145
153
|
"""
|
|
146
154
|
Then the following reply is sent:
|
|
@@ -148,7 +156,7 @@ Feature: Errors
|
|
|
148
156
|
400 Bad Request
|
|
149
157
|
content-type: text/plain
|
|
150
158
|
|
|
151
|
-
Query
|
|
159
|
+
Query Property foo is not expected to be here
|
|
152
160
|
"""
|
|
153
161
|
|
|
154
162
|
Scenario: Malformed authorization header
|
|
@@ -160,6 +168,7 @@ Feature: Errors
|
|
|
160
168
|
When the following request is received:
|
|
161
169
|
"""
|
|
162
170
|
GET / HTTP/1.1
|
|
171
|
+
host: nex.toa.io
|
|
163
172
|
authorization: Basic
|
|
164
173
|
accept: text/plain
|
|
165
174
|
"""
|
|
@@ -167,7 +176,7 @@ Feature: Errors
|
|
|
167
176
|
"""
|
|
168
177
|
401 Unauthorized
|
|
169
178
|
|
|
170
|
-
Malformed authorization header
|
|
179
|
+
Malformed authorization header
|
|
171
180
|
"""
|
|
172
181
|
|
|
173
182
|
Scenario Outline: Exception is thrown (debug: <debug>)
|
|
@@ -182,6 +191,7 @@ Feature: Errors
|
|
|
182
191
|
When the following request is received:
|
|
183
192
|
"""
|
|
184
193
|
GET / HTTP/1.1
|
|
194
|
+
host: nex.toa.io
|
|
185
195
|
accept: text/plain
|
|
186
196
|
"""
|
|
187
197
|
Then the following reply is sent:
|
|
@@ -206,9 +216,22 @@ Feature: Errors
|
|
|
206
216
|
When the following request is received:
|
|
207
217
|
"""
|
|
208
218
|
GET / HTTP/1.1
|
|
219
|
+
host: nex.toa.io
|
|
209
220
|
accept: image/jpeg
|
|
210
221
|
"""
|
|
211
222
|
Then the following reply is sent:
|
|
212
223
|
"""
|
|
213
224
|
406 Not Acceptable
|
|
214
225
|
"""
|
|
226
|
+
|
|
227
|
+
Scenario: Not acceptable request with error
|
|
228
|
+
When the following request is received:
|
|
229
|
+
"""
|
|
230
|
+
GET /robots.txt HTTP/1.1
|
|
231
|
+
host: nex.toa.io
|
|
232
|
+
accept: text/html
|
|
233
|
+
"""
|
|
234
|
+
Then the following reply is sent:
|
|
235
|
+
"""
|
|
236
|
+
404 Not Found
|
|
237
|
+
"""
|