enhancementgood first issueintegrationnew-featurenew-integration
仓库指标
- 星标
- (1,930 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
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