> For #26083 # Checklist for submitter If some of the following don't apply, delete the relevant line. <!-- Note that API documentation changes are now addressed by the product design team. --> - [x] Added/updated automated tests - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Ian Littman <iansltx@gmail.com> |
||
|---|---|---|
| .. | ||
| ingesters | ||
| inputs | ||
| outputs | ||
| maintained_apps.go | ||
| README.md | ||
Fleet-maintained apps
Adding a new FMA
- Decide on a source for the app's metadata. We currently support homebrew as a source for macOS apps.
- Find that app's metadata. For homebrew, you can visit https://formulae.brew.sh/ and find the app there.
- Create a new file called
$YOUR_APP_NAME.jsonin theinputs/$SOURCEdirectory. For example, if you wanted to add Slack and use homebrew as the source, you would create the fileinputs/homebrew/slack.json. - Fill out the file according to the breakdown below. For our example Slack app, it would look like this:
{ "name": "Slack", "unique_identifier": "com.tinyspeck.slackmacgap", "token": "slack", "installer_format": "dmg", "slug": "slack/darwin" } - Open a PR to the
fleetrepository with the new app file. This will trigger a CI job which will automatically update your PR with the required output files. These files contain important data such as the install and uninstall scripts for the app. - A Fleetie will test and review the PR. Once approved and merged, the app should appear in the Fleet-maintained apps section when adding new software to Fleet.
Input file schema
name
This is the user-facing name of the application.
unique_identifier
This is the platform-specific unique identifier for the app. On macOS, this is the app's bundle identifier.
token
This is the identifier used by homebrew for the app; it is the token field on the homebrew API response.
installer_format
This is the file format for the app's installer. Currently supported values are:
zipdmgpkg
To find the app's installer format, you can look at the url field on the homebrew API response. The installer's extension should be at the end of this URL.
Sometimes the file type is not included in the installer's URL. In this case, you can download the installer and use the extension of the downloaded file.
slug
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.
The slug is composed of a filesystem-friendly version of the app name, and an operating system platform identifier, separated by a /.
For the app name part, use - to separate words if necessary, for example adobe-acrobat-reader.
The platform part can be any of these values:
darwin
For example, use a slug of slack/darwin for Slack on macOS.