Workspaces¶
64 endpoints. Every path below is served by workspace-backend behind the gateway at https://api.trilocore.ai.
GET /api/v1/workspaces¶
List Workspaces
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces¶
Create Workspace
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
name |
string | yes | — |
slug |
string | yes | — |
GET /api/v1/workspaces/onboarding¶
My Onboarding
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/summary¶
Tenant Summary
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
DELETE /api/v1/workspaces/{uuid}¶
Archive Workspace
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}¶
Get Workspace
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}¶
Update Workspace
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
description |
one of | no | — |
name |
one of | no | — |
GET /api/v1/workspaces/{uuid}/access-reviews¶
List Access Reviews
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/access-reviews¶
Create Access Review
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
note |
one of | no | — |
GET /api/v1/workspaces/{uuid}/activity¶
List Activity
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/activity/verify¶
Verify Activity Chain
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/attestations¶
List Attestations
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/attestations¶
Issue Attestation
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
audit_share_id |
string | yes | maxLength 64, minLength 1 |
issuer_team_id |
one of | no | — |
issuer_team_name |
one of | no | — |
GET /api/v1/workspaces/{uuid}/attestations/{uuid}¶
Get Attestation
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}/attestations/{uuid}/retention¶
Set Attestation Retention
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
legal_hold |
one of | no | — |
retention_class |
one of | no | — |
GET /api/v1/workspaces/{uuid}/attestations/{uuid}/verify¶
Verify Attestation
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/audits¶
List Reports
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/audits¶
Create Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
audit_id |
one of | no | — |
classification |
string | no | one of internal, confidential, restricted |
contract_share_id |
one of | no | — |
summary |
one of | no | — |
title |
string | yes | maxLength 200, minLength 1 |
GET /api/v1/workspaces/{uuid}/audits/{uuid}¶
Get Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}/audits/{uuid}¶
Update Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
audit_id |
one of | no | — |
classification |
one of | no | — |
contract_share_id |
one of | no | — |
summary |
one of | no | — |
title |
one of | no | — |
version |
integer | yes | — |
POST /api/v1/workspaces/{uuid}/audits/{uuid}/acknowledge¶
Acknowledge Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
POST /api/v1/workspaces/{uuid}/audits/{uuid}/archive¶
Archive Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
GET /api/v1/workspaces/{uuid}/audits/{uuid}/comments¶
List Report Comments
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/audits/{uuid}/comments¶
Create Report Comment
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
body |
string | yes | maxLength 4000, minLength 1 |
POST /api/v1/workspaces/{uuid}/audits/{uuid}/findings¶
Add Finding
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
classification |
string | no | one of internal, confidential, restricted |
description |
one of | no | — |
due_date |
one of | no | — |
selector |
one of | no | — |
severity |
string | yes | one of info, low, medium, high, critical |
title |
string | yes | maxLength 200, minLength 1 |
PATCH /api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid}¶
Update Finding
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
classification |
one of | no | — |
description |
one of | no | — |
due_date |
one of | no | — |
selector |
one of | no | — |
severity |
one of | no | — |
title |
one of | no | — |
POST /api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid}/status¶
Set Finding Status
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
status |
string | yes | one of open, acknowledged, resolved, wont_fix |
PUT /api/v1/workspaces/{uuid}/audits/{uuid}/project¶
Set Report Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
project_id |
one of | no | — |
POST /api/v1/workspaces/{uuid}/audits/{uuid}/resolve¶
Resolve Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
POST /api/v1/workspaces/{uuid}/audits/{uuid}/share¶
Share Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
GET /api/v1/workspaces/{uuid}/contracts¶
List Contracts
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/contracts¶
Create Contract
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
address |
string | yes | — |
chain_id |
integer | yes | — |
classification |
string | no | one of internal, confidential, restricted |
description |
one of | no | — |
links |
array | no | maxItems 20 |
name |
string | yes | maxLength 200, minLength 1 |
selectors |
array | no | maxItems 500 |
tags |
array | no | maxItems 20 |
GET /api/v1/workspaces/{uuid}/contracts/{uuid}¶
Get Contract
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}/contracts/{uuid}¶
Update Contract
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
classification |
one of | no | — |
description |
one of | no | — |
links |
one of | no | — |
name |
one of | no | — |
selectors |
one of | no | — |
tags |
one of | no | — |
version |
integer | yes | — |
POST /api/v1/workspaces/{uuid}/contracts/{uuid}/archive¶
Archive Contract
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
GET /api/v1/workspaces/{uuid}/contracts/{uuid}/comments¶
List Contract Comments
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/contracts/{uuid}/comments¶
Create Contract Comment
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
body |
string | yes | maxLength 4000, minLength 1 |
PUT /api/v1/workspaces/{uuid}/contracts/{uuid}/project¶
Set Contract Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
project_id |
one of | no | — |
POST /api/v1/workspaces/{uuid}/contracts/{uuid}/share¶
Share Contract
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body not published
This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".
GET /api/v1/workspaces/{uuid}/invitations¶
List Invitations
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/invitations¶
Create Invitation
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
access_expires_in_days |
one of | no | — |
expires_in_days |
one of | no | — |
invited_email |
string | yes | maxLength 320, minLength 3 |
invited_user_id |
one of | no | — |
project_id |
one of | no | — |
role |
string | yes | maxLength 64, minLength 1 |
DELETE /api/v1/workspaces/{uuid}/invitations/{uuid}¶
Revoke Invitation
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/members¶
List Members
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/members¶
Add Member
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
expires_at |
one of | no | — |
principal_id |
string | yes | maxLength 128, minLength 1 |
principal_label |
one of | no | — |
principal_type |
string | yes | maxLength 32, minLength 1 |
role |
string | yes | maxLength 64, minLength 1 |
starts_at |
one of | no | — |
DELETE /api/v1/workspaces/{uuid}/members/{uuid}¶
Revoke Member
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/projects¶
List Projects
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/projects¶
Create Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
chain |
one of | no | — |
ide_workspace_id |
one of | no | — |
name |
one of | no | — |
target_address |
one of | no | — |
DELETE /api/v1/workspaces/{uuid}/projects/{uuid}¶
Archive Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/projects/{uuid}¶
Get Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}/projects/{uuid}¶
Update Project
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
name |
one of | no | — |
status |
one of | no | — |
GET /api/v1/workspaces/{uuid}/reports¶
List Reports
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/reports¶
Create Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
project_id |
string | yes | maxLength 64, minLength 1 |
source_audit_share_id |
one of | no | — |
summary |
one of | no | — |
title |
string | yes | maxLength 200, minLength 1 |
DELETE /api/v1/workspaces/{uuid}/reports/{uuid}¶
Archive Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/reports/{uuid}¶
Get Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PATCH /api/v1/workspaces/{uuid}/reports/{uuid}¶
Update Report
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
summary |
one of | no | — |
title |
one of | no | — |
version |
integer | yes | — |
visibility |
one of | no | — |
GET /api/v1/workspaces/{uuid}/reports/{uuid}/share-links¶
List Share Links
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/reports/{uuid}/share-links¶
Create Share Link
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
expires_in_days |
one of | no | — |
label |
one of | no | — |
DELETE /api/v1/workspaces/{uuid}/reports/{uuid}/share-links/{uuid}¶
Revoke Share Link
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/snapshot¶
Get Workspace Snapshot
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
PUT /api/v1/workspaces/{uuid}/snapshot¶
Save Workspace Snapshot
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
files |
object | yes | — |
version |
integer | no | — |
GET /api/v1/workspaces/{uuid}/summary¶
Workspace Summary
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
GET /api/v1/workspaces/{uuid}/teams¶
List Team Grants
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 200 |
| Upstream | workspace-backend |
POST /api/v1/workspaces/{uuid}/teams¶
Grant Team
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 201 |
| Upstream | workspace-backend |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
team_id |
string | yes | maxLength 64, minLength 1 |
team_kind |
string | yes | one of dev, audit |
team_name |
string | yes | maxLength 120, minLength 1 |
DELETE /api/v1/workspaces/{uuid}/teams/{id}¶
Revoke Team
| Property | Value |
|---|---|
| Authentication | Authorization: Bearer (jns_ key or SSO session) |
| Idempotency-Key | not required |
| Success | 204 |
| Upstream | workspace-backend |