Skip to content

FilesClient

Defined in: libs/ccs-files-client/src/files-client.ts:141

Backend SDK for the File Service, for a trusted server with a machine client: folders, uploads, files, versions, renditions, legal holds, permissions, search, shares, trash, settings, usage, audit, webhooks and (for the Files platform application’s own client) platform administration.

  • Tokens: RFC 6749 client_credentials, form-encoded at {issuerUrl}/oauth/token with HTTP Basic auth, scope and resource; cached until exp - 60 s, one in-flight token request. A 401 from the API drops the token and replays the request once with a fresh one.
  • Context: every route lives under /tenants/:tenant_id/applications/:application_id. A tenant backend sets tenantId and applicationId once; a platform consumer passes context per call.
  • Retries: 5xx (not 501) and network errors, up to maxRetries with short exponential backoff and jitter, for reads and idempotent writes (GET, PUT, PATCH, DELETE and the read-like POSTs). A POST that creates carries an Idempotency-Key fixed before the first attempt and is retried with it; any other POST is never retried. 4xx (429 included) are never retried.
  • Errors are typed by status: FilesUnauthorizedError (401), FilesForbiddenError (403), FilesNotFoundError (404), FilesConflictError (409), FilesPreconditionFailedError (412), FilesPayloadTooLargeError (413), FilesUnprocessableError (422), FilesRateLimitedError (429), FilesNotImplementedError (501), otherwise FilesApiError.

new FilesClient(options): FilesClient

Defined in: libs/ccs-files-client/src/files-client.ts:183

FilesClientOptions

FilesClient

readonly folders: FoldersResource

Defined in: libs/ccs-files-client/src/files-client.ts:142


readonly uploads: UploadsResource

Defined in: libs/ccs-files-client/src/files-client.ts:143


readonly files: FilesResource

Defined in: libs/ccs-files-client/src/files-client.ts:144


readonly permissions: PermissionsResource

Defined in: libs/ccs-files-client/src/files-client.ts:145


readonly taxonomies: TaxonomiesResource

Defined in: libs/ccs-files-client/src/files-client.ts:146


readonly shares: SharesResource

Defined in: libs/ccs-files-client/src/files-client.ts:147


readonly trash: TrashResource

Defined in: libs/ccs-files-client/src/files-client.ts:148


readonly settings: SettingsResource

Defined in: libs/ccs-files-client/src/files-client.ts:149


readonly audit: AuditResource

Defined in: libs/ccs-files-client/src/files-client.ts:150


readonly webhooks: WebhooksResource

Defined in: libs/ccs-files-client/src/files-client.ts:151


readonly jobs: JobsResource

Defined in: libs/ccs-files-client/src/files-client.ts:152


readonly holds: HoldsResource

Defined in: libs/ccs-files-client/src/files-client.ts:154

The application’s held files; a file’s hold is files.hold.


readonly platform: PlatformResource

Defined in: libs/ccs-files-client/src/files-client.ts:159

Platform administration (no context): only for a client of the Files platform application itself with files:config.manage; every other client answers 403 platform_admin_required.


readonly endpoints: Readonly<{ issuerUrl: string; apiUrl: string; resource: string; }>

Defined in: libs/ccs-files-client/src/files-client.ts:162

The Identity Server, API and resource this client talks to, after the defaults were applied.

static verifyWebhookSignature(input): boolean

Defined in: libs/ccs-files-client/src/files-client.ts:257

Verifies a webhook delivery: X-Files-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">, within toleranceSeconds (default 300). Constant-time; false for anything malformed, tampered or too old. Pass the raw body, never a re-serialised object.

VerifyWebhookSignatureInput

boolean


upload(source, input, options?, context?): Promise<File>

Defined in: libs/ccs-files-client/src/files-client.ts:268

Uploads from the backend in one call: creates the ticket (POST P/uploads with size), PUTs the bytes (one PUT, or every part with concurrency in flight, each retried up to 5 times), and completes. Resolves with the File (state: available, processing pending; see files.waitUntilReady). On give-up the ticket is aborted and a FilesUploadError is thrown; API errors of the ticket and the completion surface as their FilesApiError subclass.

UploadSource

UploadInput

UploadOptions = {}

Partial<FilesContext>

Promise<File>


search(query?, context?): Promise<SearchResult>

Defined in: libs/ccs-files-client/src/files-client.ts:284

GET P/search: arrays are sent as comma lists, custom: { k: v } as custom.k=v.

SearchQuery = {}

Partial<FilesContext>

Promise<SearchResult>


tags(query?, context?): Promise<TagsResult>

Defined in: libs/ccs-files-client/src/files-client.ts:298

Tags in use with their counts, prefix for autocomplete.

TagsQuery = {}

Partial<FilesContext>

Promise<TagsResult>


usage(context?): Promise<Usage>

Defined in: libs/ccs-files-client/src/files-client.ts:308

The application’s storage usage and quota, with daily: the last 30 days, oldest first.

Partial<FilesContext>

Promise<Usage>


tenantUsage(context?): Promise<TenantUsage>

Defined in: libs/ccs-files-client/src/files-client.ts:313

The tenant’s usage across its applications (GET /tenants/:tenant_id/usage); needs only tenantId.

Partial<FilesContext>

Promise<TenantUsage>


capabilities(context?): Promise<Capabilities>

Defined in: libs/ccs-files-client/src/files-client.ts:318

GET P/me/capabilities for this machine principal (roles: [], user_id: null).

Partial<FilesContext>

Promise<Capabilities>