Busabase
OpenAPI 参考

File Trees

Skills, Drives, and AirApps — node types whose content is an Asset-backed file tree, served by one surface discriminated by `type`.

GET
/api/v1/file-trees/preview-config

Response Body

application/json

curl -X GET "https://example.com/api/v1/file-trees/preview-config"
{  "provider": "builtin",  "status": "ready",  "credentialSource": "environment",  "credentialConfigured": true,  "maxFileSizeBytes": -9007199254740991,  "sessionTtlMinutes": -9007199254740991,  "vaultEncryptionConfigured": true}
POST
/api/v1/file-trees/{nodeId}/preview

Path Parameters

nodeId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/file-trees/string/preview" \  -H "Content-Type: application/json" \  -d '{    "filePath": "string",    "type": "drive"  }'
{  "state": "builtin",  "provider": "builtin"}
POST
/api/v1/file-trees

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/file-trees" \  -H "Content-Type: application/json" \  -d '{    "slug": "string",    "name": "string",    "type": "skill"  }'
{  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "entryFile": "string",  "visibility": "private",  "version": "string",  "files": [    {      "path": "string",      "name": "string",      "size": 0,      "updatedAt": "string",      "mimeType": "string",      "assetId": "string",      "displayName": "string"    }  ],  "skippedGitignorePaths": [],  "materialized": true}
GET
/api/v1/file-trees/{nodeId}/files

Path Parameters

nodeId*string

A node id OR a slug. A slug is only unique WITHIN a type, so pass type alongside one; a node id needs no hint.

Query Parameters

type?string

Disambiguates a slug. Unnecessary — and ignored — when nodeId is an id.

Value in

  • "skill"
  • "drive"
  • "airapp"

Response Body

application/json

curl -X GET "https://example.com/api/v1/file-trees/string/files"
[  {    "path": "string",    "name": "string",    "size": 0,    "updatedAt": "string",    "mimeType": "string",    "assetId": "string",    "displayName": "string"  }]
GET
/api/v1/file-trees/{nodeId}/files/{filePath}

Path Parameters

nodeId*string

A node id OR a slug. A slug is only unique WITHIN a type, so pass type alongside one; a node id needs no hint.

filePath*string

Query Parameters

type?string

Disambiguates a slug. Unnecessary — and ignored — when nodeId is an id.

Value in

  • "skill"
  • "drive"
  • "airapp"

Response Body

application/json

curl -X GET "https://example.com/api/v1/file-trees/string/files/string"
{  "nodeId": "string",  "path": "string",  "encoding": "utf8",  "content": "string",  "mimeType": "string",  "assetId": "string",  "displayName": "string",  "assetUrl": "string",  "contentHash": "string"}
POST
/api/v1/file-trees/{nodeId}/change-requests

Path Parameters

nodeId*string

A node id OR a slug. A slug is only unique WITHIN a type, so pass type alongside one; a node id needs no hint.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/file-trees/string/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operations": [      {        "kind": "create",        "path": "string",        "assetId": "string"      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}