> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: App Extension Types

# Type: Component Type Data Object

# Link: https://dev.wix.com/docs/api-reference/app-management/app-extensions/app-extension-types/component-type-data-object.md

## Description: Metadata for an app extension type, including catalog-managed settings and business schema data.

## Schema:

```json
 Type: Component Type Data Object | type: ComponentTypeData
 Description: Metadata for an app extension type, including catalog-managed settings and business schema data.
       - name: type  | type: string | description: Component type.
       - name: devCenterComponentTypeData  | type: DevCenterComponentTypeData | description: Metadata defined in the components catalog.
           - name: displayName  | type: string | description: Component type display name.
           - name: requiresApproval  | type: boolean | description: Whether components of this type require approval before release.
           - name: labels  | type: Array<string> | description: Labels shown for components of this type.
           - name: attributes  | type: Attributes | description: Rules enforced for components of this type, such as singular, non-updatable, and non-deletable behavior.
               - name: singular  | type: boolean | description: Whether only one component of this type can exist per app.
               - name: nonDeletable  | type: boolean | description: Whether components of this type can't be deleted.
               - name: nonUpdatable  | type: boolean | description: Whether components of this type can't be updated.
           - name: validationProvider  | type: string | description: App ID of the validation provider called during create and update operations.
               - name: value  | type: string | description: 
           - name: dynamicTranslationsProvider  | type: string | description: App ID of the provider for additional translation keys.
           - name: ownershipTag  | type: string | description: Ownership tag for components of this type.
           - name: componentReferenceDataProvider  | type: string | description: App ID of the reference data provider for components of this type.
           - name: componentExample  | type: ComponentExample | description: Pointer to an example component.
               - name: appId  | type: string | description: App ID of the example component.
               - name: componentId  | type: string | description: Component ID of the example component.
           - name: validationProviders  | type: Array<StringValue> | description: App IDs of validation providers called during create and update operations.
           - name: enricherProvider  | type: string | description: App ID of the enrichment provider called during create and update operations.
           - name: requiredPermissions  | type: Array<Permission> | description: Permissions required to create a component of this type. Currently supports 1 permission.
               - name: permissionId  | type: string | description: Permission ID.  To find the permission ID, navigate to the [Permissions page](https://dev.wix.com/app-selector?title=Select+an+App&primaryButtonText=Select+Site&actionUrl=https%3A%2F%2Fdev.wix.com%2Fapps%2F%7BappId%7D%2Fdev-center-permissions/add) in the app's dashboard and search for the [permission you want to configure](https://dev.wix.com/docs/build-apps/develop-your-app/access/authorization/configure-permissions-for-your-app.md#step-1--identify-required-permissions).
       - name: businessSchemaComponentTypeData  | type: BusinessSchemaComponentTypeData | description: Metadata defined in business schema.
           - name: description  | type: string | description: Component type description shown in the App Dashboard.
           - name: exposure  | type: string | description: Exposure level of the component type.
               enum: PRIVATE, INTERNAL, PUBLIC
           - name: learnMoreLink  | type: string | description: Link to learn more about the component type.
           - name: schemaName  | type: string | description: Business schema name.
           - name: spiComponent  | type: boolean | description: Whether the component type configures a service plugin.

```