Projects

List all onboarded projects

get

Returns a list of all projects that have been onboarded to the system. Projects are returned in no particular order. This endpoint is useful for discovering available projects before performing operations on them.

Authorizations
Responses
200

List of projects retrieved successfully.

application/json
get
GET /sfp/api/projects HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
[
  {
    "identifier": "flxbl-io/sf-core",
    "remoteUrl": "https://github.com/flxbl-io/sf-core",
    "platform": "github",
    "createdAt": "2025-06-21T10:00:00.000Z",
    "updatedAt": "2025-06-21T10:00:00.000Z",
    "version": 1,
    "configuration": {
      "displayName": "SFP Pro",
      "description": "Enterprise Salesforce build system",
      "settings": {
        "buildTimeout": 3600,
        "parallelBuilds": 4
      }
    }
  }
]

Onboard a new repository

post

Creates a new project entry for repository onboarding. Fails if the project already exists to prevent accidental updates through POST requests. Use this endpoint to register repositories with the SFP server for future operations. Only users with the "owner" role can create projects.

Authorizations
Body
identifierstringRequired

Repository identifier (e.g., "org/repo" for GitHub, "12323" for GitLab)

Example: flxbl-io/sf-core
remoteUrlstringRequired

Remote repository URL

Example: https://github.com/flxbl-io/sf-core
Responses
201

The project has been successfully created.

application/json
post
POST /sfp/api/projects HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 83

{
  "identifier": "flxbl-io/sf-core",
  "remoteUrl": "https://github.com/flxbl-io/sf-core"
}
{
  "identifier": "flxbl-io/sf-core",
  "remoteUrl": "https://github.com/flxbl-io/sf-core",
  "platform": "github",
  "createdAt": "2025-06-21T10:00:00.000Z",
  "updatedAt": "2025-06-21T10:00:00.000Z",
  "version": 1,
  "configuration": {
    "displayName": "SFP Pro",
    "description": "Enterprise Salesforce build system",
    "settings": {
      "buildTimeout": 3600,
      "parallelBuilds": 4
    }
  }
}

Get a specific project by identifier

get

Retrieves a project by its repository identifier (e.g., "org/repo"). The identifier must match exactly what was used during project creation. This endpoint supports identifiers with slashes for GitHub-style repositories.

Authorizations
Path parameters
identifierstringRequired

Repository identifier (e.g., "org/repo")

Example: flxbl-io/sf-core
Responses
200

Project retrieved successfully.

application/json
get
GET /sfp/api/projects/{identifier} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "identifier": "flxbl-io/sf-core",
  "remoteUrl": "https://github.com/flxbl-io/sf-core",
  "platform": "github",
  "createdAt": "2025-06-21T10:00:00.000Z",
  "updatedAt": "2025-06-21T10:00:00.000Z",
  "version": 1,
  "configuration": {
    "displayName": "SFP Pro",
    "description": "Enterprise Salesforce build system",
    "settings": {
      "buildTimeout": 3600,
      "parallelBuilds": 4
    }
  }
}

Update project configuration

patch

Updates an existing project's configuration. Supports partial updates via PATCH semantics. Only owners can update projects. Includes optimistic concurrency control through version checking to prevent concurrent update conflicts.

Authorizations
Path parameters
identifierstringRequired

Repository identifier (e.g., "org/repo")

Example: flxbl-io/sfp-core
Body
remoteUrlstringOptional

Remote repository URL

Example: https://github.com/flxbl-io/sfp-pro
configurationobjectOptional

Project configuration object for future extensibility

Example: {"displayName":"SFP Pro","description":"Enterprise Salesforce build system","settings":{"buildTimeout":3600,"parallelBuilds":4}}
versionnumberOptional

Document version for optimistic concurrency control

Example: 1
Responses
200

Project updated successfully.

application/json
patch
PATCH /sfp/api/projects/{identifier} HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 59

{
  "remoteUrl": "https://github.com/flxbl-io/sfp-pro-renamed"
}
{
  "identifier": "flxbl-io/sf-core",
  "remoteUrl": "https://github.com/flxbl-io/sf-core",
  "platform": "github",
  "createdAt": "2025-06-21T10:00:00.000Z",
  "updatedAt": "2025-06-21T10:00:00.000Z",
  "version": 1,
  "configuration": {
    "displayName": "SFP Pro",
    "description": "Enterprise Salesforce build system",
    "settings": {
      "buildTimeout": 3600,
      "parallelBuilds": 4
    }
  }
}

Was this helpful?