Skip to content
Open
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
ed4895a
chore: update Java version in Dockerfile and sdkmanrc to liberica
csikb Aug 26, 2025
e5883ee
chore: update Java version in Dockerfile and sdkmanrc to liberica
csikb Aug 26, 2025
420ee01
chore: update upload-artifact action to v4.6.2 in gradle.yml
csikb Aug 26, 2025
27e6762
chore: update upload-artifact action to v4.6.2 in gradle.yml
csikb Aug 26, 2025
96dc8c5
chore: update upload-artifact action to v4.6.2 in gradle.yml
csikb Aug 26, 2025
1806ace
Merge branch 'refs/heads/main' into gh-actions
csikb Aug 29, 2025
3542708
feat: add SonarQube plugin and configuration for code quality analysis
csikb Aug 29, 2025
7bf6e7e
fix: update gradle.yml to set fetch-depth for Git blame information
csikb Aug 29, 2025
58e244c
Merge branch 'main' into gh-actions
csikb Sep 16, 2025
eca713d
Update gradle.yml
csikb Sep 16, 2025
790cdb3
chore: update scorecard.yml for improved GitHub Actions integration
csikb Sep 16, 2025
c3aab6b
feat: add application configuration and initial test setup
csikb Sep 19, 2025
50095f5
Merge branch 'main' into gh-actions
csikb Sep 20, 2025
7a15f24
feat: upgrade to Java 25 and update Gradle wrapper to 9.1.0
csikb Sep 23, 2025
9875214
feat: update Kotlin dependencies to version 2.3.0
csikb Sep 23, 2025
373be78
Merge branch 'main' into jdk-25
csikb Sep 23, 2025
3ecfdd3
Merge branch 'main' into jdk-25
csikb Sep 29, 2025
4e60d29
Update .sdkmanrc
csikb Sep 29, 2025
0bd6b28
feat: update Kotlin dependencies to 2.3.0-dev-9673 and add bootstrap …
csikb Oct 4, 2025
a5acf33
Merge branch 'main' into jdk-25
csikb Oct 4, 2025
1d57787
chore: update Dockerfile to use specific image digest for build
csikb Oct 4, 2025
697da06
refactor: remove unnecessary whitespace in BssWebApplicationTest
csikb Oct 4, 2025
c0558a5
chore: update OpenJDK image version to 25.0 in config.yml
csikb Oct 4, 2025
b61e4ad
chore: update OpenJDK image version to 25.0 in config.yml
csikb Oct 4, 2025
05cb963
chore: reorganize Dockerfile and settings.gradle.kts for improved bui…
csikb Oct 4, 2025
d4031cc
Merge branch 'main' into gh-actions
csikb Oct 4, 2025
7b42750
chore: optimize Dockerfile with cache mounts for gradle builds
csikb Oct 4, 2025
3b7049d
Merge branch 'main' into gh-actions
csikb Oct 4, 2025
330e4e2
Merge branch 'main' into gh-actions
csikb Oct 4, 2025
817f6b7
Merge branch 'gh-actions' into jdk-25
csikb Oct 4, 2025
62bda84
chore: update Java version to 25 in gradle.yml and modify docker.yml …
csikb Oct 4, 2025
13df06e
chore: remove conditional platform setting from docker.yml
csikb Oct 4, 2025
858fbb5
Merge branch 'main' into jdk-25
csikb Nov 13, 2025
3e6b020
Update build.gradle.kts
csikb Nov 13, 2025
073755c
chore(deps): update Kotlin dependencies and Detekt version
csikb Nov 13, 2025
c792695
chore(deps): update Kotlin dependencies and Detekt version
csikb Nov 13, 2025
01743b5
chore(deps): update Kotlin dependencies and Detekt version
csikb Nov 13, 2025
ebfea61
chore(deps): update Kotlin dependencies and Detekt version
csikb Nov 13, 2025
7da06dd
Update libs.versions.toml
csikb Nov 21, 2025
49516b8
Update build.gradle.kts
csikb Nov 21, 2025
412a015
perf(deps): update bellsoft/liberica-runtime-container docker tag
renovate[bot] Nov 21, 2025
c2b941c
Merge remote-tracking branch 'origin/renovate/bellsoft-liberica-runti…
csikb Nov 21, 2025
3244b4a
chore(deps): update Kotlin dependencies and Detekt version
csikb Nov 21, 2025
29d3a03
chore(build): remove deprecated Detekt snapshot repository
csikb Nov 21, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: "liberica"
java-version: 21
java-version: 25
- uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0
with:
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
Expand Down
2 changes: 1 addition & 1 deletion .sdkmanrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=21.0.8-librca
java=25-librca
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM bellsoft/liberica-runtime-container:jdk-21.0.9_11-cds-musl@sha256:9fa29c32825076ee981ea9b9e73b84cc70d9ee5411bbad5f2881a97362c894f9 AS build
FROM bellsoft/liberica-runtime-container:jdk-25-cds-musl@sha256:450594440bb32b72f281e50626b629f1cc60caeb7796638bc570b9fab03e55ee AS build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify the Docker image hashes are correct.

The base images have been updated to JDK 25 with new SHA256 hashes. While Liberica Runtime Container (Liberica Lite with Alpaquita Linux) supports JDK 25 as an LTS version, the new hashes must be verified as authentic to prevent supply-chain risks.

Please confirm these hashes by running:

Also ensure that the application is tested and verified to work correctly with Java 25, as this is a major version upgrade from JDK 21.

Also applies to: 29-29


🏁 Script executed:

#!/bin/bash
# Description: Verify Docker image hashes for jdk-25 and jre-25 images
# Expected: SHA256 digest matches the pinned hashes in Dockerfile

# For build stage image (jdk-25-cds-musl)
docker pull bellsoft/liberica-runtime-container:jdk-25-cds-musl 2>&1 | grep "Digest:"

# For runtime stage image (jre-25-cds-musl)
docker pull bellsoft/liberica-runtime-container:jre-25-cds-musl 2>&1 | grep "Digest:"

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Description: Query Docker Hub API for image digest information
# Alternative approach: use Docker Hub API to verify the image tags and their digests

# For jdk-25-cds-musl image
echo "=== Checking jdk-25-cds-musl ==="
curl -s "https://hub.docker.com/v2/repositories/bellsoft/liberica-runtime-container/tags/jdk-25-cds-musl/" | head -100

echo ""
echo "=== Checking jre-25-cds-musl ==="
curl -s "https://hub.docker.com/v2/repositories/bellsoft/liberica-runtime-container/tags/jre-25-cds-musl/" | head -100

Length of output: 2344


Update the jdk-25-cds-musl image hash—current hash does not match Docker Hub.

The jre-25-cds-musl hash is correct, but the jdk-25-cds-musl hash is invalid:

  • Dockerfile: 450594440bb32b72f281e50626b629f1cc60caeb7796638bc570b9fab03e55ee
  • Docker Hub: 3726c869b95563c00a642d52fc06afdc649ac3071cad160152846515597b6ab1

Update line 1 to use the correct hash. This will prevent build failures and supply-chain risks.

🧰 Tools
🪛 Checkov (3.2.334)

[low] 1-40: Ensure that HEALTHCHECK instructions have been added to container images

(CKV_DOCKER_2)

🤖 Prompt for AI Agents
In Dockerfile around lines 1 to 1, the FROM image uses an incorrect digest for
bellsoft/liberica-runtime-container:jdk-25-cds-musl; replace the existing
sha256:450594440bb32b72f281e50626b629f1cc60caeb7796638bc570b9fab03e55ee with the
correct digest
sha256:3726c869b95563c00a642d52fc06afdc649ac3071cad160152846515597b6ab1 so the
base image matches Docker Hub and avoids build failures and supply-chain risks.

WORKDIR /usr/src/app
# cache dependencies
COPY ./buildSrc/*.gradle.kts ./buildSrc/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ class DependencyManagementPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.repositories {
mavenCentral()
maven {
url = project.uri("https://redirector.kotlinlang.org/maven/bootstrap")
}
}

project.dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class JavaConventionPlugin : Plugin<Project> {

project.extensions.configure(JavaPluginExtension::class) {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
languageVersion.set(JavaLanguageVersion.of(25))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class JavaLibraryConventionPlugin : Plugin<Project> {

project.extensions.configure(JavaPluginExtension::class) {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
languageVersion.set(JavaLanguageVersion.of(25))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class KotlinConventionPlugin : Plugin<Project> {
freeCompilerArgs = listOf("-Xjsr305=strict")
extraWarnings = true
allWarningsAsErrors = true
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_25
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ plugins {
id("hu.bsstudio.gradle.spotless-convention")
id("hu.bsstudio.gradle.kotlin-convention")
id("hu.bsstudio.gradle.spring-app-convention")
id("hu.bsstudio.gradle.test-convention")
`jacoco-report-aggregation`
`test-report-aggregation`
}
Expand All @@ -14,6 +15,10 @@ dependencies {
// todo these scopes were only supported by the spring gradle dependency management plugin
// annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
// developmentOnly("org.springframework.boot:spring-boot-devtools")
testImplementation("org.springframework.boot:spring-boot-testcontainers")
testImplementation("org.testcontainers:testcontainers")
testImplementation("org.testcontainers:postgresql")
testImplementation("org.testcontainers:junit-jupiter")
}

tasks.test {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package hu.bsstudio.bssweb

import org.junit.jupiter.api.Test
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class BssWebApplicationTest {
@Test
fun contextLoads() {
}
}
13 changes: 13 additions & 0 deletions server/src/test/resources/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
bss:
file-api:
url: http://localhost:8888
spring:
datasource:
url: jdbc:tc:postgresql:16.3-alpine3.18:///db?currentSchema=private
security:
oauth2:
resourceserver:
opaquetoken:
introspection-uri: http://localhost:8888
client-id: client-id
client-secret: client-secret
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
rootProject.name = "bss-web-admin-backend"

include(
"client",
"integration",
Expand Down
Loading