All posts · OIC Integrations

Migrating OIC Integrations Between Environments

Moving integrations from development to test to production in OIC is more involved than it looks — here's a reliable promotion workflow that avoids common pitfalls.

Anurag Jangra · March 1, 2026 · 7 min read · ... views

The promotion pipeline

flowchart LR
    DEV[🔧 Development\nOIC Instance] -->|Export .iar| QA[🧪 Test / QA\nOIC Instance]
    QA -->|UAT sign-off| PROD[🚀 Production\nOIC Instance]

    subgraph Each environment
        CON[Connections\nenv-specific config]
        LKP[Lookup Tables\nenv-specific values]
        INT[Integrations\nsame .iar file]
    end

    style DEV fill:#1e293b,stroke:#3B82F6,color:#e2e8f0
    style QA fill:#1e293b,stroke:#F59E0B,color:#e2e8f0
    style PROD fill:#0f2d1f,stroke:#22C55E,color:#e2e8f0

Step 1: Standardise connection names

Connection names must be identical across environments. Only the configuration (URL, credentials) differs.

❌ Wrong✅ Correct
FUSION_ERP_REST_DEVFUSION_ERP_REST
ATP_DB_TESTATP_DB_MAIN
SFTP_PARTNER_PRODSFTP_PARTNER

The connection name is embedded in the exported .iar file. If names differ, the import fails.

Step 2: Export as .iar via OIC REST API

Automate exports in your CI/CD pipeline:

# Export a specific integration version
curl -u "$OIC_USER:$OIC_PASS" \
  -X GET \
  "https://$OIC_HOST/ic/api/integration/v1/integrations/INVOICE_SYNC|01.00.0000/archive" \
  -o "INVOICE_SYNC_v1.0.0.iar"

# Export all integrations matching a pattern
curl -u "$OIC_USER:$OIC_PASS" \
  "https://$OIC_HOST/ic/api/integration/v1/integrations?q=name:INVOICE*" \
  | jq '.items[].id' | while read id; do
    curl -u "$OIC_USER:$OIC_PASS" \
      "https://$OIC_HOST/ic/api/integration/v1/integrations/$id/archive" \
      -o "${id//|/_}.iar"
  done

Step 3: Import to target environment

# Import to target OIC instance
curl -u "$TARGET_USER:$TARGET_PASS" \
  -X POST \
  "https://$TARGET_HOST/ic/api/integration/v1/integrations" \
  -H "Content-Type: application/octet-stream" \
  -H "X-ICS-OVERWRITE: true" \
  --data-binary @INVOICE_SYNC_v1.0.0.iar

Step 4: Post-import verification checklist

flowchart TD
    IMP[Import .iar to target] --> CON{All connections\nresolved?}
    CON -->|No - red indicators| FIX[Fix connection configs]
    FIX --> CON
    CON -->|Yes| LKP{Lookup tables\ncorrect for env?}
    LKP -->|No| FIXL[Update lookup values]
    FIXL --> LKP
    LKP -->|Yes| SCHED{Scheduled triggers\nneed adjustment?}
    SCHED -->|Yes| FIXS[Update cron/schedule]
    FIXS --> SCHED
    SCHED -->|Yes or N/A| CERT{Certificates &\nkeys uploaded?}
    CERT -->|No| FIXC[Upload PGP/SSL/OAuth certs]
    FIXC --> CERT
    CERT -->|Yes| ACT[Activate integration]
    ACT --> TEST[Run test instance]
    TEST --> DONE[✓ Promotion complete]

    style DONE fill:#0f2d1f,stroke:#22C55E,color:#e2e8f0
    style FIX fill:#2d0f0f,stroke:#EF4444,color:#e2e8f0

Versioning strategy

Track every promotion in a simple log — OIC has no built-in changelog:

Integration: INVOICE_SYNC
Version: 2.1.0
Promoted: 2026-03-01 14:30 UTC
By: Anurag Jangra
Change: Added retry logic (3x with 30s delay) on REST 5xx errors
Environments: DEV → QA (UAT signed off by Finance team)
             QA  → PROD (Go-live approved by Project Manager)

Store this in Confluence, Notion, or a simple Git file. During incident investigation, this log is invaluable.

Think Beyond the Implementation

Questions worth sitting with after reading this

01

Why is this architecture appropriate for this specific context — and where would it be the wrong choice?

02

What assumptions did we make that aren't stated explicitly? What happens if those assumptions are wrong?

03

What would break first if the requirements changed — volume doubled, a third system was added, or the deadline halved?

04

What alternatives did we reject, and why? Was the decision made on evidence — or habit?

AJ
Anurag Jangra
Oracle Cloud PaaS Consultant · OIC & VBCS Specialist

4.5+ years delivering enterprise Oracle Cloud integrations and VBCS applications across manufacturing, IT services, and financial sectors. OCI Certified — writes about real-world OIC, VBCS, SQL, and BI Publisher patterns from production experience.

Chat on WhatsApp