Configuring config.json

Siebel Open Integration configuration is driven by config.json. You can configure the connection details for the Siebel Server and specify the Siebel CRM artifacts that you want to expose through REST, in config.json.

The installer creates a template file named config-template.jsonin the <INSTALL_DIR>/openint-deploydirectory. You must copy the config-template.jsonfile in the same folder and rename the copy as config.json.

You must configure the following sections in config.json:

  • app: Use the appsection to configure how Siebel Open Integration connects to the Siebel Server, the port at which Open Integration start, and the path of the transaction metrics.
  • apigen: Use the apigen section to define which Siebel CRM artifacts you want to expose through REST. Siebel Open Integration uses this section to generate and deploy REST APIs based on artifacts in your Siebel application, such as applets, business components, business services, and workflows.
  • eps: Use eps to define EPS and Kafka event settings. It is optional, but when present, it must follow the schema.

The app Section Parameters

You must use the appsection to configure how Siebel Open Integration connects to the Siebel Server. It includes the following parameters:

Parameter Section Description
siebel app Thissection includes the information to connect to Siebel Server.
useCG app> siebel Usethis parameter to specify where Siebel Open Integration gets the connection string from: · Set to trueto fetch the connection string from Cloud Gateway by using cg-url. · Set to false to use the value in connect-string.
cg-url app> siebel (Requiredif the useCG parameter is set to true.) Use this parameter to specify the Cloud GatewayURL.
connect-string app> siebel (Requiredif the useCGparameter is set to false.) Use this parameter to specify the connection string that Siebel Open Integration uses to connect to Siebel.
loginpath app> siebel Usethis parameter to specify the relative URLfor the Siebel application that handles UI requests. For example: /siebel/app/ callcenter/enu.
context app Use this parameter to specify the first path segmentin Siebel Open Integration REST URLs. For example, oracle.
port app Usethis parameter to specify the port on which the Open Integration server starts. For example, 8433.
metrics-path app Use this parameter to specify the file system locationwhere the Open Integration server stores transactions.

The apigen Section Parameters

Usethe apigensectionto define which Siebel CRM artifacts you want to expose through REST. You can configure the following resources under the apigensection:

  • The resources section to specify the artifacts that Open Integration exposes through REST APIs. Provide each artifact in the appropriate section based on its type:
    • openintegration/v1.0/ui: List view and applet pairs to expose UI-based resources. The REST API executes a ui query within the specified View and Applet scope. The query follows the user’s roles and responsibilities.For example, to fetch data from the View All Account List View and the Applet SIS Account Entry Applet, specify that View and Applet pair in the ui section as follows: All Account ListView/SIS Account Entry Applet

      After you deploy the Open Integration service, you can use the provided URL to fetch data from the server that runs the service. For example:

      https://<hostname:port>/<oracle>/openintegration/v1.0/ui/Account/All Account List View/SIS
                Account Entry Applet

      For more information and examples, see AppletAPIs (CRUD Operations)

    • openintegration/v1.0/data: List business object and business component pairs to access Siebel CRM Business Objects. For example, Account/Account/. For more information and examples, see topic Business Object APIs.
    • openintegration/v1.0/workflow: List Siebel workflows that you want to expose as REST APIs. For example, EAISiebDemoand
      ISS Promotion WS - ApplyProductPromotion –
                Order
      .For more information and examples, see topic Workflow APIs.
    • openintegration/v1.0/service: List Siebel business services that you want to expose through REST APIs. For example, SiebelAccount/Insert.For more information and examples, see topic Business Service APIs.
  • The apigen.integration-domains section to specify the Integration Domains associated with the Open Integration project. Add each Integration Domain that the project uses to expose, organize, or manage integration-related artifacts. If the project does not use any Integration Domains, you can omit this section.
Note: apigen.externalREST and apigen.outboundEvents are defined in domain files under integration-configurations/<Domain>/domain-configurations/, not in the base config.json file.

The eps Section Parameters

You must use the epssection to configure the Kafka event settings. It includes the following parameters:

Parameter Section Description
SecureAIEgressServer eps Use this parameter to specify whether the AI Egress server uses secure communication. Set the value to true to enable secure communication or false to disable it.
SecureAIToKafkaCommunication eps Use this parameter to specify whether communication between AI services and Kafka uses secure transport. Set the value to true to enable secure communication. When enabled, you must also configure the Kafka keystore, truststore, and password parameters.
AIEgressPort eps Use this parameter to specify the port on which the AI Egress server listens for connections.
KafkaServers eps Use this parameter to specify the Kafka bootstrap servers that Open Integration uses to connect to the Kafka cluster
KafkaKeyStoreName eps (Required if SecureAIToKafkaCommunication is set to true.) Use this parameter to specify the keystore file that contains the client certificate and private key used for secure Kafka communication.
KafkaKeyStorePassword eps (Required if SecureAIToKafkaCommunication is set to true.) Use this parameter to specify the password for the Kafka keystore.
KafkaTrustStoreName eps (Required if SecureAIToKafkaCommunication is set to true.) Use this parameter to specify the truststore file that contains the trusted certificates used to validate Kafka server certificates.
KafkaTrustStorePassword eps (Required if SecureAIToKafkaCommunication is set to true.) Use this parameter to specify the password for the Kafka truststore.
KafkaPassword eps (Required if SecureAIToKafkaCommunication is set to true.) Use this parameter to specify the password used for Kafka authentication.
aieventconfig eps This section contains the AI event processing configuration.
ConfigParam

eps > aieventconfig

This section contains the configuration parameters used for AI event processing and Kafka integration.
SynchronousKafkaProduce eps > aieventconfig > ConfigParam Use this parameter to specify whether Kafka messages are produced synchronously. Set the value to true to wait for message delivery confirmation before continuing processing.
BaseSiebelComponent eps > aieventconfig > ConfigParam This section contains the default Siebel component configuration used for event processing.
Alias eps > aieventconfig > ConfigParam > BaseSiebelComponent Use this parameter to specify the alias of the Siebel component.
SessionPoolSize eps > aieventconfig > ConfigParam > BaseSiebelComponent Use this parameter to specify the number of Siebel sessions maintained in the session pool.
User eps > aieventconfig > ConfigParam > BaseSiebelComponent Use this parameter to specify the number of Siebel sessions maintained in the session pool.
Password eps > aieventconfig > ConfigParam > BaseSiebelComponent Use this parameter to specify the password for the Siebel user account.
SessionTime eps > aieventconfig > ConfigParam > BaseSiebelComponent Use this parameter to specify the session timeout value for Siebel sessions.
NumberOfProducers eps > aieventconfig > ConfigParam Use this parameter to specify the number of Kafka producer instances created for event publishing.
KafkaProducerMaxRequestSize eps > aieventconfig > ConfigParam Use this parameter to specify the maximum request size, in bytes, that a Kafka producer can send.
KafkaTopicConsumerFetchMaxBytes eps > aieventconfig > ConfigParam Use this parameter to specify the maximum amount of data, in bytes, that a Kafka consumer can retrieve in a single fetch request.
KafkaConsumerPollInterval eps > aieventconfig > ConfigParam Use this parameter to specify the interval used by Kafka consumers when polling for messages.
Events eps > aieventconfig > ConfigParam This section contains the list of event definitions processed by the AI event framework.
EventStore eps > aieventconfig > ConfigParam > Events Use this parameter to specify the event store associated with the event configuration.
NumberOfConsumers eps > aieventconfig > ConfigParam > Events Use this parameter to specify the number of Kafka consumer instances assigned to the event.
KafkaConsumerGroupId eps > aieventconfig > ConfigParam > Events

Use this parameter to specify the Kafka consumer group identifier used by consumers for the event.

SiebelComponent eps > aieventconfig > ConfigParam > Events This section contains Siebel component settings that apply specifically to the event configuration.
Alias eps > aieventconfig > ConfigParam > Events > SiebelComponent Use this parameter to specify the alias of the Siebel component used for the event.
SessionPoolSize eps > aieventconfig > ConfigParam > Events > SiebelComponent Use this parameter to specify the number of Siebel sessions maintained in the session pool for the event.
KafkaConsumerPollInterval eps > aieventconfig > ConfigParam > Events > SiebelComponent Use this parameter to specify the polling interval used by the Kafka consumer for the event.
User eps > aieventconfig > ConfigParam > Events > SiebelComponent

Use this parameter to specify the Siebel user name used to establish sessions for the event.

Password eps > aieventconfig > ConfigParam > Events > SiebelComponent Use this parameter to specify the password for the Siebel user account.
SessionTime eps > aieventconfig > ConfigParam > Events > SiebelComponent Use this parameter to specify the session timeout value for the event-specific Siebel sessions.

Sample config.json


{
  "Openint": {
    "client": {
      "tls": {
        "private-key": {
          "keystore": {
            "resource": {
              "resource-path": "siebelclientkeystore.jks"
            },
            "type": "JKS",
            "passphrase": "client",
            "key": {
              "alias": "siebel"
            },
            "idp": {
              "alias": "idp-signing-key",
              "oi": {
                "key": {
                  "alias": "openint-key-2026"
                }
              }
            }
          }
        }
      }
    },
    "server": {
      "shutdown-grace-period": "PT15S",
      "tls": {
        "trust": {
          "keystore": {
            "resource": {
              "resource-path": "siebeltruststore.jks"
            },
            "type": "JKS",
            "passphrase": "siebel",
            "trust-store": true
          }
        },
        "private-key": {
          "keystore": {
            "resource": {
              "resource-path": "siebelserverkeystore.jks"
            },
            "type": "JKS",
            "passphrase": "server",
            "key": {
              "alias": "siebel"
            }
          }
        }
      },
      "features": {
        "security": {
          "paths": [
            {
              "path": "/openintegration/v1.0/[{+path}/]{last:(?!describe$)[^/]+}[/]",
              "methods": [
                "get",
                "post",
                "put",
                "delete"
              ],
              "authenticate": true,
              "authorize": true,
              "abac": {
                "scopes": [
                  "read"
                ]
              }
            }
          ]
        }
      }
    },
    "cache": {
      "enabled": false,
      "cluster-name": "siebel",
      "request-timeout": "2s",
      "tlsEnabled": true,
      "wka": [
        "127.0.0.1"
      ]
    },
    "threshold": {
      "ui-connection-threshold": 75
    },
    "integrations": {
      "jsonata": {
        "pool": {
          "max-size": 16,
          "core-size": 4,
          "acquire-timeout-millis": 250,
          "idle-ttl-millis": 300000,
          "cleanup-interval-millis": 30000
        }
      }
    },
    "tracing": {
      "enabled": false,
      "service": "open-integration",
      "otlp-protocol": "grpc",
      "protocol": "http",
      "host": "localhost",
      "port": 4317,
      "sampler-type": "const",
      "sampler-param": 1,
      "propagation": "b3",
      "tags": {
        "env": "development"
      }
    },
    "security": {
      "enabled": false,
      "config": {
        "require-encryption": false
      },
      "providers": [
        {
          "abac": {}
        },
        {
          "oidc": {
            "identity-uri": "IDCS URL",
            "client-id": "IDCS Client ID",
            "client-secret": "IDCS Client Secret",
            "audience": "openintv2_",
            "server-type": "idcs",
            "redirect": false,
            "header-use": true
          }
        }
      ]
    },
    "restrictive-cors": {
      "allow-origins": [],
      "allow-methods": []
    },
    "cors": {
      "paths": [
        {
          "path-pattern": [],
          "allow-origins": [],
          "allow-methods": []
        }
      ]
    }
  },
  "Profile": {
    "ProfileName": "phoenix21234220441"
  },
  "ConfigParam": {
    "Applications": [
      {
        "Name": "callcenter",
        "Language": "enu",
        "ObjectManager": "sccobjmgr_enu",
        "MaxTasks": 100,
        "AuthenticationProperties": {
          "UserSpec": "SBL_REMOTE_USER",
          "TrustToken": "ldap",
          "SingleSignOn": true,
          "AnonUserName": "GUESTCST",
          "SessionTimeout": 300,
          "GuestSessionTimeout": 300
        }
      }
    ],
    "RESTInBound": {
      "MaxConnections": 20,
      "RESTAuthenticationProperties": {
        "TrustToken": "ldap",
        "AnonUserName": "GUESTCST",
        "UserSpec": "SBL_REMOTE_USER"
      },
      "ObjectManager": "eaiobjmgr_enu"
    }
  }
}
Note: The config-template.json file shows inline help as commented example strings, but JSON does not support comments. For the app section, replace every placeholder with an actual value. For apigen, if you do not want to configure a resource type (for example: workflow), remove the entire entry instead of leaving the placeholder text. Otherwise, the pipeline can fail with an “expected resources are not found” error.

You can use the ui section to list View and Applet pairs.

The REST API executes a ui query within the specified View and Applet scope. The query follows the user’s roles and responsibilities.