mirror of
https://github.com/fleetdm/fleet
synced 2026-05-02 02:47:30 +00:00
117 lines
3.6 KiB
JSON
117 lines
3.6 KiB
JSON
{
|
|
"$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
|
|
}
|