@toa.io/extensions.exposition 1.0.0-alpha.8 → 1.0.0-alpha.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/context.toa.yaml +2 -2
- package/components/identity.bans/manifest.toa.yaml +15 -7
- package/components/identity.bans/operations/transit.d.ts +14 -0
- package/components/identity.bans/operations/transit.js +11 -0
- package/components/identity.bans/operations/transit.js.map +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/source/transit.ts +21 -0
- package/components/identity.bans/tsconfig.json +9 -0
- package/components/identity.basic/manifest.toa.yaml +20 -11
- package/components/identity.basic/operations/authenticate.d.ts +5 -1
- package/components/identity.basic/operations/authenticate.js +5 -2
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/incept.d.ts +12 -0
- package/components/identity.basic/operations/incept.js +26 -0
- package/components/identity.basic/operations/incept.js.map +1 -0
- package/components/identity.basic/operations/transit.d.ts +4 -4
- package/components/identity.basic/operations/transit.js +5 -3
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/operations/types.d.ts +8 -4
- package/components/identity.basic/source/authenticate.ts +16 -5
- package/components/identity.basic/source/incept.ts +38 -0
- package/components/identity.basic/source/transit.ts +8 -6
- package/components/identity.basic/source/types.ts +8 -4
- package/components/identity.federation/manifest.toa.yaml +32 -16
- package/components/identity.federation/operations/authenticate.d.ts +2 -2
- package/components/identity.federation/operations/authenticate.js +4 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/{create.js → incept.js} +6 -7
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
- package/components/identity.federation/operations/lib/jwt.js +25 -12
- package/components/identity.federation/operations/lib/jwt.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +14 -0
- package/components/identity.federation/operations/types/configuration.js +3 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
- package/components/identity.federation/operations/types/context.js +3 -0
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +6 -0
- package/components/identity.federation/operations/types/entity.js +3 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +3 -0
- package/components/identity.federation/operations/types/index.js +20 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +6 -19
- package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
- package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
- package/components/identity.federation/source/lib/jwt.test.ts +123 -4
- package/components/identity.federation/source/lib/jwt.ts +36 -16
- package/components/identity.federation/source/types/configuration.ts +15 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +3 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.roles/manifest.toa.yaml +17 -8
- package/components/identity.roles/operations/grant.d.ts +10 -0
- package/components/identity.roles/operations/grant.js +21 -0
- package/components/identity.roles/operations/grant.js.map +1 -0
- package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
- package/components/identity.roles/operations/lib/Entity.js +3 -0
- package/components/identity.roles/operations/lib/Entity.js.map +1 -0
- package/components/identity.roles/operations/list.d.ts +1 -4
- package/components/identity.roles/operations/list.js.map +1 -1
- package/components/identity.roles/operations/principal.d.ts +4 -6
- package/components/identity.roles/operations/principal.js +6 -1
- package/components/identity.roles/operations/principal.js.map +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +32 -0
- package/components/identity.roles/source/lib/Entity.ts +5 -0
- package/components/identity.roles/source/list.ts +2 -4
- package/components/identity.roles/source/principal.ts +10 -8
- package/components/identity.tokens/manifest.toa.yaml +19 -5
- package/components/identity.tokens/operations/authenticate.d.ts +2 -2
- package/components/identity.tokens/operations/authenticate.js +12 -5
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.js +1 -0
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.js +5 -1
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/operations/types.d.ts +8 -2
- package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
- package/components/identity.tokens/source/authenticate.test.ts +11 -4
- package/components/identity.tokens/source/authenticate.ts +14 -6
- package/components/identity.tokens/source/decrypt.test.ts +5 -3
- package/components/identity.tokens/source/decrypt.ts +9 -8
- package/components/identity.tokens/source/encrypt.test.ts +26 -2
- package/components/identity.tokens/source/encrypt.ts +5 -1
- package/components/identity.tokens/source/types.ts +9 -2
- package/components/octets.storage/manifest.toa.yaml +6 -7
- package/components/octets.storage/operations/get.js +2 -2
- package/components/octets.storage/operations/store.js +113 -3
- package/documentation/access.md +75 -38
- package/documentation/authorities.md +49 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +47 -22
- package/documentation/flow.md +31 -0
- package/documentation/identity.md +17 -22
- package/documentation/introspection.md +82 -0
- package/documentation/octets.md +81 -23
- package/documentation/protocol.md +13 -3
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/documentation/vary.md +14 -14
- package/features/access.feature +78 -46
- package/features/annotation.feature +1 -0
- package/features/auth.claim.feature +170 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +100 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +2 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +6 -1
- package/features/debug.feature +34 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +48 -0
- package/features/errors.feature +32 -7
- package/features/etag.feature +31 -0
- package/features/flow.feature +45 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +113 -23
- package/features/identity.feature +7 -2
- package/features/identity.federation.feature +66 -11
- package/features/identity.roles.feature +250 -7
- package/features/identity.tokens.feature +54 -4
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/methods.feature +47 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +8 -1
- package/features/octets.feature +82 -54
- package/features/octets.meta.feature +3 -0
- package/features/octets.workflows.feature +239 -19
- package/features/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +65 -2
- package/features/realtime.feature +34 -0
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- package/features/steps/Database.ts +16 -9
- package/features/steps/Gateway.ts +23 -6
- package/features/steps/IdP.ts +30 -25
- package/features/steps/Parameters.ts +4 -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/octets.tester/manifest.toa.yaml +22 -1
- package/features/steps/components/octets.tester/operations/authority.js +7 -0
- package/features/steps/components/octets.tester/operations/baz.js +1 -2
- package/features/steps/components/octets.tester/operations/diversify.js +3 -1
- package/features/steps/components/octets.tester/operations/foo.js +2 -2
- package/features/steps/components/octets.tester/operations/redirect.js +12 -0
- package/features/steps/components/octets.tester/operations/yex.js +16 -0
- package/features/steps/components/octets.tester/operations/yield.js +13 -0
- package/features/steps/components/pots/manifest.toa.yaml +14 -3
- package/features/steps/components/users/manifest.toa.yaml +0 -1
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
- package/features/streams.feature +5 -0
- package/features/timing.feature +4 -1
- package/features/vary.feature +71 -0
- package/package.json +23 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/store.cos.yaml +25 -3
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Branch.ts +1 -0
- package/source/Composition.ts +0 -6
- package/source/Context.ts +1 -0
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +55 -15
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +67 -19
- package/source/HTTP/Context.ts +25 -2
- package/source/HTTP/Server.ts +54 -44
- 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 +23 -5
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +63 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +117 -33
- package/source/RTD/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.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +7 -6
- package/source/Tenant.ts +6 -20
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Authorization.ts +37 -14
- package/source/directives/auth/Delegate.ts +42 -0
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Incept.ts +4 -3
- package/source/directives/auth/Role.test.ts +53 -6
- package/source/directives/auth/Role.ts +22 -14
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +1 -1
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/cors/CORS.ts +1 -1
- package/source/directives/dev/Development.ts +1 -1
- package/source/directives/flow/Fetch.ts +88 -0
- package/source/directives/flow/Flow.ts +34 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +6 -0
- package/source/directives/index.ts +3 -1
- package/source/directives/io/Input.ts +4 -4
- package/source/directives/io/Output.ts +4 -3
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Fetch.ts +11 -10
- package/source/directives/octets/List.ts +5 -5
- package/source/directives/octets/Octets.ts +1 -3
- package/source/directives/octets/Store.ts +30 -10
- package/source/directives/octets/bytes.test.ts +30 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/schemas.ts +4 -6
- package/source/directives/octets/workflows/Execution.ts +60 -8
- package/source/directives/octets/workflows/Workflow.ts +2 -1
- package/source/directives/require/Directive.ts +5 -0
- package/source/directives/require/Headers.ts +20 -0
- package/source/directives/require/Require.ts +28 -0
- package/source/directives/require/index.ts +3 -0
- package/source/directives/vary/Directive.ts +2 -1
- package/source/directives/vary/Embed.ts +14 -8
- package/source/directives/vary/Vary.ts +6 -4
- package/source/directives/vary/embeddings/Authority.ts +8 -0
- package/source/directives/vary/embeddings/Embedding.ts +2 -1
- package/source/directives/vary/embeddings/Parameter.ts +14 -0
- package/source/directives/vary/embeddings/index.ts +6 -4
- package/source/exceptions.ts +17 -11
- package/source/manifest.ts +10 -11
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Branch.d.ts +1 -0
- package/transpiled/Composition.d.ts +0 -1
- package/transpiled/Composition.js +0 -4
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +1 -0
- package/transpiled/Directive.js +4 -4
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +35 -7
- 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 +51 -12
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +8 -1
- package/transpiled/HTTP/Context.js +16 -2
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +13 -2
- package/transpiled/HTTP/Server.js +41 -36
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +7 -1
- package/transpiled/HTTP/exceptions.js +13 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/index.js +3 -3
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +1 -0
- package/transpiled/HTTP/messages.js +24 -5
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +3 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +10 -2
- package/transpiled/Mapping.js +48 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +83 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +1 -1
- package/transpiled/RTD/Endpoint.d.ts +1 -0
- package/transpiled/RTD/Method.d.ts +4 -0
- package/transpiled/RTD/Method.js +11 -0
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -1
- package/transpiled/RTD/Node.js +23 -12
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +0 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +1 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +5 -2
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +34 -22
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +5 -3
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +4 -4
- package/transpiled/Remotes.js +6 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +5 -5
- package/transpiled/Tenant.js +2 -13
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +28 -20
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +26 -10
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +10 -0
- package/transpiled/directives/auth/Delegate.js +34 -0
- package/transpiled/directives/auth/Delegate.js.map +1 -0
- package/transpiled/directives/auth/Federation.d.ts +16 -0
- package/transpiled/directives/auth/Federation.js +57 -0
- package/transpiled/directives/auth/Federation.js.map +1 -0
- package/transpiled/directives/auth/Incept.js +4 -3
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Role.d.ts +4 -1
- package/transpiled/directives/auth/Role.js +20 -14
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +10 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +2 -1
- package/transpiled/directives/cache/Control.js +29 -12
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.js +1 -1
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/flow/Fetch.d.ts +13 -0
- package/transpiled/directives/flow/Fetch.js +59 -0
- package/transpiled/directives/flow/Fetch.js.map +1 -0
- package/transpiled/directives/flow/Flow.d.ts +10 -0
- package/transpiled/directives/flow/Flow.js +27 -0
- package/transpiled/directives/flow/Flow.js.map +1 -0
- package/transpiled/directives/flow/index.d.ts +2 -0
- package/transpiled/directives/flow/index.js +6 -0
- package/transpiled/directives/flow/index.js.map +1 -0
- package/transpiled/directives/flow/types.d.ts +5 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +3 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Input.js +2 -2
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/io/Output.js +2 -2
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Fetch.d.ts +3 -3
- package/transpiled/directives/octets/Fetch.js +8 -8
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +3 -3
- package/transpiled/directives/octets/List.js +3 -3
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.js +1 -3
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +6 -1
- package/transpiled/directives/octets/Store.js +17 -7
- package/transpiled/directives/octets/Store.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 -6
- package/transpiled/directives/octets/schemas.js +1 -3
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
- package/transpiled/directives/octets/workflows/Execution.js +44 -9
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.js +2 -1
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/require/Directive.d.ts +4 -0
- package/transpiled/directives/require/Directive.js +3 -0
- package/transpiled/directives/require/Directive.js.map +1 -0
- package/transpiled/directives/require/Headers.d.ts +7 -0
- package/transpiled/directives/require/Headers.js +19 -0
- package/transpiled/directives/require/Headers.js.map +1 -0
- package/transpiled/directives/require/Require.d.ts +9 -0
- package/transpiled/directives/require/Require.js +27 -0
- package/transpiled/directives/require/Require.js.map +1 -0
- package/transpiled/directives/require/index.d.ts +2 -0
- package/transpiled/directives/require/index.js +6 -0
- package/transpiled/directives/require/index.js.map +1 -0
- package/transpiled/directives/vary/Directive.d.ts +2 -1
- package/transpiled/directives/vary/Embed.d.ts +2 -1
- package/transpiled/directives/vary/Embed.js +8 -6
- package/transpiled/directives/vary/Embed.js.map +1 -1
- package/transpiled/directives/vary/Vary.d.ts +2 -2
- package/transpiled/directives/vary/Vary.js +3 -3
- package/transpiled/directives/vary/Vary.js.map +1 -1
- package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
- package/transpiled/directives/vary/embeddings/Authority.js +10 -0
- package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
- package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
- package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
- package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
- package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
- package/transpiled/directives/vary/embeddings/index.js +8 -4
- package/transpiled/directives/vary/embeddings/index.js.map +1 -1
- package/transpiled/exceptions.d.ts +3 -2
- package/transpiled/exceptions.js +10 -5
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/schemas.d.ts +1 -1
- package/transpiled/schemas.js +2 -2
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.json +9 -7
- package/components/identity.basic/operations/create.d.ts +0 -10
- package/components/identity.basic/operations/create.js +0 -10
- package/components/identity.basic/operations/create.js.map +0 -1
- package/components/identity.basic/source/create.ts +0 -18
- package/components/identity.federation/operations/create.d.ts +0 -10
- package/components/identity.federation/operations/create.js.map +0 -1
- package/components/identity.federation/operations/schemas.d.ts +0 -59
- package/components/identity.federation/operations/schemas.js +0 -9
- package/components/identity.federation/operations/schemas.js.map +0 -1
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/octets.storage/operations/permute.js +0 -7
- package/schemas/octets/context.cos.yaml +0 -1
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Permute.ts +0 -44
- package/transpiled/directives/octets/Permute.d.ts +0 -11
- package/transpiled/directives/octets/Permute.js +0 -58
- package/transpiled/directives/octets/Permute.js.map +0 -1
- /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Feature: Supported methods
|
|
2
|
+
|
|
3
|
+
Scenario Outline: <method> is supported
|
|
4
|
+
Given the annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
/:
|
|
7
|
+
<method>:
|
|
8
|
+
dev:stub:
|
|
9
|
+
hello: world
|
|
10
|
+
"""
|
|
11
|
+
And the `greeter` is running with the following manifest:
|
|
12
|
+
"""yaml
|
|
13
|
+
exposition:
|
|
14
|
+
/:
|
|
15
|
+
<method>:
|
|
16
|
+
dev:stub:
|
|
17
|
+
hello: world
|
|
18
|
+
"""
|
|
19
|
+
Examples:
|
|
20
|
+
| method |
|
|
21
|
+
| GET |
|
|
22
|
+
| POST |
|
|
23
|
+
| PUT |
|
|
24
|
+
| DELETE |
|
|
25
|
+
| PATCH |
|
|
26
|
+
| LOCK |
|
|
27
|
+
| UNLOCK |
|
|
28
|
+
|
|
29
|
+
Scenario: CORS allowed methods
|
|
30
|
+
Given the annotation:
|
|
31
|
+
"""yaml
|
|
32
|
+
/:
|
|
33
|
+
GET:
|
|
34
|
+
dev:stub:
|
|
35
|
+
hello: world
|
|
36
|
+
"""
|
|
37
|
+
When the following request is received:
|
|
38
|
+
"""
|
|
39
|
+
OPTIONS / HTTP/1.1
|
|
40
|
+
host: nex.toa.io
|
|
41
|
+
origin: https://hello.world
|
|
42
|
+
"""
|
|
43
|
+
Then the following reply is sent:
|
|
44
|
+
"""
|
|
45
|
+
204 No Content
|
|
46
|
+
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
|
|
47
|
+
"""
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Feature: Download and store
|
|
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:store:
|
|
12
|
+
trust:
|
|
13
|
+
- <location> # <type>
|
|
14
|
+
- https://github.com
|
|
15
|
+
/*:
|
|
16
|
+
GET:
|
|
17
|
+
octets:fetch:
|
|
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:store:
|
|
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:store:
|
|
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-meta, content-location
|
|
189
|
+
"""
|
|
@@ -18,6 +18,7 @@ Feature: Accessing entries
|
|
|
18
18
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
19
19
|
"""
|
|
20
20
|
POST / HTTP/1.1
|
|
21
|
+
host: nex.toa.io
|
|
21
22
|
content-type: application/octet-stream
|
|
22
23
|
"""
|
|
23
24
|
Then the following reply is sent:
|
|
@@ -27,6 +28,7 @@ Feature: Accessing entries
|
|
|
27
28
|
When the following request is received:
|
|
28
29
|
"""
|
|
29
30
|
GET / HTTP/1.1
|
|
31
|
+
host: nex.toa.io
|
|
30
32
|
accept: application/vnd.toa.octets.entries+yaml
|
|
31
33
|
"""
|
|
32
34
|
Then the following reply is sent:
|
|
@@ -38,6 +40,7 @@ Feature: Accessing entries
|
|
|
38
40
|
When the following request is received:
|
|
39
41
|
"""
|
|
40
42
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
43
|
+
host: nex.toa.io
|
|
41
44
|
accept: text/vnd.toa.octets.entry+plain
|
|
42
45
|
"""
|
|
43
46
|
Then the following reply is sent:
|
|
@@ -67,18 +70,21 @@ Feature: Accessing entries
|
|
|
67
70
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
68
71
|
"""
|
|
69
72
|
POST / HTTP/1.1
|
|
73
|
+
host: nex.toa.io
|
|
70
74
|
accept: application/yaml
|
|
71
75
|
content-type: application/octet-stream
|
|
72
76
|
"""
|
|
73
77
|
And the stream of `lenna.png` is received with the following headers:
|
|
74
78
|
"""
|
|
75
79
|
POST / HTTP/1.1
|
|
80
|
+
host: nex.toa.io
|
|
76
81
|
accept: application/yaml
|
|
77
82
|
content-type: application/octet-stream
|
|
78
83
|
"""
|
|
79
84
|
When the following request is received:
|
|
80
85
|
"""
|
|
81
86
|
GET / HTTP/1.1
|
|
87
|
+
host: nex.toa.io
|
|
82
88
|
accept: application/yaml
|
|
83
89
|
"""
|
|
84
90
|
Then the following reply is sent:
|
|
@@ -92,6 +98,7 @@ Feature: Accessing entries
|
|
|
92
98
|
When the following request is received:
|
|
93
99
|
"""
|
|
94
100
|
GET / HTTP/1.1
|
|
101
|
+
host: nex.toa.io
|
|
95
102
|
accept: application/vnd.toa.octets.entries+yaml
|
|
96
103
|
"""
|
|
97
104
|
Then the following reply is sent:
|
|
@@ -109,13 +116,13 @@ Feature: Accessing entries
|
|
|
109
116
|
When the following request is received:
|
|
110
117
|
"""
|
|
111
118
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
119
|
+
host: nex.toa.io
|
|
112
120
|
accept: application/vnd.toa.octets.entry+yaml
|
|
113
121
|
"""
|
|
114
122
|
Then the following reply is sent:
|
|
115
123
|
"""
|
|
116
124
|
200 OK
|
|
117
125
|
content-type: application/yaml
|
|
118
|
-
content-length: 124
|
|
119
126
|
|
|
120
127
|
id: 10cf16b458f759e0d617f2f3d83599ff
|
|
121
128
|
type: application/octet-stream
|
package/features/octets.feature
CHANGED
|
@@ -11,8 +11,6 @@ Feature: Octets directive family
|
|
|
11
11
|
octets:store: ~
|
|
12
12
|
GET:
|
|
13
13
|
octets:list: ~
|
|
14
|
-
PUT:
|
|
15
|
-
octets:permute: ~
|
|
16
14
|
/*:
|
|
17
15
|
GET:
|
|
18
16
|
octets:fetch: ~
|
|
@@ -33,12 +31,24 @@ Feature: Octets directive family
|
|
|
33
31
|
POST:
|
|
34
32
|
octets:store:
|
|
35
33
|
accept: image/*
|
|
34
|
+
/*:
|
|
35
|
+
GET:
|
|
36
|
+
octets:fetch: ~
|
|
37
|
+
/limit-1kb:
|
|
38
|
+
POST:
|
|
39
|
+
octets:store:
|
|
40
|
+
limit: 1kb
|
|
41
|
+
/limit-100kb:
|
|
42
|
+
POST:
|
|
43
|
+
octets:store:
|
|
44
|
+
limit: 100kb
|
|
36
45
|
"""
|
|
37
46
|
|
|
38
47
|
Scenario: Basic storage operations
|
|
39
48
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
40
49
|
"""
|
|
41
50
|
POST / HTTP/1.1
|
|
51
|
+
host: nex.toa.io
|
|
42
52
|
accept: application/yaml
|
|
43
53
|
content-type: application/octet-stream
|
|
44
54
|
"""
|
|
@@ -54,6 +64,7 @@ Feature: Octets directive family
|
|
|
54
64
|
When the following request is received:
|
|
55
65
|
"""
|
|
56
66
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
67
|
+
host: nex.toa.io
|
|
57
68
|
"""
|
|
58
69
|
Then the stream equals to `lenna.ascii` is sent with the following headers:
|
|
59
70
|
"""
|
|
@@ -65,6 +76,7 @@ Feature: Octets directive family
|
|
|
65
76
|
When the following request is received:
|
|
66
77
|
"""
|
|
67
78
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
79
|
+
host: nex.toa.io
|
|
68
80
|
if-none-match: ${{ ETAG }}
|
|
69
81
|
"""
|
|
70
82
|
Then the following reply is sent:
|
|
@@ -74,6 +86,7 @@ Feature: Octets directive family
|
|
|
74
86
|
When the following request is received:
|
|
75
87
|
"""
|
|
76
88
|
GET / HTTP/1.1
|
|
89
|
+
host: nex.toa.io
|
|
77
90
|
accept: application/yaml
|
|
78
91
|
"""
|
|
79
92
|
Then the following reply is sent:
|
|
@@ -86,6 +99,7 @@ Feature: Octets directive family
|
|
|
86
99
|
When the following request is received:
|
|
87
100
|
"""
|
|
88
101
|
GET /10cf16b458f759e0d617f2f3d83599ff?foo=bar HTTP/1.1
|
|
102
|
+
host: nex.toa.io
|
|
89
103
|
"""
|
|
90
104
|
Then the following reply is sent:
|
|
91
105
|
"""
|
|
@@ -94,6 +108,7 @@ Feature: Octets directive family
|
|
|
94
108
|
When the following request is received:
|
|
95
109
|
"""
|
|
96
110
|
DELETE /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
111
|
+
host: nex.toa.io
|
|
97
112
|
"""
|
|
98
113
|
Then the following reply is sent:
|
|
99
114
|
"""
|
|
@@ -102,113 +117,122 @@ Feature: Octets directive family
|
|
|
102
117
|
When the following request is received:
|
|
103
118
|
"""
|
|
104
119
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
120
|
+
host: nex.toa.io
|
|
105
121
|
"""
|
|
106
122
|
Then the following reply is sent:
|
|
107
123
|
"""
|
|
108
124
|
404 Not Found
|
|
109
125
|
"""
|
|
110
126
|
|
|
111
|
-
Scenario:
|
|
112
|
-
When the stream of `lenna.
|
|
127
|
+
Scenario: Media type control
|
|
128
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
113
129
|
"""
|
|
114
|
-
POST / HTTP/1.1
|
|
115
|
-
|
|
116
|
-
content-type:
|
|
130
|
+
POST /media/jpeg-or-png/ HTTP/1.1
|
|
131
|
+
host: nex.toa.io
|
|
132
|
+
content-type: image/jpeg
|
|
117
133
|
"""
|
|
118
|
-
|
|
134
|
+
Then the following reply is sent:
|
|
119
135
|
"""
|
|
120
|
-
|
|
121
|
-
accept: application/yaml
|
|
122
|
-
content-type: application/octet-stream
|
|
136
|
+
400 Bad Request
|
|
123
137
|
"""
|
|
124
|
-
When the
|
|
138
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
125
139
|
"""
|
|
126
|
-
|
|
127
|
-
|
|
140
|
+
POST /media/jpeg/ HTTP/1.1
|
|
141
|
+
host: nex.toa.io
|
|
128
142
|
"""
|
|
129
143
|
Then the following reply is sent:
|
|
130
144
|
"""
|
|
131
|
-
|
|
132
|
-
content-type: application/yaml
|
|
133
|
-
|
|
134
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
135
|
-
- 814a0034f5549e957ee61360d87457e5
|
|
145
|
+
415 Unsupported Media Type
|
|
136
146
|
"""
|
|
137
|
-
When the
|
|
147
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
138
148
|
"""
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
- 814a0034f5549e957ee61360d87457e5
|
|
143
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
149
|
+
POST /media/jpeg-or-png/ HTTP/1.1
|
|
150
|
+
host: nex.toa.io
|
|
144
151
|
"""
|
|
145
152
|
Then the following reply is sent:
|
|
146
153
|
"""
|
|
147
|
-
|
|
154
|
+
201 Created
|
|
148
155
|
"""
|
|
149
|
-
|
|
156
|
+
|
|
157
|
+
Scenario: Size limit
|
|
158
|
+
When the stream of `albert.jpg` is received with the following headers:
|
|
150
159
|
"""
|
|
151
|
-
|
|
152
|
-
|
|
160
|
+
POST /limit-1kb/ HTTP/1.1
|
|
161
|
+
host: nex.toa.io
|
|
162
|
+
content-type: image/jpeg
|
|
163
|
+
accept: text/plain
|
|
153
164
|
"""
|
|
154
165
|
Then the following reply is sent:
|
|
155
166
|
"""
|
|
156
|
-
|
|
157
|
-
content-type: application/yaml
|
|
167
|
+
413 Request Entity Too Large
|
|
158
168
|
|
|
159
|
-
|
|
160
|
-
- 10cf16b458f759e0d617f2f3d83599ff
|
|
169
|
+
Size limit is 1kb
|
|
161
170
|
"""
|
|
162
171
|
|
|
163
|
-
|
|
164
|
-
When the stream of `lenna.png` is received with the following headers:
|
|
172
|
+
When the stream of `albert.jpg` is received with the following headers:
|
|
165
173
|
"""
|
|
166
|
-
POST /
|
|
174
|
+
POST /limit-100kb/ HTTP/1.1
|
|
175
|
+
host: nex.toa.io
|
|
167
176
|
content-type: image/jpeg
|
|
168
177
|
"""
|
|
169
178
|
Then the following reply is sent:
|
|
170
179
|
"""
|
|
171
|
-
|
|
180
|
+
201 Created
|
|
172
181
|
"""
|
|
173
|
-
|
|
182
|
+
|
|
183
|
+
Scenario Outline: Detecting `<type>`
|
|
184
|
+
When the stream of `sample.<ext>` is received with the following headers:
|
|
174
185
|
"""
|
|
175
|
-
POST /media/
|
|
186
|
+
POST /media/images/ HTTP/1.1
|
|
187
|
+
host: nex.toa.io
|
|
188
|
+
accept: application/yaml
|
|
176
189
|
"""
|
|
177
190
|
Then the following reply is sent:
|
|
178
191
|
"""
|
|
179
|
-
|
|
192
|
+
201 Created
|
|
193
|
+
|
|
194
|
+
type: <type>
|
|
180
195
|
"""
|
|
181
|
-
|
|
196
|
+
Examples:
|
|
197
|
+
| ext | type |
|
|
198
|
+
| jpeg | image/jpeg |
|
|
199
|
+
| jxl | image/jxl |
|
|
200
|
+
| gif | image/gif |
|
|
201
|
+
| heic | image/heic |
|
|
202
|
+
| avif | image/avif |
|
|
203
|
+
| webp | image/webp |
|
|
204
|
+
|
|
205
|
+
Scenario: Accepting `image/svg+xml`
|
|
206
|
+
When the stream of `sample.svg` is received with the following headers:
|
|
182
207
|
"""
|
|
183
|
-
POST /media/
|
|
208
|
+
POST /media/images/ HTTP/1.1
|
|
209
|
+
host: nex.toa.io
|
|
210
|
+
content-type: image/svg+xml
|
|
211
|
+
accept: application/yaml
|
|
184
212
|
"""
|
|
185
213
|
Then the following reply is sent:
|
|
186
214
|
"""
|
|
187
215
|
201 Created
|
|
216
|
+
|
|
217
|
+
type: image/svg+xml
|
|
188
218
|
"""
|
|
189
219
|
|
|
190
|
-
Scenario
|
|
191
|
-
When the stream of `sample
|
|
220
|
+
Scenario: Rejection video/avi
|
|
221
|
+
When the stream of `sample.avi` is received with the following headers:
|
|
192
222
|
"""
|
|
193
223
|
POST /media/images/ HTTP/1.1
|
|
224
|
+
host: nex.toa.io
|
|
194
225
|
"""
|
|
195
226
|
Then the following reply is sent:
|
|
196
227
|
"""
|
|
197
|
-
|
|
228
|
+
415 Unsupported Media Type
|
|
198
229
|
"""
|
|
199
|
-
Examples:
|
|
200
|
-
| format |
|
|
201
|
-
| jpeg |
|
|
202
|
-
| jxl |
|
|
203
|
-
| gif |
|
|
204
|
-
| heic |
|
|
205
|
-
| avif |
|
|
206
|
-
| webp |
|
|
207
230
|
|
|
208
231
|
Scenario: Fetching non-existent BLOB
|
|
209
232
|
When the following request is received:
|
|
210
233
|
"""
|
|
211
234
|
GET /whatever HTTP/1.1
|
|
235
|
+
host: nex.toa.io
|
|
212
236
|
"""
|
|
213
237
|
Then the following reply is sent:
|
|
214
238
|
"""
|
|
@@ -219,12 +243,14 @@ Feature: Octets directive family
|
|
|
219
243
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
220
244
|
"""
|
|
221
245
|
POST / HTTP/1.1
|
|
246
|
+
host: nex.toa.io
|
|
222
247
|
accept: application/yaml
|
|
223
248
|
content-type: application/octet-stream
|
|
224
249
|
"""
|
|
225
250
|
And the following request is received:
|
|
226
251
|
"""
|
|
227
252
|
GET /10cf16b458f759e0d617f2f3d83599ff/ HTTP/1.1
|
|
253
|
+
host: nex.toa.io
|
|
228
254
|
accept: text/plain
|
|
229
255
|
"""
|
|
230
256
|
Then the following reply is sent:
|
|
@@ -235,7 +261,7 @@ Feature: Octets directive family
|
|
|
235
261
|
Trailing slash is redundant.
|
|
236
262
|
"""
|
|
237
263
|
|
|
238
|
-
Scenario: Original
|
|
264
|
+
Scenario: Original BLOB is not accessible
|
|
239
265
|
Given the annotation:
|
|
240
266
|
"""yaml
|
|
241
267
|
/:
|
|
@@ -253,6 +279,7 @@ Feature: Octets directive family
|
|
|
253
279
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
254
280
|
"""
|
|
255
281
|
POST / HTTP/1.1
|
|
282
|
+
host: nex.toa.io
|
|
256
283
|
"""
|
|
257
284
|
Then the following reply is sent:
|
|
258
285
|
"""
|
|
@@ -261,6 +288,7 @@ Feature: Octets directive family
|
|
|
261
288
|
When the following request is received:
|
|
262
289
|
"""
|
|
263
290
|
GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
291
|
+
host: nex.toa.io
|
|
264
292
|
accept: text/plain
|
|
265
293
|
"""
|
|
266
294
|
Then the following reply is sent:
|
|
@@ -19,6 +19,7 @@ Feature: Octets `content-meta` header
|
|
|
19
19
|
When the stream of `lenna.ascii` is received with the following headers:
|
|
20
20
|
"""
|
|
21
21
|
POST /meta-header/ HTTP/1.1
|
|
22
|
+
host: nex.toa.io
|
|
22
23
|
content-type: application/octet-stream
|
|
23
24
|
content-meta: foo, bar=baz=1
|
|
24
25
|
content-meta: baz=1
|
|
@@ -30,6 +31,7 @@ Feature: Octets `content-meta` header
|
|
|
30
31
|
When the following request is received:
|
|
31
32
|
"""
|
|
32
33
|
GET /meta-header/10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
|
|
34
|
+
host: nex.toa.io
|
|
33
35
|
accept: application/vnd.toa.octets.entry+yaml
|
|
34
36
|
"""
|
|
35
37
|
Then the following reply is sent:
|
|
@@ -56,6 +58,7 @@ Feature: Octets `content-meta` header
|
|
|
56
58
|
When the following request is received:
|
|
57
59
|
"""
|
|
58
60
|
OPTIONS / HTTP/1.1
|
|
61
|
+
host: nex.toa.io
|
|
59
62
|
origin: https://example.com
|
|
60
63
|
"""
|
|
61
64
|
Then the following reply is sent:
|