Last Updated: Wednesday 25 July 2019
Within Integration cloud we are moving to a model that allows us to trial new features without making them available to everyone. Everone runs the same codebase but feature flags control what is available to a specific instance. Why would we do this? For multiple reasons:
Each new feature is given a flag that is used to control its availability. For instance the flag for the small footprint OIC agent was oic.adapters.connectivity-agent.light-weight-agent. If this flag was enabled for a given OIC instance then they could download the lightweight connectivity agent. Other OIC instances running the same code but with the flag turned off would not offer the new agent.
Flags are controlled from a central system and can be updated in real time by Oracle development and operations. This means that feature flags can be turned on very quickly, and also if a problem occurs they can be disabled.
Feature flags have a lifecycle as illustrated below.
The different stages are:
You may see a product manager demo features on an instance that are not currently available, if using a production pod these may only be available to internal users. This is where we try things out internally before turning them on for any customers. Once we are happy with the feature internally we are ready to share it with selected customers and move the feature to Feature Controlled. Note that this change in stage does not require any code changes, it just alters our internal approval process to enable the feature.
Once a feature enters the feature controlled stage then a customer may request that the flag be enabled for one or more of their OIC instances. If approved then those instances will have the flag enabled and the feature will become available within a few minutes of being enabled. Again there are no code changes to the customer instance, just the change in the flag status from disabled to enabled in the central feature flag server.
Once we are happy with the stability of a feature we will enable it for all instances. This again does not require a code change. We leave the flag in place so that if a specific customer has a problem we can disable the feature just for them or roll it back. This is a safety measure in case problems occur that were not caught by internal users or early adopters of the feature.
Eventually the flag controlling the feature will be removed. This has no impact on the end user, it just allows us to keep the code paths clean and remove unused code that has been made obsolete by the new feature. End user will see no difference between this stage and the previous one. So I mention it here only to explain how we keep our codebase clean.
The following flags are currently available in the Feature Controlled stage. We will be blogging about these features and as we do we will update the detailed explanation with a blog entry explaining the feature in detail. As we add new features we will update this blog.
|Feature Flag Name||Description||Detailed Explanation||Earliest Version|
|oic.cloudadapter.adapter.fa.oauthSupport||FA OAuth Suport||,19.2.3|
|oic.cloudadapter.adapter.rest.mvrp||REST multiple resource support in inbound.||18.4.5|
|oic.cloudadapter.adapter.utilities.wsdlupload||Option to upload wsdl for inbound Utilities adapter||18.2.3|
|oic.cloudadapter.faadapter.custom-event||Support for custom events in FA adapters||18.4.5|
|oic.ics.console.adapter.ccs.integration||This features helps consuming SSI (CCS) connectors under OIC as any other native SDK adapter under OIC||18.4.3|
|oic.ics.console.diagnostics.oracle-litmus-support||Litmus support for automated testing.||How to use Litmus to create OIC Integration unit tests automatically and run them to catch regressions||18.2.5|
|oic.ics.console.integration.generate_analysisjson||Generation of analysis.json document||18.4.1|
|oic.ics.console.integration.invoke.local.integration||Integration calling integration activity||How to invoke an Integration From another Integration in OIC without creating a connection||18.3.1|
|oic.ics.console.integration.layout||View integration as pseudo style layout.||See How Easily You Can Switch Your Integration Views||18.3.1|
|oic.ics.console.integration.throw-action||Allow users to throw error in integration||Working with Create Error Activity||18.2.5|
|oic.ics.console.monitoring.dashboard.use-tracking-api-for-metrics||Up-taking new tracking APIs for dashboard metrics||19.3.1|
|oic.ics.console.monitoring.tracking.filter.custom-date-range||Filter by custom date range in Monitoring||19.2.1|
|oic.ics.console.schedule.use-scheduleparam-as-tracking-var||Allow schedule parameter in business identifier dialog and use it as tracking variable||19.3.1|
|oic.ics.feature.parallel-for-each||Support for Parallel For-Each||18.4.1|
|oic.ics.mapper.jetmap-enablement||New Jet UI based mapper||New JET based OIC Mapper||18.2.3|
|oic.insight.consoles.instanceprogress||Support different display for Insight instance details page||18.3.3|
|oic.insight.instances.export||Allow export of Insight instance list data in CSV format||19.1.3|
|oic.process.form.externalui||Enhanced integration with VBCS or other external UI||18.4.5|
|oic.process.search.isEnabled||OIC Process Search||19.1.5|
To request a feature flag be enabled for one of your environments raise a Service Request via My Oracle Support. Provide the following information in the SR:
Your request will then be submitted to a product manager for approval. Once approved then the request will be forwarded to enable the feature on your requested environment.
Features are in controlled availability because they may still have some defects in them. Be aware that by using feature flag controlled items ahead of general availability means that you are being an early adopter of new features and although we do our best to ensure a smooth ride you may experience some bumps. Occasionally we may have to make changes to the functionality enabled in the feature flag before it becomes generally available. Just something to be aware of. However the feature flag enables us to release new features to customers whose use cases will benefit from them before we are ready to make a feature generally available. We think this is good for both you, the customer and us, Oracle, A win-win situation!
The following flags are no longer used as the features they controlled are now available to all instances of Oracle Integration Cloud. Note that if you are using User Managed Oracle Integration Cloud then you may need to upgrade to the latest release to get these features.
|Feature Flag Name||Description||Detailed Explanation||Earliest Version|
|oic.adapter.connectivity-agent.ha||HA support for connectivity agent||The Power of High Availability Connectivity Agent||18.3.1|
|oic.adapters.hcm-cloud.atom-feed-support||Atom Feed support for HCM Adapter||Subscribing to Atom Feeds in a Scheduled Integration||18.1.3|
|oic.cloudadapter.adapter.aq.rawobjectqueues||This feature enables RAW and Object type Queues for consuming and producing messages via AQ Adapter in OIC||18.3.3|
|oic.cloudadapter.adapter.database.batchInsertUpdate||Oracle Database Adapter - Operation On Table - Insert and Update||18.2.3|
|oic.cloudadapter.adapter.database.batchSelect||Oracle Database Adapter - Operation On Table - Select and Merge||18.3.3|
|oic.cloudadapter.adapter.db2database.batchInsertUpdateSelectMerge||DB2 Database Adapter - Operation On Table - Insert, Update, Merge and Select||18.3.3|
|oic.cloudadapter.adapter.dbaasdatabase.batchInsertUpdateSelectMerge||Oracle DBaaS Adapter - Operation On Table - Insert, Update, Merge and Select||18.3.3|
|oic.cloudadapter.adapter.ebs.enableOpenInterface||Support for Oracle E-Business Suite Open Interface Tables and Views in Oracle E-Business Suite adapter||18.4.1|
|oic.cloudadapter.adapter.erp.fileUpload||File Upload functionality in ERP Adapter.||18.3.5|
|oic.cloudadapter.adapter.hcm.dataExtract||Data Extract for HCM Adapter||Configuring the Extract Bulk Data Option in an Integration||18.2.3|
|oic.cloudadapter.adapter.hcm.fileUpload||File Upload functionality in HCM Adapter.||18.3.5|
|oic.cloudadapter.adapter.mysqldatabase.batchInsertUpdateSelectMerge||MySql Database Adapter - Operation On Table - Insert, Update, Merge and Select||18.3.3|
|oic.cloudadapter.adapter.netsuite.customRecord||CRUD and search support of custom record in Netsuite||18.4.1|
|oic.cloudadapter.adapter.netsuite.tba||Token Based Authentication support in Netsuite Adapter||18.4.5|
|oic.cloudadapter.adapter.rest.awssignaturev4||Amazon Signature Version 4 Policy in Rest Adapter||18.4.3|
|oic.cloudadapter.adapter.rest.oauth10aPolicy||OAuth for REST Adapter||18.1.5|
|oic.cloudadapter.adapter.rightnow.fileDownload||Rightnow (Service Cloud) Adapter file download feature||18.1.5|
|oic.cloudadapter.adapter.rightnow.mtom.upload||File upload as MTOM in Rightnow||18.2.3|
|oic.cloudadapter.adapter.rightnow.noSchema||Design optimization for removing Design time artifact during runtime and generate new Runtime(RT) WSDL to improve performance||18.1.5|
|oic.cloudadapter.adapter.rightnow.queryCSV.Validation||QueryCSV Validation is implicit query validation done by the system(ics) to check for normal syntax issues if user did not choose to Test Query button||18.1.5|
|oic.cloudadapter.adapter.soap.dynamicInvocation||SOAP Dynamic Invocation||18.4.1|
|oic.cloudadapter.adapter.soap.enableMtom||MTOM Support for SOAP Adapter||17.4.5|
|oic.cloudadapter.adapter.sqlserverdatabase.batchInsertUpdateSelectMerge||SQL Server Database Adapter - Operation On Table - Insert, Update, Merge and Select||18.3.3|
|oic.cloudadapter.adapter.stagewrite.schema.generation||Support JSON-ZIP-XML in stage file operations||19.2.3|
|oic.cloudadapter.adapters.aarpa||Automation Anywhere Adapter||19.2.3|
|oic.cloudadapter.adapters.atpdatabase||Adapter for ATP CS||18.4.5|
|oic.cloudadapter.adapters.dbaasdatabase||Oracle DBaaS Adapter||18.2.3|
|oic.cloudadapter.adapters.oraclehcmtbe||Taleo Business Edition (TBE) Adapter||18.2.3|
|oic.cloudadapter.adapters.oraclemonetization||Oracle Monetization cloud adapter||18.4.5|
|oic.cloudadapter.adapters.otac||Oracle Talent Acquisition Cloud adapter||18.4.1|
|oic.cloudadapter.adapters.rest_opa||Oracle Policy Automation Adapter||18.2.3|
|oic.cloudadapter.adapters.uipathrpa||UI Path RPA Adapter||18.4.3|
|oic.cloudadapter.cloudsdk.zipcircularref||Processing circular references in zip schema file||19.2.1|
|oic.cloudadapter.ftp.multilevelauth||FTP Multi Level Authentication||19.2.1|
|oic.cloudadapter.sdk.enable.default.tls||TLS version handling||18.4.5|
|oic.common.clone_service||Allow cloning of an existing ICS or OIC instance||
Docs for cloning an ICS instance into a new OIC instance.
|oic.common.clone_service.sync_flow||Clone service for synchronous flow||19.1.5|
|oic.ics.console.diagnostics.download-options||Download options on ICS UI||19.1.5|
|oic.ics.console.integration.inline-menu||Allow user to add actions/trigger/invoke inline from canvas instead of drag and drop||18.3.1|
|oic.ics.console.integration.nested-try-scopes||Allow user to create nested scopes||A simple guide to use nested scope in orchestration||18.2.5|
|oic.ics.console.schedule.parameter-override-support||Allows user to override the schedule parameters||Overriding Schedule Parameters||18.2.3|
|oic.ics.feature.new-version-check||Control whether to use the new cversion based compatibility check or with old ICS version based compatibility check.||19.3.1|
|oic.ics.mapper.encode-decode-on-files||Base64 Encode/Decode for Files||18.1.3|
|oic.ics.monitoring.historicalMetrics.migration||Historical metrics migration for OIC||19.2.3|
|oic.ics.scheduler.filea-async-workers||File-A Scheduled Flows using Async Workers||18.4.3|
|oic.ics.stagefile.reference.processing||Allow users to configure file reference in stagefile operations||18.3.3|
|oic.insight.jetui.production||Jet UI for Insight||18.3.1|
|oic.process.dt.metrics.cache||PCS projects metric cache||19.1.3|
|oic.trigger.error.instance||Creating failed instances in trigger||19.1.5|