- Java 99.7%
- Shell 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .mvn/wrapper | ||
| docs | ||
| jeap-spring-boot-config-aws-starter | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| mvnw | ||
| pom.xml | ||
| publiccode.yml | ||
| README.md | ||
| SECURITY.md | ||
| setPomVersions.sh | ||
| THIRD-PARTY-LICENSES.md | ||
jEAP Spring Boot Config AWS Starter
jEAP Spring Boot Config AWS Starter is a Spring Boot auto-configuration library that feeds a jEAP
service's configuration from two AWS services: AWS AppConfig (externalized application
configuration) and AWS Secrets Manager (sensitive credentials). It plugs into Spring Boot's
spring.config.import mechanism, so AppConfig profiles and secrets become ordinary entries in the
Spring Environment and bind to @ConfigurationProperties like any other property source. It
provides:
- Importing AWS AppConfig configuration profiles as Spring property sources via
jeap-app-config-aws: - A sensible default profile layout (
common,common-platform,common-certs, the service itself) - Background polling of AppConfig with dynamic context refresh when a configuration changes at runtime
- Importing AWS Secrets Manager secrets as Spring property sources via
jeap-aws-secretsmanager: - Optional key prefixing for secrets to avoid property-name clashes
- AWS SDK clients backed by the JDK URL-connection HTTP client (no Apache/Netty client pulled in)
flowchart LR
APPCONFIG["AWS AppConfig"]
SECRETS["AWS Secrets Manager"]
subgraph MS["Microservice"]
direction LR
subgraph STARTER["jeap-spring-boot-config-aws-starter"]
direction TB
ACLOADER["AppConfig ConfigData loader<br/>(jeap-app-config-aws:)"]
SMLOADER["Secrets Manager ConfigData loader<br/>(jeap-aws-secretsmanager:)"]
REFRESH["AppConfig poller & context refresher"]
end
ENV["Spring Environment"]
end
APPCONFIG -->|"1: Configuration profiles at startup"| ACLOADER
SECRETS -->|"2: Secrets at startup"| SMLOADER
ACLOADER -->|"3: Property sources"| ENV
SMLOADER -->|"3: Property sources"| ENV
APPCONFIG -->|"4: Configuration changes (polling)"| REFRESH
REFRESH -.->|"5: Refresh context"| ENV
%% Colors
classDef service fill:#F9CC9D,stroke:#333,stroke-width:2px,color:#000;
classDef component fill:#9FC5E8,stroke:#333,stroke-width:2px,color:#000;
classDef aws fill:#F9CC9D,stroke:#333,stroke-width:2px,color:#000;
class MS service;
class STARTER,ACLOADER,SMLOADER,REFRESH,ENV component;
class APPCONFIG,SECRETS aws;
Documentation
Start with Getting started, then follow the links below.
| Topic | File |
|---|---|
| Getting started (add the dependency, import config/secrets) | docs/getting-started.md |
Configuration reference (jeap.config.aws.appconfig.*, jeap.aws.secretsmanager.*) |
docs/configuration.md |
| AWS AppConfig integration | docs/appconfig.md |
| Dynamic configuration refresh | docs/dynamic-refresh.md |
| AWS Secrets Manager integration | docs/secrets-management.md |
Modules
The artifact consumers depend on is jeap-spring-boot-config-aws-starter. Group id for all modules
is ch.admin.bit.jeap; the version is managed by the jEAP Spring Boot parent.
| Module | Purpose |
|---|---|
jeap-spring-boot-config-aws-starter-parent |
Parent POM (packaging pom) declaring the starter module |
jeap-spring-boot-config-aws-starter |
Auto-configuration and ConfigData integration for AWS AppConfig and Secrets Manager |
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.