enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (PR metrics pending)
Description
Description
Add Prisma Data Platform integration to sync database projects, workspace activity, and Prisma Postgres database management events into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- Developer tooling integrationintegrations/linear/- Project management patternsintegrations/slack/- For reference
Required Files Structure
integrations/prisma/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Prisma API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Prisma API Integration
OAuth Setup
- Use OAuth 2.0 or Bearer Token authentication
- The
@prisma/management-api-sdkprovides built-in OAuth with automatic token refresh - Token endpoint for OAuth: Prisma Platform OAuth flow
- Required scope:
offline_access(for automatic token refresh) - Alternative: Direct Bearer token authentication via API tokens from Prisma Console
- Console:
https://console.prisma.io/
Key Endpoints (Management API)
GET /workspaces- List workspacesGET /workspaces/{id}- Get workspace detailsGET /projects- List projects in a workspaceGET /projects/{id}- Get project detailsPOST /projects- Create a new projectGET /databases- List databasesPOST /databases- Create a databaseDELETE /databases/{id}- Delete a databaseGET /environments- List environments
SDK Usage
import { ManagementAPIClient } from '@prisma/management-api-sdk'
const client = new ManagementAPIClient({
token: 'your-bearer-token'
})
const workspaces = await client.listWorkspaces()
const projects = await client.getProject({ id: 'project-id' })
Events to Track
-
Projects & Databases
- Project created, updated, deleted
- Database created, deleted
- Database connection string changes
- Environment provisioning
-
Workspace Activity
- Workspace member additions/removals
- Workspace settings changes
- Billing/plan updates
-
Schema & Migrations
- Schema changes detected
- Migration history
- Database health status
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 or Bearer Token flow in
account-create.ts - Create Prisma Management API utilities in
utils.ts(consider using@prisma/management-api-sdk) - Implement sync logic in
schedule.tsfor workspace and project activity - Convert Prisma events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Prisma offers a TypeScript SDK (
@prisma/management-api-sdk) that simplifies API access with built-in OAuth and token refresh. - The Management API is specifically for Prisma Data Platform (Prisma Postgres, cloud projects) - not for the Prisma ORM itself.
- The SDK supports both simple Bearer token auth and full OAuth 2.0 with automatic token refresh (requires
offline_accessscope). - Prisma Data Platform is relatively new; the API surface may evolve.
- The API is primarily for managing Prisma Postgres databases and projects, not for querying database contents.
- Consider distinguishing between Prisma ORM (local development tool) and Prisma Data Platform (cloud service) in documentation.
- Note: Prisma Cloud (Palo Alto Networks) is a completely different product; this is about Prisma by Prisma Data, Inc.
Resources
- Prisma Management API SDK
- Prisma Management API Reference
- Prisma Platform Documentation
- Prisma Console
- Prisma Documentation Home
Labels
enhancement, integration, new-feature