<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.cloudhandson</groupId>
  <artifactId>vpd-permission-backoffice</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>vpd-permission-backoffice</name>
  <description>Spring Boot backoffice for VPD, bearer token, and ORDS permission probes</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.3.8</version>
    <relativePath/>
  </parent>

    <properties>
      <java.version>21</java.version>
      <mybatis-spring-boot.version>3.0.4</mybatis-spring-boot.version>
      <oracle.jdbc.version>23.6.0.24.10</oracle.jdbc.version>
      <!-- GPT-5.5 response/schema support is supplied by the current OCI SDK. -->
      <oci.sdk.version>3.90.1</oci.sdk.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>${mybatis-spring-boot.version}</version>
    </dependency>
    <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc11</artifactId>
      <version>${oracle.jdbc.version}</version>
    </dependency>
    <dependency>
      <groupId>com.oracle.database.security</groupId>
      <artifactId>oraclepki</artifactId>
      <version>${oracle.jdbc.version}</version>
    </dependency>
    <!-- OCI API-key signing for the SQL-script explanation assistant.  The
         private key remains in the configured OCI config file, never in the
         application environment or Git. -->
    <dependency>
      <groupId>com.oracle.oci.sdk</groupId>
      <artifactId>oci-java-sdk-generativeaiinference</artifactId>
      <version>${oci.sdk.version}</version>
    </dependency>
    <!-- OCI SDK service modules need exactly one concrete HTTP transport. The
         Jersey 3 transport is compatible with this Spring Boot 3 application. -->
    <dependency>
      <groupId>com.oracle.oci.sdk</groupId>
      <artifactId>oci-java-sdk-common-httpclient-jersey3</artifactId>
      <version>${oci.sdk.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <!-- Keep the reviewed SQL in sql/adb as the sole Git source, and bundle
           only the curated read-only viewer set into the deployed JAR. -->
      <resource>
        <directory>sql/adb</directory>
        <targetPath>sql/adb</targetPath>
        <includes>
          <include>62_kb_aso_masking_backoffice_metadata.sql</include>
          <include>63_kb_aso_masking_rule_runtime.sql</include>
          <include>64_kb_aso_masking_default_column_rules.sql</include>
          <include>65_kb_select_ai_vpd_query_api.sql</include>
          <include>66_kb_select_ai_vpd_query_ords.sql</include>
        </includes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>
