CI HUBCI HUB SDK
AuthenticationDAM Auth

Provider info

GET /system/providerInfo, runtime details for a connected DAM provider.

GET
/system/providerInfo

Returns runtime details for the DAM provider the end user is connected to: the provider's host prefix, the search filters this connection exposes, and any provider-specific settings the partner platform needs to render its UI. The provider is identified by the provider-authorization token, so there is no provider path or query parameter.

This is the post-login companion to the static feature flags in the providers listing. The listing tells the partner what a provider supports before connecting; this endpoint returns the live details once the end user has logged in.

Treat the object as provider-specific and read only the fields your integration needs. A provider with no runtime details returns an empty object.

Authorization

CIHubAuth ProviderAuth
AuthorizationBearer <token>

The CI-HUB JWT token obtained through authentication. Needs to be sent in the Authorization header.

In: header

provider-authorization<token>

Provider-specific authentication token for accessing the provider's services. Needs to be sent in the provider-authorization header with the Bearer prefix.

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/system/providerInfo"
{
  "remoteSystemPrefix": "api.box.com",
  "nativeFolderOrder": true,
  "dataLocales": [
    {
      "id": "en-GB",
      "name": "en-GB",
      "displayName": "English (United Kingdom) ",
      "default": true
    }
  ],
  "customMetadata": {
    "groups": [
      {
        "id": "custom",
        "name": "Custom Metadata",
        "i18nName": {
          "en": "Custom Metadata",
          "de": "Benutzerdefinierte Metadaten"
        }
      }
    ],
    "fields": [
      {
        "id": "custom#123",
        "name": "Asset Category",
        "groupId": "custom",
        "i18nName": {
          "en": "Asset Category",
          "de": "Asset-Kategorie",
          "fr": "Catégorie d'actif"
        }
      }
    ]
  },
  "filters": [
    {
      "id": "string",
      "name": "string",
      "i18nName": {
        "en": "Name",
        "de": "Name",
        "fr": "Nom"
      },
      "options": [
        {
          "id": "string",
          "name": "string",
          "default": true,
          "isDisabled": true,
          "isActive": true,
          "i18nName": {
            "en": "Name",
            "de": "Name",
            "fr": "Nom"
          },
          "property1": "string",
          "property2": "string"
        }
      ],
      "showInSimilarSearch": true
    }
  ],
  "createAssetOptions": [
    {
      "id": "string",
      "name": "string",
      "type": "select",
      "required": false,
      "options": [
        {
          "id": "string",
          "name": "string"
        }
      ]
    }
  ],
  "updateAssetOptions": [
    {
      "id": "string",
      "name": "string",
      "type": "select",
      "required": true,
      "options": [
        {
          "id": "string",
          "name": "string"
        }
      ]
    }
  ],
  "requestHeaders": {
    "x-api-key": "api-key-value"
  },
  "searchConfigs": {
    "searchQueryRequired": false,
    "configs": [
      {
        "id": "single:searchMode",
        "name": "Search Mode",
        "i18nName": {
          "en": "Search Mode",
          "de": "Suchmodus",
          "fr": "Mode de recherche"
        },
        "type": "select",
        "options": [
          {
            "id": "all",
            "name": "All",
            "isActive": false
          }
        ]
      }
    ]
  },
  "transformation": {
    "availableTransformationsUrl": "https://api.example.com/get-available-transformations",
    "actionUrl": "https://api.example.com/do-transformation"
  },
  "rightsManagement": {
    "addExternalAsset": {
      "actionUrl": "https://api.provider.com/addExternalAsset"
    },
    "checkExternalAssets": {
      "actionUrl": "https://api.provider.com/checkExternalAssets"
    },
    "checkClearance": {
      "actionUrl": "https://api.provider.com/checkClearance",
      "filters": [
        {
          "type": "date",
          "id": "inDate",
          "name": "In Date",
          "options": [
            {
              "id": "string",
              "name": "string",
              "path": [
                "string"
              ]
            }
          ]
        }
      ]
    }
  },
  "assetSearchHelpUrl": "https://help.example.com/asset-search"
}
{
  "message": "Error",
  "details": "POST /api/v1/auth/exchangeToken failed: SDK authentication token is invalid",
  "errorCode": "cihub-sdk-token-invalid",
  "error": {
    "code": "integration-forbidden",
    "source": "cihub",
    "status": 400,
    "message": "Access denied by the integration",
    "details": "403 Forbidden - insufficient_permissions",
    "provider": "bynder"
  }
}
{
  "message": "Error",
  "details": "POST /api/v1/auth/exchangeToken failed: SDK authentication token is invalid",
  "errorCode": "cihub-sdk-token-invalid",
  "error": {
    "code": "integration-forbidden",
    "source": "cihub",
    "status": 400,
    "message": "Access denied by the integration",
    "details": "403 Forbidden - insufficient_permissions",
    "provider": "bynder"
  }
}
{
  "message": "Error",
  "details": "POST /api/v1/auth/exchangeToken failed: SDK authentication token is invalid",
  "errorCode": "cihub-sdk-token-invalid",
  "error": {
    "code": "integration-forbidden",
    "source": "cihub",
    "status": 400,
    "message": "Access denied by the integration",
    "details": "403 Forbidden - insufficient_permissions",
    "provider": "bynder"
  }
}
{
  "message": "Error",
  "details": "POST /api/v1/auth/exchangeToken failed: SDK authentication token is invalid",
  "errorCode": "cihub-sdk-token-invalid",
  "error": {
    "code": "integration-forbidden",
    "source": "cihub",
    "status": 400,
    "message": "Access denied by the integration",
    "details": "403 Forbidden - insufficient_permissions",
    "provider": "bynder"
  }
}

Example

import { CiHubAccessClient, TokenManager } from '@ci-hub/access-sdk'

const client = new CiHubAccessClient({ baseUrl: 'https://stage.ci-hub.com/api/v1' })
const tokens = new TokenManager(client) // seeded during authentication

const providerInfo = await tokens.withDamAuth('dropbox', (accessToken, damToken) =>
  client.getProviderInfo({ accessToken, damToken }),
)
curl "https://stage.ci-hub.com/api/v1/system/providerInfo" \
  -H "Authorization: Bearer $CI_HUB_ACCESS_TOKEN" \
  -H "provider-authorization: Bearer $DAM_PROVIDER_TOKEN"
const response = await fetch(
  'https://stage.ci-hub.com/api/v1/system/providerInfo',
  {
    headers: {
      Authorization: `Bearer ${ciHubAccessToken}`,
      'provider-authorization': `Bearer ${damProviderToken}`,
    },
  }
)

if (!response.ok) {
  const { error } = await response.json()
  throw new Error(`${error.code}: ${error.message}`)
}

const providerInfo = await response.json()

Next

On this page