Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
e094b95
SK-2967 split out the common things from v2 and v3 into common module
skyflow-bharti Jul 10, 2026
05c58d2
SK-2967 add interface for skyflow
skyflow-bharti Jul 10, 2026
f92349c
SK-2967 move common code from v2 and flowvault
skyflow-bharti Jul 13, 2026
6f2f55c
SK-2967 fix tests
skyflow-bharti Jul 13, 2026
7356089
SK-2967 add base insert request and refactor the base skyflow
skyflow-bharti Jul 14, 2026
77ec4af
SK-2967 move vault url in v3
skyflow-bharti Jul 14, 2026
0e9a9c7
SK-2967 update generated code
skyflow-bharti Jul 16, 2026
21493da
Merge branch 'main' into SK-2967-java-sdk-add-flow-db-vault-api-suppo…
skyflow-bharti Jul 16, 2026
b82be16
Merge pull request #347 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 16, 2026
4c2b3a7
SK-2967 update the internal release
skyflow-bharti Jul 16, 2026
91125b1
Merge pull request #349 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 16, 2026
80e18fd
SK-2967 update script version
skyflow-bharti Jul 16, 2026
f6a6992
Merge pull request #350 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 16, 2026
a7cda5c
[AUTOMATED] Private Release 1.15.1-dev-f6a6992
skyflow-bharti Jul 16, 2026
678704e
SK-2967 update internal release workflow
skyflow-bharti Jul 16, 2026
807824c
Merge pull request #351 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 16, 2026
e14faed
[AUTOMATED] Private Release 1.15.1-dev-807824c
skyflow-bharti Jul 16, 2026
ca1cfb4
SK-2967 add interfaces
skyflow-bharti Jul 17, 2026
556e552
SK-2967 fix internal release workflows
skyflow-bharti Jul 17, 2026
cd30d53
Merge pull request #353 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 17, 2026
7cea4eb
[AUTOMATED] Private Release 1.15.1-dev-cd30d53
skyflow-bharti Jul 17, 2026
eacdd60
SK-2967 fix internal release workflows
skyflow-bharti Jul 17, 2026
347dbce
Merge branch 'release/26.7.1' into SK-2967-java-sdk-add-flow-db-vault…
skyflow-bharti Jul 17, 2026
139086e
Merge pull request #354 from skyflowapi/SK-2967-java-sdk-add-flow-db-…
skyflow-bharti Jul 17, 2026
f1763a5
[AUTOMATED] Private Release 1.15.1-dev-139086e
skyflow-bharti Jul 17, 2026
d161a42
SK-2967 fix internal release workflows
skyflow-bharti Jul 17, 2026
efdbfc4
Merge branch 'release/26.7.1' into SK-2967-java-sdk-add-flow-db-vault…
skyflow-bharti Jul 17, 2026
08e1761
SK-2967 fix internal release workflows
skyflow-bharti Jul 17, 2026
7dd73d5
SK-2967 fix internal release workflows
skyflow-bharti Jul 17, 2026
5ee3646
SK-2967 add back the bulk interfaces
skyflow-bharti Jul 17, 2026
a9c2b55
SK-2967 implement client
skyflow-bharti Jul 20, 2026
1b6f88c
SK-2967 fix compile errors
skyflow-bharti Jul 20, 2026
073e630
SK-2967 fix compile errors
skyflow-bharti Jul 20, 2026
64d51ef
SK-2967 revert generated code
skyflow-bharti Jul 20, 2026
27492d9
Merge branch 'flowvault-release/26.7.1.2' into SK-2967-java-sdk-add-f…
skyflow-bharti Jul 21, 2026
30628cf
SK-2967 improve the issues
skyflow-bharti Jul 21, 2026
7caa863
SK-2984 Add contract testing for v2 SDK (#352)
saileshwar-skyflow Jul 24, 2026
5c519c1
SK-2967 added query and get methods
skyflow-bharti Jul 27, 2026
685a82f
SK-3026 insert and detokenize added accordingt to doc
skyflow-bharti Aug 2, 2026
9476dce
SK-3026 fix test env
skyflow-bharti Aug 2, 2026
5364d8e
SK-3026 fix response building
skyflow-bharti Aug 2, 2026
65e4c73
SK-3026 fix spell check
skyflow-bharti Aug 2, 2026
470f913
SK-3026 fix spell check
skyflow-bharti Aug 2, 2026
c1c5719
SK-3026 point codecov at per-module jacoco reports
Devesh-Skyflow Aug 2, 2026
5bbe58c
SK-3026 fix codecov component paths for the modular layout
Devesh-Skyflow Aug 2, 2026
c314875
SK-3026 added retries
skyflow-bharti Aug 2, 2026
8745817
SK-3026 update the name of vaultURL
skyflow-bharti Aug 2, 2026
671dbf3
Merge pull request #384 from skyflowapi/SK-3026-java-sdk-fix-contract…
skyflow-bharti Aug 2, 2026
0e65c69
[AUTOMATED] Private Release 3.0.0-beta.13-dev-671dbf3
skyflow-bharti Aug 2, 2026
0d4db0a
SK-3026 fix the doc error in release
skyflow-bharti Aug 2, 2026
734ce68
[AUTOMATED] Private Release 3.0.0-beta.13-dev-0d4db0a
skyflow-bharti Aug 2, 2026
202473d
SK-3026 added samples folder in each modules v2 and v3
skyflow-bharti Aug 2, 2026
1fd71da
[AUTOMATED] Private Release 3.0.0-beta.13-dev-202473d3
skyflow-bharti Aug 2, 2026
a341d09
SK-3026 added samples folder in each modules v2 and v3
skyflow-bharti Aug 2, 2026
738e753
[AUTOMATED] Private Release 3.0.0-beta.13-dev-a341d09f
skyflow-bharti Aug 2, 2026
1dea6f8
SK-3037: rework delete and tokenize to the FlowDB contract (#385)
saileshwar-skyflow Aug 2, 2026
cfeaab8
[AUTOMATED] Private Release 3.0.0-beta.13-dev-1dea6f89
saileshwar-skyflow Aug 2, 2026
9a074a9
SK-3026 fix insert issue
skyflow-bharti Aug 2, 2026
c082d32
[AUTOMATED] Private Release 3.0.0-beta.13-dev-9a074a90
skyflow-bharti Aug 2, 2026
61de168
SK-3026 Fix api exception level issue
skyflow-bharti Aug 2, 2026
1b0bf6e
[AUTOMATED] Private Release 3.0.0-beta.13-dev-61de168d
skyflow-bharti Aug 2, 2026
f70f738
SK-3026 Fix api exception level issue for detokenize
skyflow-bharti Aug 2, 2026
bd4af72
[AUTOMATED] Private Release 3.0.0-beta.13-dev-f70f738d
skyflow-bharti Aug 2, 2026
28dcc89
SK-3026 fix naming for skyflow id in detokenize
skyflow-bharti Aug 2, 2026
d373373
[AUTOMATED] Private Release 3.0.0-beta.13-dev-28dcc895
skyflow-bharti Aug 2, 2026
1458dbd
SK-3026 add request id in insert and detokenize
skyflow-bharti Aug 2, 2026
cf98b8d
[AUTOMATED] Private Release 3.0.0-beta.13-dev-1458dbdb
skyflow-bharti Aug 2, 2026
ed84cb8
SK-3026 update options name in insert and detokenize
skyflow-bharti Aug 3, 2026
b4756e8
[AUTOMATED] Private Release 3.0.0-beta.13-dev-ed84cb86
skyflow-bharti Aug 3, 2026
3671a19
SK-3026 fix spell check
skyflow-bharti Aug 3, 2026
57e14ce
[AUTOMATED] Private Release 3.0.0-beta.13-dev-3671a19a
skyflow-bharti Aug 3, 2026
16df1ee
Merge pull request #389 from skyflowapi/flowvault-release/26.8.1.1
skyflow-bharti Aug 3, 2026
a7ebe17
[AUTOMATED] Private Release 3.0.0-beta.13-dev-16df1ee5
skyflow-bharti Aug 3, 2026
6577fa7
SK-3037 give the bulk tokenize and delete interfaces their own option…
saileshwar-skyflow Aug 3, 2026
70d9c98
[AUTOMATED] Private Release 3.0.0-beta.13-dev-6577fa70
saileshwar-skyflow Aug 3, 2026
9bd1b4b
SK-3026 retry logic update
skyflow-bharti Aug 3, 2026
a136e02
[AUTOMATED] Private Release 3.0.0-beta.13-dev-9bd1b4be
skyflow-bharti Aug 3, 2026
969e339
Merge branch 'flowvault-release/26.8.1' into flowvault-release/26.8.1.1
skyflow-bharti Aug 3, 2026
26cc382
[AUTOMATED] Private Release 3.0.0-beta.13-dev-969e339a
skyflow-bharti Aug 3, 2026
eb744eb
SK-3026 fix spell check
skyflow-bharti Aug 3, 2026
128e2ed
[AUTOMATED] Private Release 3.0.0-beta.13-dev-eb744eb6
skyflow-bharti Aug 3, 2026
f2f6bb2
SK-3026 update v2 folder to skyvault
skyflow-bharti Aug 3, 2026
1b93d71
[AUTOMATED] Private Release 3.0.0-beta.13-dev-f2f6bb20
skyflow-bharti Aug 3, 2026
5e36805
SK-3026 add unit tests
skyflow-bharti Aug 3, 2026
7ce8fe2
[AUTOMATED] Private Release 3.0.0-beta.13-dev-5e368050
skyflow-bharti Aug 3, 2026
f72e221
Merge pull request #392 from skyflowapi/flowvault-release/26.8.1.1
skyflow-bharti Aug 3, 2026
9f7364f
[AUTOMATED] Private Release 3.0.0-beta.13-dev-f72e2218
skyflow-bharti Aug 3, 2026
2a83759
SK-3037 report the real cause when tokenize or delete never reach the…
saileshwar-skyflow Aug 3, 2026
5a4a8f5
[AUTOMATED] Private Release 3.0.0-beta.13-dev-2a83759e
saileshwar-skyflow Aug 3, 2026
58dda85
SK-3026 add tests
skyflow-bharti Aug 3, 2026
a898994
[AUTOMATED] Private Release 3.0.0-beta.13-dev-58dda850
skyflow-bharti Aug 3, 2026
1ff9144
SK-3026 add tests
skyflow-bharti Aug 3, 2026
ff4c29c
[AUTOMATED] Private Release 3.0.0-beta.13-dev-1ff91444
skyflow-bharti Aug 3, 2026
ef9fa59
SK-2967 Backport pr-flowvault.yml CI workflow (#391)
Devesh-Skyflow Aug 3, 2026
408c1dd
[AUTOMATED] Private Release 3.0.0-beta.13-dev-ef9fa592
Devesh-Skyflow Aug 3, 2026
50bd81f
Merge branch 'main' into flowvault-release/26.8.1
skyflow-bharti Aug 3, 2026
ae3d89d
SK-3037 add bulk tokenize and delete-tokens samples (#395)
saileshwar-skyflow Aug 3, 2026
1bdb24b
SK-3026 update custom header naming convention
skyflow-bharti Aug 3, 2026
b05ef4f
SK-3026 fix workfow
skyflow-bharti Aug 3, 2026
6085956
[AUTOMATED] Private Release 3.0.0-beta.13-dev-b05ef4fb
skyflow-bharti Aug 3, 2026
e8e0e2d
[AUTOMATED] Private Release 3.0.0-beta.13-dev-60859567
skyflow-bharti Aug 3, 2026
eb82be1
[AUTOMATED] Private Release 3.0.0-beta.13-dev-e8e0e2d0
skyflow-bharti Aug 3, 2026
496c83a
[AUTOMATED] Private Release 3.0.0-beta.13-dev-eb82be1b
skyflow-bharti Aug 3, 2026
5ddc562
[AUTOMATED] Private Release 3.0.0-beta.13-dev-496c83a0
skyflow-bharti Aug 3, 2026
e6552a0
[AUTOMATED] Private Release 3.0.0-beta.13-dev-5ddc5628
skyflow-bharti Aug 3, 2026
c804c74
[AUTOMATED] Private Release 3.0.0-beta.13-dev-e6552a0a
skyflow-bharti Aug 3, 2026
6ff46f0
[AUTOMATED] Private Release 3.0.0-beta.13-dev-c804c748
skyflow-bharti Aug 3, 2026
291b820
[AUTOMATED] Private Release 3.0.0-beta.13-dev-6ff46f02
skyflow-bharti Aug 3, 2026
99612f5
[AUTOMATED] Private Release 3.0.0-beta.13-dev-291b8206
skyflow-bharti Aug 3, 2026
674f7b0
[AUTOMATED] Private Release 3.0.0-beta.13-dev-99612f55
skyflow-bharti Aug 3, 2026
068e293
[AUTOMATED] Private Release 3.0.0-beta.13-dev-674f7b00
skyflow-bharti Aug 3, 2026
1af848a
[AUTOMATED] Private Release 3.0.0-beta.13-dev-068e293a
skyflow-bharti Aug 3, 2026
821cc99
[AUTOMATED] Private Release 3.0.0-beta.13-dev-1af848a0
skyflow-bharti Aug 3, 2026
610b8f2
[AUTOMATED] Private Release 3.0.0-beta.13-dev-821cc992
skyflow-bharti Aug 3, 2026
43f0ba6
[AUTOMATED] Private Release 3.0.0-beta.13-dev-610b8f21
skyflow-bharti Aug 3, 2026
f973782
[AUTOMATED] Private Release 3.0.0-beta.13-dev-43f0ba69
skyflow-bharti Aug 3, 2026
6ea42d7
[AUTOMATED] Private Release 3.0.0-beta.13-dev-f9737826
skyflow-bharti Aug 3, 2026
dbbdb73
[AUTOMATED] Private Release 3.0.0-beta.13-dev-6ea42d7c
skyflow-bharti Aug 3, 2026
c22ffe1
SK-2967 restore the [AUTOMATED] loop guard to stop the release recursion
Devesh-Skyflow Aug 3, 2026
2e606ce
Split READMEs per package and resolve flowvault README review (#396)
Devesh-Skyflow Aug 3, 2026
2d54cf9
[AUTOMATED] Private Release 3.0.0-beta.13-dev-2e606ceb
Devesh-Skyflow Aug 3, 2026
18f8f1b
SK-2967 trim verbose comments in the release workflows
Devesh-Skyflow Aug 3, 2026
7e049c6
[AUTOMATED] Private Release 3.0.0-beta.13-dev-18f8f1ba
Devesh-Skyflow Aug 3, 2026
ecf6b4b
SK-3026 update samples
skyflow-bharti Aug 3, 2026
9cfa2c9
[AUTOMATED] Private Release 3.0.0-beta.13-dev-ecf6b4be
skyflow-bharti Aug 3, 2026
962614b
SK-3037 run contract tests for flowvault, and gate on the public API …
saileshwar-skyflow Aug 3, 2026
53bcb86
[AUTOMATED] Private Release 3.0.0-beta.13-dev-962614b1
saileshwar-skyflow Aug 3, 2026
dda2bac
SK-3026 remove unused tokens key in insert
skyflow-bharti Aug 3, 2026
60f44cc
[AUTOMATED] Private Release 3.0.0-beta.13-dev-dda2bace
skyflow-bharti Aug 3, 2026
46cbffa
SK-3026 fix tests
skyflow-bharti Aug 3, 2026
0abbbb4
[AUTOMATED] Private Release 3.0.0-beta.13-dev-46cbffad
skyflow-bharti Aug 3, 2026
7e97883
Merge branch 'flowvault-release/26.8.1' into flowvault-release/26.8.1.1
skyflow-bharti Aug 3, 2026
78fb577
[AUTOMATED] Private Release 3.0.0-beta.13-dev-7e97883a
skyflow-bharti Aug 3, 2026
7c0fb7b
SK-3026 added tokens support
skyflow-bharti Aug 3, 2026
c784ff3
[AUTOMATED] Private Release 3.0.0-beta.13-dev-7c0fb7be
skyflow-bharti Aug 3, 2026
c731182
Merge pull request #399 from skyflowapi/flowvault-release/26.8.1.1
skyflow-bharti Aug 3, 2026
a496119
[AUTOMATED] Private Release 3.0.0-beta.13-dev-c7311820
skyflow-bharti Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 16 additions & 3 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"**/*.{java,md,xml,yml,yaml,json,txt,properties}"
],
"words": [
"japicmp",
"Skyflow",
"skyflow",
"skyflowapi",
Expand Down Expand Up @@ -96,9 +97,20 @@
"nocreds",
"nodir",
"detok",
"qhdmceurtnlz",
"ngrok",
"obac"
"obac",
"siom",
"vaultid",
"recordss",
"synthesise",
"synthesised",
"deserialise",
"deserialised",
"unmodelled",
"recordss",
"rarr",
"servname",
"nodename"
],
"languageSettings": [
{
Expand All @@ -118,7 +130,8 @@
"**/target/**",
"*.lock",
"Rule/**",
"src/main/java/com/skyflow/generated/**",
"**/src/main/java/com/skyflow/generated/**",
"**/generated/**",
"**/*.ts",
"**/processed-*",
"samples/src/main/java/com/example/credentials.json",
Expand Down
20 changes: 0 additions & 20 deletions .github/workflows/beta-release.yml

This file was deleted.

166 changes: 166 additions & 0 deletions .github/workflows/contract-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: Contract Tests

on:
pull_request:
branches:
- main
- release/*
- flowvault-release/*

jobs:
contract-tests:
# One job per module so a break in one is reported against that module by name,
# and both still run even when the other fails.
name: Contract Tests (${{ matrix.module }})
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
include:
- module: skyvault
artifact: skyflow-java
- module: flowvault
artifact: skyflow-flowvault-java

permissions:
contents: read
pull-requests: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
cache: 'maven'

- name: Verify API surface snapshot
run: mvn -B install -pl common,${{ matrix.module }} -am -DskipTests -Dmaven.javadoc.skip=true -Dgpg.skip=true

- name: Show API surface diff
if: failure()
run: |
echo "### API surface changes detected in ${{ matrix.module }} ###"
echo "Compared against ${{ matrix.module }}/api-report/${{ matrix.artifact }}.baseline.jar."
echo "If this change is intentional, run:"
echo " scripts/contract-snapshot-update.sh ${{ matrix.module }}"
echo "and commit the updated baseline jar."
echo ""
cat ${{ matrix.module }}/target/japicmp/default-cli.diff || true

- name: Upload API surface diff on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: api-surface-diff-${{ matrix.module }}
path: ${{ matrix.module }}/target/japicmp/**
retention-days: 7

# The step above only shows a diff when the CURRENT build differs from the
# committed baseline - once someone runs contract-snapshot-update.sh and
# commits the refreshed baseline jar, that check goes green and shows nothing.
# A reviewer looking at a green PR that touches api-report/*.baseline.jar
# (a binary file) would otherwise have no way to see WHAT was just approved as
# the new contract. These steps explicitly diff the OLD committed baseline
# (from the PR's base branch) against the NEW committed baseline (from this PR)
# and post it as a PR comment, regardless of whether the check above passed.
- name: Check if contract baseline was updated in this PR
id: baseline-diff-check
if: always() && github.event.pull_request
run: |
git fetch origin "${{ github.event.pull_request.base.ref }}" --depth=1
BASELINE="${{ matrix.module }}/api-report/${{ matrix.artifact }}.baseline.jar"
if ! git diff --name-only "origin/${{ github.event.pull_request.base.ref }}" HEAD -- "$BASELINE" | grep -q .; then
echo "changed=false" >> "$GITHUB_OUTPUT"
elif git cat-file -e "origin/${{ github.event.pull_request.base.ref }}:$BASELINE" 2>/dev/null; then
echo "changed=true" >> "$GITHUB_OUTPUT"
else
# Added by this PR rather than modified: the module is getting its
# first baseline. git diff reports an addition as a change, but there
# is no old snapshot to `git show`, so a plain "true" here would send
# the next step into `git show <base>:<path>` and exit 128.
echo "changed=new" >> "$GITHUB_OUTPUT"
fi

- name: Diff old vs new contract baseline
if: always() && (steps.baseline-diff-check.outputs.changed == 'true' || steps.baseline-diff-check.outputs.changed == 'new')
run: |
BASELINE="${{ matrix.module }}/api-report/${{ matrix.artifact }}.baseline.jar"

if [ "${{ steps.baseline-diff-check.outputs.changed }}" = "new" ]; then
{
echo "\`$BASELINE\` is **new in this PR** - \`${{ matrix.module }}\` had no committed baseline before, so there is nothing to diff against."
echo ""
echo "This snapshot becomes the approved contract: every later PR is compared against it, and any incompatible change fails the \`Contract Tests (${{ matrix.module }})\` job until someone regenerates it deliberately. Review it as the starting point, not as a change."
} > /tmp/contract-baseline-diff.md
cat /tmp/contract-baseline-diff.md
exit 0
fi

curl -sL -o /tmp/japicmp-cli.jar "https://repo.maven.apache.org/maven2/com/github/siom79/japicmp/japicmp/0.26.0/japicmp-0.26.0-jar-with-dependencies.jar"
mvn -q -B dependency:build-classpath -pl ${{ matrix.module }} -Dmdep.outputFile=/tmp/module-classpath.txt -Dmaven.javadoc.skip=true -Dgpg.skip=true
git show "origin/${{ github.event.pull_request.base.ref }}:$BASELINE" > /tmp/old-baseline.jar

# Same allowlist the poms gate on, so the comment shows the contract and
# nothing else. Keep these in sync with the <includes> in the module poms.
java -jar /tmp/japicmp-cli.jar \
-o /tmp/old-baseline.jar \
-n "$BASELINE" \
-a protected \
-i "com.skyflow.Skyflow;com.skyflow.config;com.skyflow.enums;com.skyflow.errors;com.skyflow.serviceaccount.util;com.skyflow.vault.audit;com.skyflow.vault.bin;com.skyflow.vault.connection;com.skyflow.vault.controller;com.skyflow.vault.data;com.skyflow.vault.detect;com.skyflow.vault.tokens" \
--old-classpath "$(cat /tmp/module-classpath.txt)" \
--new-classpath "$(cat /tmp/module-classpath.txt)" \
-m \
--ignore-missing-classes \
--markdown > /tmp/contract-baseline-diff.md || true

cat /tmp/contract-baseline-diff.md

- name: Comment contract baseline change on PR
if: always() && (steps.baseline-diff-check.outputs.changed == 'true' || steps.baseline-diff-check.outputs.changed == 'new')
uses: actions/github-script@v7
env:
BASELINE_STATE: ${{ steps.baseline-diff-check.outputs.changed }}
with:
script: |
const fs = require('fs');
const module = '${{ matrix.module }}';
const artifact = '${{ matrix.artifact }}';
const summary = fs.readFileSync('/tmp/contract-baseline-diff.md', 'utf8');
// per-module marker so the two matrix jobs update their own comment
const marker = `<!-- contract-baseline-diff:${module} -->`;
const isNew = process.env.BASELINE_STATE === 'new';
const heading = isNew
? `## Contract baseline added (\`${module}\`)`
: `## Contract baseline change detected (\`${module}\`)`;
const preamble = isNew
? `This PR adds \`${module}/api-report/${artifact}.baseline.jar\`, the approved public API contract for this module.`
: `This PR updates \`${module}/api-report/${artifact}.baseline.jar\` (the approved public API contract). Here is exactly what it changes, comparing the baseline on \`${{ github.event.pull_request.base.ref }}\` against the baseline committed in this PR:`;
const body = `${marker}\n${heading}\n\n${preamble}\n\n${summary}`;
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});
const existing = comments.find(c => c.body && c.body.includes(marker));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body,
});
}
9 changes: 9 additions & 0 deletions .github/workflows/endorlabsScan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ jobs:
name: "credentials.json"
json: ${{ secrets.TEST_CREDENTIALS_FILE_STRING }}

- name: Distribute test fixtures to modules
run: |
# Surefire runs each module's tests with the module directory as the working
# directory, so dotenv and ./credentials.json lookups miss the repo-root copies.
for module in common skyvault flowvault; do
cp .env "$module/.env"
cp credentials.json "$module/credentials.json"
done

- name: Compile Package
run: mvn -B package -f pom.xml -Dmaven.javadoc.skip=true

Expand Down
46 changes: 41 additions & 5 deletions .github/workflows/internal-release.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,62 @@
name: Publish package to the JFROG Artifactory
name: Publish module to the JFROG Artifactory
on:
push:
# '**' not '*.*': Actions glob '*' does not match '/', so '*.*' let slash
# tags (flowvault/v1.0.0) through and fired this branch-only workflow.
tags-ignore:
- '*.*'
- '**'
paths-ignore:
- "*.md"
branches:
- flowvault-release/*
- skyvault-release/*
# Legacy: predates the per-module naming, still maps to skyvault.
- release/*

jobs:
resolve-module:
runs-on: ubuntu-latest
# Skip our own bump commit, or this loops: bump -> push -> release -> bump.
# PAT-authenticated pushes DO trigger workflows; GITHUB_TOKEN pushes do not.
# build-and-deploy needs this job, so skipping here skips the run.
if: ${{ !contains(github.event.head_commit.message, '[AUTOMATED]') }}
outputs:
module: ${{ steps.set-module.outputs.module }}
steps:
# Explicit match, no catch-all: defaulting once published the wrong module.
- name: Resolve module from branch name
id: set-module
env:
BRANCH: ${{ github.ref_name }}
run: |
case "$BRANCH" in
flowvault-release/*) MODULE="flowvault" ;;
skyvault-release/*) MODULE="skyvault" ;;
release/*) MODULE="skyvault" ;;
*)
echo "::error::Branch '$BRANCH' does not map to a module."
exit 1
;;
esac
echo "Branch '$BRANCH' -> module '$MODULE'"
echo "module=$MODULE" >> "$GITHUB_OUTPUT"

build-and-deploy:
needs: resolve-module
uses: ./.github/workflows/shared-build-and-deploy.yml
with:
ref: ${{ github.ref_name }}
server-id: central
profile: jfrog
tag: 'internal'
module: ${{ needs.resolve-module.outputs.module }}
secrets:
server-username: ${{ secrets.ARTIFACTORY_USERNAME }}
server-password: ${{ secrets.ARTIFACTORY_PASSWORD }}
gpg-key: ${{ secrets.JFROG_GPG_KEY }}
gpg-passphrase: ${{ secrets.JFROG_GPG_PASSPHRASE }}
skyflow-credentials: ${{ secrets.SKYFLOW_CREDENTIALS }} >> .env
test-expired-token: ${{ secrets.TEST_EXPIRED_TOKEN }} >> .env
test-reusable-token: ${{ secrets.TEST_REUSABLE_TOKEN }} >> .env
skyflow-credentials: ${{ secrets.SKYFLOW_CREDENTIALS }}
test-expired-token: ${{ secrets.TEST_EXPIRED_TOKEN }}
test-reusable-token: ${{ secrets.TEST_REUSABLE_TOKEN }}
pat-actions: ${{ secrets.PAT_ACTIONS }}
test-credentials-file-string: ${{ secrets.TEST_CREDENTIALS_FILE_STRING }}
60 changes: 56 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,65 @@ jobs:
echo TEST_EXPIRED_TOKEN=${{ secrets.TEST_EXPIRED_TOKEN }} >> .env
echo TEST_REUSABLE_TOKEN=${{ secrets.TEST_REUSABLE_TOKEN }} >> .env

- name: Distribute test fixtures to modules
run: |
# Surefire runs each module's tests with the module directory as the working
# directory, so dotenv and ./credentials.json lookups miss the repo-root copies.
for module in common skyvault flowvault; do
cp .env "$module/.env"
cp credentials.json "$module/credentials.json"
done

- name: Build & Run tests with Maven
run: mvn -B package -f pom.xml -Dmaven.javadoc.skip=true

- name: Codecov
uses: codecov/codecov-action@v2.1.0
# JaCoCo records packages as "com/skyflow/..." with no module prefix, and all three
# modules share the com.skyflow package (deliberate split-package convention). So
# "com/skyflow/config/VaultConfig.java" matches BOTH skyvault and flowvault, Codecov
# resolves it to one of them, and the other module's file silently reports no data.
# Prefixing each report with its own source root makes every path unique and match the
# repo exactly, so all three modules' files are attributed correctly.
- name: Qualify JaCoCo report paths with their module
run: |
for module in common skyvault flowvault; do
report="$module/target/site/jacoco/jacoco.xml"
if [ ! -f "$report" ]; then
echo "Error: expected $report to exist after the build."
exit 1
fi
tmp="$(mktemp)"
sed "s|<package name=\"|<package name=\"$module/src/main/java/|g" "$report" > "$tmp"
mv "$tmp" "$report"
done

# One upload per module, each with its own flag, so Codecov reports per-module
# coverage instead of merging three same-named package trees into one number.
- name: Codecov (common)
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_REPO_UPLOAD_TOKEN }}
files: common/target/site/jacoco/jacoco.xml
flags: common
name: codecov-common
verbose: true
fail_ci_if_error: true

- name: Codecov (skyvault)
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_REPO_UPLOAD_TOKEN }}
files: skyvault/target/site/jacoco/jacoco.xml
flags: skyvault
name: codecov-skyvault
verbose: true
fail_ci_if_error: true

- name: Codecov (flowvault)
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_REPO_UPLOAD_TOKEN }}
files: target/site/jacoco/jacoco.xml
name: codecov-skyflow-java
files: flowvault/target/site/jacoco/jacoco.xml
flags: flowvault
name: codecov-flowvault
verbose: true
fail_ci_if_error: true
Loading
Loading