@softvisio/core
Version:
Softisio core
104 lines (86 loc) • 2.9 kB
YAML
- $id: config
type: object
properties:
defaultVersion: { type: integer, minimum: 1 }
avatarUrl: { type: string, format: kebab-case-absolute-folder-path }
avatarMaxAge: { type: string, format: interval }
forceDefaultAvatar: { type: boolean }
defaultGravatar:
anyOf:
- type: "null"
- enum: [mp, identicon, monsterid, wavatar, retro, robohash]
# frontend
frontendUrl: { type: string, format: url }
frontend:
type: object
properties:
location: { type: string, format: kebab-case-root-or-absolute-file-path }
maxParallelCallsPerClient:
anyOf:
- type: "null"
- { type: integer, minimum: 1 }
maxApiRequestBodySize: { type: string, format: digital-size }
idleTimeout: { type: string, format: interval }
sendPingsAutomatically: { type: boolean }
compress:
anyOf:
- type: "null" # use server default
- type: boolean
- { type: integer, minimum: 0 }
additionalProperties: false
required: [location, maxParallelCallsPerClient, maxApiRequestBodySize, idleTimeout, sendPingsAutomatically, compress]
# users
signupEnabled: { type: boolean }
# tokens
apiTokensCacheMaxSize: { type: integer, minimum: 1 }
# sessions
sessionsCacheMaxSize: { type: integer, minimum: 1 }
sessionMaxAge: { type: string, format: interval } # ms
authorizedSessionMaxAge: { type: string, format: interval }
# oauth
oauth:
type: object
properties:
google:
anyOf:
- type: "null"
- type: object
properties:
clientId: { type: ["null", string] }
clientSecret: { type: ["null", string] }
additionalProperties: false
required: [clientId, clientSecret]
facebook:
anyOf:
- type: "null"
- type: object
properties:
clientId: { type: ["null", string] }
clientSecret: { type: ["null", string] }
additionalProperties: false
required: [clientId, clientSecret]
github:
anyOf:
- type: "null"
- type: object
properties:
clientId: { type: ["null", string] }
clientSecret: { type: ["null", string] }
required: [clientId, clientSecret]
additionalProperties: false
additionalProperties: false
required: [google, facebook, github]
additionalProperties: false
required:
- defaultVersion
- avatarUrl
- avatarMaxAge
- forceDefaultAvatar
- frontendUrl
- frontend
- signupEnabled
- apiTokensCacheMaxSize
- sessionsCacheMaxSize
- sessionMaxAge
- authorizedSessionMaxAge
- oauth