5.2 Before You Begin

Ensure that you meet these prerequisites before starting the tasks in this chapter.

  • Oracle AI Database installation: Version 23.26.2 or later, installed on a Linux host.
  • Command-line utilities: curl, openssl, and Python 3 installed on the build or test host. Required to generate PKCE challenges, execute API requests, and format JSON responses.
  • Java installation: Version 17 or later. Required for the Spring Boot application. If multiple Java versions are installed, set JAVA_HOME explicitly:
    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk 
    export PATH=$JAVA_HOME/bin:$PATH 
    java -version # verify: openjdk version "17.x.x" or later
  • Maven installation: Version 3.9 or later. Required to build the application. If installed manually or not on PATH, set MAVEN_HOME explicitly:
    export MAVEN_HOME=/opt/maven/apache-maven-3.9.x
    export PATH=$MAVEN_HOME/bin:$PATH
    mvn -version # verify: Apache Maven 3.9.x or later
  • Microsoft Entra ID access: A Microsoft Entra account with domain or application administrator privileges. Required to create application registrations, define roles, and manage users in Microsoft Entra ID.
  • Network access: Host connectivity to external endpoints. If your host is behind a firewall, configure an HTTP proxy for the following services:
    • Microsoft Entra ID (login.microsoftonline.com, sts.windows.net): Required for the database-access token validation. Set the http_proxy and https_proxy environment variables and restart the listener:
      export http_proxy=http://<your-proxy-host>:<port>/
      export https_proxy=http://<your-proxy-host>:<port>/
      lsnrctl stop
      lsnrctl start
    • Maven Central (repo.maven.apache.org): Required for downloading build dependencies. Create or edit ~/.m2/settings.xml as follows:
      <settings>
            <proxies>
                <proxy>
                    <id>http-proxy</id>
                    <active>true</active>
                    <protocol>http</protocol>
                    <host><your-proxy-host></host>
                    <port><your-proxy-port></port>
                </proxy>
                <proxy>
                    <id>https-proxy</id>
                    <active>true</active>
                    <protocol>https</protocol>
                    <host><your-proxy-host></host>
                    <port><your-proxy-port></port>
                </proxy>
            </proxies>
        </settings>