Export
Export packages to local folders without creating a workspace
Introduction
The ipm export
command enables you to export packages from IPMHub directly to local folders without configuring them as workspaces. This is particularly useful for scenarios where you need to extract package contents for reference, inspection, or integration into non-IPM environments.
Key Benefits
- Direct Export: Extract package files to any folder without workspace configuration
- Version Control: Export specific versions of packages
- Simplified Access: Get package content without creating workspace dependencies
- Reference Material: Create local copies of packages for documentation or learning
- Flexible Destinations: Export to empty or non-empty directories with
--force
- Audit Documentation: Generate compliance reports with
--summary-file
Use Cases
The export command is designed for scenarios such as:
- Creating reference copies of packages for documentation
- Sharing package contents with team members who don’t use IPM
- Inspecting package structure and files
- Integrating package contents into other build systems
- Creating templates based on existing packages
- Compliance documentation and audit trail generation
- Emergency package recovery and analysis
Using the Export Command
Basic Export
To export the latest version of a package to a local folder:
ipm export --package publisher/package-name --destination ./export-folder
Export Specific Version
To export a specific version of a package:
ipm export --package publisher/package-name --version 1.2.3 --destination ./export-folder
Force Export to Non-Empty Directory
IPM 0.10.0 introduces the --force
parameter for greater operational flexibility:
ipm export --package publisher/package-name --destination ./existing-folder --force
The --force
parameter allows exports into non-empty directories, providing flexibility for:
- Integration workflows where destination folders contain other files
- Development environments with mixed content
- Automated processes that don’t control destination folder state
- Rapid prototyping and experimentation scenarios
Export with Audit Reporting
Generate comprehensive audit documentation for compliance requirements:
ipm export --package publisher/package-name --destination ./export-folder --summary-file ./audit/export-report.json
Non-Interactive Export
For automated scenarios, you can use non-interactive authentication:
ipm export --package publisher/package-name --destination ./export-folder --non-interactive --client-secrets YOUR_SECRET
Complete Export with All Features
Combine all available features for maximum functionality:
ipm export --package publisher/package-name --version 1.2.3 --destination ./export-folder --force --summary-file ./audit/export-report.json --non-interactive --client-secrets YOUR_SECRET
Audit Reporting for Export Operations
Export Audit Reports
When using the --summary-file
parameter, export operations generate comprehensive audit reports containing:
Package Information
- Source package name and version
- Publisher and metadata details
- Authentication and authorization records
- Download source and timing information
Destination Analysis
- Target directory path and status
- Pre-existing content analysis (when using
--force
) - File conflict resolution details
- Directory creation and permission settings
Content Verification
- Package integrity validation
- File transfer completion status
- Hash verification for downloaded content
- Verification badge status (for verified packages)
Compliance Documentation
- User authentication and authorization logs
- Data access and export justification
- Regulatory compliance markers
- Audit trail timestamps and signatures
Example Export Audit Report
{
"operation": "export",
"timestamp": "2025-06-08T14:48:53.195792+00:00",
"package": {
"name": "publisher/package-name",
"version": "1.2.3",
"verified": true,
"downloadSource": "ipmhub.io"
},
"destination": {
"path": "./export-folder",
"existed": false,
"forceUsed": false,
"filesCreated": 23
},
"compliance": {
"userAuthentication": "verified",
"authorization": "approved",
"dataClassification": "internal",
"exportJustification": "development-testing"
},
"summary": {
"status": "success",
"duration": "00:00:03.456",
"bytesTransferred": 2048576,
"integrityVerified": true
}
}
For comprehensive audit reporting capabilities, see the Audit Reporting guide.
Important Notes
- The destination folder (
--destination
) must be empty or non-existent unless using--force
- The
--force
parameter allows overwriting existing content in destination directories - The command will create the destination folder if it doesn’t exist
- Exported packages contain all files from the original package
- The export command requires authentication, similar to
ipm add
- Verified packages maintain their verification status in audit reports
- Summary files provide complete compliance documentation
Differences Between Export and Add
While both export
and add
retrieve package content from IPMHub, they serve different purposes:
Feature | ipm export |
ipm add |
---|---|---|
Creates workspace files | No | Yes |
Adds entries to ipmhub.json |
No | Yes |
Supports any destination folder | Yes | No (uses workspace structure) |
Supports --force parameter |
Yes | No |
Compatible with ipm sync |
No | Yes |
Package tracking | No | Yes |
Audit reporting | Yes (with --summary-file ) |
No |
Verified package support | Yes (documented in reports) | Yes |
Enterprise Use Cases
Compliance and Governance
Export with audit reporting supports enterprise requirements:
Regulatory Compliance
# SOX compliance export with full documentation
ipm export --package company/financial-module --version 2.1.0 \
--destination ./compliance-review \
--summary-file ./audit/sox-export-$(date +%Y%m%d).json
Security Reviews
# Security assessment export with verification
ipm export --package company/security-module --destination ./security-review \
--summary-file ./audit/security-export.json
Data Governance
# Controlled data export with justification
ipm export --package company/data-processor --destination ./analysis \
--force --summary-file ./audit/data-export.json
Development Workflows
Template Creation
# Export for template development
ipm export --package templates/web-app --destination ./new-project-base --force
Integration Testing
# Export for integration testing
ipm export --package company/api-client --version 1.0.0 \
--destination ./test-environment/libs \
--summary-file ./test-audit/export.json
Documentation Generation
# Export for documentation purposes
ipm export --package company/public-api --destination ./docs/examples
Example Workflow
Here’s a common workflow for using the export command with full enterprise features:
- Identify the package and requirements
- Prepare destination and audit directories
- Execute export with appropriate parameters
- Review audit report for compliance
- Access exported content for intended use
# Prepare directories
mkdir -p ./exported-packages ./audit-reports
# Export with full documentation
ipm export --package publisher/my-package --version 2.0.0 \
--destination ./exported-packages/my-package-v2 \
--summary-file ./audit-reports/export-$(date +%Y%m%d-%H%M%S).json
# Verify export success
if [ $? -eq 0 ]; then
echo "Export successful - reviewing audit report"
jq '.summary.status' ./audit-reports/export-*.json
else
echo "Export failed - check error logs"
fi
# Explore the contents
ls -la ./exported-packages/my-package-v2
Best Practices
Security and Compliance
- Use Audit Reporting: Always use
--summary-file
for enterprise environments - Document Purpose: Include export justification in compliance workflows
- Secure Storage: Store audit reports in secure, compliant storage systems
- Access Control: Restrict export capabilities to authorized users only
Operational Efficiency
- Clean Destinations: Use clean destination folders when possible
- Version Specificity: Specify exact versions for reproducible exports
- Automation Integration: Integrate with CI/CD pipelines for consistent exports
- Error Handling: Implement proper error handling in automated exports
Performance Optimization
- Network Efficiency: Consider package size for network-constrained environments
- Parallel Processing: Use multiple export operations for bulk operations
- Caching Strategy: Implement local caching for frequently exported packages
- Monitoring: Monitor export performance through audit reports
Troubleshooting
Common Issues
Destination Directory Conflicts
# Error: Directory not empty
# Solution: Use --force parameter
ipm export --package publisher/package --destination ./existing-dir --force
Authentication Failures
# Error: Authentication required
# Solution: Use proper authentication
ipm export --package publisher/package --destination ./export --non-interactive --client-secrets YOUR_SECRET
Network Connectivity Issues
# Error: Download failed
# Solution: Check network connectivity and retry
ipm export --package publisher/package --destination ./export --summary-file ./audit/retry-export.json
Audit Report Analysis
Review audit reports to identify and resolve issues:
# Check export status
jq '.summary.status' ./audit/export-report.json
# Review any errors
jq '.errors[]' ./audit/export-report.json
# Verify integrity checks
jq '.verification' ./audit/export-report.json