Extension Declaration
The Extension Declaration is an object describing the extension, its capabilities and configuration options.
When registering a new extension, GraphCMS will load and validate this declaration and use it to build the configurations forms.
General declaration propertiesAnchor
All extension declarations share the following properties:
| Key | Type | Description | 
|---|---|---|
| extensionType | Enum( field,formSidebar) (required) | The type of extension. Currently only fieldis supported | 
| name | String(required) | Display name for the Extension. | 
| description | String | Optional description. | 
| config | ConfigOptionsDefinition | Optional definition of global configuration options for this extension. | 
Additional declaration properties are available for each extension type. For field extension declaration properties in particular, see Field extension.
In the example below, we initiate a declaration for a field extension:
const declaration = {extensionType: 'field',name: 'Store item ID',description: 'Reference an item from our shop',// Field extension specific propertiesfieldType: 'STRING',features: ['FieldRenderer'],};
Config propertiesAnchor
You can use config properties to prompt the user when installing the plugin for additional settings that are made available to your UI extension.
| Key | Type | 
|---|---|
| type | Enum( string,number,boolean) (required) | 
| displayName | String | 
| description | String | 
| required | Boolean | 
| defaultValue | any | 
In the example below we'll declare configuration for a STORE_ID and ACCESS_TOKEN.
const declaration = {/*... rest of the declaration*/config: {STORE_ID: {type: 'string',displayName: 'Store ID',required: true,},ACCESS_TOKEN: {type: 'string',displayName: 'Store Access Token',description: 'API access token for this UI extension',required: true,},// ... rest of declaration props here},};
When installing the above with the configuration, it would look something like:

Applying declaration changesAnchor
When changing your extension declaration, you need to refresh your extension settings in GraphCMS and save the changes.
