Watch
1
0
Fork
You've already forked jeap-open-api-publisher-starter
0
mirror of https://github.com/jeap-admin-ch/jeap-open-api-publisher-starter.git synced 2026-08-17 12:55:25 +00:00
Read-only mirror of https://github.com/jeap-admin-ch/jeap-open-api-publisher-starter — Bundesamt für Informatik und Telekommunikation. Issues & pull requests at the source. Catalog: https://www.opensource.admin.ch/en/softwares/a4h03o https://www.opensource.admin.ch/en/softwares/a4h03o
  • Java 99.5%
  • Shell 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-13 08:29:49 +02:00
.mvn/wrapper JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
docs [skip ci] JEAP-7090 Add docs 2026-06-18 16:26:04 +02:00
src JEAP-7255 Throw dedicated OpenApiPublishingException on publish failures, bump version to 7.2.1 2026-07-22 11:34:13 +02:00
.gitignore JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
AGENTS.md [skip ci] JEAP-7090 Improve docs 2026-07-02 13:08:43 +02:00
CHANGELOG.md Version 7.14.0: update jeap-spring-boot-security-client-starter from 24.12.0 to 24.14.0 2026-08-13 08:29:49 +02:00
CONTRIBUTING.md JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
LICENSE JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
mvnw JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
pom.xml Version 7.14.0: update jeap-spring-boot-security-client-starter from 24.12.0 to 24.14.0 2026-08-13 08:29:49 +02:00
publiccode.yml Update version/date in publiccode.yml 2026-08-13 07:59:37 +02:00
README.md [skip ci] JEAP-7090 Improve docs 2026-07-02 13:08:43 +02:00
SECURITY.md JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00
setPomVersions.sh JEAP-5993: read and publish open api spec 2025-09-04 14:55:04 +02:00

jEAP OpenAPI Specification Publisher

jEAP OpenAPI Specification Publisher is a Spring Boot starter that publishes a service's OpenAPI specification to the jEAP Architecture Repository Service (archrepo). It is a drop-in dependency: once the jeap.archrepo.url property is set, it reads the OpenAPI document generated by springdoc-openapi and uploads it on every application start, without any code changes in the consuming service. It provides:

  • Automatic upload of the service's OpenAPI specification to the archrepo on the Spring ApplicationReadyEvent
  • Asynchronous, best-effort publishing that never blocks startup or fails the application if the upload fails
  • OAuth2 client-credentials authentication against the archrepo API
  • Optional replacement of the OpenAPI base server URL with the service's deployment FQDN
  • Optional Micrometer tracing and timing of the publish operation
flowchart LR
    subgraph MS["Microservice"]
        direction TB

        subgraph PUB["jeap-open-api-publisher"]
            direction TB
            TRIGGER["ApplicationReadyEvent listener"]
            ASYNC["Async OpenAPI upload task"]
            TRIGGER -.->|"starts asynchronously"| ASYNC
        end
    end

    subgraph AR["ArchRepo Service"]
        direction TB
        DOC["Rest API Documentation"]
    end

    AUTH["Authorization Server"]

    ASYNC -->|"Upload OpenAPI specification"| DOC
    ASYNC -->|"Get OAuth2 token"| AUTH
    DOC -->|"Validate OAuth2 access"| AUTH

%% Colors
    classDef service fill:#F9CC9D,stroke:#333,stroke-width:2px,color:#000;
    classDef component fill:#9FC5E8,stroke:#333,stroke-width:2px,color:#000;
    classDef auth fill:#F9CC9D,stroke:#333,stroke-width:2px,color:#000;

    class MS,AR service;
    class PUB,TRIGGER,ASYNC,DOC component;
    class AUTH auth;

Documentation

Start with Getting started, then follow the links below.

Topic File
Getting started (add the dependency, enable it) docs/getting-started.md
How it works (startup & publish flow) docs/how-it-works.md
Configuration reference (jeap.archrepo.*) docs/configuration.md
Authentication (OAuth2 client credentials) docs/authentication.md

Modules

This is a single-module Spring Boot starter. The artifact to depend on is jeap-open-api-publisher-starter; group id is ch.admin.bit.jeap, and the version is managed by the jEAP Spring Boot parent.

Artifact Purpose
jeap-open-api-publisher-starter Auto-configuration that reads and uploads the OpenAPI specification to the archrepo service

Changes

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

Note

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

License

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