@softvisio/core
Version:
Softisio core
83 lines (71 loc) • 2.58 kB
YAML
- $id: config
type: object
properties:
clearInterval: { type: string, format: interval }
maxCacheSize: { type: integer, minimum: 1 }
location: { type: string, format: kebab-case-root-or-absolute-file-path }
listenPublicHttpServer: { type: boolean }
listenPrivateHttpServer: { type: boolean }
buckets:
type: object
properties:
"/": { $ref: common#/$defs/bucket }
propertyNames: { type: string, format: kebab-case-root-or-absolute-file-path }
additionalProperties: { $ref: common#/$defs/bucket }
required: ["/"]
locations:
type: object
properties:
"/": { $ref: common#/$defs/location }
propertyNames: { type: string, format: kebab-case-root-or-absolute-file-path }
additionalProperties: { $ref: common#/$defs/location }
required: ["/"]
additionalProperties: false
required: [clearInterval, maxCacheSize, location, listenPublicHttpServer, listenPrivateHttpServer, buckets, locations]
- $id: common
$defs:
bucket:
anyOf:
- type: object
properties:
type: { const: local }
additionalProperties: false
required: [type]
- type: object
properties:
type: { const: google }
bucket: { type: string, format: kebab-case }
serviceAccount:
type: object
properties:
type: { type: string }
project_id: { type: string }
private_key_id: { type: string }
private_key: { type: string }
client_email: { type: string }
client_id: { type: string }
auth_uri: { type: string }
token_uri: { type: string }
auth_provider_x509_cert_url: { type: string }
client_x509_cert_url: { type: string }
additionalProperties: false
required: [project_id, private_key, client_email, token_uri]
additionalProperties: false
required: [type, bucket, serviceAccount]
location:
type: object
properties:
private: { type: boolean }
encrypt: { type: boolean }
deduplicate: { type: boolean }
cacheControl: { type: ["null", string] }
maxAge:
anyOf:
- type: "null"
- { type: string, format: interval }
inactiveMaxAge:
anyOf:
- type: "null"
- { type: string, format: interval }
additionalProperties: false
required: []