Source code for LAA Digital's Access Data Stewardship API, owned by the Access Data Stewardship team.
This API will provide a trusted API source of truth for the Civil Applications and Civil Decide projects for data related to applications, proceedings, delegated functions, scope limitations, cost limitations and level of service.
Includes the following subprojects:
dstew-access-shared
- common Java classes packaged into a library to avoid unexpected dependencies - can depend on Spring Web, but must not depend on Spring Data (nor any database code)dstew-access-api
- OpenAPI specification used for generating API stub interfaces and documentation.dstew-access-service
- example REST API service with CRUD operations interfacing a JPA repository with PostgreSQL.
- Continue to update this
README.md
file to include information such as what this project does. - Ensure at least one team is granted Admin permissions.
- Agree provisional content of
CODEOWNERS
file and PR review policy (e.g. number of reviewers). - Ensure the project has been added to the Legal Aid Agency Snyk organisation.
- Check why
build-test-pr.yml
andpr-merge-main.yml
were not brought across. - Add a database schema migrations tool such as Liquibase or Flyway.
./gradlew clean build
Note that completing the build and unit tests currently requires:
- GitHub token with
read:packages
access - used bylaa-ccms-spring-boot-gradle-plugin
- Running
docker compose up -d
to start up PostgreSQL and LocalStack - used by unit tests
./gradlew integrationTest
./gradlew bootRun
docker compose up
The following actuator endpoints have been configured:
- http://localhost:8080/actuator
- http://localhost:8080/actuator/health
- http://localhost:8080/actuator/info
- Spring Boot Actuator - used to provide various endpoints to help monitor the application, such as view application health and information.
- Spring Boot Web - used to provide features for building the REST API implementation.
- Spring Data JPA - used to simplify database access and interaction, by providing an abstraction over persistence technologies, to help reduce boilerplate code.
- Springdoc OpenAPI - used to generate OpenAPI documentation. It automatically generates Swagger UI, JSON documentation based on your Spring REST APIs.
- Lombok - used to help to reduce boilerplate Java code by automatically generating common methods like getters, setters, constructors etc. at compile-time using annotations.
- MapStruct - used for object mapping, specifically for converting between different Java object types, such as Data Transfer Objects (DTOs) and Entity objects. It generates mapping code at compile code.
- H2 - used to provide an example database and should not be used in production.
The project uses the laa-ccms-spring-boot-gradle-plugin
Gradle plugin which provides
sensible defaults for the following plugins:
The plugin is provided by laa-ccms-spring-boot-common, where you can find more information regarding (required) setup and usage.