417 lines
20 KiB
JSON
417 lines
20 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://git.davinti.com.br/davinTI/vitruvio/raw/branch/master/vitruvio-ui/src/main/resources/vitruvio-manifest-schema.json",
|
|
"title": "vitruvio.json",
|
|
"description": "Vitruvio Git Content Repository Manifest",
|
|
"type": "object",
|
|
"required": ["version", "metadata"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"$schema": { "type": "string" },
|
|
"_comment": { "type": "string" },
|
|
"_comment_version": { "type": "string" },
|
|
"version": {
|
|
"type": "string",
|
|
"description": "Manifest version, e.g. \"1.0.0\""
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"required": ["key"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"key": { "type": "string", "description": "Unique identifier for this content package" },
|
|
"standardProduct": { "type": "boolean" }
|
|
}
|
|
},
|
|
"panels": { "type": "array", "items": { "$ref": "#/definitions/panel" } },
|
|
"processes": { "type": "array", "items": { "$ref": "#/definitions/process" } },
|
|
"scripts": { "type": "array", "items": { "$ref": "#/definitions/script" } },
|
|
"endpoints": { "type": "array", "items": { "$ref": "#/definitions/endpoint" } },
|
|
"queries": { "type": "array", "items": { "$ref": "#/definitions/query" } },
|
|
"reports": { "type": "array", "items": { "$ref": "#/definitions/report" } },
|
|
"libraries": { "type": "array", "items": { "$ref": "#/definitions/library" } },
|
|
"groups": { "type": "array", "items": { "$ref": "#/definitions/group" } },
|
|
"properties": { "type": "array", "items": { "$ref": "#/definitions/property" } },
|
|
"menu": { "type": "array", "items": { "$ref": "#/definitions/menuItem" } },
|
|
"permissions": { "type": "array", "items": { "$ref": "#/definitions/permission" } },
|
|
"patches": {
|
|
"type": "string",
|
|
"description": "Relative directory path containing Liquibase changesets, e.g. \"patches/\""
|
|
}
|
|
},
|
|
|
|
"definitions": {
|
|
|
|
"panel": {
|
|
"type": "object",
|
|
"required": ["key", "name"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"category": { "type": "string", "description": "Hierarchical path, e.g. \"Comercial/Vendas\"" },
|
|
"displayOrder": { "type": "integer", "default": 0 },
|
|
"showInPresentation": { "type": "boolean", "default": false },
|
|
"openInNewWindow": { "type": "boolean", "default": false },
|
|
"showInMobileList": { "type": "boolean", "default": false },
|
|
"displayTimeInSeconds": { "type": "integer", "default": 0 },
|
|
"allowedGroups": { "type": "array", "items": { "type": "string" } },
|
|
"allowedUsers": { "type": "array", "items": { "type": "string" } },
|
|
"forms": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"desktop": { "type": ["string", "null"], "description": "Relative path to desktop form XML" },
|
|
"mobile": { "type": ["string", "null"], "description": "Relative path to mobile form XML" },
|
|
"mobileAlternative": { "type": ["string", "null"], "description": "Relative path to alternative mobile form XML" }
|
|
}
|
|
},
|
|
"defaultState": { "type": ["string", "null"], "description": "Relative path to default state JSON" },
|
|
"thumbnail": { "type": ["string", "null"], "description": "Relative path to thumbnail image" }
|
|
}
|
|
},
|
|
|
|
"script": {
|
|
"type": "object",
|
|
"required": ["key", "name", "source", "language", "domain"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"language": { "type": "string", "enum": ["javascript", "JavaScript", "groovy", "Groovy"] },
|
|
"domain": { "type": "string", "enum": ["USUARIO", "SISTEMA"] },
|
|
"source": { "type": "string", "description": "Relative path to the script file" },
|
|
"documentation": { "type": ["string", "null"], "description": "Relative path to optional documentation file" },
|
|
"schedules": { "type": "array", "items": { "$ref": "#/definitions/scriptSchedule" } }
|
|
}
|
|
},
|
|
|
|
"scriptSchedule": {
|
|
"type": "object",
|
|
"required": ["uuid", "nome", "triggerInfo"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"uuid": { "type": "string", "format": "uuid" },
|
|
"nome": { "type": "string" },
|
|
"descricao": { "type": ["string", "null"] },
|
|
"proprietario": { "type": ["string", "null"] },
|
|
"execFeriado": { "$ref": "#/definitions/scheduleExecFeriado" },
|
|
"scheduleScriptParameters": { "type": ["string", "null"] },
|
|
"controleNotificacao": { "type": "boolean", "default": false },
|
|
"configuracaoNotificacao": { "type": ["object", "null"] },
|
|
"triggerInfo": { "$ref": "#/definitions/triggerInfo" },
|
|
"statusPolicy": { "$ref": "#/definitions/scheduleSyncPolicy" }
|
|
}
|
|
},
|
|
|
|
"endpoint": {
|
|
"type": "object",
|
|
"required": ["key", "name", "source", "language", "authMode"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"language": { "type": "string", "enum": ["javascript", "JavaScript", "groovy", "Groovy"] },
|
|
"authMode": { "type": "string", "enum": ["PUBLIC", "STATIC_TOKEN", "VITRUVIO_WS_USER_AUTH", "HTTP_BASIC_AUTH"] },
|
|
"active": { "type": "boolean", "default": true },
|
|
"source": { "type": "string", "description": "Relative path to the endpoint script file" }
|
|
}
|
|
},
|
|
|
|
"query": {
|
|
"type": "object",
|
|
"required": ["key", "name", "source"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"connection": { "type": ["string", "null"], "description": "Database connection key" },
|
|
"source": { "type": "string", "description": "Relative path to the SQL file" }
|
|
}
|
|
},
|
|
|
|
"report": {
|
|
"type": "object",
|
|
"required": ["key", "name", "type", "category"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"type": { "type": "string", "enum": ["MODELO_ESTATICO", "DINAMICO_QUERY_SQL"] },
|
|
"category": { "type": "string", "description": "Hierarchical category path" },
|
|
"owner": { "type": ["string", "null"] },
|
|
"template": { "type": ["string", "null"], "description": "Relative path to Jasper template" },
|
|
"parameterForm": { "type": ["string", "null"], "description": "Relative path to parameter form XML" },
|
|
"query": { "type": ["string", "null"], "description": "Key of the query used by this report" },
|
|
"orientation": { "type": "string", "enum": ["RETRATO", "PAISAGEM"] },
|
|
"allowedGroups": { "type": "array", "items": { "type": "string" } },
|
|
"allowedUsers": { "type": "array", "items": { "type": "string" } },
|
|
"columns": { "type": "array", "items": { "$ref": "#/definitions/reportColumn" } },
|
|
"schedules": { "type": "array", "items": { "$ref": "#/definitions/reportSchedule" } }
|
|
}
|
|
},
|
|
|
|
"reportColumn": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"label": { "type": "string" },
|
|
"align": { "type": "string", "enum": ["LEFT", "CENTER", "RIGHT"] },
|
|
"width": { "type": "integer" },
|
|
"aggregation": { "type": ["string", "null"], "description": "e.g. \"SUM\", \"COUNT\", \"AVG\"" },
|
|
"groupBy": { "type": "boolean", "default": false },
|
|
"groupByType": { "type": ["string", "null"], "description": "e.g. \"VALUE_IN_HEADER\", \"VALUE_IN_HEADER_WITH_HEADERS\"" },
|
|
"pattern": { "type": ["string", "null"] },
|
|
"separadorDecimal": { "type": ["string", "null"] },
|
|
"separadorGrupo": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
|
|
"reportSchedule": {
|
|
"type": "object",
|
|
"required": ["uuid", "nome", "triggerInfo"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"uuid": { "type": "string", "format": "uuid" },
|
|
"nome": { "type": "string" },
|
|
"descricao": { "type": ["string", "null"] },
|
|
"proprietario": { "type": ["string", "null"] },
|
|
"execFeriado": { "$ref": "#/definitions/scheduleExecFeriado" },
|
|
"triggerInfo": { "$ref": "#/definitions/triggerInfo" },
|
|
"usuarios": { "type": "array", "items": { "type": "string" } },
|
|
"emails": { "type": "array", "items": { "type": "string" } },
|
|
"grupos": { "type": "array", "items": { "type": "string" } },
|
|
"formatos": { "type": "array", "items": { "type": "integer" } },
|
|
"emailHTML": { "type": ["string", "null"] },
|
|
"emailAssunto": { "type": ["string", "null"] },
|
|
"preExec": { "type": ["string", "null"] },
|
|
"posExec": { "type": ["string", "null"] },
|
|
"embedHtml": { "type": "boolean", "default": false },
|
|
"embedRecipients": { "type": "boolean", "default": false },
|
|
"comprimirAnexosZip": { "type": "boolean", "default": false },
|
|
"ignorarRelatorioSemDados": { "type": "boolean", "default": false },
|
|
"enviarRelatorioPorEmail": { "type": "boolean", "default": false },
|
|
"salvarBibliotecaArquivos": { "type": "boolean", "default": false },
|
|
"biblioteca": { "type": ["string", "null"] },
|
|
"nomeArquivoPrefixo": { "type": ["string", "null"] },
|
|
"usarDataComoSufixoComFormato": { "type": ["string", "null"] },
|
|
"usarDataComoSufixoComFormatoAoAnexar": { "type": ["string", "null"] },
|
|
"sobrescreverArquivoNaBiblioteca": { "type": "boolean", "default": false },
|
|
"subdiretorio": { "type": ["string", "null"] },
|
|
"jsonReportParam": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
|
|
"library": {
|
|
"type": "object",
|
|
"required": ["key", "name", "type", "authMode", "files"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"type": { "type": "string", "enum": ["LOCAL"] },
|
|
"authMode": { "type": "string", "enum": ["PUBLIC", "MOBILE", "STATIC_TOKEN"] },
|
|
"authToken": { "type": ["string", "null"], "description": "Required when authMode is STATIC_TOKEN" },
|
|
"mobileEnabled": { "type": "boolean", "default": false },
|
|
"files": { "type": "string", "description": "Relative path to directory containing library files" }
|
|
}
|
|
},
|
|
|
|
"group": {
|
|
"type": "object",
|
|
"required": ["key", "name"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
|
|
"property": {
|
|
"type": "object",
|
|
"required": ["key", "type"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"displayName": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"type": { "type": "string", "enum": ["STRING", "INTEGER", "BOOLEAN", "DATE"] },
|
|
"size": { "type": ["integer", "null"] },
|
|
"precision": { "type": ["integer", "null"] },
|
|
"format": { "type": ["string", "null"] },
|
|
"required": { "type": "boolean", "default": false },
|
|
"password": { "type": "boolean", "default": false },
|
|
"predefinedValues": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"descricao": { "type": "string" },
|
|
"ordem": { "type": "integer", "default": 0 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
"menuItem": {
|
|
"type": "object",
|
|
"required": ["key", "name", "type"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"icon": { "type": ["integer", "null"] },
|
|
"order": { "type": "integer", "default": 0 },
|
|
"type": { "type": "string", "enum": ["MENU", "PAINEL", "RELATORIO", "PROCESSO", "SISTEMA"] },
|
|
"panelKey": { "type": ["string", "null"], "description": "References panel.key (when type is PANEL)" },
|
|
"reportKey": { "type": ["string", "null"], "description": "References report.key (when type is REPORT)" },
|
|
"processKey": { "type": ["string", "null"], "description": "References process.key (when type is PROCESS)" },
|
|
"children": { "type": "array", "items": { "$ref": "#/definitions/menuItem" } }
|
|
}
|
|
},
|
|
|
|
"permission": {
|
|
"type": "object",
|
|
"required": ["processKey", "group"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"processKey": { "type": "string", "description": "References process.key" },
|
|
"group": { "type": "string", "description": "References group.key" },
|
|
"read": { "type": "boolean", "default": false },
|
|
"writeStages": { "type": "boolean", "default": false },
|
|
"cancel": { "type": "boolean", "default": false },
|
|
"delete": { "type": "boolean", "default": false },
|
|
"stageStatus": { "type": "boolean", "default": false }
|
|
}
|
|
},
|
|
|
|
"process": {
|
|
"type": "object",
|
|
"required": ["key", "name", "bpmn"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"key": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"description": { "type": ["string", "null"] },
|
|
"bpmn": { "type": "string", "description": "Relative path to the BPMN XML file" },
|
|
"forms": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"desktop": { "type": ["string", "null"] },
|
|
"mobile": { "type": ["string", "null"] },
|
|
"mobileAlternative": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
"schedules": { "type": "array", "items": { "$ref": "#/definitions/processSchedule" } }
|
|
}
|
|
},
|
|
|
|
"processSchedule": {
|
|
"type": "object",
|
|
"required": ["uuid", "nome", "triggerInfo"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"uuid": { "type": "string", "format": "uuid" },
|
|
"nome": { "type": "string" },
|
|
"descricao": { "type": ["string", "null"] },
|
|
"proprietario": { "type": ["string", "null"] },
|
|
"execFeriado": { "$ref": "#/definitions/scheduleExecFeriado" },
|
|
"triggerInfo": { "$ref": "#/definitions/triggerInfo" },
|
|
"type": { "type": ["string", "null"], "enum": ["SIMPLE", "OWNER_LOOP", null] },
|
|
"controleNotificacao": { "type": "boolean", "default": false },
|
|
"configuracaoNotificacao": { "type": ["string", "null"] },
|
|
"metadata": { "$ref": "#/definitions/scheduleNotificationMetadata" },
|
|
"usuarios": { "type": "array", "items": { "type": "string" } },
|
|
"grupos": { "type": "array", "items": { "type": "string" } },
|
|
"emails": { "type": "array", "items": { "type": "string" } },
|
|
"scheduleParams": { "type": ["string", "null"] },
|
|
"customParams": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
|
|
"scheduleNotificationMetadata": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"assuntoEmail": { "type": ["string", "null"] },
|
|
"mensagemEmail": { "type": ["string", "null"] },
|
|
"checkEmail": { "type": ["boolean", "null"] },
|
|
"checkPush": { "type": ["boolean", "null"] },
|
|
"usuariosNotificados": { "type": ["string", "null"] },
|
|
"gruposNotificados": { "type": ["string", "null"] },
|
|
"emailsAuxiliares": { "type": ["string", "null"] }
|
|
}
|
|
},
|
|
|
|
"triggerInfo": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/simpleTriggerInfo" },
|
|
{ "$ref": "#/definitions/calendarTriggerInfo" }
|
|
]
|
|
},
|
|
|
|
"simpleTriggerInfo": {
|
|
"type": "object",
|
|
"required": ["type", "repeatEvery", "repeat"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": { "type": "string", "const": "SimpleTriggerInfo" },
|
|
"triggerName": { "type": ["string", "null"] },
|
|
"triggerDescription": { "type": ["string", "null"] },
|
|
"repeat": { "type": "string", "enum": ["SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS"] },
|
|
"repeatEvery": { "type": "integer", "minimum": 1 },
|
|
"repeatCount": { "type": ["integer", "null"] },
|
|
"startDate": { "type": ["string", "null"], "format": "date-time" },
|
|
"endDate": { "type": ["string", "null"], "format": "date-time" },
|
|
"execFeriado": { "$ref": "#/definitions/scheduleExecFeriado" },
|
|
"minute": { "type": "integer", "minimum": 0, "maximum": 59 },
|
|
"hour": { "type": "integer", "minimum": 0, "maximum": 23 },
|
|
"dayOfWeek": { "type": "integer", "minimum": 1, "maximum": 7 }
|
|
}
|
|
},
|
|
|
|
"calendarTriggerInfo": {
|
|
"type": "object",
|
|
"required": ["type"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": { "type": "string", "const": "CalendarTriggerInfo" },
|
|
"triggerName": { "type": ["string", "null"] },
|
|
"triggerDescription": { "type": ["string", "null"] },
|
|
"startDate": { "type": ["string", "null"], "format": "date-time" },
|
|
"endDate": { "type": ["string", "null"], "format": "date-time" },
|
|
"execFeriado": { "$ref": "#/definitions/scheduleExecFeriado" },
|
|
"months": { "type": "array", "items": { "type": "integer", "minimum": 1, "maximum": 12 }, "description": "Empty = every month" },
|
|
"weekDays": { "type": "array", "items": { "type": "integer", "minimum": 1, "maximum": 7 }, "description": "1=Sunday ... 7=Saturday. Mutually exclusive with monthDaysExpression" },
|
|
"monthDaysExpression": { "type": ["string", "null"], "description": "e.g. \"1,15\" or \"1-5\" or \"*\". Mutually exclusive with weekDays" },
|
|
"hourExpression": { "type": ["string", "null"], "description": "e.g. \"8,12,18\" or \"8-17\" or \"*\"" },
|
|
"minutesExpression": { "type": ["string", "null"], "description": "e.g. \"0,30\" or \"*\"" },
|
|
"secondsExpression": { "type": ["string", "null"], "description": "e.g. \"0\"" }
|
|
}
|
|
},
|
|
|
|
"scheduleExecFeriado": {
|
|
"type": "string",
|
|
"enum": ["SEMPRE_EXECUTAR_FERIADO", "NUNCA_EXECUTAR_FERIADO", "DEFINIR_EXECUTAR_FERIADO"]
|
|
},
|
|
|
|
"scheduleSyncPolicy": {
|
|
"type": "string",
|
|
"description": "Controls the schedule's paused/active state on git sync. Omitted = KEEP_PREVIOUS: restores whatever pause/active state the schedule already had (new schedules are still imported paused). ALWAYS_ACTIVE / ALWAYS_PAUSED force that state on every sync regardless of prior state.",
|
|
"enum": ["KEEP_PREVIOUS", "ALWAYS_ACTIVE", "ALWAYS_PAUSED"]
|
|
}
|
|
|
|
}
|
|
}
|