fleet/ee/maintained-apps/inputs/homebrew/schema/input-schema.json

118 lines
3.6 KiB
JSON
Raw Normal View History

{
"$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"title": "Homebrew-based Fleet-maintained apps input schema",
"description": "Specify metadata to source a Fleet-maintained app from Homebrew.",
"required": [
"name",
"unique_identifier",
"token",
"installer_format",
"slug",
"default_categories"
],
"properties": {
"name": {
"type": "string",
"description": "The user-facing name of the application.",
"minLength": 1
},
"unique_identifier": {
"type": "string",
"description": "The platform-specific unique identifier for the app. On macOS, this is the app's bundle identifier.",
"minLength": 1
},
"token": {
"type": "string",
"description": "The identifier used by homebrew for the app; it is the token field on the homebrew API response.",
"minLength": 1
},
"installer_format": {
"type": "string",
"description": "The file format for the app's installer.",
"enum": ["zip", "dmg", "pkg"]
},
"slug": {
"type": "string",
"description": "The slug identifies a specific app and platform combination. It is used to name the manifest files that contain the metadata that Fleet needs to add, install, and uninstall this app. Format: app-name/platform (e.g., adobe-acrobat-reader/darwin)",
"pattern": "^[a-z0-9-+]+/darwin$",
"minLength": 1
},
"pre_uninstall_scripts": {
"type": "array",
"description": "Command lines that will be run before the generated uninstall script is executed.",
"items": {
"type": "string",
"minLength": 1
}
},
"post_uninstall_scripts": {
"type": "array",
"description": "Command lines that will be run after the generated uninstall script is executed.",
"items": {
"type": "string",
"minLength": 1
}
},
"default_categories": {
"type": "array",
"description": "The default categories assigned to the installer in self-service if no categories are specified when it is added to a team's library.",
"items": {
"type": "string",
"enum": ["Browsers", "Communication", "Developer tools", "Productivity"]
},
"minItems": 1,
"uniqueItems": true
},
"install_script_path": {
"type": "string",
"description": "A filepath to an install script. If provided, this script will override the generated install script.",
"minLength": 1,
"pattern": "\\.sh$"
},
"uninstall_script_path": {
"type": "string",
"description": "A filepath to an uninstall script. If provided, this script will override the generated uninstall script.",
"minLength": 1,
"pattern": "\\.sh$"
},
"frozen": {
"type": "boolean",
"description": "If true, the app will not be processed during ingestion and no new output will be created."
}
},
"not": {
"allOf": [
{
"properties": {
"uninstall_script_path": {
"type": "string"
}
},
"required": ["uninstall_script_path"]
},
{
"anyOf": [
{
"properties": {
"pre_uninstall_scripts": {
"type": "array"
}
},
"required": ["pre_uninstall_scripts"]
},
{
"properties": {
"post_uninstall_scripts": {
"type": "array"
}
},
"required": ["post_uninstall_scripts"]
}
]
}
]
},
"additionalProperties": false
}