127 lines
2.4 KiB
YAML
127 lines
2.4 KiB
YAML
name: salty-dog-meta
|
|
definitions:
|
|
log-level:
|
|
type: string
|
|
enum:
|
|
- debug
|
|
- info
|
|
- warn
|
|
- error
|
|
|
|
config-logger:
|
|
type: object
|
|
required:
|
|
- level
|
|
- name
|
|
properties:
|
|
level:
|
|
$ref: "salty-dog-meta#/definitions/log-level"
|
|
name:
|
|
type: string
|
|
streams:
|
|
type: array
|
|
items:
|
|
oneOf:
|
|
- type: string
|
|
- type: object
|
|
|
|
config:
|
|
type: object
|
|
required:
|
|
- data
|
|
properties:
|
|
data:
|
|
type: object
|
|
required:
|
|
- logger
|
|
properties:
|
|
logger:
|
|
$ref: "salty-dog-meta#/definitions/config-logger"
|
|
|
|
name-safe:
|
|
type: string
|
|
pattern: "[-a-z0-9]+"
|
|
|
|
name-tag:
|
|
type: string
|
|
pattern: "[-:a-z0-9]+"
|
|
|
|
rule:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
# metadata
|
|
- name
|
|
- desc
|
|
- level
|
|
- tags
|
|
# data
|
|
- check
|
|
properties:
|
|
name:
|
|
$ref: "salty-dog-meta#/definitions/name-safe"
|
|
desc:
|
|
type: string
|
|
minLength: 8
|
|
maxLength: 255
|
|
level:
|
|
$ref: "salty-dog-meta#/definitions/log-level"
|
|
tags:
|
|
type: array
|
|
items:
|
|
$ref: "salty-dog-meta#/definitions/name-tag"
|
|
select:
|
|
type: string
|
|
default: '$'
|
|
minLength: 1
|
|
filter:
|
|
$ref: "http://json-schema.org/draft-07/schema#"
|
|
check:
|
|
$ref: "http://json-schema.org/draft-07/schema#"
|
|
|
|
source:
|
|
type: object
|
|
required:
|
|
- name
|
|
- rules
|
|
properties:
|
|
name:
|
|
$ref: "salty-dog-meta#/definitions/name-safe"
|
|
definitions:
|
|
type: object
|
|
additionalProperties: false
|
|
patternProperties:
|
|
"[-a-z]+":
|
|
type: object
|
|
rules:
|
|
type: array
|
|
items:
|
|
$ref: "salty-dog-meta#/definitions/rule"
|
|
|
|
rules:
|
|
- name: salty-dog-rule
|
|
desc: rules must be complete
|
|
level: info
|
|
tags:
|
|
- important
|
|
- salty-dog
|
|
|
|
select: '$.rules[*]'
|
|
check:
|
|
$ref: "salty-dog-meta#/definitions/rule"
|
|
|
|
- name: salty-dog-source
|
|
desc: source files must have rules
|
|
level: info
|
|
tags:
|
|
- important
|
|
- salty-dog
|
|
|
|
check:
|
|
allOf:
|
|
- $ref: "salty-dog-meta#/definitions/source"
|
|
- type: object
|
|
properties:
|
|
rules:
|
|
type: array
|
|
minItems: 1 |