- Java 99.5%
- Shell 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .mvn/wrapper | ||
| docs | ||
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| mvnw | ||
| pom.xml | ||
| publiccode.yml | ||
| README.md | ||
| SECURITY.md | ||
| setPomVersions.sh | ||
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.