Expose a Capability Via the Application

A capability is something that can be exposed by an application to indicate to the broader system (PETC, Edge Manager, etc.) that it can perform certain actions or that it will behave in certain ways. A capability currently includes an identifier and a version. The existence of a capability may mean that the application supports specific commands, specific packages, and will report status in a given format. An example of this is an application that supports the Predix.Edge.AnalyticsEngine (v 1.0.0) capability. The existence of this capability will enable the analytics UI in Edge Manager and allow Edge Manager to deploy analytic templates and data maps to the application, start, stop, and delete analytic templates that are running the application, and will expect the application to produce status about the deployed analytics that will drive the UI in Edge Manager.
Note: Capabilities within Predix.Edge.* are restricted to capabilities that are known to the Predix Edge ecosystem.
An application manifest file named manifest.json contains:
  • A list of capabilities, each containing:
    • Name string.
    • Version string.
    • Optional handler.
The format of an application manifest is:
{
  "manifest": {
    "capabilities": [
      {
        "name": "some_capability_name",
        "version": "some_version",
        "handler": "some_handler"
      },
      {
        "name": "another_capability_name",
        "version": "another_version"
      },
      ...
    ],
    ...
  }
}