CI HUBCI HUB SDK
Advanced

Capabilities Reference

Capabilities control what features CI HUB enables for your adapter — which buttons appear, which actions are allowed, and how the plugin UI behaves. They exist at three levels: integration-wide, per-folder, and per-asset.

Integration-level capabilities

Returned once in the info handler inside capabilities. These are static for the entire connection session.

KeyTypeUI effect
category'DAM' | 'Cloud Filehosting' | 'Stock Provider' | 'Service Provider' | 'Work Management' | 'PIM' | 'Automation' | 'Custom'Groups the adapter in the connection list
assetUploadLimitInMBnumberMaximum upload file size. CI HUB rejects files exceeding this before calling createAsset
enableCustomUpdateFilenamesbooleanWhen true, allows updating an asset with a file that has a different filename
directAssetDownloadbooleanWhen true, the client downloads assets directly from the provider URL without proxying through the server
directAssetUploadbooleanWhen true, files upload directly to the provider instead of through the server
supportsBrandHubbooleanWhen true, shows the Brand Hub tab and calls getBrandConfig/getBrandAssets
assetHashAlgorithm'Md5' | 'Sha1' | 'Sha256Split4MB' | 'Sha256First16MB' | 'Sha256' | 'Sha512' | 'FileAttributes' | 'Crc32'Hash algorithm for file content checksums. See Download Hashes
assetSearchobject | falseSearch configuration. false disables search entirely
descriptionRecord<string, string>Localized description shown in the connection list ({ "en": "...", "de": "..." })
uploadWithRelinkOptionEnabledbooleanShows the "Upload & Relink" option when placing a local file
requestHeadersRecord<string, string>Additional HTTP headers for direct provider requests
assetCommentbooleanWhen true, shows a comment field on the upload dialog
disableDuplicateCheckbooleanWhen true, allows uploading even when a file with the same name exists in the target folder
folderNavigationDisabledbooleanWhen true, hides folder navigation — only search is available
taskingbooleanWhen true, enables the Tasks tab and task-related handlers
restrictSameNameUpdatesOnlybooleanWhen true, asset updates are only allowed when the replacement file has the exact same filename
maxMultipleAssetVersionsnumberMaximum assets in a single batch asset versions request
preferredNavigationMode'search' | 'folder' | 'tasks'Default view when the user connects

assetSearch sub-options

When assetSearch is an object:

KeyTypeUI effect
helpRecord<string, string>Localized placeholder text in the search bar
supportsParentIdbooleanSearch can be scoped to a specific folder
alwaysSearchInFolderbooleanAll searches are scoped to the current folder. Requires supportsParentId: true
similarSearchbooleanEnables visual similarity search
externalUrlstringLink to external search syntax documentation — shown as a help icon
autoSearchQuerystringDefault query that runs when search view opens
canParallelSearchbooleanSet to false to disable parallel search requests (default true)
supportsParallelRelinkbooleanEnables multiple concurrent relink operations
parallelRelinkMaxnumberMax concurrent relink operations
searchByHashstringHash algorithm name for hash-based asset search

Per-folder capabilities

Returned on each folder object in search and getFolder responses. Control what actions are available in the folder context menu.

KeyTypeDefaultUI effect
canDeleteFolderbooleanfalseShows "Delete folder" in context menu
canAddFolderbooleanfalseShows "Create folder" button
canAddAssetbooleanfalseShows upload button in that folder. In search results, enables uploading without a folder ID
canRenameFolderbooleanundefinedShows "Rename folder" in context menu

The SDK provides defaultFolderCapabilities with all values set to false:

import { defaultFolderCapabilities } from '@ci-hub/integration-sdk'

const folder = {
  id: item.id,
  name: item.name,
  capabilities: {
    ...defaultFolderCapabilities,
    canAddAsset: item.permissions.includes('upload'),
    canAddFolder: item.permissions.includes('create'),
  },
}

Per-asset capabilities

Returned on each asset object. Control which actions appear in the asset context menu.

KeyTypeDefaultUI effect
canDeleteAssetbooleanfalseShows "Delete" in context menu
canUpdateAssetbooleanfalseShows "Update" (replace file) in context menu
canLockAssetbooleanfalseShows "Lock" / "Unlock" toggle
canUnlockAssetbooleanfalseShows "Unlock" option
canRenameAssetbooleanundefinedShows "Rename" in context menu
uploadExtensionsstring[]undefinedRestricts which file extensions can be used for updates

The SDK provides defaultAssetCapabilities with all values set to false:

import { defaultAssetCapabilities } from '@ci-hub/integration-sdk'

const asset = {
  id: item.id,
  name: item.name,
  capabilities: {
    ...defaultAssetCapabilities,
    canUpdateAsset: true,
    canDeleteAsset: item.userCanDelete,
  },
}

Real patterns

Example - some adapters checks per-item permissions from the API:

capabilities: {
  ...defaultAssetCapabilities,
  canDeleteAsset: folderPermissions.canRemoveAsset,
}

Example - some adapters disables update/rename for non-file assets:

capabilities: {
  ...defaultAssetCapabilities,
  canUpdateAsset: !isOneNote,
  canRenameAsset: !isOneNote,
}

See Integration Info for the full info response schema.

On this page