control element

Defines the component's namespace, version and display information.

Available for

Model-driven and canvas apps

Parameters

Name Description Type Required Available for
namespace Defines the object prototype of the component Only letters or numbers Yes Model-driven and canvas apps
constructor A method for initializing the object Only letters or numbers Yes Model-driven and canvas apps
control-type Whether the control is a standard control or a React control. The value of virtual indicates a React control using platform React library. Virtual controls are a feature in public preview. More information: React controls & platform libraries (Preview) standard|virtual No Model-driven and canvas apps
description-key Defines the description of the component that will be seen on the UI. string No Model-driven and canvas apps
display-name-key Defines the name of the control that is displayed on the UI. string Yes Model-driven and canvas apps
preview-image Image that will be used on the customization screens to show a preview of the component. string No Model-driven apps
version Defines the version of the component defined in Semantic Versioning string Yes Model-driven and canvas apps

Parent Elements

Element Description
manifest 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.

Child Elements

Element Description Occurrences
data-set The dataset node in the component manifest represents a specific, configurable representation of a set of table records. 0 or more
external-service-usage Indicates whether this control is using external service or not. If it is, set the enabled attribute flag as true and add the external service domain to the <domain> property. A control that uses any external service is a premium control and the end user will need a Power Apps license to open an app with a premium control. More information: Licensing 0 or 1
property The property node defines a specific, configurable piece of data that the component expects from the Microsoft Dataverse. 0 or more
resources The resources node in the component manifest refers to the resource files that component requires to implement it's visualization. 1
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
property-dependencies Defines a group of property-dependencies. 0 or more

Example

<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"
   preview-image="img/preview.png">
</control>

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