The version control gap in low-code
Oracle Cloud’s low-code nature means much of your work happens in web UIs — designing in OIC’s visual mapper, clicking in VBCS’s canvas editor, configuring in BIP’s data model builder. These interactions produce artifacts (files, exports) that need the same version control discipline as code, but teams often skip it because the workflow is less natural.
What to export and commit
Create a release cadence: at the end of each sprint, export all changed artifacts and commit to Git with a meaningful message.
OIC: export each modified integration as a .iar package. Use the OIC REST API to automate this: GET /ic/api/integration/v1/integrations/{id}/archive. Name files: INTEGRATION_NAME_v{major}.{minor}.{patch}.iar.
VBCS: export the full application via Visual Builder → Export Application. Commit the .zip with a version tag matching your release.
BIP templates: download .rtf and .xsl files from BIP catalog. Commit to bip-templates/{module}/.
OIC Lookup Tables: export as CSV (OIC has a REST endpoint for this). Commit environment-specific versions with suffix: CURRENCY_MAP_prod.csv.
Connection configurations: document connection properties (endpoint URLs, auth type, certificate names) in a YAML file — not the actual credentials (those live in a vault), but the structure so you can recreate connections.
Tagging releases
Before each promotion to production, tag the Git commit:
git tag -a v2.3.0 -m "Sprint 12 release: invoice approval workflow, supplier sync"
git push origin v2.3.0
Tags create immutable points in history. When you need to roll back, git checkout v2.2.0 gives you the exact previous release artifacts.
Environment branching
main → production artifacts
develop → next release staging
feature/oic-invoice → current sprint work
hotfix/bip-template → urgent production fix
Hotfixes go to main directly via PR, then are merged back to develop so develop doesn’t regress.
Automated export via CI/CD
Use OIC REST APIs in a GitHub Action to automate artifact export:
- name: Export OIC integrations
run: |
curl -u $OIC_USER:$OIC_PASS https://$OIC_HOST/ic/api/integration/v1/integrations/INVOICE_SYNC/archive -o artifacts/INVOICE_SYNC_v$VERSION.iar
Run this on a schedule or on pipeline trigger to ensure Git always reflects the current deployed state.