Workspace sources API
Manage repositories mounted into a workspace. Use identifiers returned by the API for repository references.
Use API authentication for protected requests. Examples use your own resource IDs and a temporary token; saved response examples are synthetic.
| Method | Path | Operation |
|---|---|---|
GET | /v1/workspace_source | List workspace sources |
POST | /v1/workspace_source | Create workspace source |
GET | /v1/workspace_source/{id} | Get workspace source |
PUT | /v1/workspace_source/{id} | Update workspace source |
DELETE | /v1/workspace_source/{id} | Delete workspace source |
List workspace sources
GET /v1/workspace_source
Returns a paginated list of WorkspaceSource
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
page | query | no | Page number |
per_page | query | no | Items per page |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/workspace_source" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of WorkspaceSource
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].alias | string | |
data[].branch | string | |
data[].commit | string | |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].external_auth_ref | string | Credential reference only; secret values are never persisted here |
data[].external_connection_id | string | |
data[].external_provider | string | Allowed: none, github, gitlab, bitbucket, ssh, git. |
data[].external_repository_url | string | |
data[].internal_repository_id | string | Authoritative repository in Adios Git |
data[].internal_repository_url | string | Credential-free clone URL for the authoritative Adios Git repository |
data[].last_synced_at | integer | (Unix timestamp) |
data[].metadata | object | |
data[].mount | string | |
data[].repository_path | string | |
data[].role | string | Allowed: primary, include. |
data[].source_key | string | Credential-free logical identity used to reuse one internal repository across workspaces |
data[].status | string | Allowed: active, archived. |
data[].sync_direction | string | Allowed: none, pull, push, bidirectional. |
data[].sync_error | object | |
data[].sync_status | string | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. |
data[].team_id | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workspace_id | string | |
data[].workspace_source_id | string | |
pagination | object | |
pagination.page | integer | Current page number |
pagination.per_page | integer | Number of items per page |
pagination.total | integer | Total number of items |
Illustrative example; not a live response:
{
"data": [
{
"alias": "example",
"branch": "main",
"commit": "",
"created_at": 1791072000,
"deleted_at": 0,
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "000000000000000000000000001",
"internal_repository_url": "example",
"last_synced_at": 0,
"metadata": {},
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "000000000000000000000000001",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001",
"workspace_source_id": "000000000000000000000000001"
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create workspace source
POST /v1/workspace_source
Creates a new WorkspaceSource
This request changes data or starts an action. Review the target and body before sending it.
Request fields (the body contains an editable example):
| Field | Type | Required | Description |
|---|---|---|---|
alias | string | yes | |
branch | string | yes | Default: "main". |
commit | string | no | Default: "". |
external_auth_ref | string | no | Credential reference only; secret values are never persisted here Default: "". |
external_connection_id | string | no | Default: "". |
external_provider | string | yes | Allowed: none, github, gitlab, bitbucket, ssh, git. Default: "none". |
external_repository_url | string | no | Default: "". |
internal_repository_id | string | yes | Authoritative repository in Adios Git |
internal_repository_url | string | yes | Credential-free clone URL for the authoritative Adios Git repository |
last_synced_at | integer | no | (Unix timestamp) Default: 0. |
metadata | object | no | |
mount | string | yes | Default: ".". |
repository_path | string | yes | Default: ".". |
role | string | yes | Allowed: primary, include. Default: "include". |
source_key | string | yes | Credential-free logical identity used to reuse one internal repository across workspaces Default: "". |
status | string | yes | Allowed: active, archived. Default: "active". |
sync_direction | string | yes | Allowed: none, pull, push, bidirectional. Default: "none". |
sync_error | object | no | Default: "". |
sync_status | string | yes | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. Default: "internal_only". |
team_id | string | yes | |
workspace_id | string | yes |
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request POST "$ADIOS_API_URL/v1/workspace_source" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"alias": "example",
"branch": "main",
"commit": "",
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "YOUR_INTERNAL_REPOSITORY_ID",
"internal_repository_url": "YOUR_INTERNAL_REPOSITORY_URL",
"last_synced_at": 0,
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "YOUR_TEAM_ID",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
WorkspaceSource created
Response fields
| Field | Type | Description |
|---|---|---|
alias | string | |
branch | string | |
commit | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
external_auth_ref | string | Credential reference only; secret values are never persisted here |
external_connection_id | string | |
external_provider | string | Allowed: none, github, gitlab, bitbucket, ssh, git. |
external_repository_url | string | |
internal_repository_id | string | Authoritative repository in Adios Git |
internal_repository_url | string | Credential-free clone URL for the authoritative Adios Git repository |
last_synced_at | integer | (Unix timestamp) |
metadata | object | |
mount | string | |
repository_path | string | |
role | string | Allowed: primary, include. |
source_key | string | Credential-free logical identity used to reuse one internal repository across workspaces |
status | string | Allowed: active, archived. |
sync_direction | string | Allowed: none, pull, push, bidirectional. |
sync_error | object | |
sync_status | string | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. |
team_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
workspace_source_id | string |
Illustrative example; not a live response:
{
"alias": "example",
"branch": "main",
"commit": "",
"created_at": 1791072000,
"deleted_at": 0,
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "000000000000000000000000001",
"internal_repository_url": "example",
"last_synced_at": 0,
"metadata": {},
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "000000000000000000000000001",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001",
"workspace_source_id": "000000000000000000000000001"
}
Get workspace source
GET /v1/workspace_source/{id}
Returns a single WorkspaceSource
Set workspace_source_id using IDs from your own API responses.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/workspace_source/${ADIOS_WORKSPACE_SOURCE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
WorkspaceSource
Response fields
| Field | Type | Description |
|---|---|---|
alias | string | |
branch | string | |
commit | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
external_auth_ref | string | Credential reference only; secret values are never persisted here |
external_connection_id | string | |
external_provider | string | Allowed: none, github, gitlab, bitbucket, ssh, git. |
external_repository_url | string | |
internal_repository_id | string | Authoritative repository in Adios Git |
internal_repository_url | string | Credential-free clone URL for the authoritative Adios Git repository |
last_synced_at | integer | (Unix timestamp) |
metadata | object | |
mount | string | |
repository_path | string | |
role | string | Allowed: primary, include. |
source_key | string | Credential-free logical identity used to reuse one internal repository across workspaces |
status | string | Allowed: active, archived. |
sync_direction | string | Allowed: none, pull, push, bidirectional. |
sync_error | object | |
sync_status | string | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. |
team_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
workspace_source_id | string |
Illustrative example; not a live response:
{
"alias": "example",
"branch": "main",
"commit": "",
"created_at": 1791072000,
"deleted_at": 0,
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "000000000000000000000000001",
"internal_repository_url": "example",
"last_synced_at": 0,
"metadata": {},
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "000000000000000000000000001",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001",
"workspace_source_id": "000000000000000000000000001"
}
Update workspace source
PUT /v1/workspace_source/{id}
Updates an existing WorkspaceSource
Set workspace_source_id using IDs from your own API responses.
This request changes data or starts an action. Review the target and body before sending it.
Request fields (the body contains an editable example):
| Field | Type | Required | Description |
|---|---|---|---|
alias | string | yes | |
branch | string | yes | Default: "main". |
commit | string | no | Default: "". |
external_auth_ref | string | no | Credential reference only; secret values are never persisted here Default: "". |
external_connection_id | string | no | Default: "". |
external_provider | string | yes | Allowed: none, github, gitlab, bitbucket, ssh, git. Default: "none". |
external_repository_url | string | no | Default: "". |
internal_repository_id | string | yes | Authoritative repository in Adios Git |
internal_repository_url | string | yes | Credential-free clone URL for the authoritative Adios Git repository |
last_synced_at | integer | no | (Unix timestamp) Default: 0. |
metadata | object | no | |
mount | string | yes | Default: ".". |
repository_path | string | yes | Default: ".". |
role | string | yes | Allowed: primary, include. Default: "include". |
source_key | string | yes | Credential-free logical identity used to reuse one internal repository across workspaces Default: "". |
status | string | yes | Allowed: active, archived. Default: "active". |
sync_direction | string | yes | Allowed: none, pull, push, bidirectional. Default: "none". |
sync_error | object | no | Default: "". |
sync_status | string | yes | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. Default: "internal_only". |
team_id | string | yes | |
workspace_id | string | yes |
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request PUT "$ADIOS_API_URL/v1/workspace_source/${ADIOS_WORKSPACE_SOURCE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"alias": "example",
"branch": "main",
"commit": "",
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "YOUR_INTERNAL_REPOSITORY_ID",
"internal_repository_url": "YOUR_INTERNAL_REPOSITORY_URL",
"last_synced_at": 0,
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "YOUR_TEAM_ID",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
WorkspaceSource updated
Response fields
| Field | Type | Description |
|---|---|---|
alias | string | |
branch | string | |
commit | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
external_auth_ref | string | Credential reference only; secret values are never persisted here |
external_connection_id | string | |
external_provider | string | Allowed: none, github, gitlab, bitbucket, ssh, git. |
external_repository_url | string | |
internal_repository_id | string | Authoritative repository in Adios Git |
internal_repository_url | string | Credential-free clone URL for the authoritative Adios Git repository |
last_synced_at | integer | (Unix timestamp) |
metadata | object | |
mount | string | |
repository_path | string | |
role | string | Allowed: primary, include. |
source_key | string | Credential-free logical identity used to reuse one internal repository across workspaces |
status | string | Allowed: active, archived. |
sync_direction | string | Allowed: none, pull, push, bidirectional. |
sync_error | object | |
sync_status | string | Allowed: internal_only, pending, synced, ahead, behind, diverged, error. |
team_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
workspace_source_id | string |
Illustrative example; not a live response:
{
"alias": "example",
"branch": "main",
"commit": "",
"created_at": 1791072000,
"deleted_at": 0,
"external_auth_ref": "",
"external_connection_id": "",
"external_provider": "none",
"external_repository_url": "",
"internal_repository_id": "000000000000000000000000001",
"internal_repository_url": "example",
"last_synced_at": 0,
"metadata": {},
"mount": ".",
"repository_path": ".",
"role": "include",
"source_key": "",
"status": "active",
"sync_direction": "none",
"sync_error": "",
"sync_status": "internal_only",
"team_id": "000000000000000000000000001",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001",
"workspace_source_id": "000000000000000000000000001"
}
Delete workspace source
DELETE /v1/workspace_source/{id}
Deletes a WorkspaceSource
Set workspace_source_id using IDs from your own API responses.
This request changes data or starts an action. Review the target and body before sending it.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request DELETE "$ADIOS_API_URL/v1/workspace_source/${ADIOS_WORKSPACE_SOURCE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
Resource deleted.
Response fields
| Field | Type | Description |
|---|---|---|
message | string |
Illustrative example; not a live response:
{
"message": "Deleted successfully"
}