DoclingDocling for IBM watsonx
Connectors

FileNet

Read documents from IBM FileNet Content Manager

FileNet Connector

The FileNet connector reads documents from IBM FileNet Content Manager (part of IBM Cloud Pak for Business Automation) for conversion. This connector is source-only and uses the Content Services GraphQL API.

Prerequisites

  • Cloud Pak for Business Automation (CP4BA): Access to a CP4BA instance with Content Cortex subscription
  • FileNet Repository: A configured FileNet repository (e.g., OS1)
  • Zen API Key: Generated by a CP4BA administrator for authentication
  • Username: Your FileNet username
  • GraphQL Endpoint: Content Services GraphQL API URL

Setup and Authentication

Get Zen API Key

  1. Contact your CP4BA administrator to generate a Zen API key for your username
  2. The API key is used for authentication to the Content Services GraphQL API

Locate GraphQL Endpoint

The Content Services GraphQL endpoint URL typically follows this format:

https://<your-cp4ba-host>/content-services-graphql

Contact your CP4BA administrator if you need help locating the endpoint.

Identify Repository

FileNet uses repository identifiers (typically OS1 for the default object store). Confirm your repository ID with your administrator.

Configuration

The FileNet connector is used as a source in the Batch API. Configure it in the sources array of your request.

Required Parameters

ParameterTypeDescription
kindstringMust be "filenet"
base_urlstringFileNet Content Services GraphQL API endpoint URL
usernamestringFileNet username
api_keystringZen API key for authentication
repository_idstringFileNet repository identifier (e.g., "OS1")

Optional Parameters

ParameterTypeDefaultDescription
folder_idstringnullFolder path (e.g., "/my-folder") or folder GUID (e.g., "{FOLDER-ID-GUID}") to read documents from. If omitted, reads from entire repository
document_idsarray[]List of specific document IDs to process. If specified, overrides folder_id
max_num_elementsintegernullMaximum number of documents to process

Connector-Specific Behavior

Document Selection Modes

The connector supports three modes for selecting documents:

  1. Specific Documents: Provide document_ids array with one or more document IDs

    • Only the specified documents are processed
    • Overrides folder_id if both are provided
  2. Folder Mode: Provide folder_id (path or GUID)

    • Processes all documents within the specified folder
    • Supports both folder paths ("/my-folder") and folder GUIDs ("{GUID}")
  3. Repository Mode: Omit both folder_id and document_ids

    • Processes all documents in the repository
    • Use max_num_elements to limit scope

Folder Specification

The folder_id parameter accepts:

  • Folder path: /path/to/folder (starts with /)
  • Folder GUID: {FOLDER-ID-GUID} (wrapped in braces)

Document Limits

Use max_num_elements to control how many documents are processed:

  • In folder mode: stops after N documents from the folder
  • In repository mode: stops after N documents from the repository
  • With document_ids: limits which documents from the list are processed

Security and Permissions

Required Permissions

Your Cloud Pak instance itself must have the GraphQL API enabled.

This is sometimes a manual admin configuration.

Your FileNet user account must have:

  • Read access to the target repository
  • Read access to folders and documents you want to process
  • Permission to use the Content Services GraphQL API

Authentication

The connector uses Zen API key authentication:

  • Username and API key are sent with each GraphQL request
  • API keys should be treated as sensitive credentials
  • Keys are scoped to your user account's permissions

Limitations

  • GraphQL API Required: Requires Content Services with GraphQL API enabled
  • Cloud Pak for Business Automation: This connector has been specifically designed and tested for CP4BA deployments.

Usage Examples

There are three main ways to interface with the connectors. All use the same underlying POST /v1/convert/source/batch endpoint.

Tasks UI

Navigate to the Tasks view and select "Create Task +". Select Batch as the task type (connectors use batch tasks, not single).

Fill in the fields as prompted. They should correspond to the fields gathered above (excluding 'kind').

FileNet as a Source

FileNet Source Task Configuration

REST API

curl -X POST "${DOCLING_SERVICE_URL}/v1/convert/source/batch" \
  -H "X-Api-Key: ${DOCLING_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "sources": [
      {
        "kind": "filenet",
        "base_url": "https://your-cp4ba-host/content-services-graphql",
        "username": "your-username",
        "api_key": "your-zen-api-key",
        "repository_id": "OS1",
        "folder_id": "/my-documents",
        "max_num_elements": 50
      }
    ],
    "target": {
      "kind": "presigned_url"
    },
    "options": {
      "to_formats": ["md", "json"]
    }
  }'

Read Specific Documents

curl -X POST "${DOCLING_SERVICE_URL}/v1/convert/source/batch" \
  -H "X-Api-Key: ${DOCLING_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "sources": [
      {
        "kind": "filenet",
        "base_url": "https://your-cp4ba-host/content-services-graphql",
        "username": "your-username",
        "api_key": "your-zen-api-key",
        "repository_id": "OS1",
        "document_ids": ["{doc-id-1}", "{doc-id-2}"]
      }
    ],
    "target": {
      "kind": "presigned_url"
    },
    "options": {
      "to_formats": ["md"]
    }
  }'

Python SDK

Python SDK Note: This connector is not included in the standard docling.datamodel.service package. When using the Python SDK, configure it using GenericSourceRequest with keyword arguments. You do not need to install docling-jobkit.

from docling.service_client import DoclingServiceClient
from docling.datamodel.service.requests import GenericSourceRequest
from docling.datamodel.service.targets import PresignedUrlTarget
import os

SERVICE_URL = os.getenv("DOCLING_SERVICE_URL")
API_KEY = os.getenv("DOCLING_API_KEY")

# FileNet source configuration
filenet_source = GenericSourceRequest(
    kind="filenet",
    base_url="https://your-cp4ba-host/content-services-graphql",
    username="your-username",
    api_key="your-zen-api-key",
    repository_id="OS1",
    folder_id="/my-documents",
    max_num_elements=50
)

with DoclingServiceClient(url=SERVICE_URL, api_key=API_KEY) as client:
    job = client.submit_batch(
        sources=[filenet_source],
        target=PresignedUrlTarget(),
        output_formats=["md", "json"]
    )
    
    # Wait for completion
    response = job.result()
    print(f"Processed {response.num_converted} documents")
    print(f"Succeeded: {response.num_succeeded}")
    print(f"Failed: {response.num_failed}")
    
    # Print document results
    for doc in response.documents:
        print(f"{doc.filename}: {doc.status}")

On this page