fix additionProperties in JSONSchema and add IDs to everything

This commit is contained in:
Joel Wetzell
2026-03-30 20:58:39 -05:00
parent 979addeff8
commit f57f9d8ce5
55 changed files with 77 additions and 58 deletions

View File

@@ -36,6 +36,7 @@ func init() {
}, },
}, },
Required: []string{"dsn"}, Required: []string{"dsn"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -69,7 +69,7 @@ func init() {
}, },
}, },
Required: []string{"port"}, Required: []string{"port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -38,7 +38,7 @@ func init() {
}, },
}, },
Required: []string{"port"}, Required: []string{"port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -38,7 +38,7 @@ func init() {
}, },
}, },
Required: []string{"port"}, Required: []string{"port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -45,7 +45,7 @@ func init() {
}, },
}, },
Required: []string{"broker", "topic", "clientId"}, Required: []string{"broker", "topic", "clientId"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -40,7 +40,7 @@ func init() {
}, },
}, },
Required: []string{"url", "subject"}, Required: []string{"url", "subject"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -47,8 +47,7 @@ func init() {
}, },
}, },
Required: []string{}, Required: []string{},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
AdditionalProperties: nil,
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -27,7 +27,6 @@ func init() {
Type: "psn.client", Type: "psn.client",
Title: "PosiStageNet Client", Title: "PosiStageNet Client",
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
return &PSNClient{config: config, decoder: psn.NewDecoder(), logger: CreateLogger(config)}, nil return &PSNClient{config: config, decoder: psn.NewDecoder(), logger: CreateLogger(config)}, nil
}, },
}) })

View File

@@ -40,7 +40,7 @@ func init() {
}, },
}, },
Required: []string{"host", "port"}, Required: []string{"host", "port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -45,7 +45,7 @@ func init() {
}, },
}, },
Required: []string{"port", "baudRate"}, Required: []string{"port", "baudRate"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -77,7 +77,7 @@ func init() {
}, },
}, },
Required: []string{}, Required: []string{},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -83,7 +83,7 @@ func init() {
}, },
}, },
Required: []string{"separator"}, Required: []string{"separator"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -49,7 +49,7 @@ func init() {
}, },
}, },
Required: []string{"host", "port", "framing"}, Required: []string{"host", "port", "framing"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -57,7 +57,7 @@ func init() {
}, },
}, },
Required: []string{"port", "framing"}, Required: []string{"port", "framing"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -36,7 +36,7 @@ func init() {
}, },
}, },
Required: []string{"duration"}, Required: []string{"duration"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -36,7 +36,7 @@ func init() {
}, },
}, },
Required: []string{"duration"}, Required: []string{"duration"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -42,7 +42,7 @@ func init() {
}, },
}, },
Required: []string{"host", "port"}, Required: []string{"host", "port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ModuleConfig) (common.Module, error) { New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params params := config.Params

View File

@@ -42,7 +42,7 @@ func init() {
}, },
}, },
Required: []string{"ip", "port"}, Required: []string{"ip", "port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -51,7 +51,7 @@ func init() {
}, },
}, },
Required: []string{"port"}, Required: []string{"port"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ModuleConfig) (common.Module, error) { New: func(moduleConfig config.ModuleConfig) (common.Module, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -59,7 +59,7 @@ func init() {
}, },
}, },
Required: []string{"expression"}, Required: []string{"expression"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -51,7 +51,7 @@ func init() {
}, },
}, },
Required: []string{"pattern"}, Required: []string{"pattern"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -53,7 +53,7 @@ func init() {
Default: json.RawMessage("64"), Default: json.RawMessage("64"),
}, },
}, },
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ProcessorConfig) (Processor, error) { New: func(moduleConfig config.ProcessorConfig) (Processor, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -61,7 +61,7 @@ func init() {
}, },
}, },
Required: []string{"min", "max"}, Required: []string{"min", "max"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(processorConfig config.ProcessorConfig) (Processor, error) { New: func(processorConfig config.ProcessorConfig) (Processor, error) {
params := processorConfig.Params params := processorConfig.Params

View File

@@ -259,7 +259,7 @@ func init() {
"zoom", "zoom",
"focus", "focus",
}, },
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -87,7 +87,7 @@ func init() {
}, },
}, },
Required: []string{"method", "url"}, Required: []string{"method", "url"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -60,7 +60,7 @@ func init() {
}, },
}, },
Required: []string{"status", "body"}, Required: []string{"status", "body"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -60,7 +60,7 @@ func init() {
Default: json.RawMessage("64"), Default: json.RawMessage("64"),
}, },
}, },
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(moduleConfig config.ProcessorConfig) (Processor, error) { New: func(moduleConfig config.ProcessorConfig) (Processor, error) {
params := moduleConfig.Params params := moduleConfig.Params

View File

@@ -44,7 +44,7 @@ func init() {
}, },
}, },
Required: []string{"min", "max"}, Required: []string{"min", "max"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -60,7 +60,7 @@ func init() {
}, },
}, },
Required: []string{"inMin", "inMax", "outMin", "outMax"}, Required: []string{"inMin", "inMax", "outMin", "outMax"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -67,7 +67,7 @@ func init() {
}, },
}, },
Required: []string{"module", "key"}, Required: []string{"module", "key"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -82,7 +82,7 @@ func init() {
}, },
}, },
Required: []string{"module", "key", "value"}, Required: []string{"module", "key", "value"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -85,7 +85,7 @@ func init() {
}, },
}, },
Required: []string{"channel", "control", "value"}, Required: []string{"channel", "control", "value"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -84,7 +84,7 @@ func init() {
}, },
}, },
Required: []string{"channel", "note", "velocity"}, Required: []string{"channel", "note", "velocity"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -84,7 +84,7 @@ func init() {
}, },
}, },
Required: []string{"channel", "note", "velocity"}, Required: []string{"channel", "note", "velocity"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -70,7 +70,7 @@ func init() {
}, },
}, },
Required: []string{"type", "channel", "program"}, Required: []string{"type", "channel", "program"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -104,7 +104,7 @@ func init() {
}, },
}, },
Required: []string{"topic", "qos", "retained", "payload"}, Required: []string{"topic", "qos", "retained", "payload"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(processorConfig config.ProcessorConfig) (Processor, error) { New: func(processorConfig config.ProcessorConfig) (Processor, error) {
params := processorConfig.Params params := processorConfig.Params

View File

@@ -75,7 +75,7 @@ func init() {
}, },
}, },
Required: []string{"subject", "payload"}, Required: []string{"subject", "payload"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -109,7 +109,7 @@ func init() {
}, },
}, },
Required: []string{"address"}, Required: []string{"address"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(processorConfig config.ProcessorConfig) (Processor, error) { New: func(processorConfig config.ProcessorConfig) (Processor, error) {
params := processorConfig.Params params := processorConfig.Params

View File

@@ -57,7 +57,7 @@ func init() {
}, },
}, },
Required: []string{"source"}, Required: []string{"source"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -53,7 +53,7 @@ func init() {
}, },
}, },
Required: []string{"module"}, Required: []string{"module"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {

View File

@@ -48,7 +48,7 @@ func init() {
}, },
}, },
Required: []string{"expression"}, Required: []string{"expression"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -105,7 +105,7 @@ func init() {
}, },
}, },
Required: []string{"program"}, Required: []string{"program"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -73,7 +73,7 @@ func init() {
}, },
}, },
Required: []string{"path"}, Required: []string{"path"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(processorConfig config.ProcessorConfig) (Processor, error) { New: func(processorConfig config.ProcessorConfig) (Processor, error) {
params := processorConfig.Params params := processorConfig.Params

View File

@@ -70,7 +70,7 @@ func init() {
}, },
}, },
Required: []string{"preWait", "postWait", "audioFile"}, Required: []string{"preWait", "postWait", "audioFile"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -78,7 +78,7 @@ func init() {
}, },
}, },
Required: []string{"preWait", "postWait", "digits"}, Required: []string{"preWait", "postWait", "digits"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -49,7 +49,7 @@ func init() {
}, },
}, },
Required: []string{"template"}, Required: []string{"template"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -47,7 +47,7 @@ func init() {
}, },
}, },
Required: []string{"separator"}, Required: []string{"separator"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -56,6 +56,7 @@ func init() {
}, },
}, },
Required: []string{"name"}, Required: []string{"name"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -75,6 +75,7 @@ func init() {
}, },
}, },
Required: []string{"name"}, Required: []string{"name"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -38,6 +38,7 @@ func init() {
}, },
}, },
Required: []string{"duration"}, Required: []string{"duration"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
New: func(config config.ProcessorConfig) (Processor, error) { New: func(config config.ProcessorConfig) (Processor, error) {
params := config.Params params := config.Params

View File

@@ -7,6 +7,7 @@ import (
) )
var ApiConfigSchema = jsonschema.Schema{ var ApiConfigSchema = jsonschema.Schema{
ID: "https://showbridge.io/api.schema.json",
Type: "object", Type: "object",
Properties: map[string]*jsonschema.Schema{ Properties: map[string]*jsonschema.Schema{
"enabled": { "enabled": {
@@ -24,4 +25,5 @@ var ApiConfigSchema = jsonschema.Schema{
}, },
Required: []string{"port"}, Required: []string{"port"},
Default: json.RawMessage(`{"enabled": false, "port": 8080}`), Default: json.RawMessage(`{"enabled": false, "port": 8080}`),
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
} }

View File

@@ -19,6 +19,7 @@ var ConfigSchema = jsonschema.Schema{
Ref: "https://showbridge.io/routes.schema.json", Ref: "https://showbridge.io/routes.schema.json",
}, },
}, },
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
} }
func ApplyDefaults(cfg *map[string]any) error { func ApplyDefaults(cfg *map[string]any) error {

View File

@@ -1,6 +1,8 @@
package schema package schema
import ( import (
"encoding/json"
"github.com/google/jsonschema-go/jsonschema" "github.com/google/jsonschema-go/jsonschema"
"github.com/jwetzell/showbridge-go/internal/module" "github.com/jwetzell/showbridge-go/internal/module"
) )
@@ -13,11 +15,13 @@ func GetModulesSchema() *jsonschema.Schema {
Title: "Modules", Title: "Modules",
Description: "module configurations", Description: "module configurations",
Type: "array", Type: "array",
Default: json.RawMessage(`[]`),
} }
moduleDefinitionSchemas := []*jsonschema.Schema{} moduleDefinitionSchemas := []*jsonschema.Schema{}
for _, mod := range module.ModuleRegistry { for _, mod := range module.ModuleRegistry {
moduleSchema := &jsonschema.Schema{ moduleSchema := &jsonschema.Schema{
ID: mod.Type,
Type: "object", Type: "object",
Properties: map[string]*jsonschema.Schema{ Properties: map[string]*jsonschema.Schema{
"id": { "id": {
@@ -29,7 +33,7 @@ func GetModulesSchema() *jsonschema.Schema {
}, },
}, },
Required: []string{"id", "type"}, Required: []string{"id", "type"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
} }
if mod.Title != "" { if mod.Title != "" {
moduleSchema.Title = mod.Title moduleSchema.Title = mod.Title

View File

@@ -1,6 +1,8 @@
package schema package schema
import ( import (
"encoding/json"
"github.com/google/jsonschema-go/jsonschema" "github.com/google/jsonschema-go/jsonschema"
"github.com/jwetzell/showbridge-go/internal/processor" "github.com/jwetzell/showbridge-go/internal/processor"
) )
@@ -13,11 +15,13 @@ func GetProcessorsSchema() *jsonschema.Schema {
Title: "Processors", Title: "Processors",
Description: "processor configurations", Description: "processor configurations",
Type: "array", Type: "array",
Default: json.RawMessage(`[]`),
} }
processorDefinitionSchemas := []*jsonschema.Schema{} processorDefinitionSchemas := []*jsonschema.Schema{}
for _, proc := range processor.ProcessorRegistry { for _, proc := range processor.ProcessorRegistry {
processorSchema := &jsonschema.Schema{ processorSchema := &jsonschema.Schema{
ID: proc.Type,
Type: "object", Type: "object",
Properties: map[string]*jsonschema.Schema{ Properties: map[string]*jsonschema.Schema{
"type": { "type": {
@@ -25,7 +29,7 @@ func GetProcessorsSchema() *jsonschema.Schema {
}, },
}, },
Required: []string{"type"}, Required: []string{"type"},
AdditionalProperties: nil, AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
} }
if proc.Title != "" { if proc.Title != "" {
processorSchema.Title = proc.Title processorSchema.Title = proc.Title

View File

@@ -1,6 +1,10 @@
package schema package schema
import "github.com/google/jsonschema-go/jsonschema" import (
"encoding/json"
"github.com/google/jsonschema-go/jsonschema"
)
var RoutesConfigSchema = jsonschema.Schema{ var RoutesConfigSchema = jsonschema.Schema{
Schema: "https://json-schema.org/draft/2020-12/schema", Schema: "https://json-schema.org/draft/2020-12/schema",
@@ -20,5 +24,7 @@ var RoutesConfigSchema = jsonschema.Schema{
}, },
}, },
Required: []string{"input"}, Required: []string{"input"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
}, },
Default: json.RawMessage(`[]`),
} }