canva-app.json
The canva-app.json
file is the configuration file for Canva apps. It defines the app's permissions, supported devices, API versions, and other runtime settings.
When you create a new app using the Canva CLI, a canva-app.json
file is automatically created in your project root directory with a default configuration.
File location
The canva-app.json
file is located in the root directory of your app project.
my-canva-app/├── canva-app.json├── package.json└── src/
Validation
The canva-app.json
file is validated against the JSON Schema(opens in a new tab or window). Most code editors with JSON Schema support provide validation and auto-completion when you include the $schema
property.
Properties
$schema
(optional)
- Type:
string
- Description: JSON Schema URL for this manifest ($schema). Used by editors for validation and auto-completion.
{"$schema": "https://www.canva.dev/schemas/app/v1/manifest-schema.json"}
manifest_schema_version
(required)
- Type:
integer
- Description: The version of the manifest schema.
{"manifest_schema_version": 1}
runtime
(required)
- Type:
object
- Description: Application runtime configuration.
runtime.permissions
(optional)
- Type:
array
- Description: The list of permissions that this app requires to load or may ask for at runtime.
Each permission object must include:
name
: The permission identifiertype
: Must be"mandatory"
Available permissions:
canva:design:content:read
: Permission to read design contentcanva:design:content:write
: Permission to write design contentcanva:asset:private:read
: Permission to read private assetscanva:asset:private:write
: Permission to write private assetscanva:brandkit:read
: Permission to read from the brand kit
See Configuring permissions for more information.
{"runtime": {"permissions": [{"name": "canva:design:content:read","type": "mandatory"},{"name": "canva:design:content:write","type": "mandatory"}]}}
intent
(optional)
- Type:
object
- Description: Intent-specific configuration.
For more information about intents, see Intents.
intent.data_connector
(optional)
- Type:
object
- Description: Configuration for the Data Connector intent.
{"intent": {"data_connector": {"enrolled": true}}}
intent.design_editor
(optional)
- Type:
object
- Description: Configuration for the Design Editor intent.
{"intent": {"design_editor": {"enrolled": true}}}
Example configuration
The following is a complete example of a canva-app.json
file for a Data Connector app:
{"$schema": "https://www.canva.dev/schemas/app/v1/manifest-schema.json","manifest_schema_version": 1,"runtime": {"permissions": [{"name": "canva:design:content:read","type": "mandatory"},{"name": "canva:design:content:write","type": "mandatory"}],},"intent": {"data_connector": {"enrolled": true}}}