Identity Service API

Production-style backend service for user identity management, built with an API-first and contract-driven approach.

This Maven site is generated by CI after mvn clean verify succeeds. The public GitHub Pages root is the custom static dashboard, while this Maven site is published under /maven-site/.

What This Project Demonstrates

  • OpenAPI-first design with generated Spring MVC contracts
  • Versioned APIs for /api/v1 and /api/v2
  • Layered backend architecture: API, service, domain, persistence and infrastructure
  • PostgreSQL persistence with Flyway migrations
  • BCrypt password hashing and soft deletes
  • RFC 7807 ProblemDetail error responses
  • Unit, web-layer, repository and Testcontainers integration tests
  • Docker Compose support and GitHub Actions CI/CD
  • JaCoCo coverage generated during Maven verification

Generated Documentation

Build Runtime

  • Java 21
  • Maven
  • GitHub Actions on ubuntu-latest

Source Links

Local API Documentation

Static OpenAPI HTML documentation is generated by Maven from:

src/main/resources/openapi/identity-api.yaml

CI publishes it at:

https://danielemasone.github.io/identity-service/openapi/

Swagger UI is still exposed by the running Spring Boot application as a local runtime convenience:

http://localhost:8080/api/swagger-ui.html

GitHub Pages is static and does not host the running backend API.

Local Verification

Generate OpenAPI sources, MapStruct implementations, tests, package output and JaCoCo coverage:

mvn clean verify

Generate this Maven site after verification:

mvn site

The generated output is written to:

target/site