Microservice responsible for providing blueprints that contain templates specific to some device model (e.g. installation paramaters, stream configuration, or device drivers). Templates may contain some variables (e.g. address, port, credentials).
Blueprints can be specified by following paramaters that are used for searching of the specific template:
- blueprint type (install, stream, ...)
- connection type (management protocol)
- device vendor (POSIX regex)
- device model (POSIX regex)
- device version (POSIX regex)
- Storing blueprints on the common place: Currently, blueprints are spread across multiple projects (e.g. device-induction, system-tests, and various customer scripts). Concentration of the blueprints in the single repository simplifies:
- updating blueprints
- testing changes in both blueprints and other microservices that use these blueprints
- integration with CI/CD pipeline
- reusability of blueprints among multiple projects
- using unified format for templates
- Migration from the service-oriented model to configuration-based model: Since blueprints are usually part of the microservice code-base, it is difficult to maintain them and extend them without upgrading of the specific microservice version. Extraction of the blueprints to distinct microservice mitigates this issue and allows integrator to add support for the new device model by just adjusting of the configuration.
- Blueprints Providers opens door to data-driven applications: Automatic generation of blueprint templates by combination of existing templates and AI/ML models.
To ensure code style consistency across the project, we use ktlint
, a Kotlin linter and formatter.
Run ktlint to check for code style violations using Gradle:
frinx@dell-laptop:~/blueprints-provider$ ./gradlew ktlintCheck
Run ktlint to format code using Gradle:
frinx@dell-laptop:~/blueprints-provider$ ./gradlew ktlintFormat