Projects
Projects group related applications, databases, and other resources. Every workload belongs to a project.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/projects | List projects |
POST | /api/v1/projects | Create project |
GET | /api/v1/projects/:id | Get project |
PUT | /api/v1/projects/:id | Update project |
DELETE | /api/v1/projects/:id | Delete project and all resources |
POST | /api/v1/projects/:id/icon | Upload icon (multipart form) |
DELETE | /api/v1/projects/:id/icon | Delete icon |
POST /api/v1/projects
{
"name": "my-saas",
"display_name": "My SaaS App",
"description": "Production SaaS application",
"color": "#3B82F6",
"single_server_mode": false,
"default_server_id": "550e8400-e29b-41d4-a716-446655440000"
}All fields except name are optional.
PUT /api/v1/projects/:id
All fields are optional. Only provided fields are updated.
{
"name": "my-saas-v2",
"description": "Updated description",
"auto_error_tracking_enabled": true
}Project Object
{
"id": "uuid",
"name": "my-saas",
"display_name": "My SaaS App",
"description": "Production SaaS application",
"color": "#3B82F6",
"icon_path": "/uploads/projects/icon.png",
"single_server_mode": false,
"default_server_id": "uuid",
"auto_error_tracking_enabled": true,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}Members
| Method | Path | Description |
|---|---|---|
GET | /api/v1/projects/:id/members | List members |
POST | /api/v1/projects/:id/members | Add member |
PUT | /api/v1/projects/:id/members/:memberId | Update role |
DELETE | /api/v1/projects/:id/members/:memberId | Remove member |
POST | /api/v1/projects/:id/transfer | Transfer ownership |
Add Member
{ "user_id": "uuid", "role": "admin | member | viewer" }Transfer Ownership
{ "new_owner_id": "uuid" }Invites
| Method | Path | Description |
|---|---|---|
GET | /api/v1/projects/:id/invites | List pending invites |
POST | /api/v1/projects/:id/invites | Create invite |
DELETE | /api/v1/projects/:id/invites/:inviteId | Cancel invite |
GET | /api/v1/invites/:token | Get invite by token |
POST | /api/v1/invites/:token/accept | Accept invite |
GET | /api/v1/me/invites | List my pending invites |
Create Invite
{ "email": "[email protected]", "role": "member" }Environments
Environments allow you to run separate instances of your workloads (e.g., staging vs production).
| Method | Path | Description |
|---|---|---|
GET | /api/v1/projects/:projectId/environments | List environments |
POST | /api/v1/projects/:projectId/environments | Create environment |
GET | /api/v1/projects/:projectId/environments/:envId | Get environment |
PUT | /api/v1/projects/:projectId/environments/:envId | Update environment |
DELETE | /api/v1/projects/:projectId/environments/:envId | Delete (?force=true) |
POST | /api/v1/projects/:projectId/environments/:envId/set-default | Set as default |
POST | /api/v1/projects/:projectId/environments/:envId/clone | Clone environment |
Create Environment
{
"name": "staging",
"display_name": "Staging",
"type": "staging",
"description": "Pre-production environment",
"color": "#F59E0B",
"git_branch": "develop"
}Clone Environment
Creates a copy of the environment and all its resources.
{
"name": "staging-v2",
"type": "staging",
"description": "Cloned from staging"
}Last updated on