@toa.io/extensions.exposition 1.0.0-alpha.12 → 1.0.0-alpha.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/context.toa.yaml +2 -2
- package/components/identity.bans/manifest.toa.yaml +14 -6
- package/components/identity.bans/operations/transit.d.ts +14 -0
- package/components/identity.bans/operations/transit.js +11 -0
- package/components/identity.bans/operations/transit.js.map +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/source/transit.ts +21 -0
- package/components/identity.bans/tsconfig.json +9 -0
- package/components/identity.basic/manifest.toa.yaml +28 -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/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/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 +61 -19
- package/components/identity.federation/operations/authenticate.d.ts +13 -2
- package/components/identity.federation/operations/authenticate.js +10 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/decode.d.ts +2 -0
- package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/decode.js} +7 -32
- 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 +14 -0
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- package/components/identity.federation/operations/lib/get.d.ts +1 -0
- package/components/identity.federation/operations/lib/get.js +64 -0
- package/components/identity.federation/operations/lib/get.js.map +1 -0
- package/components/identity.federation/operations/lib/jwt.d.ts +4 -5
- package/components/identity.federation/operations/lib/jwt.js +20 -16
- package/components/identity.federation/operations/lib/jwt.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +15 -0
- package/components/identity.federation/operations/types/configuration.js +3 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +11 -12
- package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/types/context.js} +1 -1
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +6 -0
- package/components/identity.federation/operations/types/entity.js +3 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +3 -0
- package/components/identity.federation/operations/types/index.js +20 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +24 -17
- package/components/identity.federation/source/decode.ts +9 -0
- package/components/identity.federation/source/incept.ts +26 -0
- package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
- package/components/identity.federation/source/lib/get.ts +82 -0
- package/components/identity.federation/source/lib/jwt.test.ts +127 -4
- package/components/identity.federation/source/lib/jwt.ts +26 -19
- package/components/identity.federation/source/types/configuration.ts +16 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +12 -12
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +3 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.keys/manifest.toa.yaml +54 -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.roles/manifest.toa.yaml +7 -5
- package/components/identity.roles/operations/grant.d.ts +1 -1
- package/components/identity.roles/operations/grant.js +8 -7
- package/components/identity.roles/operations/grant.js.map +1 -1
- package/components/identity.roles/operations/lib/Entity.d.ts +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +9 -8
- package/components/identity.roles/source/lib/Entity.ts +1 -1
- package/components/identity.tokens/manifest.toa.yaml +103 -9
- package/components/identity.tokens/operations/authenticate.d.ts +3 -3
- package/components/identity.tokens/operations/authenticate.js +20 -13
- 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 +26 -6
- 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 +58 -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/receivers/identity.bans.created.js +3 -0
- package/components/identity.tokens/source/authenticate.test.ts +22 -9
- package/components/identity.tokens/source/authenticate.ts +23 -15
- 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 +67 -12
- package/components/identity.tokens/source/encrypt.ts +37 -9
- package/components/identity.tokens/source/issue.ts +80 -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 +91 -29
- package/documentation/authorities.md +48 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +125 -54
- package/documentation/dev.md +30 -0
- package/documentation/flow.md +44 -0
- package/documentation/identity.md +29 -22
- package/documentation/introspection.md +82 -0
- package/documentation/map.md +73 -0
- package/documentation/octets.md +122 -69
- 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 +129 -48
- package/features/annotation.feature +1 -0
- package/features/auth.claims.feature +171 -0
- package/features/auth.incept.feature +89 -0
- package/features/auth.input.feature +59 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +100 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +2 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +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 +32 -7
- package/features/etag.feature +109 -1
- package/features/flow.feature +148 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +85 -28
- package/features/identity.feature +18 -6
- package/features/identity.federation.feature +89 -18
- package/features/identity.roles.feature +112 -19
- package/features/identity.tokens.feature +13 -4
- package/features/identtiy.tokens.custom.feature +247 -0
- package/features/interruptions.feature +19 -0
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/map.feature +305 -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/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +77 -2
- package/features/realtime.feature +34 -0
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- package/features/server.feature +21 -0
- package/features/steps/.env.example +3 -0
- package/features/steps/Common.ts +4 -0
- package/features/steps/Database.ts +16 -9
- package/features/steps/Gateway.ts +26 -7
- package/features/steps/HTTP.ts +25 -2
- package/features/steps/IdP.ts +63 -25
- package/features/steps/Identity.ts +51 -0
- package/features/steps/Parameters.ts +44 -1
- package/features/steps/Realtime.ts +151 -0
- package/features/steps/components/echo/manifest.toa.yaml +14 -1
- package/features/steps/components/echo/operations/identity.js +7 -0
- package/features/steps/components/echo/operations/parameters.js +7 -0
- package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
- package/features/steps/components/echo.beacon/operations/hello.js +5 -0
- package/features/steps/components/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 -3
- 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 +25 -13
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/put.cos.yaml +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 +16 -8
- package/source/Endpoint.ts +69 -17
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +73 -19
- package/source/HTTP/Context.ts +31 -7
- package/source/HTTP/Server.ts +112 -48
- package/source/HTTP/exceptions.ts +13 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +45 -2
- package/source/HTTP/messages.ts +39 -8
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +68 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +123 -33
- package/source/RTD/Context.ts +1 -1
- package/source/RTD/Endpoint.ts +3 -0
- package/source/RTD/Method.ts +16 -0
- package/source/RTD/Node.ts +29 -13
- package/source/RTD/Route.ts +5 -4
- package/source/RTD/Tree.ts +2 -2
- package/source/RTD/factory.ts +5 -2
- package/source/RTD/syntax/parse.test.ts +1 -1
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +7 -6
- package/source/Tenant.ts +6 -20
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Anonymous.ts +3 -3
- package/source/directives/auth/Anyone.ts +13 -0
- package/source/directives/auth/Authorization.ts +65 -25
- package/source/directives/auth/Delegate.ts +13 -6
- 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 +27 -12
- package/source/directives/auth/Input.ts +72 -0
- package/source/directives/auth/Role.test.ts +53 -6
- package/source/directives/auth/Role.ts +23 -19
- package/source/directives/auth/Rule.ts +3 -5
- package/source/directives/auth/Scheme.ts +5 -5
- package/source/directives/auth/create.ts +10 -0
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +11 -6
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/cors/CORS.ts +3 -2
- package/source/directives/dev/Development.ts +12 -7
- package/source/directives/dev/Sleep.ts +35 -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 +26 -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 +14 -6
- 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 +15 -8
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +47 -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 +20 -6
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +15 -4
- package/transpiled/HTTP/Server.js +78 -40
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +7 -1
- package/transpiled/HTTP/exceptions.js +13 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/index.js +3 -3
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +2 -1
- package/transpiled/HTTP/messages.js +36 -7
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +3 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +11 -2
- package/transpiled/Mapping.js +50 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +87 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +1 -1
- package/transpiled/RTD/Endpoint.d.ts +1 -0
- package/transpiled/RTD/Method.d.ts +4 -0
- package/transpiled/RTD/Method.js +11 -0
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -1
- package/transpiled/RTD/Node.js +23 -12
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +0 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +5 -2
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +34 -22
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +5 -3
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +4 -4
- package/transpiled/Remotes.js +6 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +5 -5
- package/transpiled/Tenant.js +2 -13
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +28 -20
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/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/Authorization.d.ts +4 -3
- package/transpiled/directives/auth/Authorization.js +49 -22
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +5 -4
- package/transpiled/directives/auth/Delegate.js +10 -4
- 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 +4 -3
- package/transpiled/directives/auth/Incept.js +23 -10
- 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 +5 -2
- package/transpiled/directives/auth/Role.js +22 -18
- 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 +12 -0
- package/transpiled/directives/auth/create.js.map +1 -0
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +8 -5
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +10 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +2 -1
- package/transpiled/directives/cache/Control.js +29 -12
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +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 +7 -0
- package/transpiled/directives/dev/Sleep.js +32 -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 +25 -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.d.ts +3 -2
- package/transpiled/exceptions.js +8 -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/schemas.d.ts +0 -59
- package/components/identity.federation/operations/schemas.js +0 -9
- package/components/identity.federation/operations/schemas.js.map +0 -1
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/create.ts +0 -26
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/identity.tokens/operations/types.d.ts +0 -40
- package/components/identity.tokens/operations/types.js.map +0 -1
- package/components/identity.tokens/source/types.ts +0 -48
- 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 -69
- package/features/steps/components/octets.tester/operations/diversify.js +0 -14
- package/features/vary.feature +0 -180
- 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 -6
- package/source/directives/vary/Embed.ts +0 -62
- package/source/directives/vary/Vary.ts +0 -48
- package/source/directives/vary/embeddings/Embedding.ts +0 -6
- package/source/directives/vary/embeddings/Header.ts +0 -32
- package/source/directives/vary/embeddings/Language.ts +0 -31
- 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.map +0 -1
- package/transpiled/directives/octets/Store.js.map +0 -1
- package/transpiled/directives/vary/Directive.d.ts +0 -5
- package/transpiled/directives/vary/Directive.js.map +0 -1
- package/transpiled/directives/vary/Embed.d.ts +0 -10
- package/transpiled/directives/vary/Embed.js +0 -49
- 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 -5
- 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/index.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/index.js +0 -10
- 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
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Feature: Download external resources
|
|
2
|
+
|
|
3
|
+
Scenario Outline: Download from trusted location defined as <type>
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
/:
|
|
7
|
+
io:output: true
|
|
8
|
+
auth:anonymous: true
|
|
9
|
+
octets:context: octets
|
|
10
|
+
POST:
|
|
11
|
+
octets:put:
|
|
12
|
+
trust:
|
|
13
|
+
- <location> # <type>
|
|
14
|
+
- https://github.com
|
|
15
|
+
/*:
|
|
16
|
+
GET:
|
|
17
|
+
octets:get:
|
|
18
|
+
meta: true
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
When the following request is received:
|
|
22
|
+
"""
|
|
23
|
+
POST / HTTP/1.1
|
|
24
|
+
host: nex.toa.io
|
|
25
|
+
content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
|
|
26
|
+
content-length: 0
|
|
27
|
+
accept: application/yaml
|
|
28
|
+
"""
|
|
29
|
+
Then the following reply is sent:
|
|
30
|
+
"""
|
|
31
|
+
201 Created
|
|
32
|
+
|
|
33
|
+
id: ${{ id }}
|
|
34
|
+
type: image/png
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
When the following request is received:
|
|
38
|
+
"""
|
|
39
|
+
GET /${{ id }} HTTP/1.1
|
|
40
|
+
host: nex.toa.io
|
|
41
|
+
"""
|
|
42
|
+
Then the following reply is sent:
|
|
43
|
+
"""
|
|
44
|
+
200 OK
|
|
45
|
+
content-type: image/png
|
|
46
|
+
content-length: 1288
|
|
47
|
+
etag: "${{ id }}"
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
# origin is stored in the entry
|
|
51
|
+
When the following request is received:
|
|
52
|
+
"""
|
|
53
|
+
GET /${{ id }} HTTP/1.1
|
|
54
|
+
host: nex.toa.io
|
|
55
|
+
accept: application/vnd.toa.octets.entry+yaml
|
|
56
|
+
"""
|
|
57
|
+
Then the following reply is sent:
|
|
58
|
+
"""
|
|
59
|
+
200 OK
|
|
60
|
+
content-type: application/yaml
|
|
61
|
+
|
|
62
|
+
id: ${{ id }}
|
|
63
|
+
type: image/png
|
|
64
|
+
origin: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
# untrusted location
|
|
68
|
+
When the following request is received:
|
|
69
|
+
"""
|
|
70
|
+
POST / HTTP/1.1
|
|
71
|
+
host: nex.toa.io
|
|
72
|
+
content-location: https://github.githubassets.com/assets/yolo-default-be0bbff04951.png
|
|
73
|
+
content-length: 0
|
|
74
|
+
accept: application/yaml
|
|
75
|
+
"""
|
|
76
|
+
Then the following reply is sent:
|
|
77
|
+
"""
|
|
78
|
+
403 Forbidden
|
|
79
|
+
|
|
80
|
+
Location is not trusted
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
# content-length must be 0
|
|
84
|
+
When the following request is received:
|
|
85
|
+
"""
|
|
86
|
+
POST / HTTP/1.1
|
|
87
|
+
host: nex.toa.io
|
|
88
|
+
content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
|
|
89
|
+
content-length: 1
|
|
90
|
+
accept: application/yaml
|
|
91
|
+
|
|
92
|
+
1
|
|
93
|
+
"""
|
|
94
|
+
Then the following reply is sent:
|
|
95
|
+
"""
|
|
96
|
+
400 Bad Request
|
|
97
|
+
|
|
98
|
+
Content-Length must be 0 when Content-Location is used
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
# invalid content-location
|
|
102
|
+
When the following request is received:
|
|
103
|
+
"""
|
|
104
|
+
POST / HTTP/1.1
|
|
105
|
+
host: nex.toa.io
|
|
106
|
+
content-location: Hello there!
|
|
107
|
+
content-length: 0
|
|
108
|
+
accept: application/yaml
|
|
109
|
+
"""
|
|
110
|
+
Then the following reply is sent:
|
|
111
|
+
"""
|
|
112
|
+
403 Forbidden
|
|
113
|
+
|
|
114
|
+
Location is not trusted
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
# unavailable location
|
|
118
|
+
When the following request is received:
|
|
119
|
+
"""
|
|
120
|
+
POST / HTTP/1.1
|
|
121
|
+
host: nex.toa.io
|
|
122
|
+
content-location: https://github.com/toa-io/no
|
|
123
|
+
content-length: 0
|
|
124
|
+
accept: application/yaml
|
|
125
|
+
"""
|
|
126
|
+
Then the following reply is sent:
|
|
127
|
+
"""
|
|
128
|
+
404 Not Found
|
|
129
|
+
|
|
130
|
+
Location is not available
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
Examples:
|
|
134
|
+
| type | location |
|
|
135
|
+
| origin | https://avatars.githubusercontent.com |
|
|
136
|
+
| expression | /^https://avatars\.githubusercontent\.com/ |
|
|
137
|
+
|
|
138
|
+
Scenario: Download size limit
|
|
139
|
+
Given the annotation:
|
|
140
|
+
"""yaml
|
|
141
|
+
/:
|
|
142
|
+
io:output: true
|
|
143
|
+
auth:anonymous: true
|
|
144
|
+
octets:context: octets
|
|
145
|
+
POST:
|
|
146
|
+
octets:put:
|
|
147
|
+
limit: 1kb
|
|
148
|
+
trust:
|
|
149
|
+
- https://avatars.githubusercontent.com
|
|
150
|
+
"""
|
|
151
|
+
When the following request is received:
|
|
152
|
+
"""
|
|
153
|
+
POST / HTTP/1.1
|
|
154
|
+
host: nex.toa.io
|
|
155
|
+
content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
|
|
156
|
+
content-length: 0
|
|
157
|
+
accept: text/plain
|
|
158
|
+
"""
|
|
159
|
+
Then the following reply is sent:
|
|
160
|
+
"""
|
|
161
|
+
413 Request Entity Too Large
|
|
162
|
+
|
|
163
|
+
Size limit is 1kb
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
Scenario: Allow `content-location` request header
|
|
167
|
+
Given the annotation:
|
|
168
|
+
"""yaml
|
|
169
|
+
/:
|
|
170
|
+
io:output: true
|
|
171
|
+
auth:anonymous: true
|
|
172
|
+
octets:context: octets
|
|
173
|
+
POST:
|
|
174
|
+
octets:put:
|
|
175
|
+
limit: 1kb
|
|
176
|
+
trust:
|
|
177
|
+
- https://avatars.githubusercontent.com
|
|
178
|
+
"""
|
|
179
|
+
When the following request is received:
|
|
180
|
+
"""
|
|
181
|
+
OPTIONS / HTTP/1.1
|
|
182
|
+
host: nex.toa.io
|
|
183
|
+
origin: https://hello.world
|
|
184
|
+
"""
|
|
185
|
+
Then the following reply is sent:
|
|
186
|
+
"""
|
|
187
|
+
204 No Content
|
|
188
|
+
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, content-attributes, content-location
|
|
189
|
+
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Feature: Accessing
|
|
1
|
+
Feature: Accessing metadata
|
|
2
2
|
|
|
3
|
-
Scenario:
|
|
3
|
+
Scenario: Metadata is not accessible by default
|
|
4
4
|
Given the annotation:
|
|
5
5
|
"""yaml
|
|
6
6
|
/:
|
|
@@ -8,46 +8,35 @@ Feature: Accessing entries
|
|
|
8
8
|
auth:anonymous: true
|
|
9
9
|
octets:context: octets
|
|
10
10
|
POST:
|
|
11
|
-
octets:
|
|
12
|
-
GET:
|
|
13
|
-
octets:list: ~
|
|
11
|
+
octets:put: ~
|
|
14
12
|
/*:
|
|
15
13
|
GET:
|
|
16
|
-
octets:
|
|
14
|
+
octets:get: ~
|
|
17
15
|
"""
|
|
18
16
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
19
17
|
"""
|
|
20
18
|
POST / HTTP/1.1
|
|
19
|
+
host: nex.toa.io
|
|
21
20
|
content-type: application/octet-stream
|
|
22
21
|
"""
|
|
23
22
|
Then the following reply is sent:
|
|
24
23
|
"""
|
|
25
24
|
201 Created
|
|
26
25
|
"""
|
|
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
26
|
When the following request is received:
|
|
39
27
|
"""
|
|
40
28
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
29
|
+
host: nex.toa.io
|
|
41
30
|
accept: text/vnd.toa.octets.entry+plain
|
|
42
31
|
"""
|
|
43
32
|
Then the following reply is sent:
|
|
44
33
|
"""
|
|
45
34
|
403 Forbidden
|
|
46
35
|
|
|
47
|
-
Metadata is not accessible
|
|
36
|
+
Metadata is not accessible
|
|
48
37
|
"""
|
|
49
38
|
|
|
50
|
-
Scenario: Accessing
|
|
39
|
+
Scenario: Accessing metadata
|
|
51
40
|
Given the annotation:
|
|
52
41
|
"""yaml
|
|
53
42
|
/:
|
|
@@ -55,67 +44,36 @@ Feature: Accessing entries
|
|
|
55
44
|
auth:anonymous: true
|
|
56
45
|
octets:context: octets
|
|
57
46
|
POST:
|
|
58
|
-
octets:
|
|
59
|
-
GET:
|
|
60
|
-
octets:list:
|
|
61
|
-
meta: true
|
|
47
|
+
octets:put: ~
|
|
62
48
|
/*:
|
|
63
49
|
GET:
|
|
64
|
-
octets:
|
|
50
|
+
octets:get:
|
|
65
51
|
meta: true
|
|
66
52
|
"""
|
|
67
53
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
68
54
|
"""
|
|
69
55
|
POST / HTTP/1.1
|
|
56
|
+
host: nex.toa.io
|
|
70
57
|
accept: application/yaml
|
|
71
58
|
content-type: application/octet-stream
|
|
72
59
|
"""
|
|
73
60
|
And the stream of `lenna.png` is received with the following headers:
|
|
74
61
|
"""
|
|
75
62
|
POST / HTTP/1.1
|
|
63
|
+
host: nex.toa.io
|
|
76
64
|
accept: application/yaml
|
|
77
65
|
content-type: application/octet-stream
|
|
78
66
|
"""
|
|
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
67
|
When the following request is received:
|
|
110
68
|
"""
|
|
111
69
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
70
|
+
host: nex.toa.io
|
|
112
71
|
accept: application/vnd.toa.octets.entry+yaml
|
|
113
72
|
"""
|
|
114
73
|
Then the following reply is sent:
|
|
115
74
|
"""
|
|
116
75
|
200 OK
|
|
117
76
|
content-type: application/yaml
|
|
118
|
-
content-length: 124
|
|
119
77
|
|
|
120
78
|
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
121
79
|
type: application/octet-stream
|
package/features/octets.feature
CHANGED
|
@@ -8,37 +8,45 @@ Feature: Octets directive family
|
|
|
8
8
|
auth:anonymous: true
|
|
9
9
|
octets:context: octets
|
|
10
10
|
POST:
|
|
11
|
-
octets:
|
|
12
|
-
GET:
|
|
13
|
-
octets:list: ~
|
|
14
|
-
PUT:
|
|
15
|
-
octets:permute: ~
|
|
11
|
+
octets:put: ~
|
|
16
12
|
/*:
|
|
17
13
|
GET:
|
|
18
|
-
octets:
|
|
14
|
+
octets:get: ~
|
|
19
15
|
DELETE:
|
|
20
16
|
octets:delete: ~
|
|
21
17
|
/media:
|
|
22
18
|
/jpeg:
|
|
23
19
|
POST:
|
|
24
|
-
octets:
|
|
20
|
+
octets:put:
|
|
25
21
|
accept: image/jpeg
|
|
26
22
|
/jpeg-or-png:
|
|
27
23
|
POST:
|
|
28
|
-
octets:
|
|
24
|
+
octets:put:
|
|
29
25
|
accept:
|
|
30
26
|
- image/jpeg
|
|
31
27
|
- image/png
|
|
32
28
|
/images:
|
|
33
29
|
POST:
|
|
34
|
-
octets:
|
|
30
|
+
octets:put:
|
|
35
31
|
accept: image/*
|
|
32
|
+
/*:
|
|
33
|
+
GET:
|
|
34
|
+
octets:get: ~
|
|
35
|
+
/limit-1kb:
|
|
36
|
+
POST:
|
|
37
|
+
octets:put:
|
|
38
|
+
limit: 1kb
|
|
39
|
+
/limit-100kb:
|
|
40
|
+
POST:
|
|
41
|
+
octets:put:
|
|
42
|
+
limit: 100kb
|
|
36
43
|
"""
|
|
37
44
|
|
|
38
45
|
Scenario: Basic storage operations
|
|
39
46
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
40
47
|
"""
|
|
41
48
|
POST / HTTP/1.1
|
|
49
|
+
host: nex.toa.io
|
|
42
50
|
accept: application/yaml
|
|
43
51
|
content-type: application/octet-stream
|
|
44
52
|
"""
|
|
@@ -47,13 +55,14 @@ Feature: Octets directive family
|
|
|
47
55
|
201 Created
|
|
48
56
|
content-type: application/yaml
|
|
49
57
|
|
|
50
|
-
id:
|
|
58
|
+
id: ${{ id }}
|
|
51
59
|
type: application/octet-stream
|
|
52
60
|
size: 8169
|
|
53
61
|
"""
|
|
54
62
|
When the following request is received:
|
|
55
63
|
"""
|
|
56
|
-
GET
|
|
64
|
+
GET /${{ id }} HTTP/1.1
|
|
65
|
+
host: nex.toa.io
|
|
57
66
|
"""
|
|
58
67
|
Then the stream equals to `lenna.ascii` is sent with the following headers:
|
|
59
68
|
"""
|
|
@@ -64,7 +73,8 @@ Feature: Octets directive family
|
|
|
64
73
|
"""
|
|
65
74
|
When the following request is received:
|
|
66
75
|
"""
|
|
67
|
-
GET
|
|
76
|
+
GET /${{ id }} HTTP/1.1
|
|
77
|
+
host: nex.toa.io
|
|
68
78
|
if-none-match: ${{ ETAG }}
|
|
69
79
|
"""
|
|
70
80
|
Then the following reply is sent:
|
|
@@ -73,19 +83,8 @@ Feature: Octets directive family
|
|
|
73
83
|
"""
|
|
74
84
|
When the following request is received:
|
|
75
85
|
"""
|
|
76
|
-
GET
|
|
77
|
-
|
|
78
|
-
"""
|
|
79
|
-
Then the following reply is sent:
|
|
80
|
-
"""
|
|
81
|
-
200 OK
|
|
82
|
-
content-type: application/yaml
|
|
83
|
-
|
|
84
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
85
|
-
"""
|
|
86
|
-
When the following request is received:
|
|
87
|
-
"""
|
|
88
|
-
GET /10cf16b458f759e0d617f2f3d83599ff?foo=bar HTTP/1.1
|
|
86
|
+
GET /${{ id }}?foo=bar HTTP/1.1
|
|
87
|
+
host: nex.toa.io
|
|
89
88
|
"""
|
|
90
89
|
Then the following reply is sent:
|
|
91
90
|
"""
|
|
@@ -93,7 +92,8 @@ Feature: Octets directive family
|
|
|
93
92
|
"""
|
|
94
93
|
When the following request is received:
|
|
95
94
|
"""
|
|
96
|
-
DELETE
|
|
95
|
+
DELETE /${{ id }} HTTP/1.1
|
|
96
|
+
host: nex.toa.io
|
|
97
97
|
"""
|
|
98
98
|
Then the following reply is sent:
|
|
99
99
|
"""
|
|
@@ -101,114 +101,123 @@ Feature: Octets directive family
|
|
|
101
101
|
"""
|
|
102
102
|
When the following request is received:
|
|
103
103
|
"""
|
|
104
|
-
GET
|
|
104
|
+
GET /${{ id }} HTTP/1.1
|
|
105
|
+
host: nex.toa.io
|
|
105
106
|
"""
|
|
106
107
|
Then the following reply is sent:
|
|
107
108
|
"""
|
|
108
109
|
404 Not Found
|
|
109
110
|
"""
|
|
110
111
|
|
|
111
|
-
Scenario:
|
|
112
|
-
When the stream of `lenna.
|
|
112
|
+
Scenario: Media type control
|
|
113
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
113
114
|
"""
|
|
114
|
-
POST / HTTP/1.1
|
|
115
|
-
|
|
116
|
-
content-type:
|
|
115
|
+
POST /media/jpeg-or-png/ HTTP/1.1
|
|
116
|
+
host: nex.toa.io
|
|
117
|
+
content-type: image/jpeg
|
|
117
118
|
"""
|
|
118
|
-
|
|
119
|
+
Then the following reply is sent:
|
|
119
120
|
"""
|
|
120
|
-
|
|
121
|
-
accept: application/yaml
|
|
122
|
-
content-type: application/octet-stream
|
|
121
|
+
400 Bad Request
|
|
123
122
|
"""
|
|
124
|
-
When the
|
|
123
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
125
124
|
"""
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
POST /media/jpeg/ HTTP/1.1
|
|
126
|
+
host: nex.toa.io
|
|
128
127
|
"""
|
|
129
128
|
Then the following reply is sent:
|
|
130
129
|
"""
|
|
131
|
-
|
|
132
|
-
content-type: application/yaml
|
|
133
|
-
|
|
134
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
135
|
-
- 814a0034f5549e957ee61360d87457e5
|
|
130
|
+
415 Unsupported Media Type
|
|
136
131
|
"""
|
|
137
|
-
When the
|
|
132
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
138
133
|
"""
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
- 814a0034f5549e957ee61360d87457e5
|
|
143
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
134
|
+
POST /media/jpeg-or-png/ HTTP/1.1
|
|
135
|
+
host: nex.toa.io
|
|
144
136
|
"""
|
|
145
137
|
Then the following reply is sent:
|
|
146
138
|
"""
|
|
147
|
-
|
|
139
|
+
201 Created
|
|
148
140
|
"""
|
|
149
|
-
|
|
141
|
+
|
|
142
|
+
Scenario: Size limit
|
|
143
|
+
When the stream of `albert.jpg` is received with the following headers:
|
|
150
144
|
"""
|
|
151
|
-
|
|
152
|
-
|
|
145
|
+
POST /limit-1kb/ HTTP/1.1
|
|
146
|
+
host: nex.toa.io
|
|
147
|
+
content-type: image/jpeg
|
|
148
|
+
accept: text/plain
|
|
153
149
|
"""
|
|
154
150
|
Then the following reply is sent:
|
|
155
151
|
"""
|
|
156
|
-
|
|
157
|
-
content-type: application/yaml
|
|
152
|
+
413 Request Entity Too Large
|
|
158
153
|
|
|
159
|
-
|
|
160
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
154
|
+
Size limit is 1kb
|
|
161
155
|
"""
|
|
162
156
|
|
|
163
|
-
|
|
164
|
-
When the stream of `lenna.png` is received with the following headers:
|
|
157
|
+
When the stream of `albert.jpg` is received with the following headers:
|
|
165
158
|
"""
|
|
166
|
-
POST /
|
|
159
|
+
POST /limit-100kb/ HTTP/1.1
|
|
160
|
+
host: nex.toa.io
|
|
167
161
|
content-type: image/jpeg
|
|
168
162
|
"""
|
|
169
163
|
Then the following reply is sent:
|
|
170
164
|
"""
|
|
171
|
-
|
|
165
|
+
201 Created
|
|
172
166
|
"""
|
|
173
|
-
|
|
167
|
+
|
|
168
|
+
Scenario Outline: Detecting `<type>`
|
|
169
|
+
When the stream of `sample.<ext>` is received with the following headers:
|
|
174
170
|
"""
|
|
175
|
-
POST /media/
|
|
171
|
+
POST /media/images/ HTTP/1.1
|
|
172
|
+
host: nex.toa.io
|
|
173
|
+
accept: application/yaml
|
|
176
174
|
"""
|
|
177
175
|
Then the following reply is sent:
|
|
178
176
|
"""
|
|
179
|
-
|
|
177
|
+
201 Created
|
|
178
|
+
|
|
179
|
+
type: <type>
|
|
180
180
|
"""
|
|
181
|
-
|
|
181
|
+
Examples:
|
|
182
|
+
| ext | type |
|
|
183
|
+
| jpeg | image/jpeg |
|
|
184
|
+
| jxl | image/jxl |
|
|
185
|
+
| gif | image/gif |
|
|
186
|
+
| heic | image/heic |
|
|
187
|
+
| avif | image/avif |
|
|
188
|
+
| webp | image/webp |
|
|
189
|
+
|
|
190
|
+
Scenario: Accepting `image/svg+xml`
|
|
191
|
+
When the stream of `sample.svg` is received with the following headers:
|
|
182
192
|
"""
|
|
183
|
-
POST /media/
|
|
193
|
+
POST /media/images/ HTTP/1.1
|
|
194
|
+
host: nex.toa.io
|
|
195
|
+
content-type: image/svg+xml
|
|
196
|
+
accept: application/yaml
|
|
184
197
|
"""
|
|
185
198
|
Then the following reply is sent:
|
|
186
199
|
"""
|
|
187
200
|
201 Created
|
|
201
|
+
|
|
202
|
+
type: image/svg+xml
|
|
188
203
|
"""
|
|
189
204
|
|
|
190
|
-
Scenario
|
|
191
|
-
When the stream of `sample
|
|
205
|
+
Scenario: Rejection video/avi
|
|
206
|
+
When the stream of `sample.avi` is received with the following headers:
|
|
192
207
|
"""
|
|
193
208
|
POST /media/images/ HTTP/1.1
|
|
209
|
+
host: nex.toa.io
|
|
194
210
|
"""
|
|
195
211
|
Then the following reply is sent:
|
|
196
212
|
"""
|
|
197
|
-
|
|
213
|
+
415 Unsupported Media Type
|
|
198
214
|
"""
|
|
199
|
-
Examples:
|
|
200
|
-
| format |
|
|
201
|
-
| jpeg |
|
|
202
|
-
| jxl |
|
|
203
|
-
| gif |
|
|
204
|
-
| heic |
|
|
205
|
-
| avif |
|
|
206
|
-
| webp |
|
|
207
215
|
|
|
208
216
|
Scenario: Fetching non-existent BLOB
|
|
209
217
|
When the following request is received:
|
|
210
218
|
"""
|
|
211
219
|
GET /whatever HTTP/1.1
|
|
220
|
+
host: nex.toa.io
|
|
212
221
|
"""
|
|
213
222
|
Then the following reply is sent:
|
|
214
223
|
"""
|
|
@@ -219,12 +228,14 @@ Feature: Octets directive family
|
|
|
219
228
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
220
229
|
"""
|
|
221
230
|
POST / HTTP/1.1
|
|
231
|
+
host: nex.toa.io
|
|
222
232
|
accept: application/yaml
|
|
223
233
|
content-type: application/octet-stream
|
|
224
234
|
"""
|
|
225
235
|
And the following request is received:
|
|
226
236
|
"""
|
|
227
237
|
GET /10cf16b458f759e0d617f2f3d83599ff/ HTTP/1.1
|
|
238
|
+
host: nex.toa.io
|
|
228
239
|
accept: text/plain
|
|
229
240
|
"""
|
|
230
241
|
Then the following reply is sent:
|
|
@@ -232,40 +243,5 @@ Feature: Octets directive family
|
|
|
232
243
|
404 Not Found
|
|
233
244
|
content-type: text/plain
|
|
234
245
|
|
|
235
|
-
Trailing slash is redundant
|
|
236
|
-
"""
|
|
237
|
-
|
|
238
|
-
Scenario: Original BLOLB is not accessible
|
|
239
|
-
Given the annotation:
|
|
240
|
-
"""yaml
|
|
241
|
-
/:
|
|
242
|
-
io:output: true
|
|
243
|
-
auth:anonymous: true
|
|
244
|
-
octets:context: octets
|
|
245
|
-
POST:
|
|
246
|
-
octets:store: ~
|
|
247
|
-
/*:
|
|
248
|
-
GET:
|
|
249
|
-
octets:fetch:
|
|
250
|
-
meta: true
|
|
251
|
-
blob: false
|
|
252
|
-
"""
|
|
253
|
-
When the stream of `lenna.ascii` is received with the following headers:
|
|
254
|
-
"""
|
|
255
|
-
POST / HTTP/1.1
|
|
256
|
-
"""
|
|
257
|
-
Then the following reply is sent:
|
|
258
|
-
"""
|
|
259
|
-
201 Created
|
|
260
|
-
"""
|
|
261
|
-
When the following request is received:
|
|
262
|
-
"""
|
|
263
|
-
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
264
|
-
accept: text/plain
|
|
265
|
-
"""
|
|
266
|
-
Then the following reply is sent:
|
|
267
|
-
"""
|
|
268
|
-
403 Forbidden
|
|
269
|
-
|
|
270
|
-
BLOB variant must be specified.
|
|
246
|
+
Trailing slash is redundant
|
|
271
247
|
"""
|