Skip to main content
Version: ACAP version 12

Manifest schemas

The ACAP manifest schema defines the structure and content of the manifest.json. It acts as an agreement between the ACAP and the AXIS OS, describing metadata, runtime behavior, and the resources that the application needs. By using the manifest, ACAP applications can be validated before installation, declare their required capabilities, remain uniform in structure, and operate consistently across devices and AXIS OS versions.

The pages listed in the table of contents below present detailed descriptions of the fields in the generated manifest schema.

info

If your application is still using package.conf, it is recommended to migrate to manifest.json. Follow instruction in the Migrating from package.conf to manifest.json guide.

Overview

  • The SDK is bundled with manifest schemas of various versions.
  • When you run acap-build, it validates your manifest.json file against a specific manifest schema version.
  • The manifest schema is versioned separately from the SDK.
  • Newer SDK versions include newer manifest schema versions. See Manifest schema version mapping for details.

Required fields

The structure of the fields can be seen by the list level. A required field in a sub-section means it's only required if the section above is chosen.

Validation

The manifest.json file is validated in multiple stages:

During build

When running acap-build, the manifest is validated against the manifest schema version specified in schemaVersion.

During signing

When signing the application in the ACAP Service Portal, the manifest is validated again. It always validates against the latest manifest schema version within the same major version you specified in schemaVersion.

To avoid signing issues, it's recommended to validate your application against the latest manifest schema version within the same major version during development and build time.

info

To sign an ACAP application the minimum manifest schema version possible to use is 1.3, which introduced the for signing mandatory field architecture.

Manifest schema version mapping

This table shows the SDK version in which each manifest schema version was released, along with a description of the changes.

SchemaAXIS OSSDKDescription
1.9.012.812.8.0New resource nexus_beta1 for enabling the Nexus API. When enabled, the application can create topics, publish data, and subscribe to updates. Note, the Nexus API was removed in 12.9 making the nexus_beta1 resource obsolete.
1.8.012.612.6.0- New option for the runMode property: respawnOnFailure. When enabled, the application will start at boot and restart automatically if it exits with a non-zero exit code.
- The appId property is now required when copyProtection is set to axis, in order to ensure proper license validation.
- New property conditionalGroups for specifying non-required groups for the dynamic user of the ACAP application. More information can be found in the Configure application user section.
- Add restrictions to paramConfig.name; Only allow letters, numbers, and underscores _, and set maximum length to 32 characters.
1.7.412.412.4.0Allow all characters except \n and \r in the vendor field.
1.7.312.212.2.0Allow reverse proxy apiPath of length 1.
1.7.212.112.1.0Add restrictions to friendlyName:
- Disallow newline characters \n and \r.
- Set maximum length to 256 characters.
1.7.112.012.0.0- Allow user and group names to contain hyphens -.
- Force appName to start with a regular letter and have length of at least 2.
1.7.011.101.14Make preparations on the host system so the application can run containers, and create symbolic links from various system-wide locations to Docker CLIs provided by the application.
1.6.011.91.13- Add support for characters $ and \ in apiPath of the reverse proxy configuration.
- Add optional field $schema that can point out a manifest schema to use for manifest validation and auto-completion.
- Allow strings in requiredMethods and conditionalMethods under dbus to contain -.
1.5.011.81.12- Add support for reverse proxy configuration.
- Add access policy for ACAP application web content.
- Allow - character in secondary groups of linux resources.
- Allow strings in requiredMethods and conditionalMethods under dbus to end with .* to match all methods of a D-Bus interface.
1.4.011.71.11Allow new characters ( ) , . ! ? & ' for vendor field.
1.3.111.01.4Bug fixes; Allow = in runOptions and maxLength of appName should be 26.
1.310.91.1Add field architecture, which will be automatically generated and added to manifest at packaging step.
1.210.71.0Enables uninstall functionality which is required by e.g. docker-compose-acap.
1.110.71.0Additional fields, mainly for technical reasons.
1.010.71.0Initial basic version.