RedPlanetHQ/core

New Integration: Prisma

开放

#540 创建于 2026年2月24日

 (1 条评论) (0 个反应) (0 位负责人)TypeScript (184 个派生)auto 404
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 integration
  • integrations/linear/ - Project management patterns
  • integrations/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-sdk provides 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 workspaces
  • GET /workspaces/{id} - Get workspace details
  • GET /projects - List projects in a workspace
  • GET /projects/{id} - Get project details
  • POST /projects - Create a new project
  • GET /databases - List databases
  • POST /databases - Create a database
  • DELETE /databases/{id} - Delete a database
  • GET /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

  1. Projects & Databases

    • Project created, updated, deleted
    • Database created, deleted
    • Database connection string changes
    • Environment provisioning
  2. Workspace Activity

    • Workspace member additions/removals
    • Workspace settings changes
    • Billing/plan updates
  3. Schema & Migrations

    • Schema changes detected
    • Migration history
    • Database health status

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • 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.ts for 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_access scope).
  • 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

Labels

enhancement, integration, new-feature

贡献者指南