Managing configuration changes across Alumio environments (e.g., Sandbox → Production) can be challenging, especially since there is currently no out-of-the-box feature that fully supports end-to-end deployment workflows.
This guide outlines a practical and scalable approach using Alumio APIs and CI/CD pipelines to safely promote configurations between environments.
Overview
The approach consists of:
- Exporting configurations from a source environment
- Versioning them in Git
- Validating and importing them into a destination environment via a pipeline
Step-by-Step Workflow
1. Export Configurations from Source Environment
Call the following API endpoint:
bulkExportAllObjectConfigurations
- This returns an NDJSON file
- Each line represents a single configuration object in Alumio
2. Store Configurations in Git
- Add the exported NDJSON file to your Git repository
- Commit and push changes
Recommended Improvement (Optional)
Instead of storing one large NDJSON file:
- Split each line into individual JSON files
- Store them in a structured folder (e.g.,
/configs/{type}/{id}.json)
Benefits:
- Better Git diff visibility
- Easier tracking of changes per configuration
- Cleaner version control history
Note: Before importing, these files must be merged back into a single NDJSON file.
3. Validate Import via Pipeline (Dry Run)
Use this API endpoint:
- Run the import with dry-run enabled
- This validates:
- Schema compatibility
- Missing dependencies
- Version conflicts
4. Execute Actual Import
If the dry-run succeeds:
- Call the same API again without dry-run
- This applies the configurations to the destination environment
Important Notes
Environment Version Differences
- Sandbox environments often run newer versions than Production
- This may cause:
- Validation failures
- Unsupported configurations
Always validate before importing.
Automation via CI/CD Pipeline
The steps can be automated.
Example pipeline flow:
- Fetch NDJSON from source
- Split into individual JSON files (for Git)
- Commit and push changes
- Merge JSON files back into NDJSON
- Run dry-run import
- If successful, run the actual import
Scheduling:
- You can schedule the pipeline to periodically check for new changes in the source environment and automatically promote updates
- Alternatively, the pipeline can be triggered manually whenever you are ready to publish changes from the source environment to the destination environment
Best Practices
- Always run dry-run before import
- Use Git as the single source of truth
- Keep environments as version-aligned as possible
- Use clear folder structures when splitting JSON files
- Add logging and alerts in your pipeline for failures
Summary
While Alumio does not yet provide a fully integrated deployment mechanism, combining:
- Export/Import APIs
- Git versioning
- CI/CD pipelines
allows you to build a robust, auditable, and automated deployment workflow across environments.