Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
a023861
add generated classes
vladimir-a-sap Aug 25, 2026
d1db18c
add generated classes
vladimir-a-sap Aug 25, 2026
388701e
Merge branch 'main' into rpt-orchestration
vladimir-a-sap Aug 26, 2026
0b9a644
Merge branch 'main' into rpt-orchestration
CharlesDuboisSAP Aug 26, 2026
77f3749
Merge branch 'refs/heads/main' into rpt-orchestration
CharlesDuboisSAP Aug 31, 2026
018ecf6
Merge branch 'refs/heads/main' into rpt-orchestration
CharlesDuboisSAP Sep 1, 2026
2549ae6
WiP
CharlesDuboisSAP Sep 1, 2026
5c29042
Javadoc + reorg
CharlesDuboisSAP Sep 2, 2026
f988c41
Merge branch 'refs/heads/main' into rpt-orchestration
CharlesDuboisSAP Sep 2, 2026
ac5226a
CharlesDuboisSAP Sep 2, 2026
44de3b4
rename to tabular-orchestration
CharlesDuboisSAP Sep 2, 2026
ccf9a14
Updated and fixed specs
CharlesDuboisSAP Sep 2, 2026
30ff0f2
Added more unit tests
CharlesDuboisSAP Sep 2, 2026
52beeec
finished
CharlesDuboisSAP Sep 2, 2026
9a5c893
Merge branch 'main' into rpt-orchestration
CharlesDuboisSAP Sep 2, 2026
f47d35a
rework
CharlesDuboisSAP Sep 2, 2026
c275ebd
move tabular to core-services folder
CharlesDuboisSAP Sep 2, 2026
d91c864
orchestration package
CharlesDuboisSAP Sep 2, 2026
f7e4c54
revert checkstyle suppressions
CharlesDuboisSAP Sep 2, 2026
4a7bd7e
Merge branch 'main' into rpt-orchestration
CharlesDuboisSAP Sep 3, 2026
0b827f3
Added TabularClient.java
CharlesDuboisSAP Sep 3, 2026
52e66ac
Merge branch 'main' into rpt-orchestration
CharlesDuboisSAP Sep 3, 2026
1ebccc6
cleanup
CharlesDuboisSAP Sep 4, 2026
02bdd16
inex and controller
CharlesDuboisSAP Sep 4, 2026
87900f8
Merge branch 'main' into rpt-orchestration
CharlesDuboisSAP Sep 4, 2026
df1057d
added tabular-predict worklfow
CharlesDuboisSAP Sep 4, 2026
1c87452
pr title
CharlesDuboisSAP Sep 4, 2026
1da6566
release notes
CharlesDuboisSAP Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/pr-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ jobs:
Grounding
RPT
Batch
Tabular
headerPattern: '^(\w.+): (?:\[(\w.+)\] )?(.+)$'
headerPatternCorrespondence: type, scope, subject
# for available types, check:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/spec-update-cleanup.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ on:
- orchestration
- prompt-registry
- sap-rpt
- batch
- tabular-orchestration
- tabular-predict
default: orchestration
ref:
description: 'Original branch or tag the branch was created from'
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/spec-update.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ on:
- prompt-registry
- sap-rpt
- batch
- tabular-orchestration
- tabular-predict
default: orchestration
ref:
description: 'Branch or tag to checkout the spec file from'
Expand Down Expand Up @@ -171,6 +173,16 @@ jobs:
FILE_PATH='core-services/batch/src/main/resources/spec/batch-service.yaml'
MODULE_PATH='core-services/batch'
;;
tabular-orchestration) #https://github.tools.sap/AI/context-registry/blob/main/docs/public/business_api_hub/api_hub_merged_spec.yaml
API_URL="$API_BASE_URL/AI/context-registry/contents/docs/public/business_api_hub/api_hub_merged_spec.yaml?ref=$REF"
FILE_PATH='foundation-models/tabular-orchestration/src/main/resources/spec/tabular-orchestration.yaml'
MODULE_PATH='foundation-models/tabular-orchestration'
;;
tabular-predict) #https://github.tools.sap/AI/context-registry/blob/main/docs/public/business_api_hub/api_hub_merged_spec.yaml
API_URL="$API_BASE_URL/AI/context-registry/contents/docs/public/business_api_hub/tabular-predict.json?ref=$REF"
FILE_PATH='foundation-models/tabular-orchestration/src/main/resources/spec/tabular-predict.json'
MODULE_PATH='foundation-models/tabular-orchestration'
;;
esac

echo "module_path=$MODULE_PATH" >> "$GITHUB_OUTPUT"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/weekly-spec-update.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ jobs:
- orchestration
- sap-rpt
- batch
- tabular-orchestration
- tabular-predict

steps:
- name: 'Checkout repository'
Expand Down
4 changes: 1 addition & 3 deletions .pipeline/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@
<!-- Suppress generated clients -->
<suppress files="[/\\]core[/\\]client[/\\]" checks=".*"/>
<suppress files="[/\\]core[/\\]model[/\\]" checks=".*"/>
<suppress files="[/\\]openai[/\\]generated[/\\]model[/\\]" checks=".*"/>
<suppress files="[/\\]rpt[/\\]generated[/\\]" checks=".*"/>
<suppress files="[/\\]orchestration[/\\]model[/\\]" checks=".*"/>
<suppress files="[/\\]grounding[/\\]client[/\\]" checks=".*"/>
<suppress files="[/\\]grounding[/\\]model[/\\]" checks=".*"/>
<suppress files="[/\\]registry[/\\]client[/\\]" checks=".*"/>
<suppress files="[/\\]registry[/\\]model[/\\]" checks=".*"/>
<suppress files="[/\\]batch[/\\]generated[/\\]" checks=".*"/>
<suppress files="[/\\]generated[/\\]" checks=".*"/>
<!-- Suppress TODOs -->
<suppress files="OpenAiChatMessage.java" checks="TodoComment" lines="261,7" />
<suppress files="ChatCompletionResponseMessage.java" checks="TodoComment" lines="53,34" />
Expand Down
1 change: 1 addition & 0 deletions .pipeline/spotbugs-exclusions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<Package name="com.sap.ai.sdk.foundationmodels.rpt.generated.model"/>
<Package name="com.sap.ai.sdk.prompt.registry.model"/>
<Package name="com.sap.ai.sdk.prompt.registry.client"/>
<Package name="com.sap.ai.sdk.foundationmodels.tabular.generated"/>
</Or>
</Match>
<Match>
Expand Down
199 changes: 199 additions & 0 deletions core-services/tabular-orchestration/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sap.ai.sdk</groupId>
<artifactId>sdk-parent</artifactId>
<version>1.25.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>tabular-orchestration</artifactId>
<name>Orchestration tabular prediction client</name>
<description>SAP Cloud SDK for AI is the official Software Development Kit (SDK) for SAP AI Core, SAP Generative AI Hub, and Orchestration Service. This is the client for the Orchestration tabular prediction service.</description>
<url>https://github.com/SAP/ai-sdk-java?tab=readme-ov-file#documentation</url>
<organization>
<name>SAP SE</name>
<url>https://www.sap.com</url>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>SAP</name>
<email>ai-core-sdk@sap.com</email>
<organization>SAP SE</organization>
<organizationUrl>https://www.sap.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/SAP/ai-sdk-java.git</connection>
<developerConnection>scm:git:ssh://github.com:SAP/ai-sdk-java.git</developerConnection>
<url>https://github.com/SAP/ai-sdk-java/tree/main</url>
</scm>
<properties>
<project.rootdir>${project.basedir}/../../</project.rootdir>
<coverage.complexity>80%</coverage.complexity>
<coverage.line>91%</coverage.line>
<coverage.instruction>89%</coverage.instruction>
<coverage.branch>50%</coverage.branch>
<coverage.method>88%</coverage.method>
<coverage.class>100%</coverage.class>
</properties>

<dependencies>
<!-- scope "compile" -->
<dependency>
<groupId>com.sap.ai.sdk</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
<artifactId>cloudplatform-connectivity</artifactId>
</dependency>
<dependency>
<groupId>com.sap.cloud.sdk.datamodel</groupId>
<artifactId>openapi-core-apache</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<!-- scope "provided" -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- scope "test" -->
<dependency>
<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
<artifactId>connectivity-apache-httpclient5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wiremock</groupId>
<artifactId>wiremock</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<executions>
<execution>
<id>api-compatibility</id>
<configuration>
<parameter>
<includes combine.children="append">
<include>com.sap.ai.sdk.tabular.generated</include>
</includes>
</parameter>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<profiles>
<profile>
<id>generate</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>generate</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.sap.cloud.sdk.datamodel</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<configuration>
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
<enableOneOfAnyOfGeneration>true</enableOneOfAnyOfGeneration>
<compileScope>COMPILE</compileScope>
<deleteOutputDirectory>true</deleteOutputDirectory>
</configuration>
<executions>
<execution>
<id>tabular-orchestration</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/spec/tabular-orchestration.yaml</inputSpec>
<modelPackage>com.sap.ai.sdk.tabular.generated.orchestration.model</modelPackage>
<apiPackage>com.sap.ai.sdk.tabular.generated.orchestration.client</apiPackage>
<additionalProperties>
<library>apache-httpclient</library>
<pojoBuilderMethodName>create</pojoBuilderMethodName>
<pojoBuildMethodName/>
<pojoConstructorVisibility>protected</pojoConstructorVisibility>
<enumUnknownDefaultCase>true</enumUnknownDefaultCase>
<removeOperationIdPrefix>true</removeOperationIdPrefix>
<removeOperationIdPrefixDelimiter>\.</removeOperationIdPrefixDelimiter>
<removeOperationIdPrefixCount>4</removeOperationIdPrefixCount>
<useOneOfInterfaces>true</useOneOfInterfaces>
<removeEnumValuePrefix>true</removeEnumValuePrefix>
<useOneOfCreators>true</useOneOfCreators>
<useFloatArrays>true</useFloatArrays>
</additionalProperties>
</configuration>
</execution>
<execution>
<id>tabular-prediction</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/spec/tabular-predict.json</inputSpec>
<modelPackage>com.sap.ai.sdk.tabular.generated.predict.model</modelPackage>
<apiPackage>com.sap.ai.sdk.tabular.generated.predict.client</apiPackage>
<additionalProperties>
<library>apache-httpclient</library>
<pojoBuilderMethodName>create</pojoBuilderMethodName>
<pojoBuildMethodName/>
<pojoConstructorVisibility>protected</pojoConstructorVisibility>
<enumUnknownDefaultCase>true</enumUnknownDefaultCase>
<useOneOfInterfaces>true</useOneOfInterfaces>
<removeEnumValuePrefix>true</removeEnumValuePrefix>
<useOneOfCreators>true</useOneOfCreators>
<useFloatArrays>true</useFloatArrays>
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Loading