
The Elementrix platform provides comprehensive import and export functionality for data products, enabling users to:
This feature streamlines data product management, facilitates migration between environments, and enables bulk operations while maintaining data integrity and security.
Import and export operations require specific role-based permissions:
The platform supports those primary import/export workflows:

Export a complete data product as a JSON file, including all metadata, schema fields, users, permissions, business glossary terms, and approval workflows.
Import entire data product from a JSON file. The system analyzes conflicts, maps users and business terms, and provides a wizard-based import experience.
Export a complete data product as a JSON file, including all metadata, schema, permissions, and related configurations. This enables backup, migration, and sharing of data products.
Navigate to:
data-products-export-{timestamp}.json2024-01-15T10:30:45.123Z)The export file contains a comprehensive snapshot:
{
"exportedAt": "2024-01-15T10:30:45.123Z",
"dataProduct": {
"id": 789,
"name": "Customer Data",
"path": "/api/customers",
"apiEndpoint": "https://api.example.com/customers",
"key": "customer-data",
"description": "Customer information dataset",
"classification": "CONFIDENTIAL",
"status": "PUBLISHED",
"schemaMethod": "UPLOAD",
"creator": "user-uuid-123",
"owners": ["owner1@example.com", "owner2@example.com"],
"dataStewards": ["steward1@example.com"],
"fields": [
{
"id": 1001,
"name": "customer_id",
"type": "INTEGER",
"required": true,
"unique": true
},
{
"id": 1002,
"name": "email",
"type": "STRING",
"required": true,
"maxLength": 255,
"termIds": ["term-uuid-456"]
}
],
"approvalWorkflow": {
"name": "Standard Approval",
"steps": [
{
"order": 1,
"type": "DATA_STEWARD_APPROVAL",
"assigneeEmail": "steward@example.com"
}
]
},
"dataSource": {
"type": "POSTGRESQL",
"host": "db.example.com",
"database": "production",
"table": "customers"
}
},
"domain": {
"id": 10,
"name": "Customer Domain",
"path": "/customers",
"ownerEmail": "domain-owner@example.com"
},
"users": [
{
"id": "user-uuid-123",
"email": "user@example.com",
"firstName": "John",
"lastName": "Doe"
}
],
"categories": [
{
"id": "cat-uuid-789",
"name": "Customer Information",
"terms": [
{
"id": "term-uuid-456",
"name": "Email Address",
"definition": "Customer email contact",
"ownerEmail": "glossary-owner@example.com",
"tags": ["PII", "Contact"]
}
]
}
],
"permissions": [
{
"userId": "user-uuid-123",
"role": "OWNER",
"dataProductId": 789
}
],
"stagingDBConfigDto": {
"host": "staging.example.com",
"database": "staging_db"
}
}
Import entire domains with multiple data products from a JSON file. The system provides intelligent conflict detection, user mapping, and a wizard-based import experience.
Navigate to:
Supported Formats:
Upload Methods:
The system analyzes the file and detects:
Existing Resources:
Conflicts:
New Resources:
The import wizard displays:
Data Product Information:
Domain Information:
User Mapping:
Business Glossary Mapping:
For each conflict, choose resolution strategy:
Data Product Conflicts:
Domain Conflicts:
User Conflicts:
Set import preferences:
After completion:
1. Check if data product exists by name
- Query: findByName(dataProductName)
2. Check for API path conflicts
- Query: existsByPath(apiPath)
- Even if product doesn't exist, path might be taken
1. Check if domain exists by name
- Query: isExistDomainName(domainName)
2. Check for domain path conflicts
- Query: isExistDomainPath(domainPath)
1. For each user in import:
- Search by email: findByEmail(email)
- If found → existing user
- If not found → new user
2. Build user mapping:
- Map<importedUserIdOrEmail, systemUserId>
1. For each category:
- Search by name: findByName(categoryName)
- If found → existing category
2. For each term in category:
- Search: findByCategory_IdAndName(categoryId, termName)
- If found → existing term
3. Build term mapping:
- Map<importedTermId, systemTermId>
The system intelligently replaces IDs:
User IDs:
Term IDs:
Before Import:
During Import:
After Import:
For more information on related features, see:
Document Version: 1.0
Last Updated: 2024-01-15
Maintained By: Elementrix Documentation Team