Packaging Toolkit app.manifest

This reference contains the following sections:

Manifest definition

This section defines the app.manifest JSON schema for the Splunk Packaging Toolkit.

JSON Schema 1.0.0

The following table details the app.manifest for schema version 1.0.0. This schema is used by the Splunk Packaging Toolkit 0.8.0 and later.

Member Type Default Required Description
schemaVersion String None True This attribute must be "1.0.0".
info Object None True Splunk app metadata (id.group, id.name, and id.version) and information about what is in the app package.
info.title String None False The human readable name of the Splunk app.
info.id Object None True A triplet used to identify a Splunk app from a single development team.
info.id.group String None False The name of the development team.
info.id.name String None True The name of the Splunk app.
info.id.version String None False A semantic version number conforming to the Semantic Versioning Specification 2.0 (semver).
info.author Array of Objects None False An array of author identifiers.
info.author[i] Object None False A triplet used to identify an author.
info.author[i].name String None True An author name.
info.author[i].email String None False An author e-mail address.
info.author[i].company String None False An author company name.
info.releaseDate String None False The release date of the Splunk app.
info.description String None False A short description of the Splunk app.
info.classification Object None False One of the following Splunk app classifications: intendedAudience, categories, and developmentStatus.
info.classification.intendedAudience String None False A human readable description of the intended audience. Examples: "IT Professionals", "Security Specialists", "Software Developers", or "System Administrators".
info.classification.categories Array of Strings None False An array of application category names.
info.classification.categories[i] String None False A human readable application category name. Examples: "Business Analytics", "DevOps", "IT Operations", "Utility".
info.classification.developmentStatus String None False The status of app development. Should be one of: "Planning", "Pre-Alpha", "Alpha", "Beta", or "Production/Stable".
info.commonInformationModels Object None False An object specifying the common information models, with version numbers, that are supported by the app. See $SLIM_HOME/config/common-information-models.json for the complete list of common information models with version numbers.
info.commonInformationModels.<name> String None False A specification of the version numbers that the app supports for the named information model.
info.license Object None False A triplet specifying the app's software license.
info.license.name String None False A display name for the license. Examples: "Splunk Software License Agreement" or "Apache License, Version 2.0".
info.license.text String None False Relative path to a copy of the softare license agreement shipped with the app. Example: "./LICENSE.txt".
info.license.uri String None False Web address of an online copy of the software license agreement.
info.privacyPolicy Object None False A triplet specifying the app's privacy policy.
info.privacyPolicy.name String None False A display name for the privacy policy.
info.privacyPolicy.text String None False Relative path to a copy of the privacy policy shipped with the app. Example: "./privacy-policy.txt".
info.privacyPolicy.uri String None False The Web address of an online copy of the privacy policy.
info.releaseNotes Object None False A triplet specifying the app's release notes.
info.releaseNotes.name String None False A display name for the release notes.
info.releaseNotes.text String None False Relative path to a copy of the release notes shipped with the app. Example: "./README.txt".
info.releaseNotes.uri String None False Web address of an online copy of the release notes.
dependencies Object None False An object specifying the dependencies of the app.
dependencies.<name> Object None False A pair of values identifying a dependency of the app. The <name> is of the form [<info.id.group>-]<info.id.name>.
dependencies.<name>.version String * False A specification of the dependency version numbers that the app can utilize.
dependencies.<name>.package String None False The name of the source package that is bundled with the app. Source package names should have this form: [<info.id.group>-]<info.id.name>-<info.id.version>.[tar.gz|tgz].
tasks Array of Strings None False A list of the inputs that implement tasks that execute on Splunk search heads.
tasks[i] String None False The name of a stanza defined in inputs.conf.
inputGroups Object None False An object that classifies inputs to be deployed to Splunk forwarders. Input groups may be selectively deployed to specific server classes.
inputGroups.<name> Object None False A triplet ("requires", "inputs", "description") defining a named input group.
inputGroups.<name>.requires Object None False An object that identifies input groups from dependencies of the app. Input groups specified by this object are deployed to the same server classes as the input group identified by <name>.
inputGroups.<name>.requires.<name> Array of Strings None False An array of input group names from the dependency identified by <dependency-name>.
inputGroups.<name>.requires.<name>[i] String None False The name of an input group defined in the app manifest of <dependency-name>.
inputGroups.<name>.inputs Array of Strings None False A list of the inputs in the group identified by <name>.
inputGroups.<name>.inputs[i] String None False The name of a stanza defined in inputs.conf.
inputGroups.<name>.description String None False A short description of the input group identified by <name>.
incompatibleApps Object None False An object that identifies those apps that are incompatible with the app.
incompatibleApps.<name> String None False A specification of the version numbers of the app identified by <name> that are incompatible with the app.
platformRequirements Object None False An object that identifies the platform requirements of the app (not yet enforced by Splunk).
platformRequirements.splunk Object None False An object that identifies the Splunk SKUs that the app runs under—whether "Enterprise", "Free", or "Light".
platformRequirements.splunk.<name> String None False A specification of the version numbers of the Splunk SKU identifed by <name>.

JSON Schema 2.0.0

The following table details the app.manifest changes and additions for schema version 2.0.0. This schema is used by the Splunk Packaging Toolkit 1.0.0 and later.

Member Type Default Required Description
schemaVersion String None True This attribute must be "2.0.0".
dependencies.<name>.optional Boolean False False Whether the dependency is optional. true indicates the dependency is optional; false indicates the dependency is required.
dependencies.<name>.targetOS Array of Strings None False A list of the OS platforms this app is supported on. Defaults to ["*"]
dependencies.<name>.targetOS[i] String None True A target OS type: *, _mac, _windows, _linux_x86, or _linux_x86_64.
supportedDeployments Array of Strings None True A list of the deployments this app is supported on. Defaults to ["_standalone", "_distributed"]
supportedDeployments[i] String None True A deployment type: *, _standalone, _distributed, or _search_head_clustering.
targetWorkloads Array of Strings None True A list of the target Splunk workloads this app should be installed on. Defaults to ["*"]
targetWorkloads[i] String None True A Splunk workload: *, _search_heads, _indexers, or _forwarders.

Example manifest

Here is an example of the app.manifest file for the Splunk App for Unix and Linux, which has a dependency on the Splunk Add-on for Unix and Linux.

{
  "schemaVersion": "1.0.0", 
  "info": {
    "title": "Splunk App for Unix", 
    "id": {
      "group": null, 
      "name": "splunk_app_for_nix", 
      "version": "5.2.3"
    }, 
    "author": [
      {
        "name": "Splunk, Inc.", 
        "email": "support@splunk.com",
        "company": null
      }
    ],
    "releaseDate": null,
    "description": "The Splunk App for Unix and Linux offers exciting new ways to alert, report, and investigate on data collected from Unix and Linux operating systems.", 
    "classification": {
      "intendedAudience": "IT",
      "categories": ["IT Operations"],
      "developmentStatus": "Production/Stable"
    }, 
    "commonInformationModels": null, 
    "license": {
      "name": "Splunk Software License Agreement",
      "text": "license-eula.txt",
      "uri": "http://www.splunk.com/en_us/legal/splunk-software-license-agreement.html"
    }, 
    "releaseNotes": {
      "name": "README", 
      "text": "README.txt",
      "uri": "http://docs.splunk.com/Documentation/UnixApp/latest/User/Releasenotes"
    }
  }, 
  "dependencies": {
    "Splunk_TA_nix": {
      "version": ">=5.2.3"
    }
  },
  "tasks": ["script://./bin/update_hosts.py"],
  "supportedDeployments": ["*"],
  "targetWorkloads": ["*"]
}