RedPlanetHQ / RedPlanetHQ/core

New Integration: Supabase

Open
#178 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue integration new-feature new-integration
Dominant language
TypeScript
Stars
2k
Forks
194
Avg merge
12m
Merged PRs (30d)
2

Description

Description

Add Supabase integration to sync project activity, database changes, edge function deployments, and platform events into CORE using the Supabase Management API.

Reference Implementations

Existing Integrations (use as templates)
  • integrations/github/ - Similar developer platform integration
  • integrations/linear/ - Project management integration
  • integrations/notion/ - For database/content sync patterns
Required Files Structure
integrations/supabase/
├── src/
│   ├── index.ts          # Main entry, OAuth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Supabase Management API utilities
│   ├── account-create.ts # OAuth setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Supabase Management API Integration

OAuth Setup
  • Use OAuth 2.1 Authorization Code flow (PKCE)
  • Authorization URL: https://api.supabase.com/v1/oauth/authorize
  • Token URL: https://api.supabase.com/v1/oauth/token
  • Required scopes (format: <resource>:<action>):
    • projects:read - Read project details and configuration
    • projects:write - Create and modify projects
    • databases:read - Read database configuration and migrations
    • databases:write - Run migrations, manage database
    • auth:read - Read auth configuration and users
    • auth:write - Manage auth settings
    • storage:read - Read storage buckets and objects
    • storage:write - Manage storage
    • edge_functions:read - Read edge functions
    • edge_functions:write - Deploy edge functions
    • secrets:read - Read project secrets
    • secrets:write - Manage project secrets
    • organizations:read - Read organization details
    • organizations:write - Manage organizations
  • Alternative: Personal Access Token (PAT) for automation workflows
Key Endpoints

Base URL: https://api.supabase.com/v1

Projects
  • GET /projects - List all projects
  • POST /projects - Create a new project
  • GET /projects/{ref} - Get project details
  • DELETE /projects/{ref} - Delete a project
  • GET /projects/{ref}/health - Check project service health
  • GET /projects/{ref}/api-keys - Get project API keys
  • POST /projects/{ref}/api-keys - Create new API keys
Database
  • GET /projects/{ref}/database/migrations - List database migrations
  • POST /projects/{ref}/database/migrations - Create a migration (create tables)
  • GET /projects/{ref}/database/context - Get database context
  • POST /projects/{ref}/database/query - Run a SQL query
  • POST /projects/{ref}/branches - Create a development branch
  • GET /projects/{ref}/branches - List branches
  • DELETE /branches/{branch_id} - Delete a branch
Edge Functions
  • GET /projects/{ref}/functions - List edge functions
  • POST /projects/{ref}/functions - Create an edge function
  • GET /projects/{ref}/functions/{slug} - Get function details
  • PATCH /projects/{ref}/functions/{slug} - Update a function
  • DELETE /projects/{ref}/functions/{slug} - Delete a function
Auth
  • GET /projects/{ref}/config/auth - Get auth configuration
  • PATCH /projects/{ref}/config/auth - Update auth configuration
Storage
  • GET /projects/{ref}/config/storage - Get storage configuration
Secrets
  • GET /projects/{ref}/secrets - List project secrets
  • POST /projects/{ref}/secrets - Create secrets
  • DELETE /projects/{ref}/secrets - Delete secrets
Organizations
  • GET /organizations - List organizations
  • GET /organizations/{slug} - Get organization details
  • GET /organizations/{slug}/members - List organization members
Billing
  • PATCH /projects/{ref}/billing/addons - Upgrade/downgrade compute size

Events to Track

  1. Projects

    • Project created / deleted / paused / restored
    • Project health status changes
    • API keys rotated
  2. Database

    • Migration created / applied
    • Branch created / merged / deleted
    • Schema changes
  3. Edge Functions

    • Function deployed / updated / deleted
    • Function invocation errors
  4. Auth

    • Auth configuration changed
    • Auth provider enabled / disabled
  5. Storage

    • Storage configuration updated
    • Bucket created / deleted
  6. Organization

    • Member added / removed
    • Billing changes

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement OAuth 2.1 (PKCE) flow in account-create.ts
  • Create Supabase Management API utilities in utils.ts
  • Implement sync logic in schedule.ts for projects, functions, and database activity
  • Convert Supabase platform events to CORE activity format
  • Add polling-based change detection for project health and function deployments
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Supabase Management API uses OAuth 2.1 with PKCE (more secure than standard OAuth 2.0)
  • Authentication via Bearer token: Authorization: Bearer <access_token>
  • Personal Access Tokens (PATs) are long-lived and useful for CI/CD automation
  • Scopes restrict OAuth token access to specific Management API endpoints; all scopes support read and/or write
  • OAuth App ID is used for tracking and rate limiting per integration
  • Project references (ref) are used as unique identifiers for projects
  • Database branching is available for development workflows
  • The Management API is separate from the project-level REST/GraphQL APIs (PostgREST, Realtime)
  • For real-time database changes within a project, use Supabase Realtime (separate from Management API)
  • Consider using supabase-management-js community SDK

Resources

Labels

enhancement, good first issue, integration, new-feature, new-integration

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare integrations/github/src/index.ts, integrations/linear/, and integrations/notion/ first, then map the required files under integrations/supabase/. Implement the OAuth and Management API pieces before schedule.ts and activity formatting; done means project, function, and database synchronization, error and rate-limit handling, README updates, and an integrations/README.md entry.

Written by the indexing model from the issue text.

Assessment

Tech stack
supabase, typescript
Domain
api, backend, database, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.