Manifest element

Manifest is the metadata file that defines a component. It is an XML file that describes:

  • The namespace of the component.
  • The kind of data it can be configured, either a field or a dataset.
  • Any properties that can be configured in the application when the component is added.
  • A list of resource files that the component needs.
    • One of them must be a TypeScript web resource. This TypeScript must include a function that will instantiate an object. This implements an interface that exposes methods that are required for the component to work. This is called the component implementation library.
  • The name of a TypeScript function in the component implementation library that will return an object that applies the required component interface.

When the user configures a custom component in a canvas app or a model-driven app, the data in the manifest filters out the available components so that only the valid components for the context are available for configuration. The properties defined in the manifest for a component are rendered as configuration fields so that the user configuring the component can specify values. These property values are then available to the component function at run time.

Available for

Model-driven and canvas apps

Child Elements

Element Description Occurrences Available for
control Defines the component's namespace, version and display information. 1 Model-driven and canvas apps
type-group The type-group node defines a set of types identified by a single name. This information can be used to identify the data types supported by a specific property. 0 or more Model-driven and canvas apps
property The property node defines a specific, configurable piece of data that the component expects from the Microsoft Dataverse. 0 or more Model-driven and canvas apps
data-set The dataset node in the component manifest represents a specific, configurable representation of a set of table records. 0 or more Model-driven apps
resources The resources node in the component manifest refers to the resource files that component requires to implement it's visualization. 1 or more Model-driven and canvas apps
feature-usage The feature-usage element acts as a wrapper around the uses-feature elements, which themselves allow developers to declare which features their component wants to use. If there are no uses-feature elements defined, the feature-usage element is not required. 0 or more Model-driven and canvas apps

Example

<?xml version="1.0" encoding="utf-8" ?>
<manifest>
   <control namespace="MyNameSpace" constructor="JSHelloWorldControl" version="1.0.0" display-name-key="JS_HelloWorldControl_Display_Key" description-key="JS_HelloWorldControl_Desc_Key" control-type="standard">
      <property name="myFirstProperty" display-name-key="myFirstProperty_Display_Key" description-key="myFirstProperty_Desc_Key" of-type="SingleLine.Text" usage="bound" required="true" />
      <resources>
         <code path="JS_HelloWorldControl.js" order="1" />
         <css path="css/JS_HelloWorldControl.css" order="1" />
      </resources>
   </control>
</manifest>

Power Apps component framework manifest schema reference
Power Apps component framework API reference
Power Apps component framework overview