somod-schema
Version:
Schema to validate yaml files in somod modules
69 lines (68 loc) • 2.28 kB
JavaScript
import { somodAjvCompile, somodAnd, somodEquals, somodFunctions, somodIf, somodJsonParse, somodJsonStringify, somodKey, somodOr, somodParameter } from "../common/keywords";
export var runtimeConfig = {
type: "object",
additionalProperties: false,
patternProperties: {
"^[a-zA-Z][a-zA-Z0-9_]{0,63}$": {
$ref: "#/definitions/somodFunctions"
}
},
maxProperties: 32,
errorMessage: {
additionalProperties: "Config Name must contain only Letters, Numbers and Underscore. Must start with letters only"
}
};
var uiConfig = {
$schema: "http://json-schema.org/draft-07/schema",
$id: "https://somod.json-schema.sodaru.com/ui-config/index.json",
title: "JSON Schema for UI Config in SOMOD",
definitions: {
somodAjvCompile: somodAjvCompile,
somodAnd: somodAnd,
somodEquals: somodEquals,
somodFunctions: somodFunctions,
somodIf: somodIf,
somodJsonParse: somodJsonParse,
somodJsonStringify: somodJsonStringify,
somodKey: somodKey,
somodOr: somodOr,
somodParameter: somodParameter,
runtimeConfig: runtimeConfig
},
type: "object",
additionalProperties: false,
properties: {
env: {
type: "object",
additionalProperties: false,
patternProperties: {
"^[A-Z][A-Z0-9_]{0,63}$": {
$ref: "#/definitions/somodFunctions"
}
},
maxProperties: 32,
errorMessage: {
additionalProperties: "Environmental Variable Name must contain only UpperCase Letters, Numbers and Underscore. Must start with letters only"
}
},
imageDomains: {
type: "array",
items: {
anyOf: [
{ type: "string", format: "hostname" },
{
$ref: "#/definitions/somodFunctions"
}
]
},
maxItems: 16
},
publicRuntimeConfig: {
$ref: "#/definitions/runtimeConfig"
},
serverRuntimeConfig: {
$ref: "#/definitions/runtimeConfig"
}
}
};
export default uiConfig;