@sthg-sdk/filesystem.api
v1.2.7
Published
Filesystem API client for STHG Tiangong SDK
Readme
@sthg-sdk/filesystem.api
Filesystem API client for STHG Tiangong SDK - provides a comprehensive interface for managing spaces, projects, folders, and resources in the filesystem service.
Installation
npm install @sthg-sdk/filesystem.apiUsage
import { HttpClient } from '@sthg-sdk/shared.client';
import * as FilesystemAPI from '@sthg-sdk/filesystem.api';
// Initialize the HTTP client
const client = new HttpClient({
baseUrl: 'https://your-api-endpoint.com',
defaultHeaders: {
'Authorization': 'Bearer your-auth-token',
'Content-Type': 'application/json'
}
});
// Create a space
const space = await FilesystemAPI.createSpace(client, {
enName: 'my-workspace',
displayName: 'My Workspace',
description: 'A workspace for my projects'
});
// Create a project in the space
const project = await FilesystemAPI.createProject(client, space.data.rid, {
displayName: 'My Project',
description: 'A sample project'
});
// Create a folder in the project
const folder = await FilesystemAPI.createFolder(client, project.data.rid, {
displayName: 'Data',
description: 'Data storage folder'
});
// Upload a file
const formData = new FormData();
formData.append('file', fileBlob);
formData.append('projectRid', project.data.rid);
formData.append('spaceRid', space.data.rid);
formData.append('parentFolderRid', folder.data.rid);
const uploadResult = await FilesystemAPI.uploadFile(client, formData);API Methods
Spaces
listSpaces(client, params?)- List all spaces with paginationcreateSpace(client, request)- Create a new spacegetSpace(client, spaceRid)- Get space detailsupdateSpace(client, spaceRid, request)- Update space informationdeleteSpace(client, spaceRid)- Delete a spacegetSpaceConfig(client, spaceRid)- Get space configurationgetSpaceStatistics(client, spaceRid)- Get space statisticsgetAllFolderAndResource(client, spaceRid, params?)- Get all visible folders and resources
Projects
listProjects(client, spaceRid, params?)- List projects in a spacecreateProject(client, spaceRid, request)- Create a new projectgetProject(client, projectRid)- Get project detailsupdateProject(client, projectRid, request)- Update project informationdeleteProject(client, projectRid)- Permanently delete a projectmoveProjectToTrash(client, projectRid)- Move project to trashrestoreProjectFromTrash(client, projectRid)- Restore project from trashgetProjectTree(client, projectRid)- Get project tree structuregetProjectStatistics(client, projectRid)- Get project statisticsgetProjectContent(client, projectRid, params?)- Get project contentlistProjectResources(client, projectRid, params?)- List project resources
Folders
listFolders(client, projectRid, params?)- List folders in a projectcreateFolder(client, projectRid, request)- Create a new foldergetFolder(client, folderRid)- Get folder detailsupdateFolder(client, folderRid, request)- Update folder informationdeleteFolder(client, folderRid)- Permanently delete a foldermoveFolder(client, folderRid, request)- Move folder to new locationmoveFolderToTrash(client, folderRid, projectRid)- Move folder to trashrestoreFolderFromTrash(client, folderRid)- Restore folder from trashgetFolderTree(client, folderRid)- Get folder tree structuregetFolderStatistics(client, folderRid)- Get folder statisticsgetFolderContent(client, folderRid, params?)- Get folder content
Resources
createResource(client, request, params?)- Create a new resourcegetResource(client, resourceRid)- Get resource detailsupdateResource(client, resourceRid, request)- Update resource informationdeleteResource(client, resourceRid)- Permanently delete a resourcemoveResource(client, resourceRid, request)- Move resource to new locationbatchMoveResources(client, request)- Move multiple resourcescopyResource(client, resourceRid, request)- Copy resource to new locationaddResourceMarkings(client, resourceRid, request)- Add security markingsremoveResourceMarkings(client, resourceRid, request)- Remove security markingsmoveResourceToTrash(client, resourceRid, projectRid)- Move resource to trashrestoreResourceFromTrash(client, resourceRid)- Restore resource from trashgetProjectResourceStatistics(client, projectRid)- Get project resource statistics
File Upload/Download
uploadFile(client, formData)- Upload a single filebatchUploadFiles(client, formData)- Upload multiple filesuploadDocumentation(client, formData)- Upload documentationgetDownloadUrl(client, resourceRid, spaceRid, expiresInHours?)- Get download URLdeleteFile(client, resourceRid)- Delete file from storage
Trash Management
getTrashItems(client, params?)- List items in trashgetTrashFolders(client, params?)- List folders in trash
Utilities
generateRid(client, resourceType, namespace?, scope?)- Generate unique RIDgetEntityInfo(client, rid)- Get entity information by RIDgetTreeStructure(client, rid, params?)- Get tree structurehealthCheck(client)- Check service health
Types
All TypeScript types are re-exported from @sthg-sdk/tiangong.core for convenience:
import type {
Space,
Project,
Folder,
Resource,
CreateSpaceRequest,
CreateProjectRequest,
// ... and many more
} from '@sthg-sdk/filesystem.api';Error Handling
The client returns responses wrapped in ApiResponseUnion which includes both success and error cases:
const result = await client.getSpace(spaceRid);
if (result.success) {
console.log('Space:', result.data);
} else {
console.error('Error:', result.error);
}License
Apache-2.0
