Documentation Center

Connector Extension

An Extension with Connector as the Extension type extends the Content Service and External Content Library to add integration with an external source of content. The extension point for this is called Connector.

The properties section of the manifest.json file defines the default implementation of the connector. The manifest properties are as follows:

connectorRuntime

Type of runtime that is required to run the connector

Allowed values:
  • Java
  • DotNetStandard
connectorClassName

The fully qualified name of the Java class that implements a Java-based connector

Example: The following class implements Connector for Salesforce CRM: com.sdl.tridion.connectorframework.connector.salesforce.SalesforceConnector

connectorLibrary

The name of the DLL that contains the .NET connector implementation

Example: The following DLL implements a YouTube connector built for ECL: YouTubeEclProvider/Tridion.ExternalContentLibrary.YouTubeEclProvider.dll
factoryType
The type factory that should be used for GRPC communication
Allowed values:
  • CodeGenerated — code generated, which is faster, but it only works for .NET to .NET communication (between the Application Client and the connector)
  • Dynamic — uses dynamic proxies and works for all combinations of Application Clients and connectors
isolationLevel

The level of process isolation of the connector, either run as a separate process or in the same memory space

Allowed values:
  • Process — Configures the connector to run in a separate process. There is a small overhead to this option in that the connector must pass requests over GRPC; however, the advantage is that connector issues are isolated from its Application Client. If the connector experiences problems, such as memory errors, the Application Client will be unaffected.
  • SharedProcess — For .NET connectors, configures the connector so that Tridion.Remoting will combine the processes for all namespaces into a single connector process. This can have performance benefits when you are configuring multiple namespaces, improving both CPU usage and the memory footprint.
  • InProcess — For Java-based connectors being used for Content Delivery-side functionality (through Public Content API), configures the connector to run in the same memory space as the Content Service. Running a connector in-process can have performance benefits, but may also result in higher memory usage. Note, as this setting currently applies only to Content Delivery, for Content Manager-side functionality (ECL), the connector will run in a separate process.
  • Debug — Configures the connector to run the connector in debug mode. You should use this option only during connector development.
features

The ECL features supported by the connector.

Allowed values:
  • Multimedia
  • Taxonomy

You can specify one or both features. This property is optional and if not included in the manifest, the default is to assume the connector supports Multimedia only.

configuration

Any number of connector-specific settings, such as endpoint URLs, username, password, and so on. The settings vary from connector to connector. For details on what these are, refer to the connector-specific documentation.

This setting in configurable in both the manifest and the connector's configuration file. Values in the configuration file override those in the manifest.

The following manifest file is of the Java-based connector for Salesforce CRM:

{
  "manifestVersion": "1.0",
  "version": "1.1.0",
  "id": "salesforce-crm-connector",
  "name": "SalesforceCRM",
  "author": "RWS Group",
  "description": "CRM connector to Salesforce",
  "requireConfiguration": "yes",
  "extensions": [{
    "name" : "SalesforceCRM",
    "type": "Connector",
    "supportedVersions": "9.1.0.0",
    "properties": {
      "connectorRuntime": "Java"
      "connectorClassName": "com.sdl.tridion.connectorframework.connector.salesforce.SalesforceConnector",
      "configuration": {
           
      }
    }
  }]
}

The following manifest file is of a custom file system connector, which supports ECL functionality for both external multimedia and external taxonomies:

{
	"manifestVersion": "1.0",
	"version": "1.0.0.0",
	"id": "FileSystemConnector",
	"name": "FileSystem Connector",
	"author": "RWS Group",
	"description": "An ECL extension",
	"requireConfiguration": "Yes",
	"extensions": [
	 	{
	 	"type": "Connector",
	  "name": "FileSystem",
	 	"supportedVersions": "0.0.0.0",
	 	"properties": {
		   "connectorLibrary": "FileSystemConnector/Tridion.ExternalContentLibrary.FileSystemConnector.dll",
		  	"connectorRuntime": "DotNetStandard",
		  	"factoryType": "CodeGenerated",
		  	"features": [ "Multimedia", "Taxonomy" ],
		  	"capabilities": ["DeployerCapability","ContentServiceCapability"]
		  	}
		 }
	]
}