@softvisio/core
Version:
Softisio core
74 lines (63 loc) • 2.27 kB
YAML
- $id: public-config
type: object
properties:
types: false
- $id: config
type: object
properties:
cacheMaxSize: { type: integer, minimum: 0 }
types:
type: object
properties:
main: { $ref: common#/$defs/type }
propertyNames: { type: string }
additionalProperties: { $ref: common#/$defs/type }
required: [main] # main acl is required
additionalProperties: false
required: [cacheMaxSize, types]
- $id: common
$defs:
type:
type: object
properties:
roles:
type: object
propertyNames: { type: string }
additionalProperties:
type: object
properties:
name: { type: object, instanceof: Locale.L10nt }
description: { type: object, instanceof: Locale.L10nt }
permissions: { type: array, items: { type: string, format: glob-pattern }, minItems: 1, uniqueItems: true }
additionalProperties: false
required: [name, description, permissions]
minProperties: 1
notifications:
anyOf:
- type: "null"
- type: object
propertyNames: { type: string }
additionalProperties:
type: object
properties:
name: { type: object, instanceof: Locale.L10nt }
description: { type: object, instanceof: Locale.L10nt }
roles:
anyOf:
- type: "null"
- { type: array, items: { type: string }, minItems: 1, uniqueItems: true }
channels:
type: object
propertyNames: { enum: [internal, email, telegram, push] }
additionalProperties:
type: object
properties:
enabled: { type: boolean }
subscribed: { type: boolean }
editable: { type: boolean }
additionalProperties: false
additionalProperties: false
required: [name, description]
minProperties: 1
additionalProperties: false
required: [roles]