enhancementgood first issueintegrationnew-featurenew-integration
Métriques du dépôt
- Stars
- (1 930 étoiles)
- Métriques de merge PR
- (Métriques PR en attente)
Description
Description
Add Canva integration to sync design assets, templates, comments, and brand content into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- OAuth-based API integrationintegrations/linear/- Project management integrationintegrations/slack/- For reference
Required Files Structure
integrations/canva/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Canva Connect API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Canva Connect API Integration
OAuth Setup
- Use OAuth 2.0 Authorization Code flow
- Register integration on the Canva Developer Portal (requires MFA-enabled account)
- OpenAPI spec available at:
https://www.canva.dev/sources/connect/api/latest/api.yml - Scopes:
design:read,design:write,asset:read,asset:write,folder:read,folder:write,comment:read,comment:write,brandtemplate:read
Key Endpoints
GET /v1/designs- List user designsPOST /v1/designs- Create a new designGET /v1/designs/{designId}- Get design detailsGET /v1/assets- List assets in asset libraryPOST /v1/assets- Upload assetsGET /v1/folders- List foldersGET /v1/brand-templates- List brand templatesPOST /v1/autofills- Autofill brand templates at scalePOST /v1/exports- Export designsGET /v1/comments- Get design comments
Events to Track
- Designs - Design creation, modification, and exports
- Assets - Asset uploads, updates, and organization
- Comments - Design review comments and feedback
- Brand Templates - Template creation and autofill operations
- Folders - Folder organization and content changes
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts - Create API utilities in
utils.tsfor designs, assets, folders, and comments - Implement sync logic in
schedule.tsfor polling design and asset changes - Convert design/asset events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Canva Developer Portal requires MFA-enabled account for creating integrations
- OpenAPI spec is publicly available for client SDK generation
- Autofill and Brand Templates APIs are currently in preview mode
- Export API is asynchronous - need to poll for completion
- Starter Kit available at: https://github.com/canva-sdks/canva-connect-api-starter-kit
Resources
- Canva Connect API Documentation
- Canva Developer Portal
- Quickstart Guide
- Canva Connect API Starter Kit
Labels
enhancement, integration, new-feature