Repository navigation
Migration Guide
OpenCrawling provides an enterprise migration tool, oc-mcf-migrator, designed to translate an existing Apache ManifoldCF crawler configuration — repository, output, and transformation connections, as well as scheduled jobs — directly into OpenCrawling.
It lives as a first-class module in the OpenCrawling reactor (oc-mcf-migrator/) and is exposed through three interfaces:
-
Command-Line Interface: Available standalone (
java -jar oc-mcf-migrator-*-cli.jar) or as part of the unified CLI (oc mcfviaoc-cli). -
Web Migration Wizard: Visual step-by-step wizard in
oc-admin-ui(Sidebar -> ManifoldCF Migration). -
REST API: Programmatic endpoints on
oc-runtime(POST /api/mcf-migration/planandPOST /api/mcf-migration/apply).
Important
Strict Mapping Principle: Anything with no direct connector-level mapping is skipped and clearly reported with actionable next steps (recommendedAction), never guessed or silently dropped.
flowchart TD
subgraph Sources["ManifoldCF Sources"]
LiveAPI["Live REST API\n(--mcf-url)"]
JsonFiles["JSON Snapshots\n(--mcf-input-dir)"]
XmlExport["Native XML Export\n(--mcf-export-file)"]
end
subgraph CoreEngine["oc-mcf-migrator (Core Engine)"]
Parser["Entity Parsers & Adapters\n(DocumentSpecificationParser, McfXmlToJsonAdapter)"]
Registry["ConnectorMapperRegistry\n(File, Vespa, OpenSearch Mappers)"]
Engine["MigrationEngine\n(Plan, Fidelity Notes, Compatibility Score)"]
ReportGen["Report Renderers\n(Markdown, JSON, HTML)"]
end
subgraph ConsumerInterfaces["Consumer Interfaces"]
CLI["OpenCrawling CLI\n(oc mcf audit | import | convert)"]
REST["oc-runtime REST API\n(/api/mcf-migration/*)"]
UI["oc-admin-ui\n(Migration Wizard)"]
end
subgraph Targets["OpenCrawling Targets"]
LiveRuntime["Live OpenCrawling Instance\n(POST /api/connectors, POST /api/jobs)"]
OISFiles["OIS Job Files\n(ois/v1alpha1 YAML/JSON)"]
end
LiveAPI --> Parser
JsonFiles --> Parser
XmlExport --> Parser
Parser --> Engine
Registry --> Engine
Engine --> ReportGen
Engine --> CLI
Engine --> REST
REST --> UI
CLI -->|import| LiveRuntime
CLI -->|convert| OISFiles
UI -->|Apply| LiveRuntime
| Command | Action | Writes to OpenCrawling? | Output |
|---|---|---|---|
list-mappers |
Discovers and prints registered connector mappers | Never | Console table of supported ManifoldCF classes and target types |
audit |
Extracts, maps, assesses fidelity, and reports | Never (dry-run) | Detailed audit report (markdown, json, or html) |
import |
Extracts, maps, and writes supported connections and jobs | Always (live write) | Creates/updates connectors and jobs via OpenCrawling REST API |
convert |
Extracts, maps, and emits job specifications | Never (pure file-to-file) | Standalone Open Ingestion Standard (OIS) (ois/v1alpha1) YAML/JSON files |
# 1. Discover registered connector mappers
oc mcf list-mappers
# 2. Audit an existing ManifoldCF instance (dry-run report)
oc mcf audit \
--mcf-url http://localhost:8345/mcf-api-service/json \
--oc-url http://localhost:8080 \
--report-format html \
--report-file ./migration-report.html
# 3. Import supported connections and jobs directly into OpenCrawling
oc mcf import \
--mcf-url http://localhost:8345/mcf-api-service/json \
--oc-url http://localhost:8080
# 4. Convert ManifoldCF jobs to Open Ingestion Standard (OIS) YAML files
oc mcf convert \
--mcf-input-dir ./mcf-snapshots \
--output-dir ./ois-jobs \
--output-format yamloc-mcf-migrator can extract ManifoldCF configurations from three distinct sources:
-
Live REST API (Default):
- Flags:
--mcf-url,--mcf-user,--mcf-password(or env varsMANIFOLDCF_URL,MANIFOLDCF_PASSWORD). - Reads
/json/repositoryconnections,/json/outputconnections,/json/transformationconnections,/json/authorityconnections, and/json/jobs.
- Flags:
-
Saved JSON Snapshots (
--mcf-input-dir):- Reads from a directory containing the raw JSON payloads saved from the 5 endpoints above (
repositoryconnections[.json],outputconnections[.json],transformationconnections[.json],authorityconnections[.json],jobs[.json]). - Ideal for air-gapped environments or offline testing.
- Reads from a directory containing the raw JSON payloads saved from the 5 endpoints above (
-
Native XML Export (
--mcf-export-file):- Reads ManifoldCF's combined configuration XML export created by its native
ExportConfigurationutility. - Enables zero-network, direct file-based migration without requiring a running ManifoldCF service.
- Reads ManifoldCF's combined configuration XML export created by its native
The engine discovers registered ConnectorMapper implementations using Java SPI (ServiceLoader). Out of the box, the following mappers are included:
-
Filesystem Connector: Maps
org.apache.manifoldcf.crawler.connectors.filesystem.FileConnectorto OpenCrawlingfilesystem-source. -
Vespa Output Connector: Maps
org.apache.manifoldcf.agents.output.vespa.VespaOutputConnectorto OpenCrawlingvespa. -
ElasticSearch / OpenSearch Connector: Maps
org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnectorto OpenCrawlingopensearch2.
If a ManifoldCF job references a connection without a direct automatic mapper (e.g. an existing Solr connection being directed to a new Qdrant vector store in OpenCrawling):
oc mcf audit \
--mcf-input-dir ./mcf-snapshots \
--map-connector "Solr_Output=Qdrant_Vector_Store"The source connection is not created, but any job referencing Solr_Output has its target replaced with Qdrant_Vector_Store and is treated as supported.
To migrate only specific connections or jobs, use:
--only-connections "ConnA,ConnB"--only-jobs "Job1,Job2"
In addition to the CLI, OpenCrawling provides a graphical wizard within the web administration console:
- Configure: Select the ManifoldCF source (Live API or JSON snapshot directory) and specify credentials.
-
Extract & Plan: The backend invokes
POST /api/mcf-migration/planto analyze all connections and jobs, computing a job-based compatibility score. - Review & Scope: Review supported vs. unsupported components, inspect fidelity notes, and deselect specific items if desired.
-
Apply: Invokes
POST /api/mcf-migration/applyto register connectors and jobs in the OpenCrawling runtime. - Results: Review creation status and trigger immediate job execution via the OpenCrawling scheduler.
All subcommands produce comprehensive reports in your choice of format (--report-format markdown|json|html):
- Compatibility Score: Job-based percentage indicating the proportion of jobs that can successfully execute in OpenCrawling.
- Field Fidelity Notes: Detailed notes indicating fields that were defaulted, transformed, or dropped due to architectural differences (e.g., ManifoldCF schedule patterns vs. OIS cron strings).
- Recommended Actions: Clear guidance on manual steps needed for dropped or high-risk configuration fields.
- Secret Redaction: Passwords, tokens, and sensitive credential fields are automatically masked in all generated reports.
- Home
- User & Installation Guide
- Quick Start
- VM & Bare-Metal Distribution Installation
- Local Development & Fast Docker Builds
- User Guide
- Architecture
- Zero-Trust Security & ACL Management
- Document Lifecycle Actions & Tombstones
- Apache Tika 4 Text Extraction
- Configuration Guide
- Connectors Reference
- Alfresco Content Services (ACS) Connector
- Alfresco Process Services (APS) Connector
- Flowable Repository Connector
- Camunda Repository Connector
- OASIS CMIS Repository Connector
- Doxis Repository Connector
- M-Files Repository Connector
- SharePoint Online Repository Connector
- Hyland OpenArch Integration (Repository, Output & MCP)
- Relational Database (JDBC) Connector
- Apache StormCrawler Repository Connector
- gRPC Push Repository Connector
- Apache Solr Output Connector
- Luxir Output Connector
- Apache SeaTunnel Output Connector
- Apache Ozone Output Connector (Migration Mode)
- Connector Execution Modes
- Model Context Protocol
- Apache Ozone Claim Check Store
- Lakehouse Audit Reporting & Ledger
- AI-Powered Observability (AIOps)
- Auto-Narrativization Copilot
- Maven Connector Archetypes
- Java Client SDK
- OpenCrawling CLI
- OpenAPI Specification & Swagger UI
- gRPC Internal Transport
- Migration Guide (ManifoldCF)
- Integration Test — Decoupled Pipeline
- M-Files Integration Test
- SharePoint Online Integration Test
- Hyland OpenArch Integration Test
- Local Docker Build Test
- Secure MCP Server Integration Test
- Narrativization Integration Test
- Reporting Integration Test