fusion-datasource-cloner
A real Python CLI that clones a Lucidworks Fusion datasource in the same Fusion instance and also copies the linked configuration objects it references.
What it clones:
- datasource configuration
- linked index pipeline
- linked query pipeline
- linked index profile
- scheduler entries that reference the datasource
- optionally the parser
What it does not clone by default:
- collections and indexed data
- connector binaries / plugin jars
- blob contents referenced by custom stages
Install
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run
Basic auth:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--basic-auth admin:password \
--source-datasource products-json \
--target-datasource products-json-copy \
--verbose
API key:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--api-key 'Bearer eyJhbGciOi...' \
--source-datasource products-json \
--target-datasource products-json-copy
Dry run:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--basic-auth admin:password \
--source-datasource products-json \
--target-datasource products-json-copy \
--dry-run
Clone and also move the clone to a different collection reference:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--basic-auth admin:password \
--source-datasource products-json \
--target-datasource products-json-copy \
--collection products_copy
Clone parser too:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--basic-auth admin:password \
--source-datasource products-json \
--target-datasource products-json-copy \
--clone-parser
Replace already-existing target objects:
python3 -m fusion_ds_clone.cli \
--fusion-url https://fusion.example.com \
--app demo \
--basic-auth admin:password \
--source-datasource products-json \
--target-datasource products-json-copy \
--overwrite
Notes
The tool derives new linked object IDs from the target datasource ID. Example:
- source datasource:
my-source - source index pipeline:
my-source - target datasource:
my-source-copy - target index pipeline:
my-source-copy
If a linked object ID does not start with the source datasource ID, the tool creates a stable derived ID by suffixing the target datasource ID, for example:
- source query pipeline:
shared-catalog-qp - target query pipeline:
shared-catalog-qp-my-source-copy
The parser API is still supported by the tool, but it is disabled by default because the current Lucidworks docs label parts of parser CRUD as deprecated.
Metadata
Release files for fusion-datasource-cloner 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fusion_datasource_cloner-0.1.0.tar.gz | 7.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fusion_datasource_cloner-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / fusion_datasource_cloner-0.1.0.tar.gz
| Download URL | fusion_datasource_cloner-0.1.0.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc397ac4ca69c1b3afb54dc56eb384920fca6b8680465276c7ca28c6b6f50df8
|
|
BLAKE2b-256 checksum How to use checksums |
b37c2b85c9b423199bc76d1b2c8a2749e213ffd00495db81086c06f0c40c99d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / fusion_datasource_cloner-0.1.0-py3-none-any.whl
| Download URL | fusion_datasource_cloner-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed5aeaeeda1193919362ee6e4ff46c7a9c1683eae22e05903f65030c7e153a40
|
|
BLAKE2b-256 checksum How to use checksums |
66d885bf51aec67ad4f50ad8438aa9567d8b3d19fe617eefd29282b837a962c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|