{ "$id": "projects-common", "title": "Project Common Definitions", "description": "Common schema definitions shared by multiple Project document formats", "definitions": { "name": { "description": "Project name", "type": "string", "examples": [ "Firewall Service Provisioning", "Arista EOS Utilities" ] }, "description": { "title": "Project description", "description": "A free-form block of text for describing project intent and function", "type": "string", "examples": [ "This project is used at Acme Corp as the foundation of some major parts of our business process.", "This project is comprised of two major elements: 1) Workflows handling customer self-service, and 2) Workflows used by operations teams to provision service internally" ] }, "accessControl": { "type": "object", "additionalProperties": false, "required": [ "read", "write", "execute", "manage" ], "properties": { "read": { "type": "array", "items": { "type": "string" } }, "execute": { "type": "array", "items": { "type": "string" } }, "write": { "type": "array", "items": { "type": "string" } }, "manage": { "type": "array", "items": { "type": "string" } } } }, "projectComponentNamespace": { "type": "object", "additionalProperties": false, "required": [ "type", "_id", "name", "accessControl" ], "properties": { "type": { "const": "project" }, "_id": { "$ref": "common-db#/definitions/document-identifier" }, "name": { "type": "string" }, "accessControl": { "$ref": "projects-common#/definitions/accessControl" } } }, "componentIidIndex": { "title": "Component IID Index", "description": "Read-only property providing incrementing integer ID values for child components within a project", "type": "integer", "minimum": 0 }, "componentType": { "title": "Project component type", "description": "String denoting the type of component", "type": "string", "enum": [ "workflow", "jsonForm", "mopAnalyticTemplate", "mopCommandTemplate", "template", "transformation" ] }, "componentFolder": { "title": "Project component folder", "description": "", "type": "string", "pattern": "^/" }, "component": { "title": "Project component", "description": "An IAP component which resides within a project", "type": "object", "properties": { "iid": { "$ref": "common#/definitions/iid" }, "type": { "$ref": "#/definitions/componentType" }, "reference": { "type": "string" }, "folder": { "$ref": "#/definitions/componentFolder" } } }, "components": { "title": "Project components", "description": "A list of member components in the project", "type": "array", "items": { "$ref": "#/definitions/component" } }, "folderName": { "description": "Folder name", "type": "string", "examples": [ "folder-1", "folder-2" ] }, "folderNodeType": { "title": "Project folder node type", "description": "String denoting the nodeType of the folder node", "type": "string", "enum": [ "folder", "component" ] }, "versionHistory": { "type": "array", "items": { "$ref": "#/definitions/version" } }, "version": { "type": "object", "additionalProperties": false, "required": [ "versionNumber", "commitMessage", "author", "branchName" ], "properties": { "versionNumber": { "type": "integer" }, "commitMessage": { "type": "string" }, "author": { "type": "string" }, "branchName": { "type": "string" } } }, "gitConfiguration": { "type": "object", "additionalProperties": false, "required": [ "connectionType", "repositoryPath", "branchName", "projectPath" ], "properties": { "connectionType": { "type": "string", "enum": [ "GitHub", "GitLab" ] }, "repositoryPath": { "type": "string" }, "branchName": { "type": "string" }, "projectPath": { "type": "string" } } } } }