Test datasource credentials
Test datasource credentials
Test datasource credentials without persisting anything.
Validates that the provided credentials can connect to the external source. Returns 200 if the connection succeeds, 400 otherwise. No datasource or import is created. Use this before PATCH /api/v1/workspaces/{id} with a datasource payload to surface connection errors before committing the conversion.
Access: any authenticated user.
Credentials per type:
- googledrive:
service_account_file(JSON string of the service account key file) - sharepoint:
client_id,client_secret,tenant_id,site_id(optional),site_name(optional) - servicenow:
instance_url,username,password - webscrapper: no credentials required
Filter criteria per type:
- googledrive:
folder_id(required),recursive(optional) - sharepoint:
folder_path(required),recursive(optional) - servicenow:
doc_type(required, e.g.knowledge) - webscrapper:
start_url(required)
Authorization
bearerAuth Console session token (Authorization: Bearer <session>) or product API key (Authorization: Bearer <api-key> or x-api-key). Session tokens are validated via Better Auth get-session; API keys against the shared database.
In: header
Header Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body (StandardWorkspaceDatasourceRequest).
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/workspaces/datasource/test" \ -H "Content-Type: application/json" \ -d '{ "type": "googledrive", "name": "string" }'{ "detail": [ { "loc": [ "string" ], "msg": "string", "type": "string", "input": null, "ctx": {} } ]}Browse datasource folders POST
Browse datasource folders Browse the remote folder hierarchy of a datasource without persisting anything. Connects to the external provider using the credentials in the payload and returns the immediate subfolders of ``parent_id`` (or the top-level entries when ``parent_id`` is ``null``). Use this to power a visual folder picker before submitting a datasource configuration via `PATCH /api/v1/workspaces/{id}` with a `datasource` payload. **Access:** any authenticated user. Supported providers and credentials: - **googledrive**: `service_account_file` (JSON string of the service account key file). When ``parent_id`` is omitted, returns the folders explicitly shared with the service account. - **sharepoint**: `client_id`, `client_secret`, `tenant_id`, `instance_url`, `site_name`. When both ``drive_id`` and ``parent_id`` are ``null``, returns the site's document libraries as ``kind="library"`` entries (each entry's ``id`` is the drive id). Pass that ``id`` back as ``drive_id`` (with ``parent_id=null``) to list the library root; pass it as ``drive_id`` together with a folder's ``id`` as ``parent_id`` to descend into a folder.
Retrieve a workspace GET
Retrieve a workspace Retrieve a workspace by ID. Returns workspace details. **Access:** Instance-level users (Sys Admin, Account Manager, Admin, DPO Admin) can retrieve any workspace. Company-level users (Company Admin, Company DPO) can retrieve workspaces in their company. Regular users can retrieve workspaces where they are members. **Member Visibility:** Instance-level users and company-level users see all members. Workspace OWNER sees members. EDITOR and VIEWER do not see members. **Sync status:** For synced workspaces, the response includes a `sync` block with `datasource_type`, `source_name`, `last_status`, `updated_at`, `failed_files_count`, and `next_import_date`. Use this field for polling the sync state. Returns 403 for both non-existent and unauthorized workspaces.