@toa.io/extensions.exposition 0.24.0-alpha.9 → 1.0.0-alpha.10
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 +12 -0
- package/components/identity.bans/manifest.toa.yaml +2 -1
- package/components/identity.basic/manifest.toa.yaml +5 -1
- package/components/identity.basic/operations/authenticate.js +1 -2
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/source/authenticate.ts +0 -1
- package/components/identity.federation/events/principal.js +22 -0
- package/components/identity.federation/manifest.toa.yaml +94 -0
- package/components/identity.federation/operations/authenticate.d.ts +3 -0
- package/components/identity.federation/operations/authenticate.js +20 -0
- package/components/identity.federation/operations/authenticate.js.map +1 -0
- package/components/identity.federation/operations/create.d.ts +10 -0
- package/components/identity.federation/operations/create.js +15 -0
- package/components/identity.federation/operations/create.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.d.ts +4 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +45 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -0
- package/components/identity.federation/operations/lib/jwt.d.ts +20 -0
- package/components/identity.federation/operations/lib/jwt.js +136 -0
- package/components/identity.federation/operations/lib/jwt.js.map +1 -0
- package/components/identity.federation/operations/schemas.d.ts +59 -0
- package/components/identity.federation/operations/schemas.js +9 -0
- package/components/identity.federation/operations/schemas.js.map +1 -0
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.federation/operations/types.d.ts +51 -0
- package/components/identity.federation/operations/types.js +3 -0
- package/components/identity.federation/operations/types.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +28 -0
- package/components/identity.federation/source/create.ts +26 -0
- package/components/identity.federation/source/lib/assertions-as-values.ts +19 -0
- package/components/identity.federation/source/lib/jwt.test.ts +56 -0
- package/components/identity.federation/source/lib/jwt.ts +171 -0
- package/components/identity.federation/source/schemas.ts +61 -0
- package/components/identity.federation/source/types.ts +56 -0
- package/components/identity.federation/tsconfig.json +9 -0
- package/components/identity.roles/manifest.toa.yaml +17 -5
- package/components/identity.roles/operations/grant.d.ts +10 -0
- package/components/identity.roles/operations/grant.js +20 -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 +31 -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 +1 -1
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/octets.storage/manifest.toa.yaml +1 -0
- package/components/octets.storage/operations/store.js +3 -3
- package/cucumber.js +0 -1
- package/documentation/access.md +11 -11
- package/documentation/components.md +48 -12
- package/documentation/identity.md +14 -7
- package/documentation/io.md +56 -0
- package/documentation/octets.md +102 -37
- package/documentation/protocol.md +21 -1
- package/documentation/query.md +51 -6
- package/documentation/tree.md +22 -4
- package/documentation/vary.md +69 -0
- package/features/access.feature +13 -2
- package/features/annotation.feature +1 -0
- package/features/body.feature +3 -1
- package/features/cache.feature +3 -0
- package/features/cors.feature +72 -0
- package/features/directives.feature +2 -0
- package/features/dynamic.feature +14 -7
- package/features/errors.feature +4 -3
- package/features/etag.feature +97 -0
- package/features/identity.basic.feature +68 -0
- package/features/identity.feature +19 -3
- package/features/identity.federation.feature +153 -0
- package/features/identity.roles.feature +151 -0
- package/features/identity.tokens.feature +3 -0
- package/features/io.feature +167 -0
- package/features/octets.entries.feature +123 -0
- package/features/octets.feature +4 -28
- package/features/octets.meta.feature +66 -0
- package/features/octets.workflows.feature +177 -4
- package/features/queries.feature +9 -1
- package/features/response.feature +68 -0
- package/features/routes.feature +54 -10
- package/features/steps/Captures.ts +6 -0
- package/features/steps/Components.ts +18 -6
- package/features/steps/Database.ts +1 -1
- package/features/steps/Gateway.ts +4 -2
- package/features/steps/HTTP.ts +34 -6
- package/features/steps/IdP.ts +149 -0
- package/features/steps/Parameters.ts +8 -2
- package/features/steps/Workspace.ts +5 -7
- package/features/steps/components/echo/manifest.toa.yaml +1 -0
- package/features/steps/components/echo/operations/error.js +11 -0
- package/features/steps/components/greeter/manifest.toa.yaml +1 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +4 -0
- package/features/steps/components/octets.tester/operations/concat.js +7 -0
- package/features/steps/components/octets.tester/operations/echo.js +7 -0
- package/features/steps/components/pots/manifest.toa.yaml +12 -3
- package/features/steps/components/sequences/manifest.toa.yaml +1 -0
- package/features/steps/components/users/manifest.toa.yaml +4 -0
- package/features/steps/components/users.properties/manifest.toa.yaml +14 -0
- package/features/steps/tsconfig.json +1 -1
- package/features/timing.feature +66 -0
- package/features/vary.feature +180 -0
- package/package.json +16 -20
- package/readme.md +7 -6
- package/schemas/annotation.cos.yaml +1 -0
- package/schemas/io/input.cos.yaml +3 -0
- package/schemas/io/message.cos.yaml +5 -0
- package/schemas/io/output.cos.yaml +5 -0
- package/schemas/octets/delete.cos.yaml +2 -1
- package/schemas/octets/list.cos.yaml +2 -1
- package/schemas/octets/workflow.cos.yaml +12 -0
- package/schemas/querystring.cos.yaml +1 -0
- package/source/Annotation.ts +1 -0
- package/source/Context.ts +6 -4
- package/source/Directive.test.ts +14 -8
- package/source/Directive.ts +26 -49
- package/source/Endpoint.ts +53 -6
- package/source/Factory.ts +23 -12
- package/source/Gateway.ts +45 -42
- package/source/HTTP/Context.ts +67 -0
- package/source/HTTP/Server.test.ts +61 -134
- package/source/HTTP/Server.ts +83 -87
- package/source/HTTP/Timing.ts +40 -0
- package/source/HTTP/formats/msgpack.ts +9 -6
- package/source/HTTP/formats/text.ts +1 -1
- package/source/HTTP/formats/yaml.ts +1 -1
- package/source/HTTP/index.ts +1 -0
- package/source/HTTP/messages.test.ts +27 -8
- package/source/HTTP/messages.ts +38 -42
- package/source/Interception.ts +24 -0
- package/source/Mapping.ts +7 -8
- package/source/RTD/Context.ts +7 -10
- package/source/RTD/Directives.ts +28 -4
- package/source/RTD/Endpoint.ts +6 -4
- package/source/RTD/Match.ts +2 -7
- package/source/RTD/Method.ts +7 -13
- package/source/RTD/Node.ts +13 -14
- package/source/RTD/Tree.ts +19 -15
- package/source/RTD/factory.ts +2 -5
- package/source/RTD/syntax/parse.ts +6 -6
- package/source/RTD/syntax/types.ts +1 -1
- package/source/deployment.ts +7 -2
- package/source/directives/auth/Anonymous.ts +3 -2
- package/source/directives/auth/{Family.ts → Authorization.ts} +39 -40
- package/source/directives/auth/Delegate.ts +32 -0
- package/source/directives/auth/Incept.ts +11 -6
- package/source/directives/auth/Role.ts +5 -3
- package/source/directives/auth/Rule.ts +2 -2
- package/source/directives/auth/Scheme.ts +2 -2
- package/source/directives/auth/index.ts +2 -2
- package/source/directives/auth/schemes.ts +2 -1
- package/source/directives/auth/types.ts +9 -6
- package/source/directives/cache/{Family.ts → Cache.ts} +6 -7
- package/source/directives/cache/Control.ts +5 -5
- package/source/directives/cache/index.ts +2 -2
- package/source/directives/cache/types.ts +2 -2
- package/source/directives/cors/CORS.ts +62 -0
- package/source/directives/cors/index.ts +3 -0
- package/source/directives/dev/{Family.ts → Development.ts} +4 -5
- package/source/directives/dev/Stub.ts +4 -4
- package/source/directives/dev/Throw.ts +4 -4
- package/source/directives/dev/index.ts +2 -2
- package/source/directives/dev/types.ts +1 -1
- package/source/directives/index.ts +11 -6
- package/source/directives/io/Directive.ts +11 -0
- package/source/directives/io/IO.ts +43 -0
- package/source/directives/io/Input.ts +50 -0
- package/source/directives/io/Message.ts +1 -0
- package/source/directives/io/Output.ts +69 -0
- package/source/directives/io/index.ts +3 -0
- package/source/directives/io/schemas.ts +12 -0
- package/source/directives/octets/Context.ts +6 -5
- package/source/directives/octets/Delete.ts +64 -11
- package/source/directives/octets/Directive.ts +10 -0
- package/source/directives/octets/Fetch.ts +44 -29
- package/source/directives/octets/List.ts +50 -10
- package/source/directives/octets/{Family.ts → Octets.ts} +14 -9
- package/source/directives/octets/Permute.ts +18 -11
- package/source/directives/octets/Store.ts +70 -102
- package/source/directives/octets/Workflow.ts +48 -0
- package/source/directives/octets/index.ts +2 -2
- package/source/directives/octets/schemas.test.ts +21 -0
- package/source/directives/octets/schemas.ts +13 -6
- package/source/directives/octets/types.ts +2 -8
- package/source/directives/octets/workflows/Execution.ts +76 -0
- package/source/directives/octets/workflows/Workflow.ts +37 -0
- package/source/directives/octets/workflows/index.ts +1 -0
- package/source/directives/vary/Directive.ts +6 -0
- package/source/directives/vary/Embed.ts +62 -0
- package/source/directives/vary/Properties.ts +17 -0
- package/source/directives/vary/Vary.ts +48 -0
- package/source/directives/vary/embeddings/Embedding.ts +6 -0
- package/source/directives/vary/embeddings/Header.ts +32 -0
- package/source/directives/vary/embeddings/Language.ts +31 -0
- package/source/directives/vary/embeddings/index.ts +11 -0
- package/source/directives/vary/index.ts +3 -0
- package/source/exceptions.ts +13 -9
- package/source/io.ts +4 -0
- package/source/manifest.test.ts +6 -14
- package/source/manifest.ts +9 -6
- package/source/root.ts +5 -0
- package/source/schemas.ts +7 -3
- package/transpiled/Annotation.d.ts +1 -0
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +6 -4
- package/transpiled/Directive.d.ts +11 -25
- package/transpiled/Directive.js +17 -18
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +7 -5
- package/transpiled/Endpoint.js +58 -2
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +0 -1
- package/transpiled/Factory.js +14 -7
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +7 -8
- package/transpiled/Gateway.js +25 -25
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +24 -0
- package/transpiled/HTTP/Context.js +47 -0
- package/transpiled/HTTP/Context.js.map +1 -0
- package/transpiled/HTTP/Server.d.ts +10 -7
- package/transpiled/HTTP/Server.js +80 -70
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/Timing.d.ts +10 -0
- package/transpiled/HTTP/Timing.js +29 -0
- package/transpiled/HTTP/Timing.js.map +1 -0
- package/transpiled/HTTP/formats/msgpack.d.ts +2 -2
- package/transpiled/HTTP/formats/msgpack.js +8 -29
- package/transpiled/HTTP/formats/msgpack.js.map +1 -1
- package/transpiled/HTTP/formats/text.d.ts +3 -1
- package/transpiled/HTTP/formats/text.js.map +1 -1
- package/transpiled/HTTP/formats/yaml.js +1 -1
- package/transpiled/HTTP/formats/yaml.js.map +1 -1
- package/transpiled/HTTP/index.d.ts +1 -0
- package/transpiled/HTTP/index.js +1 -0
- package/transpiled/HTTP/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +7 -16
- package/transpiled/HTTP/messages.js +28 -25
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Interception.d.ts +9 -0
- package/transpiled/Interception.js +19 -0
- package/transpiled/Interception.js.map +1 -0
- package/transpiled/Mapping.js +7 -7
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +7 -6
- package/transpiled/RTD/Directives.d.ts +19 -4
- package/transpiled/RTD/Endpoint.d.ts +6 -4
- package/transpiled/RTD/Match.d.ts +2 -4
- package/transpiled/RTD/Method.d.ts +7 -7
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -6
- package/transpiled/RTD/Node.js +2 -1
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +6 -6
- package/transpiled/RTD/Tree.js +5 -0
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.d.ts +2 -4
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +1 -1
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/deployment.js +6 -2
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.js +3 -4
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/{Family.d.ts → Authorization.d.ts} +4 -5
- package/transpiled/directives/auth/{Family.js → Authorization.js} +22 -13
- package/transpiled/directives/auth/Authorization.js.map +1 -0
- package/transpiled/directives/auth/Delegate.d.ts +8 -0
- package/transpiled/directives/auth/Delegate.js +27 -0
- package/transpiled/directives/auth/Delegate.js.map +1 -0
- package/transpiled/directives/auth/Incept.d.ts +1 -1
- package/transpiled/directives/auth/Incept.js +11 -6
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Role.js +5 -3
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Rule.d.ts +2 -2
- package/transpiled/directives/auth/Rule.js.map +1 -1
- package/transpiled/directives/auth/Scheme.js +2 -2
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/index.d.ts +2 -2
- package/transpiled/directives/auth/index.js +4 -5
- package/transpiled/directives/auth/index.js.map +1 -1
- package/transpiled/directives/auth/schemes.js +2 -1
- package/transpiled/directives/auth/schemes.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +4 -4
- package/transpiled/directives/cache/Cache.d.ts +11 -0
- package/transpiled/directives/cache/{Family.js → Cache.js} +6 -4
- package/transpiled/directives/cache/Cache.js.map +1 -0
- package/transpiled/directives/cache/Control.d.ts +3 -3
- package/transpiled/directives/cache/Control.js +3 -3
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cache/index.d.ts +2 -2
- package/transpiled/directives/cache/index.js +4 -5
- package/transpiled/directives/cache/index.js.map +1 -1
- package/transpiled/directives/cache/types.d.ts +2 -2
- package/transpiled/directives/cors/CORS.d.ts +10 -0
- package/transpiled/directives/cors/CORS.js +51 -0
- package/transpiled/directives/cors/CORS.js.map +1 -0
- package/transpiled/directives/cors/index.d.ts +2 -0
- package/transpiled/directives/cors/index.js +6 -0
- package/transpiled/directives/cors/index.js.map +1 -0
- package/transpiled/directives/dev/Development.d.ts +9 -0
- package/transpiled/directives/dev/{Family.js → Development.js} +4 -2
- package/transpiled/directives/dev/Development.js.map +1 -0
- package/transpiled/directives/dev/Stub.d.ts +3 -3
- package/transpiled/directives/dev/Stub.js.map +1 -1
- package/transpiled/directives/dev/Throw.d.ts +3 -3
- package/transpiled/directives/dev/Throw.js.map +1 -1
- package/transpiled/directives/dev/index.d.ts +2 -2
- package/transpiled/directives/dev/index.js +4 -5
- package/transpiled/directives/dev/index.js.map +1 -1
- package/transpiled/directives/dev/types.d.ts +1 -1
- package/transpiled/directives/index.d.ts +4 -2
- package/transpiled/directives/index.js +10 -9
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Directive.d.ts +8 -0
- package/transpiled/directives/io/Directive.js +3 -0
- package/transpiled/directives/io/Directive.js.map +1 -0
- package/transpiled/directives/io/IO.d.ts +9 -0
- package/transpiled/directives/io/IO.js +33 -0
- package/transpiled/directives/io/IO.js.map +1 -0
- package/transpiled/directives/io/Input.d.ts +11 -0
- package/transpiled/directives/io/Input.js +63 -0
- package/transpiled/directives/io/Input.js.map +1 -0
- package/transpiled/directives/io/Message.d.ts +1 -0
- package/transpiled/directives/io/Message.js +3 -0
- package/transpiled/directives/io/Message.js.map +1 -0
- package/transpiled/directives/io/Output.d.ts +13 -0
- package/transpiled/directives/io/Output.js +76 -0
- package/transpiled/directives/io/Output.js.map +1 -0
- package/transpiled/directives/io/index.d.ts +2 -0
- package/transpiled/directives/io/index.js +6 -0
- package/transpiled/directives/io/index.js.map +1 -0
- package/transpiled/directives/io/schemas.d.ts +7 -0
- package/transpiled/directives/io/schemas.js +14 -0
- package/transpiled/directives/io/schemas.js.map +1 -0
- package/transpiled/directives/octets/Context.d.ts +5 -5
- package/transpiled/directives/octets/Context.js +4 -2
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.d.ts +15 -5
- package/transpiled/directives/octets/Delete.js +45 -8
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/Directive.d.ts +8 -0
- package/transpiled/directives/octets/Directive.js +8 -0
- package/transpiled/directives/octets/Directive.js.map +1 -0
- package/transpiled/directives/octets/Fetch.d.ts +9 -9
- package/transpiled/directives/octets/Fetch.js +36 -21
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +11 -5
- package/transpiled/directives/octets/List.js +34 -7
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.d.ts +12 -0
- package/transpiled/directives/octets/{Family.js → Octets.js} +12 -6
- package/transpiled/directives/octets/Octets.js.map +1 -0
- package/transpiled/directives/octets/Permute.d.ts +5 -4
- package/transpiled/directives/octets/Permute.js +15 -8
- package/transpiled/directives/octets/Permute.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +14 -23
- package/transpiled/directives/octets/Store.js +41 -70
- package/transpiled/directives/octets/Store.js.map +1 -1
- package/transpiled/directives/octets/Workflow.d.ts +15 -0
- package/transpiled/directives/octets/Workflow.js +59 -0
- package/transpiled/directives/octets/Workflow.js.map +1 -0
- package/transpiled/directives/octets/index.d.ts +2 -2
- package/transpiled/directives/octets/index.js +4 -5
- package/transpiled/directives/octets/index.js.map +1 -1
- package/transpiled/directives/octets/schemas.d.ts +13 -6
- package/transpiled/directives/octets/schemas.js +2 -1
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/types.d.ts +2 -6
- package/transpiled/directives/octets/workflows/Execution.d.ts +25 -0
- package/transpiled/directives/octets/workflows/Execution.js +54 -0
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -0
- package/transpiled/directives/octets/workflows/Workflow.d.ts +12 -0
- package/transpiled/directives/octets/workflows/Workflow.js +25 -0
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -0
- package/transpiled/directives/octets/workflows/index.d.ts +1 -0
- package/transpiled/directives/octets/workflows/index.js +6 -0
- package/transpiled/directives/octets/workflows/index.js.map +1 -0
- package/transpiled/directives/vary/Directive.d.ts +5 -0
- package/transpiled/directives/vary/Directive.js +3 -0
- package/transpiled/directives/vary/Directive.js.map +1 -0
- package/transpiled/directives/vary/Embed.d.ts +10 -0
- package/transpiled/directives/vary/Embed.js +49 -0
- package/transpiled/directives/vary/Embed.js.map +1 -0
- package/transpiled/directives/vary/Properties.d.ts +9 -0
- package/transpiled/directives/vary/Properties.js +16 -0
- package/transpiled/directives/vary/Properties.js.map +1 -0
- package/transpiled/directives/vary/Vary.d.ts +10 -0
- package/transpiled/directives/vary/Vary.js +36 -0
- package/transpiled/directives/vary/Vary.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +5 -0
- package/transpiled/directives/vary/embeddings/Embedding.js +3 -0
- package/transpiled/directives/vary/embeddings/Embedding.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Header.d.ts +7 -0
- package/transpiled/directives/vary/embeddings/Header.js +28 -0
- package/transpiled/directives/vary/embeddings/Header.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Language.d.ts +7 -0
- package/transpiled/directives/vary/embeddings/Language.js +28 -0
- package/transpiled/directives/vary/embeddings/Language.js.map +1 -0
- package/transpiled/directives/vary/embeddings/index.d.ts +5 -0
- package/transpiled/directives/vary/embeddings/index.js +10 -0
- package/transpiled/directives/vary/embeddings/index.js.map +1 -0
- package/transpiled/directives/vary/index.d.ts +2 -0
- package/transpiled/directives/vary/index.js +6 -0
- package/transpiled/directives/vary/index.js.map +1 -0
- package/transpiled/exceptions.js +7 -7
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/io.d.ts +3 -0
- package/transpiled/io.js +3 -0
- package/transpiled/io.js.map +1 -0
- package/transpiled/manifest.js +10 -5
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/root.js +5 -0
- package/transpiled/root.js.map +1 -1
- package/transpiled/schemas.d.ts +7 -3
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/source/HTTP/Server.fixtures.ts +0 -41
- package/transpiled/HTTP/Server.fixtures.d.ts +0 -11
- package/transpiled/HTTP/Server.fixtures.js +0 -32
- package/transpiled/HTTP/Server.fixtures.js.map +0 -1
- package/transpiled/directives/auth/Family.js.map +0 -1
- package/transpiled/directives/cache/Family.d.ts +0 -12
- package/transpiled/directives/cache/Family.js.map +0 -1
- package/transpiled/directives/dev/Family.d.ts +0 -10
- package/transpiled/directives/dev/Family.js.map +0 -1
- package/transpiled/directives/octets/Family.d.ts +0 -12
- package/transpiled/directives/octets/Family.js.map +0 -1
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Feature: IO restrictions
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given the `pots` database contains:
|
|
5
|
+
| _id | title | volume | temperature |
|
|
6
|
+
| 4c4759e6f9c74da989d64511df42d6f4 | First pot | 100 | 80 |
|
|
7
|
+
| 99988d785d7d445cad45dbf8531f560b | Second pot | 200 | 30 |
|
|
8
|
+
|
|
9
|
+
Scenario: Output is omitted by default
|
|
10
|
+
Given the `pots` is running with the following manifest:
|
|
11
|
+
"""yaml
|
|
12
|
+
exposition:
|
|
13
|
+
/:
|
|
14
|
+
GET: enumerate
|
|
15
|
+
/:id:
|
|
16
|
+
GET: observe
|
|
17
|
+
"""
|
|
18
|
+
When the following request is received:
|
|
19
|
+
"""
|
|
20
|
+
GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
|
|
21
|
+
"""
|
|
22
|
+
Then the following reply is sent:
|
|
23
|
+
"""
|
|
24
|
+
200 OK
|
|
25
|
+
content-length: 0
|
|
26
|
+
"""
|
|
27
|
+
When the following request is received:
|
|
28
|
+
"""
|
|
29
|
+
GET /pots/ HTTP/1.1
|
|
30
|
+
accept: application/yaml
|
|
31
|
+
"""
|
|
32
|
+
Then the following reply is sent:
|
|
33
|
+
"""
|
|
34
|
+
200 OK
|
|
35
|
+
content-length: 0
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
Scenario: Output is omitted by intention
|
|
39
|
+
Given the `pots` is running with the following manifest:
|
|
40
|
+
"""yaml
|
|
41
|
+
exposition:
|
|
42
|
+
/:id:
|
|
43
|
+
io:output: false
|
|
44
|
+
GET: observe
|
|
45
|
+
"""
|
|
46
|
+
When the following request is received:
|
|
47
|
+
"""
|
|
48
|
+
GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
|
|
49
|
+
accept: application/yaml
|
|
50
|
+
"""
|
|
51
|
+
Then the following reply is sent:
|
|
52
|
+
"""
|
|
53
|
+
200 OK
|
|
54
|
+
content-length: 0
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
Scenario: Output permissions
|
|
58
|
+
Given the `pots` is running with the following manifest:
|
|
59
|
+
"""yaml
|
|
60
|
+
exposition:
|
|
61
|
+
/:
|
|
62
|
+
io:output: [id, volume]
|
|
63
|
+
GET: enumerate
|
|
64
|
+
/:id:
|
|
65
|
+
GET: observe
|
|
66
|
+
"""
|
|
67
|
+
When the following request is received:
|
|
68
|
+
"""
|
|
69
|
+
GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
|
|
70
|
+
accept: application/yaml
|
|
71
|
+
"""
|
|
72
|
+
Then the following reply is sent:
|
|
73
|
+
"""
|
|
74
|
+
200 OK
|
|
75
|
+
|
|
76
|
+
id: 4c4759e6f9c74da989d64511df42d6f4
|
|
77
|
+
volume: 100
|
|
78
|
+
"""
|
|
79
|
+
And the reply does not contain:
|
|
80
|
+
"""
|
|
81
|
+
title:
|
|
82
|
+
temperature:
|
|
83
|
+
"""
|
|
84
|
+
When the following request is received:
|
|
85
|
+
"""
|
|
86
|
+
GET /pots/ HTTP/1.1
|
|
87
|
+
accept: application/yaml
|
|
88
|
+
"""
|
|
89
|
+
Then the following reply is sent:
|
|
90
|
+
"""
|
|
91
|
+
200 OK
|
|
92
|
+
content-type: application/yaml
|
|
93
|
+
|
|
94
|
+
- id: 4c4759e6f9c74da989d64511df42d6f4
|
|
95
|
+
volume: 100
|
|
96
|
+
- id: 99988d785d7d445cad45dbf8531f560b
|
|
97
|
+
volume: 200
|
|
98
|
+
"""
|
|
99
|
+
And the reply does not contain:
|
|
100
|
+
"""
|
|
101
|
+
title:
|
|
102
|
+
temperature:
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
Scenario: Input is unrestricted by default
|
|
106
|
+
Given the `pots` is running with the following manifest:
|
|
107
|
+
"""yaml
|
|
108
|
+
exposition:
|
|
109
|
+
/:
|
|
110
|
+
io:output: true
|
|
111
|
+
POST: create
|
|
112
|
+
"""
|
|
113
|
+
When the following request is received:
|
|
114
|
+
"""
|
|
115
|
+
POST /pots/ HTTP/1.1
|
|
116
|
+
accept: application/yaml
|
|
117
|
+
content-type: application/yaml
|
|
118
|
+
|
|
119
|
+
title: Hello
|
|
120
|
+
volume: 1.5
|
|
121
|
+
temperature: 80
|
|
122
|
+
"""
|
|
123
|
+
Then the following reply is sent:
|
|
124
|
+
"""
|
|
125
|
+
201 Created
|
|
126
|
+
|
|
127
|
+
title: Hello
|
|
128
|
+
volume: 1.5
|
|
129
|
+
temperature: 80
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
Scenario: Input permissions
|
|
133
|
+
Given the `pots` is running with the following manifest:
|
|
134
|
+
"""yaml
|
|
135
|
+
exposition:
|
|
136
|
+
/:
|
|
137
|
+
io:input: [title, volume]
|
|
138
|
+
POST: create
|
|
139
|
+
"""
|
|
140
|
+
When the following request is received:
|
|
141
|
+
"""
|
|
142
|
+
POST /pots/ HTTP/1.1
|
|
143
|
+
accept: text/plain
|
|
144
|
+
content-type: application/yaml
|
|
145
|
+
|
|
146
|
+
title: Hello
|
|
147
|
+
volume: 1.5
|
|
148
|
+
temperature: 80
|
|
149
|
+
"""
|
|
150
|
+
Then the following reply is sent:
|
|
151
|
+
"""
|
|
152
|
+
400 Bad Request
|
|
153
|
+
|
|
154
|
+
Unexpected input: temperature
|
|
155
|
+
"""
|
|
156
|
+
When the following request is received:
|
|
157
|
+
"""
|
|
158
|
+
POST /pots/ HTTP/1.1
|
|
159
|
+
content-type: application/yaml
|
|
160
|
+
|
|
161
|
+
title: Hello
|
|
162
|
+
volume: 1.5
|
|
163
|
+
"""
|
|
164
|
+
Then the following reply is sent:
|
|
165
|
+
"""
|
|
166
|
+
201 Created
|
|
167
|
+
"""
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Feature: Accessing entries
|
|
2
|
+
|
|
3
|
+
Scenario: Entries are not accessible by default
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
/:
|
|
7
|
+
io:output: true
|
|
8
|
+
auth:anonymous: true
|
|
9
|
+
octets:context: octets
|
|
10
|
+
POST:
|
|
11
|
+
octets:store: ~
|
|
12
|
+
GET:
|
|
13
|
+
octets:list: ~
|
|
14
|
+
/*:
|
|
15
|
+
GET:
|
|
16
|
+
octets:fetch: ~
|
|
17
|
+
"""
|
|
18
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
19
|
+
"""
|
|
20
|
+
POST / HTTP/1.1
|
|
21
|
+
content-type: application/octet-stream
|
|
22
|
+
"""
|
|
23
|
+
Then the following reply is sent:
|
|
24
|
+
"""
|
|
25
|
+
201 Created
|
|
26
|
+
"""
|
|
27
|
+
When the following request is received:
|
|
28
|
+
"""
|
|
29
|
+
GET / HTTP/1.1
|
|
30
|
+
accept: application/vnd.toa.octets.entries+yaml
|
|
31
|
+
"""
|
|
32
|
+
Then the following reply is sent:
|
|
33
|
+
"""
|
|
34
|
+
403 Forbidden
|
|
35
|
+
|
|
36
|
+
Metadata is not accessible.
|
|
37
|
+
"""
|
|
38
|
+
When the following request is received:
|
|
39
|
+
"""
|
|
40
|
+
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
41
|
+
accept: text/vnd.toa.octets.entry+plain
|
|
42
|
+
"""
|
|
43
|
+
Then the following reply is sent:
|
|
44
|
+
"""
|
|
45
|
+
403 Forbidden
|
|
46
|
+
|
|
47
|
+
Metadata is not accessible.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
Scenario: Accessing entries
|
|
51
|
+
Given the annotation:
|
|
52
|
+
"""yaml
|
|
53
|
+
/:
|
|
54
|
+
io:output: true
|
|
55
|
+
auth:anonymous: true
|
|
56
|
+
octets:context: octets
|
|
57
|
+
POST:
|
|
58
|
+
octets:store: ~
|
|
59
|
+
GET:
|
|
60
|
+
octets:list:
|
|
61
|
+
meta: true
|
|
62
|
+
/*:
|
|
63
|
+
GET:
|
|
64
|
+
octets:fetch:
|
|
65
|
+
meta: true
|
|
66
|
+
"""
|
|
67
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
68
|
+
"""
|
|
69
|
+
POST / HTTP/1.1
|
|
70
|
+
accept: application/yaml
|
|
71
|
+
content-type: application/octet-stream
|
|
72
|
+
"""
|
|
73
|
+
And the stream of `lenna.png` is received with the following headers:
|
|
74
|
+
"""
|
|
75
|
+
POST / HTTP/1.1
|
|
76
|
+
accept: application/yaml
|
|
77
|
+
content-type: application/octet-stream
|
|
78
|
+
"""
|
|
79
|
+
When the following request is received:
|
|
80
|
+
"""
|
|
81
|
+
GET / HTTP/1.1
|
|
82
|
+
accept: application/yaml
|
|
83
|
+
"""
|
|
84
|
+
Then the following reply is sent:
|
|
85
|
+
"""
|
|
86
|
+
200 OK
|
|
87
|
+
content-type: application/yaml
|
|
88
|
+
|
|
89
|
+
- 10cf16b458f759e0d617f2f3d83599ff
|
|
90
|
+
- 814a0034f5549e957ee61360d87457e5
|
|
91
|
+
"""
|
|
92
|
+
When the following request is received:
|
|
93
|
+
"""
|
|
94
|
+
GET / HTTP/1.1
|
|
95
|
+
accept: application/vnd.toa.octets.entries+yaml
|
|
96
|
+
"""
|
|
97
|
+
Then the following reply is sent:
|
|
98
|
+
"""
|
|
99
|
+
200 OK
|
|
100
|
+
content-type: application/yaml
|
|
101
|
+
|
|
102
|
+
- id: 10cf16b458f759e0d617f2f3d83599ff
|
|
103
|
+
size: 8169
|
|
104
|
+
type: application/octet-stream
|
|
105
|
+
- id: 814a0034f5549e957ee61360d87457e5
|
|
106
|
+
size: 473831
|
|
107
|
+
type: image/png
|
|
108
|
+
"""
|
|
109
|
+
When the following request is received:
|
|
110
|
+
"""
|
|
111
|
+
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
112
|
+
accept: application/vnd.toa.octets.entry+yaml
|
|
113
|
+
"""
|
|
114
|
+
Then the following reply is sent:
|
|
115
|
+
"""
|
|
116
|
+
200 OK
|
|
117
|
+
content-type: application/yaml
|
|
118
|
+
content-length: 124
|
|
119
|
+
|
|
120
|
+
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
121
|
+
type: application/octet-stream
|
|
122
|
+
size: 8169
|
|
123
|
+
"""
|
package/features/octets.feature
CHANGED
|
@@ -4,6 +4,7 @@ Feature: Octets directive family
|
|
|
4
4
|
Given the annotation:
|
|
5
5
|
"""yaml
|
|
6
6
|
/:
|
|
7
|
+
io:output: true
|
|
7
8
|
auth:anonymous: true
|
|
8
9
|
octets:context: octets
|
|
9
10
|
POST:
|
|
@@ -70,17 +71,6 @@ Feature: Octets directive family
|
|
|
70
71
|
"""
|
|
71
72
|
304 Not Modified
|
|
72
73
|
"""
|
|
73
|
-
When the following request is received:
|
|
74
|
-
"""
|
|
75
|
-
GET /10cf16b458f759e0d617f2f3d83599ff:meta HTTP/1.1
|
|
76
|
-
accept: text/plain
|
|
77
|
-
"""
|
|
78
|
-
Then the following reply is sent:
|
|
79
|
-
"""
|
|
80
|
-
403 Forbidden
|
|
81
|
-
|
|
82
|
-
Metadata is not accessible.
|
|
83
|
-
"""
|
|
84
74
|
When the following request is received:
|
|
85
75
|
"""
|
|
86
76
|
GET / HTTP/1.1
|
|
@@ -245,11 +235,11 @@ Feature: Octets directive family
|
|
|
245
235
|
Trailing slash is redundant.
|
|
246
236
|
"""
|
|
247
237
|
|
|
248
|
-
Scenario:
|
|
238
|
+
Scenario: Original BLOLB is not accessible
|
|
249
239
|
Given the annotation:
|
|
250
240
|
"""yaml
|
|
251
|
-
debug: true
|
|
252
241
|
/:
|
|
242
|
+
io:output: true
|
|
253
243
|
auth:anonymous: true
|
|
254
244
|
octets:context: octets
|
|
255
245
|
POST:
|
|
@@ -268,24 +258,10 @@ Feature: Octets directive family
|
|
|
268
258
|
"""
|
|
269
259
|
201 Created
|
|
270
260
|
"""
|
|
271
|
-
When the following request is received:
|
|
272
|
-
"""
|
|
273
|
-
GET /10cf16b458f759e0d617f2f3d83599ff:meta HTTP/1.1
|
|
274
|
-
accept: application/yaml
|
|
275
|
-
"""
|
|
276
|
-
Then the following reply is sent:
|
|
277
|
-
"""
|
|
278
|
-
200 OK
|
|
279
|
-
content-type: application/yaml
|
|
280
|
-
content-length: 124
|
|
281
|
-
|
|
282
|
-
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
283
|
-
type: application/octet-stream
|
|
284
|
-
size: 8169
|
|
285
|
-
"""
|
|
286
261
|
When the following request is received:
|
|
287
262
|
"""
|
|
288
263
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
264
|
+
accept: text/plain
|
|
289
265
|
"""
|
|
290
266
|
Then the following reply is sent:
|
|
291
267
|
"""
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Feature: Octets `content-meta` header
|
|
2
|
+
|
|
3
|
+
Scenario: Sending `content-meta` header
|
|
4
|
+
Given the `octets.tester` is running
|
|
5
|
+
And the annotation:
|
|
6
|
+
"""yaml
|
|
7
|
+
/:
|
|
8
|
+
io:output: true
|
|
9
|
+
auth:anonymous: true
|
|
10
|
+
octets:context: octets
|
|
11
|
+
/*:
|
|
12
|
+
POST:
|
|
13
|
+
octets:store: ~
|
|
14
|
+
/*:
|
|
15
|
+
GET:
|
|
16
|
+
octets:fetch:
|
|
17
|
+
meta: true
|
|
18
|
+
"""
|
|
19
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
20
|
+
"""
|
|
21
|
+
POST /meta-header/ HTTP/1.1
|
|
22
|
+
content-type: application/octet-stream
|
|
23
|
+
content-meta: foo, bar=baz=1
|
|
24
|
+
content-meta: baz=1
|
|
25
|
+
"""
|
|
26
|
+
Then the following reply is sent:
|
|
27
|
+
"""
|
|
28
|
+
201 Created
|
|
29
|
+
"""
|
|
30
|
+
When the following request is received:
|
|
31
|
+
"""
|
|
32
|
+
GET /meta-header/10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
33
|
+
accept: application/vnd.toa.octets.entry+yaml
|
|
34
|
+
"""
|
|
35
|
+
Then the following reply is sent:
|
|
36
|
+
"""
|
|
37
|
+
200 OK
|
|
38
|
+
|
|
39
|
+
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
40
|
+
type: application/octet-stream
|
|
41
|
+
size: 8169
|
|
42
|
+
meta:
|
|
43
|
+
foo: 'true'
|
|
44
|
+
bar: baz=1
|
|
45
|
+
baz: '1'
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
Scenario: CORS allows `content-meta` header
|
|
49
|
+
Given the annotation:
|
|
50
|
+
"""yaml
|
|
51
|
+
/:
|
|
52
|
+
octets:context: octets
|
|
53
|
+
POST:
|
|
54
|
+
octets:store: ~
|
|
55
|
+
"""
|
|
56
|
+
When the following request is received:
|
|
57
|
+
"""
|
|
58
|
+
OPTIONS / HTTP/1.1
|
|
59
|
+
origin: https://example.com
|
|
60
|
+
"""
|
|
61
|
+
Then the following reply is sent:
|
|
62
|
+
"""
|
|
63
|
+
204 No Content
|
|
64
|
+
access-control-allow-origin: https://example.com
|
|
65
|
+
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, content-meta
|
|
66
|
+
"""
|
|
@@ -2,7 +2,7 @@ Feature: Octets storage workflows
|
|
|
2
2
|
|
|
3
3
|
Scenario: Running a workflow
|
|
4
4
|
Given the `octets.tester` is running
|
|
5
|
-
|
|
5
|
+
And the annotation:
|
|
6
6
|
"""yaml
|
|
7
7
|
/:
|
|
8
8
|
auth:anonymous: true
|
|
@@ -15,6 +15,7 @@ Feature: Octets storage workflows
|
|
|
15
15
|
- add-baz: octets.tester.baz
|
|
16
16
|
- diversify: octets.tester.diversify
|
|
17
17
|
/*:
|
|
18
|
+
io:output: true
|
|
18
19
|
GET:
|
|
19
20
|
octets:fetch:
|
|
20
21
|
meta: true
|
|
@@ -47,8 +48,8 @@ Feature: Octets storage workflows
|
|
|
47
48
|
"""
|
|
48
49
|
When the following request is received:
|
|
49
50
|
"""
|
|
50
|
-
GET /10cf16b458f759e0d617f2f3d83599ff
|
|
51
|
-
accept: application/yaml
|
|
51
|
+
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
52
|
+
accept: application/vnd.toa.octets.entry+yaml
|
|
52
53
|
"""
|
|
53
54
|
Then the following reply is sent:
|
|
54
55
|
"""
|
|
@@ -74,7 +75,7 @@ Feature: Octets storage workflows
|
|
|
74
75
|
content-length: 473831
|
|
75
76
|
"""
|
|
76
77
|
|
|
77
|
-
Scenario: Getting error when
|
|
78
|
+
Scenario: Getting error when running workflow on `store`
|
|
78
79
|
Given the `octets.tester` is running
|
|
79
80
|
Given the annotation:
|
|
80
81
|
"""yaml
|
|
@@ -112,3 +113,175 @@ Feature: Octets storage workflows
|
|
|
112
113
|
message: Something went wrong
|
|
113
114
|
--cut--
|
|
114
115
|
"""
|
|
116
|
+
|
|
117
|
+
Scenario: Running a workflow on `delete`
|
|
118
|
+
Given the `octets.tester` is running
|
|
119
|
+
And the annotation:
|
|
120
|
+
"""yaml
|
|
121
|
+
/:
|
|
122
|
+
auth:anonymous: true
|
|
123
|
+
octets:context: octets
|
|
124
|
+
POST:
|
|
125
|
+
octets:store: ~
|
|
126
|
+
/*:
|
|
127
|
+
GET:
|
|
128
|
+
octets:fetch: ~
|
|
129
|
+
DELETE:
|
|
130
|
+
octets:delete:
|
|
131
|
+
workflow:
|
|
132
|
+
echo: octets.tester.echo
|
|
133
|
+
"""
|
|
134
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
135
|
+
"""
|
|
136
|
+
POST / HTTP/1.1
|
|
137
|
+
content-type: application/octet-stream
|
|
138
|
+
"""
|
|
139
|
+
Then the following reply is sent:
|
|
140
|
+
"""
|
|
141
|
+
201 Created
|
|
142
|
+
"""
|
|
143
|
+
When the following request is received:
|
|
144
|
+
"""
|
|
145
|
+
DELETE /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
146
|
+
accept: application/yaml
|
|
147
|
+
"""
|
|
148
|
+
Then the following reply is sent:
|
|
149
|
+
"""
|
|
150
|
+
202 Accepted
|
|
151
|
+
content-type: multipart/yaml; boundary=cut
|
|
152
|
+
|
|
153
|
+
--cut
|
|
154
|
+
echo: 10cf16b458f759e0d617f2f3d83599ff
|
|
155
|
+
--cut--
|
|
156
|
+
"""
|
|
157
|
+
When the following request is received:
|
|
158
|
+
"""
|
|
159
|
+
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
160
|
+
"""
|
|
161
|
+
Then the following reply is sent:
|
|
162
|
+
"""
|
|
163
|
+
404 Not Found
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
Scenario: Error in the workflow on `delete`
|
|
167
|
+
Given the `octets.tester` is running
|
|
168
|
+
And the annotation:
|
|
169
|
+
"""yaml
|
|
170
|
+
/:
|
|
171
|
+
auth:anonymous: true
|
|
172
|
+
octets:context: octets
|
|
173
|
+
POST:
|
|
174
|
+
octets:store: ~
|
|
175
|
+
/*:
|
|
176
|
+
GET:
|
|
177
|
+
octets:fetch: ~
|
|
178
|
+
DELETE:
|
|
179
|
+
octets:delete:
|
|
180
|
+
workflow:
|
|
181
|
+
err: octets.tester.err
|
|
182
|
+
"""
|
|
183
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
184
|
+
"""
|
|
185
|
+
POST / HTTP/1.1
|
|
186
|
+
content-type: application/octet-stream
|
|
187
|
+
"""
|
|
188
|
+
Then the following reply is sent:
|
|
189
|
+
"""
|
|
190
|
+
201 Created
|
|
191
|
+
"""
|
|
192
|
+
When the following request is received:
|
|
193
|
+
"""
|
|
194
|
+
DELETE /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
195
|
+
accept: application/yaml
|
|
196
|
+
"""
|
|
197
|
+
Then the following reply is sent:
|
|
198
|
+
"""
|
|
199
|
+
202 Accepted
|
|
200
|
+
content-type: multipart/yaml; boundary=cut
|
|
201
|
+
|
|
202
|
+
--cut
|
|
203
|
+
error:
|
|
204
|
+
step: err
|
|
205
|
+
code: ERROR
|
|
206
|
+
message: Something went wrong
|
|
207
|
+
--cut--
|
|
208
|
+
"""
|
|
209
|
+
When the following request is received:
|
|
210
|
+
"""
|
|
211
|
+
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
212
|
+
"""
|
|
213
|
+
Then the following reply is sent:
|
|
214
|
+
"""
|
|
215
|
+
200 OK
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
Scenario: Passing parameters to the workflow
|
|
219
|
+
Given the `octets.tester` is running
|
|
220
|
+
And the annotation:
|
|
221
|
+
"""yaml
|
|
222
|
+
/:
|
|
223
|
+
/:a/:b:
|
|
224
|
+
auth:anonymous: true
|
|
225
|
+
octets:context: octets
|
|
226
|
+
POST:
|
|
227
|
+
octets:store:
|
|
228
|
+
workflow:
|
|
229
|
+
concat: octets.tester.concat
|
|
230
|
+
"""
|
|
231
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
232
|
+
"""
|
|
233
|
+
POST /hello/world/ HTTP/1.1
|
|
234
|
+
accept: application/yaml
|
|
235
|
+
content-type: application/octet-stream
|
|
236
|
+
"""
|
|
237
|
+
Then the following reply is sent:
|
|
238
|
+
"""
|
|
239
|
+
201 Created
|
|
240
|
+
content-type: multipart/yaml; boundary=cut
|
|
241
|
+
|
|
242
|
+
--cut
|
|
243
|
+
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
244
|
+
type: application/octet-stream
|
|
245
|
+
size: 8169
|
|
246
|
+
--cut
|
|
247
|
+
concat: hello world
|
|
248
|
+
--cut--
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
Scenario: Executing a workflow with `octets:workflow`
|
|
252
|
+
Given the `octets.tester` is running
|
|
253
|
+
And the annotation:
|
|
254
|
+
"""yaml
|
|
255
|
+
/:
|
|
256
|
+
auth:anonymous: true
|
|
257
|
+
octets:context: octets
|
|
258
|
+
POST:
|
|
259
|
+
octets:store: ~
|
|
260
|
+
/*:
|
|
261
|
+
DELETE:
|
|
262
|
+
octets:workflow:
|
|
263
|
+
echo: octets.tester.echo
|
|
264
|
+
"""
|
|
265
|
+
When the stream of `lenna.ascii` is received with the following headers:
|
|
266
|
+
"""
|
|
267
|
+
POST / HTTP/1.1
|
|
268
|
+
content-type: application/octet-stream
|
|
269
|
+
"""
|
|
270
|
+
Then the following reply is sent:
|
|
271
|
+
"""
|
|
272
|
+
201 Created
|
|
273
|
+
"""
|
|
274
|
+
When the following request is received:
|
|
275
|
+
"""
|
|
276
|
+
DELETE /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
277
|
+
accept: application/yaml
|
|
278
|
+
"""
|
|
279
|
+
Then the following reply is sent:
|
|
280
|
+
"""
|
|
281
|
+
202 Accepted
|
|
282
|
+
content-type: multipart/yaml; boundary=cut
|
|
283
|
+
|
|
284
|
+
--cut
|
|
285
|
+
echo: 10cf16b458f759e0d617f2f3d83599ff
|
|
286
|
+
--cut--
|
|
287
|
+
"""
|
package/features/queries.feature
CHANGED
|
@@ -13,6 +13,7 @@ Feature: Queries
|
|
|
13
13
|
"""yaml
|
|
14
14
|
exposition:
|
|
15
15
|
/pot:
|
|
16
|
+
io:output: true
|
|
16
17
|
GET: observe
|
|
17
18
|
"""
|
|
18
19
|
When the following request is received:
|
|
@@ -35,6 +36,7 @@ Feature: Queries
|
|
|
35
36
|
"""yaml
|
|
36
37
|
exposition:
|
|
37
38
|
/:
|
|
39
|
+
io:output: true
|
|
38
40
|
GET: enumerate
|
|
39
41
|
"""
|
|
40
42
|
When the following request is received:
|
|
@@ -60,6 +62,7 @@ Feature: Queries
|
|
|
60
62
|
"""yaml
|
|
61
63
|
exposition:
|
|
62
64
|
/:
|
|
65
|
+
io:output: true
|
|
63
66
|
GET: enumerate
|
|
64
67
|
"""
|
|
65
68
|
When the following request is received:
|
|
@@ -85,6 +88,7 @@ Feature: Queries
|
|
|
85
88
|
"""yaml
|
|
86
89
|
exposition:
|
|
87
90
|
/:
|
|
91
|
+
io:output: true
|
|
88
92
|
GET: enumerate
|
|
89
93
|
"""
|
|
90
94
|
When the following request is received:
|
|
@@ -110,6 +114,7 @@ Feature: Queries
|
|
|
110
114
|
"""yaml
|
|
111
115
|
exposition:
|
|
112
116
|
/:id:
|
|
117
|
+
io:output: true
|
|
113
118
|
GET: observe
|
|
114
119
|
"""
|
|
115
120
|
When the following request is received:
|
|
@@ -127,11 +132,12 @@ Feature: Queries
|
|
|
127
132
|
volume: 200
|
|
128
133
|
"""
|
|
129
134
|
|
|
130
|
-
Scenario: Request to a route with predefined
|
|
135
|
+
Scenario: Request to a route with predefined criteria
|
|
131
136
|
Given the `pots` is running with the following manifest:
|
|
132
137
|
"""yaml
|
|
133
138
|
exposition:
|
|
134
139
|
/big:
|
|
140
|
+
io:output: true
|
|
135
141
|
GET:
|
|
136
142
|
endpoint: enumerate
|
|
137
143
|
query:
|
|
@@ -160,6 +166,7 @@ Feature: Queries
|
|
|
160
166
|
"""yaml
|
|
161
167
|
exposition:
|
|
162
168
|
/big:
|
|
169
|
+
io:output: true
|
|
163
170
|
GET:
|
|
164
171
|
endpoint: enumerate
|
|
165
172
|
query:
|
|
@@ -186,6 +193,7 @@ Feature: Queries
|
|
|
186
193
|
"""yaml
|
|
187
194
|
exposition:
|
|
188
195
|
/hottest2:
|
|
196
|
+
io:output: true
|
|
189
197
|
GET:
|
|
190
198
|
endpoint: enumerate
|
|
191
199
|
query:
|