Read-only mirror of https://github.com/jme-admin-ch/jme-deploymentlog-example — Bundesamt für Informatik und Telekommunikation. Issues & pull requests at the source. Catalog: https://www.opensource.admin.ch/en/softwares/v9lu76 https://www.opensource.admin.ch/en/softwares/v9lu76
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-25 01:25:04 +02:00
.github/workflows JEAP-7322 Adapted github build workflow 2026-07-30 07:47:57 +02:00
.mvn JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
.run JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
docker chore(deps): update repo.bit.admin.ch:8444/postgres docker tag to v18.6 2026-08-14 23:03:56 +00:00
src JEAP-6502: JME OSS preparation 2026-07-02 13:24:18 +02:00
.gitignore JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
CHANGELOG.md fix(deps): update all dependencies 2026-08-24 23:05:42 +00:00
CONTRIBUTING.md JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
exclude-patterns.txt JEAP-6502: JME OSS preparation 2026-07-02 13:24:18 +02:00
LICENSE JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
mvnw JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
pom.xml fix(deps): update all dependencies 2026-08-24 23:05:42 +00:00
publiccode.yml Update version/date in publiccode.yml 2026-08-25 01:25:04 +02:00
README.md [skip ci] JEAP-7451: update documentation 2026-08-24 16:06:51 +02:00
SECURITY.md JEAP-6502: JME OSS preparation 2026-07-02 08:00:31 +02:00
THIRD-PARTY-LICENSES.md JEAP-6502: JME OSS preparation 2026-07-02 13:24:18 +02:00

JME DeploymentLog Example

This example project shows how to assemble a runnable deployment-log service using the jeap-deploymentlog-service-instance starter. The starter contains all the necessary components (REST API, persistence, security) to set up a deployment-log service instance; this project wires it up with a minimal pom.xml/configuration and a PostgreSQL database, without any custom application code of its own.

What this example demonstrates

A deployment log records, per system and environment, which component version was deployed, when, by whom, and which artifact was used — used to answer "what is running where" questions. This example shows the minimal setup needed to run such a service:

  • Depending on jeap-deploymentlog-service-instance to get the deployment-log REST API and persistence out of the box.
  • application.yml configuring the service name, database schema, and enabling Swagger.
  • A PostgreSQL database provisioned via docker/docker-compose.yml.
  • An integration test (DeploymentLogExampleIT) that starts the service and exercises its API end to end: registering a new deployment via PUT /api/deployment/{id} (with basic-auth write credentials), then reading it back via GET /api/deployment/{id} (with basic-auth read credentials).

Changes

This library is versioned using Semantic Versioning and all changes are documented in CHANGELOG.md following the format defined in Keep a Changelog.

Prerequisites

To use this project, ensure you have the following installed:

  1. Java Development Kit (JDK): Version 25.
  2. Docker: For running the required infrastructure.

Note: Use the provided maven wrapper to build and run the project.

Getting started

Infrastructure

Before the examples can be started the infrastructure has to be started using docker. This starts the PostgreSQL database the deployment-log service persists its data to:

docker-compose -f docker/docker-compose.yml up

Build

The project itself can be built with a simple

./mvnw install

Start

Then the project can be started using

./mvnw spring-boot:run -Dspring-boot.run.profiles=local

Trying it out

Once the application is running, open the Swagger UI at http://localhost:8080/jme-deploymentlog-service/swagger-ui.html to explore the deployment-log API — registering a deployment (PUT /api/deployment/{id}) requires basic-auth credentials with a write role, reading one back (GET /api/deployment/{id}) requires a read role. See DeploymentLogExampleIT for a runnable end-to-end example of both calls.

Profiles

  • application-local: Contains all configurations for running the application locally.

Note

This repository is part of the open source distribution of JME. See github.com/jme-admin-ch/jme for more information.

License

This repository is Open Source Software licensed under the Apache License 2.0.