Building Block EMULATOR

Building block emulators are simple application that “emulates“ the behaviour of specific building block (BB). The implementations are based on Govstack Specification. They are example implementation that mimics the actual behaviour of BB. They may not provide the complete functionality of specific BB, but should provide specified endpoints in the Govstack Specification.

 

Tech requirements

  • Java 17/Spring Boot 3.1 (latest stable versions)

  • Gradle as a build tool

  • Packaged as containers

  • Minimal Helm chart for Sandbox Kubernetes deployment

  • CI/CD pipelines for image building from source code

  • CI/CD pipelines for deploying in Kubernetes Cluster

Emulators should provide necessary API endpoints for Specific Application to accomplish specific use-case. In that case emulator should provide only the endpoints that are needed for specific use-case, and should evolve only when new use-case requires not yet implemented API endpoints.

Example:

For USCT use-case, Payment BB should provide Government to Person (G2P) payments, so the emulator should provide only the G2P endpoints for that use case.

 

Additional requirements:

  • Health check endpoints (org.springframework.boot:spring-boot-starter-actuator)

  • Structured logging (net.logstash.logback:logstash-logback-encoder), to be able to output logs in JSON format for easier collecting.

  • Swagger UI

  • Open API spec JSON & YAML

 

Application for API generating from Open API spec:

  1. Swagger codegen

    1. Maven Codegen Repo

    2. Gradle Plugin

      1. Example

Implementations:

 

Tools for building OpenAPI specs: