Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
7086d6a
feat: Redis datasource: add TLS (SSL mode) support in backend + datas…
mohanarpit Mar 3, 2026
79c8e72
refactor: update action collection body handling in API and services …
sebastianiv21 Mar 4, 2026
d18802b
fix: increase api timeout for client class for consolidated api to 60…
sondermanish Mar 5, 2026
13313df
fix: upgrade fast-xml-parser to 4.5.4 to resolve critical CVE-2026-25…
subrata71 Mar 9, 2026
a0a97eb
chore: move dp cluster to traefik (#41600)
wyattwalter Mar 9, 2026
fae887a
ci: updated java version in workflows (#41597)
sondermanish Mar 10, 2026
19bfa16
ci: added safety check quotes for null values when triggered from dis…
sondermanish Mar 11, 2026
409e03d
fix: flaky Tree_Select_2_spec.ts (#41605)
subrata71 Mar 11, 2026
e61375d
fix(ci): disable XATA flaky test check in pr-cypress workflow (#41612)
subrata71 Mar 11, 2026
18c7cd3
ci: modified workflows to pick jdk from respective pom files (#41611)
sondermanish Mar 11, 2026
9492562
fix: upgrade simple-git to 3.32.3 to resolve critical CVE-2026-28292 …
subrata71 Mar 12, 2026
3c3ce57
chore: upgrade redis to 7.4 in base dockerfile (#41581)
wyattwalter Mar 12, 2026
715fedf
chore: optional base image to build appsmith image from (#41615)
sondermanish Mar 12, 2026
3d46f68
fix(Security): restrict draft action execution to editors (#41614)
subrata71 Mar 13, 2026
9e7c2bb
fix(server): prevent SQL injection in UQI filter service projection a…
subrata71 Mar 13, 2026
d56a4c6
chore: use redis from upstream image (#41616)
wyattwalter Mar 13, 2026
470aa9e
fix(security): prevent unauthenticated disclosure of instance metadat…
subrata71 Mar 16, 2026
2ea3f03
fix: Show Red Asterisk on Required Fields (#41609)
salevine Mar 17, 2026
8c76dc2
chore: promoted release_static_url_enabled to license (#41626)
sondermanish Mar 17, 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
34 changes: 34 additions & 0 deletions .github/actions/setup-server-java/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: "Setup Server Java"
description: "Sets up JDK using the java.version property from app/server/pom.xml"

inputs:
pom-path:
description: "Path to the pom.xml containing the <java.version> property"
required: false
default: "app/server/pom.xml"

outputs:
java-version:
description: "The Java version that was set up"
value: ${{ steps.extract.outputs.version }}

runs:
using: "composite"
steps:
- name: Extract Java version from pom.xml
id: extract
shell: bash
run: |
version=$(grep -oP '<java.version>\K[^<]+' "${{ inputs.pom-path }}")
if [[ -z "$version" ]]; then
echo "::error::Could not extract java.version from ${{ inputs.pom-path }}"
exit 1
fi
echo "version=$version" >> $GITHUB_OUTPUT
echo "Detected Java version: $version"

- name: Set up JDK ${{ steps.extract.outputs.version }}
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: ${{ steps.extract.outputs.version }}
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ updates:
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "docker"
directory: "/deploy/docker"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "docker"
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "maven"
directory: "/app/server"
schedule:
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/ad-hoc-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ on:
required: false
type: string
default: ad-hoc
base-image-tag:
description: Base image tag to use for creating appsmith docker image. Defaults to nightly.
required: false
type: string
default: nightly
pg_tag:
description: Postgres tag to use for image
required: false
Expand Down Expand Up @@ -122,7 +127,7 @@ jobs:
build-args: |
APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }}
APPSMITH_BETTERBUGS_API_KEY=${{ secrets.APPSMITH_BETTERBUGS_API_KEY }}
BASE=${{ vars.DOCKER_HUB_ORGANIZATION }}/base-${{ vars.EDITION }}:nightly
BASE=${{ vars.DOCKER_HUB_ORGANIZATION }}/base-${{ vars.EDITION }}:${{ inputs.base-image-tag }}
tags: |
${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-${{ vars.EDITION }}:${{ inputs.tag }}
labels: |
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/github-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,8 @@ jobs:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- name: Set up JDK from dependency file
uses: ./.github/actions/setup-server-java

# Retrieve maven dependencies from cache. After a successful run, these dependencies are cached again
- name: Cache maven dependencies
Expand Down
71 changes: 53 additions & 18 deletions .github/workflows/on-demand-build-docker-image-deploy-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,52 +5,84 @@ on:
repository_dispatch:
types: [build-deploy-preview-command]

# This line enables manual triggering of this workflow.
workflow_dispatch:
inputs:
issue_number:
description: Deploy an image from this pr number
required: true
type: string
base_image_tag:
description: Base image tag to use (overrides branch-based default)
required: false
type: string

jobs:
resolve-params:
runs-on: ubuntu-latest
outputs:
pr_number: ${{ steps.resolve.outputs.pr_number }}
steps:
- name: Resolve PR number
id: resolve
run: |
if [[ -n "${{ github.event.client_payload.pull_request.number }}" ]]; then
echo "pr_number=${{ github.event.client_payload.pull_request.number }}" >> "$GITHUB_OUTPUT"
else
echo "pr_number=${{ inputs.issue_number }}" >> "$GITHUB_OUTPUT"
fi

notify-job-details:
needs: [resolve-params]
runs-on: ubuntu-latest
steps:
# This step creates a comment on the PR with a link to this workflow run.
- name: Add a comment on the PR with link to workflow run
uses: peter-evans/create-or-update-comment@v3
with:
issue-number: ${{ github.event.client_payload.pull_request.number }}
issue-number: ${{ needs.resolve-params.outputs.pr_number }}
body: |
Deploying Your Preview: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}>.
Workflow: `${{ github.workflow }}`.
skip-tests: `${{ github.event.client_payload.slash_command.args.named.skip-tests }}`.
env: `${{ github.event.client_payload.slash_command.args.named.env }}`.
PR: ${{ github.event.client_payload.pull_request.number }}.
PR: ${{ needs.resolve-params.outputs.pr_number }}.
recreate: ${{ github.event.client_payload.slash_command.args.named.recreate }}.
base-image-tag: ${{ github.event.client_payload.slash_command.args.named.base-image-tag || inputs.base_image_tag }}.

server-build:
needs: [resolve-params]
name: server-build
if: github.event.client_payload.slash_command.args.named.env != 'release'
uses: ./.github/workflows/server-build.yml
secrets: inherit
with:
pr: ${{ github.event.client_payload.pull_request.number }}
pr: ${{ fromJSON(needs.resolve-params.outputs.pr_number) }}
skip-tests: ${{ github.event.client_payload.slash_command.args.named.skip-tests }}
is-pg-build: ${{ github.event.client_payload.pull_request.base.ref == 'pg' }}

client-build:
needs: [resolve-params]
name: client-build
if: github.event.client_payload.slash_command.args.named.env != 'release'
uses: ./.github/workflows/client-build.yml
secrets: inherit
with:
pr: ${{ github.event.client_payload.pull_request.number }}
pr: ${{ fromJSON(needs.resolve-params.outputs.pr_number) }}
skip-tests: ${{ github.event.client_payload.slash_command.args.named.skip-tests }}

rts-build:
needs: [resolve-params]
name: rts-build
if: github.event.client_payload.slash_command.args.named.env != 'release'
uses: ./.github/workflows/rts-build.yml
secrets: inherit
with:
pr: ${{ github.event.client_payload.pull_request.number }}
pr: ${{ fromJSON(needs.resolve-params.outputs.pr_number) }}
skip-tests: ${{ github.event.client_payload.slash_command.args.named.skip-tests }}

vercel-build:
needs: [resolve-params]
name: vercel-build
if: github.event.client_payload.slash_command.args.named.env == 'release'
runs-on: ubuntu-latest
Expand All @@ -62,7 +94,7 @@ jobs:
- name: Checkout PR
uses: actions/checkout@v4
with:
ref: "refs/pull/${{ github.event.client_payload.pull_request.number }}/merge"
ref: "refs/pull/${{ needs.resolve-params.outputs.pr_number }}/merge"

- name: Install Vercel CLI
run: npm install --global vercel@latest
Expand Down Expand Up @@ -109,14 +141,14 @@ jobs:
)
}
github.rest.issues.createComment({
issue_number: context.payload.client_payload.pull_request.number,
issue_number: ${{ needs.resolve-params.outputs.pr_number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: bodyLines.join("\n"),
})

push-image:
needs: [client-build, rts-build, server-build]
needs: [resolve-params, client-build, rts-build, server-build]
runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -128,7 +160,7 @@ jobs:
- name: Checkout PR
uses: actions/checkout@v4
with:
ref: "refs/pull/${{ github.event.client_payload.pull_request.number }}/merge"
ref: "refs/pull/${{ needs.resolve-params.outputs.pr_number }}/merge"

# Timestamp will be used to create cache key
- id: timestamp
Expand Down Expand Up @@ -191,7 +223,10 @@ jobs:
- name: Set base image tag
id: set_base_tag
run: |
if [[ ${{ github.event.client_payload.pull_request.base.ref }} == 'pg' ]]; then
base_tag_arg="${{ github.event.client_payload.slash_command.args.named.base-image-tag || inputs.base_image_tag }}"
if [[ -n "$base_tag_arg" ]]; then
base_tag="$base_tag_arg"
elif [[ "${{ github.event.client_payload.pull_request.base.ref }}" == 'pg' ]]; then
base_tag=pg
else
base_tag=release
Expand All @@ -207,7 +242,7 @@ jobs:
platforms: linux/arm64,linux/amd64
cache-from: ${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-${{ vars.EDITION }}:release
tags: |
${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-dp:${{ vars.EDITION }}-${{ github.event.client_payload.pull_request.number }}
${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-dp:${{ vars.EDITION }}-${{ needs.resolve-params.outputs.pr_number }}
labels: |
org.opencontainers.image.revision=${{ steps.info_json.outputs.commitSha }}
org.opencontainers.image.source=${{ steps.info_json.outputs.repo }}
Expand All @@ -218,10 +253,10 @@ jobs:
BASE=${{ vars.DOCKER_HUB_ORGANIZATION }}/base-${{ vars.EDITION }}:${{ steps.set_base_tag.outputs.base_tag }}

outputs:
imageHash: ${{ vars.EDITION }}-${{ github.event.client_payload.pull_request.number }}
imageHash: ${{ vars.EDITION }}-${{ needs.resolve-params.outputs.pr_number }}

build-deploy-preview:
needs: [push-image]
needs: [resolve-params, push-image]
runs-on: ubuntu-latest
defaults:
run:
Expand All @@ -232,7 +267,7 @@ jobs:
- name: Checkout PR
uses: actions/checkout@v4
with:
ref: "refs/pull/${{ github.event.client_payload.pull_request.number }}/merge"
ref: "refs/pull/${{ needs.resolve-params.outputs.pr_number }}/merge"

- name: Print versions of tools
run: |
Expand Down Expand Up @@ -269,7 +304,7 @@ jobs:
DOCKER_HUB_ORGANIZATION: ${{ vars.DOCKER_HUB_ORGANIZATION }}
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
PULL_REQUEST_NUMBER: ${{ github.event.client_payload.pull_request.number }}
PULL_REQUEST_NUMBER: ${{ needs.resolve-params.outputs.pr_number }}
RECREATE: ${{ github.event.client_payload.slash_command.args.named.recreate }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
Expand All @@ -289,14 +324,14 @@ jobs:
/bin/bash ./scripts/deploy_preview.sh

notify-url:
needs: [build-deploy-preview]
needs: [resolve-params, build-deploy-preview]
runs-on: ubuntu-latest
if: success()
steps:
# This step creates a comment on the PR with a link to this workflow run.
- name: Add a comment on the PR with link to Deploy-Preview
uses: peter-evans/create-or-update-comment@v3
with:
issue-number: ${{ github.event.client_payload.pull_request.number }}
issue-number: ${{ needs.resolve-params.outputs.pr_number }}
body: |
Deploy-Preview-URL: https://${{ vars.EDITION }}-${{ github.event.client_payload.pull_request.number }}.dp.appsmith.com
Deploy-Preview-URL: https://${{ vars.EDITION }}-${{ needs.resolve-params.outputs.pr_number }}.dp.appsmith.com
3 changes: 2 additions & 1 deletion .github/workflows/pr-cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,8 @@ jobs:
- name: Get latest flaky tests
shell: bash
run: |
curl --request POST --url https://yatin-s-workspace-jk8ru5.us-east-1.xata.sh/db/CypressKnownFailures:main/tables/CypressKnownFailuires/query --header 'Authorization: Bearer ${{ secrets.XATA_TOKEN }}' --header 'Content-Type: application/json'|jq -r |grep Spec|cut -d ':' -f 2 2> /dev/null|sed 's/"//g'|sed 's/,//g' > ~/knownfailures
# XATA lite has been discontinued; using empty list until migrated to Cypress DB
touch ~/knownfailures

# Verify CI test failures against known failures
- name: Verify CI test failures against known failures
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/server-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,8 @@ jobs:
run: echo "I'm alive!" && exit 0

# Setup Java
- name: Set up JDK 17
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- name: Set up JDK from dependency file
uses: ./.github/actions/setup-server-java

- name: Conditionally start PostgreSQL
if: |
Expand Down
18 changes: 13 additions & 5 deletions .github/workflows/server-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@ name: Server Integrations Tests Workflow
on:
# This line enables manual triggering of this workflow.
workflow_dispatch:
inputs:
pr:
description: "PR number to test against"
required: false
type: number
default: 0
is-pg-build:
description: "Flag for PG build"
required: false
type: string
default: "false"
workflow_call:
inputs:
pr:
Expand Down Expand Up @@ -48,11 +59,8 @@ jobs:
uses: actions/checkout@v4

# Setup Java
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- name: Set up JDK from dependency file
uses: ./.github/actions/setup-server-java

- name: Conditionally start PostgreSQL
if: |
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/server-spotless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,9 @@ jobs:
ref: refs/pull/${{ inputs.pr }}/merge

# Setup Java
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Set up JDK from dependency file
uses: ./.github/actions/setup-server-java

# Run maven step for spotless check
- name: Run spotless check
run: mvn spotless:check
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ describe(
AppSidebar.navigate(AppSidebarButton.Libraries);
installer.OpenInstaller();
installer.InstallLibraryViaURL(
"https://cdn.jsdelivr.net/npm/fast-xml-parser@4.2.7/+esm",
"https://cdn.jsdelivr.net/npm/fast-xml-parser@4.5.4/+esm",
"fast_xml_parser",
);
agHelper.Sleep(2000);
Expand All @@ -81,7 +81,7 @@ describe(
// Reinstallation should succeed with the same accessor
installer.OpenInstaller();
installer.InstallLibraryViaURL(
"https://cdn.jsdelivr.net/npm/fast-xml-parser@4.2.7/+esm",
"https://cdn.jsdelivr.net/npm/fast-xml-parser@4.5.4/+esm",
"fast_xml_parser",
);
});
Expand Down
Loading
Loading