Read-only mirror of https://github.com/blw-ofag-ufag/atlas-agate-test-backend — Bundesamt für Landwirtschaft. Issues & pull requests at the source.
  • Java 98.5%
  • Dockerfile 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Adrian Burkard 2a0bf7d0a9
test: sync agate-realm.json with A1-157 custom attributes (A1-157) (#14)
* test: sync agate-realm.json with 14 A1-157 custom attributes (A1-157)

Mirror the regenerated agate-realm.json from atlas-agate-local: 14 new
single-valued profile attributes added to the declarative user profile.
directAccessGrantsEnabled for the agate client stays true (this repo).

* test: expose the 14 A1-157 custom attributes in userinfo (A1-157)

Sync agate-realm.json with atlas-agate-local: add 14 userinfo-only attribute
protocol mappers (add_to_userinfo=true, id/access=false) for the SOAP-API
custom attributes to the agate and agridata clients. ./mvnw verify: green.

---------

Co-authored-by: Burkard Adrian <adrian.burkadr@ti8m.ch>
2026-08-19 11:28:01 +02:00
.github/workflows chore(ci): bump shared workflow to v1.1.2 (#7) 2026-06-30 17:16:51 +02:00
.mvn/wrapper feat(auth): adds auth A1-41 2026-04-21 11:09:48 +02:00
env feat(auth): adds auth A1-41 2026-04-21 11:09:48 +02:00
http feat(auth): adds multi tenant support 2026-04-27 09:28:41 +02:00
src test: sync agate-realm.json with A1-157 custom attributes (A1-157) (#14) 2026-08-19 11:28:01 +02:00
users feat(auth): adds auth A1-41 2026-04-21 11:09:48 +02:00
.dockerignore feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
.gitattributes feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
.gitignore feat(soap): add Agate SOAP client and TVD user REST endpoint (A1-113) (#9) 2026-07-14 18:03:53 +02:00
.owaspignore.xml feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
.releaserc.json feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
.trivyignore feat(auth): switches producer-info role prefix to agridata.ch A1-130 (#4) 2026-06-03 07:00:39 +02:00
CHANGELOG.md chore(release): 1.0.0-rc.9 [skip ci] 2026-08-17 12:47:49 +00:00
checkstyle.xml feat(auth): adds auth A1-41 2026-04-21 11:09:48 +02:00
Dockerfile feat(soap): add Agate SOAP client and TVD user REST endpoint (A1-113) (#9) 2026-07-14 18:03:53 +02:00
mvnw feat(auth): switches producer-info role prefix to agridata.ch A1-130 (#4) 2026-06-03 07:00:39 +02:00
mvnw.cmd feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
package.json feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
pnpm-lock.yaml feat(init-backend): initializes test backend 2026-04-07 21:35:16 +02:00
pom.xml chore(release): 1.0.0-rc.9 [skip ci] 2026-08-17 12:47:49 +00:00
README.md feat(auth): switches producer-info role prefix to agridata.ch A1-130 (#4) 2026-06-03 07:00:39 +02:00

🌿 Agate Test Backend

Simulates backends that validate Agate tokens. The service exposes the decoded token claims and user-info for the authenticated user, and serves as a reference implementation for Agate OIDC integration.


🚀 Getting Started

Run in dev mode

./mvnw quarkus:dev -Dquarkus.profile=local

🔐 Keycloak

By default the app connects to the Keycloak instance on the dev environment. Two alternatives:

Option How
🖥️ Local Keycloak Spin up via atlas-agate-local
📦 Embedded Keycloak Copy the OIDC config from application-test.yml into your local profile

🧪 Tests

@QuarkusTest spins up a Keycloak container configured similarly to the real Agate realm, but without brokering authentication to eIAM. Tests can also be driven via Swagger UI or the .http test files.

Heads-up when refreshing src/test/resources/agate-realm.json from atlas-agate-local: set "directAccessGrantsEnabled" : true on the agridata client. The Quarkus integration tests use the OAuth password grant to obtain tokens; without this flag Keycloak rejects the request with an HTML error page.


⚙️ GitHub Workflow

Uses the BLW shared workflow: atlas-code-github-workflows


Checkstyle

Import the Checkstyle plugin in your IDE and point it at checkstyle.xml in the repository root to catch violations before pushing.

In the IDE Checkstyle settings, exclude SQL scripts:

*.{sql}

Run Checkstyle:

./mvnw checkstyle:check

🔖 Semantic Versioning

Versioning is driven by two files:

File Purpose
package.json Pins the pnpm version used to run semantic-release
.releaserc.json Configures branches, version strategy, and release steps

🎨 ASCII Banner

Generated with manytools.org ASCII banner — font: Slant