Visualization

sfp server API reference for Visualization: 8 endpoints.

GET/sfp/api/visualization/packages/metadata

Returns metadata for a repository/branch including the commit timeline. The timeline contains commit IDs, timestamps, and ordering — suitable for building a timeline slider in the UI without loading snapshot data.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
branch*string
releaseConfigPath*string

Response Body

curl -X GET "https://example.com/sfp/api/visualization/packages/metadata?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main&releaseConfigPath=config"
Empty
PUT/sfp/api/visualization/packages/metadata

Creates or updates visualization metadata for a repository/branch. Returns the metadataId needed for batch commit uploads.

Authorization

access-token
AuthorizationBearer <token>

In: header

Response Body

curl -X PUT "https://example.com/sfp/api/visualization/packages/metadata"
Empty
GET/sfp/api/visualization/packages/commits

Returns commit snapshots with pagination. Each commit contains its package snapshots (~1-5KB). Default limit is 50, max is 200. Results are ordered newest-first by commit_order.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
branch*string
offset?number
limit?number

Response Body

curl -X GET "https://example.com/sfp/api/visualization/packages/commits?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main"
Empty
POST/sfp/api/visualization/packages/commits/batch

Upserts a batch of commit snapshots for a given metadataId. The engine sends batches of ~100 commits at a time.

Authorization

access-token
AuthorizationBearer <token>

In: header

Response Body

curl -X POST "https://example.com/sfp/api/visualization/packages/commits/batch"
Empty
GET/sfp/api/visualization/packages/commits/existing

Returns the list of commit IDs already stored for a repository/branch. The engine uses this to skip commits that have already been processed.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
branch*string

Response Body

curl -X GET "https://example.com/sfp/api/visualization/packages/commits/existing?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main"
Empty
GET/sfp/api/visualization/packages/commits/{commitId}

Returns the package snapshots for a specific commit ID.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

commitId*string

Query Parameters

repositoryIdentifier*string
branch*string

Response Body

curl -X GET "https://example.com/sfp/api/visualization/packages/commits/abc1234?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main"
Empty
GET/sfp/api/visualization/packages/status

Check the current status of package visualization for a repository/branch. Returns one of: never_ran, generating, available, or failed. Safe to poll — does not trigger any work.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
branch*string
releaseConfigPath*string

Response Body

curl -X GET "https://example.com/sfp/api/visualization/packages/status?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main&releaseConfigPath=config"
Empty
POST/sfp/api/visualization/packages/refresh

Triggers a new visualization data collection via Hatchet workflow. Returns a task execution ID for tracking. Returns 409 Conflict if a visualization job is already running for this repository/branch.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
branch*string
releaseConfigPath*string
maxCommits?number

Response Body

curl -X POST "https://example.com/sfp/api/visualization/packages/refresh?repositoryIdentifier=flxbl-io%2Fsf-core&branch=main&releaseConfigPath=config"
Empty