Full Changelog 1.0.2

Released 2026-09-04 · v7.1.2.a · 3 issues · 1 feature · 3 fixes

The complete record: every commit in the release, grouped by type, including work that never reaches a customer-facing note. The external changelog is the readable summary of the same release.

Jira References

  • DEV-2332 - FT Configs > ACS > "config_custom_data.xml" > Configuration file missing

  • DEV-2787 - FTACS WS authentication does not recover after Hazelcast restart

  • DEV-2957 - FT Configs > Restart Hazelcast > FT Configs Service Hazelcast client is not reconnected to Hazelcast

Features

  • DEV-2332 - FT Configs > ACS > "config_custom_data.xml" > Configuration file missing

Bug Fixes

  • The health groups answer 401, so the service cannot be liveness-probed (#32)

    SecurityAccessProperties whitelists /actuator/**, but application.yml overrides that list with two exact paths, and a bound List replaces the default rather than adding to it. /actuator/health therefore matches only itself: /actuator/health/liveness and /actuator/health/readiness fall through to the authenticated rules and answer 401.

    A kubelet counts 401 as a failed probe, so configuring liveness against the group would restart this service in a loop — which is why it is one of only two Java services in the platform still running without a liveness probe.

    Both entries are needed: Ant /** does not match the bare path.

    Also states management.endpoint.health.probes.enabled. Spring Boot enables the groups by itself only when it detects Kubernetes, so without this the endpoint a probe is aimed at 404s everywhere else — including in CI.

  • version.xml

  • Changelog

Documentation

  • Regenerate changelog for release 1.0.1

  • Pin docker image to explicit version instead of latest tag

  • Add changelog for 1.0.1 build 0.0.2

Build

  • Pin the boot jar name instead of working around its absence

    Reviewer was right that the previous commit treated a symptom. The Dockerfile located the jar with find …​ ! -name "*-plain.jar" because the name was unpredictable — but the name being unpredictable was itself the defect, and it had already grown a chain of workarounds around it.

    version = '0.0.1-SNAPSHOT' is set, so Gradle produced ft-configs-service-0.0.1-SNAPSHOT.jar alongside a -plain.jar. Every consumer coped them then COPIED it to a fixed name, and Dockerfile.simple hardcoded that copy. Four moving parts, each silently wrong the day someone sets a real version — and the hardcoded name in Dockerfile.simple worked only by accident of that copy step.

    Two lines in build.gradle remove all of it: bootJar { archiveFileName } fixes the name independently of the version, and jar { enabled = false } stops producing the plain jar, which was only ever there to be filtered out. This is an application, not a library, and there is no publishing block, so nothing consumed it.

    Everything downstream is now direct rather than defensive: the Dockerfile COPYs the known path, and the workflows assert the file exists instead of searching for it.

    Note this was not cosmetic. With the name pinned, the two cp "$JAR_PATH" build/libs/ft-configs-service.jar steps became a copy of a file onto itself, which cp refuses — leaving them would have broken both release pipelines.

    Verified: build.gradle parses (gradlew help), all six workflows are still valid YAML, docker build --check clean on both Dockerfiles, and no find build/libs, -plain.jar filter or self-copy remains anywhere in the repository.

Docker Images

ft-configs-service

Image

hub.friendly-tech.com/configs/ft-configs-service:v1.0.2-b0.0.1

SHA256

sha256:b49c2a000715d904bb113c8579bbd0316329a5101673584221abefb8c3516bb9

Pull from Registry

docker pull hub.friendly-tech.com/configs/ft-configs-service:v1.0.2-b0.0.1

Download for Offline Use

docker pull hub.friendly-tech.com/configs/ft-configs-service:v1.0.2-b0.0.1
docker save hub.friendly-tech.com/configs/ft-configs-service:v1.0.2-b0.0.1 -o ft-configs-service-v1.0.2-b0.0.1.tar

gzip ft-configs-service-v1.0.2-b0.0.1.tar

Load on Closed Network

gunzip ft-configs-service-v1.0.2-b0.0.1.tar.gz
docker load -i ft-configs-service-v1.0.2-b0.0.1.tar

Dependencies

  • ACS → FT Configs Service v1.0.2-b0.0.1

  • UI Backend → ACS v7.1.2-b0.0.1

  • UI Portals → UI Backend v7.1.2-b0.0.1

  • FT Device Network → ACS v7.1.2-b0.0.1

  • UI AI Agent → UI Backend v7.1.2-b0.0.1

  • UI AI Agent → FT Device Network v1.0.3-b0.0.1