Сервис техрадаров (Tech Radar) — backend‑приложение, которое хранит и предоставляет информацию о технологиях и паттернах, используемых в компании: их статусах, секторах, кольцах, историях изменений и связанных процессах/продуктах.
- Язык/платформа: Java 17, Spring Boot 2.7.x (
TechradarBackendApplication) - БД: PostgreSQL (схема
techradar) - ORM / доступ к данным: Spring Data JPA
- Миграции БД: Flyway (
src/main/resources/db/migration) - Документация API: Swagger / OpenAPI (аннотации
io.swagger.annotations.*) - Сборка: Maven
- Контейнеризация: Docker,
Dockerfile,docker-compose.yml - Мониторинг: Spring Actuator (
/actuator/health,/actuator/prometheus)
- Управление технологиями (
/api/v1/tech):- получение списка технологий и детальной информации с историей статусов;
- создание, обновление, удаление технологий;
- управление версиями технологий;
- экспорт данных по технологиям в документ через интеграцию с document‑service.
- Управление паттернами проектирования (
/api/v1/pattern*):- просмотр всех паттернов и групп;
- CRUD для паттернов и групп паттернов;
- получение дерева групп паттернов;
- фильтрация паттернов с автоматической проверкой.
- Управление процессами (
/api/v1/processes) и связями с технологиями. - Интеграции с внешними сервисами:
- notification‑service;
- document‑service;
- products‑service.
- Установленный Docker и docker-compose.
Переменные для БД (см. docker-compose.yml):
- TECHRADAR_POSTGRES_DB – имя БД (по умолчанию
techradar); - TECHRADAR_POSTGRES_USER – пользователь БД (по умолчанию
postgres); - TECHRADAR_POSTGRES_PASSWORD – пароль БД (по умолчанию
postgres); - TECHRADAR_POSTGRES_NODEPORT – внешний порт Postgres (по умолчанию
5432); - TECHRADAR_SERVICE_PORT – внешний порт сервиса (по умолчанию
8081).
Переменные интеграций (используются в клиентах через @Value(...)):
- INTEGRATION_NOTIFICATION_SERVER_URL →
integration.notification-server-url - INTEGRATION_DOCUMENT_SERVER_URL →
integration.document-server-url - INTEGRATION_PRODUCTS_SERVER_URL →
integration.products-server-url
Пример фрагмента docker-compose.yml:
services:
techradar-backend:
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://techradar-postgres:5432/techradar
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: postgres
SPRING_JPA_HIBERNATE_DDL_AUTO: none
SPRING_JPA_PROPERTIES_HIBERNATE_DEFAULT_SCHEMA: techradar
SPRING_FLYWAY_DEFAULT_SCHEMA: techradar
SPRING_FLYWAY_BASELINE_ON_MIGRATE: "true"
SPRING_FLYWAY_CLEAN_DISABLED: "true"
INTEGRATION_NOTIFICATION_SERVER_URL: "http://notification-service"
INTEGRATION_DOCUMENT_SERVER_URL: "https://document-service"
INTEGRATION_PRODUCTS_SERVER_URL: "https://products-service"# сборка и запуск контейнеров в фоне
docker-compose up -d --build
# остановка и удаление контейнеров
docker-compose downПосле запуска backend будет доступен по адресу:
http://localhost:8081(если не менялсяTECHRADAR_SERVICE_PORT).
- Java 17;
- Maven;
- доступный PostgreSQL (БД/схема
techradar).
- Настроить подключение к БД (через
application.propertiesили env:SPRING_DATASOURCE_URL,SPRING_DATASOURCE_USERNAME,SPRING_DATASOURCE_PASSWORD). - Flyway‑миграции применятся автоматически при старте приложения.
- Собрать и запустить:
mvn clean package -DskipTests
java -jar target/techradar-<version>.jarМиграции находятся в src/main/resources/db/migration и автоматически применяются Flyway при
старте приложения. Ключевые миграции:
- V1__Base_version.sql – базовые таблицы (
Tech,Category,Ring,Sector, …); - V2__fill_sector_table.sql – наполнение справочников
SectorиRing, создание последовательностей; - V3__Technoradar_patch.sql, V4__Technoradar_patch.sql и др. – донаполнение таблицы
techи корректировки; - V5__add_black_lists.sql, V6__fill_black_lists.sql, V10__migrate_blacklist_to_tech.sql – работа с black‑list;
- V11__recreate_history_tech_and_process.sql – таблицы
history_techиprocessи их связи; - V15–V18 – таблицы паттернов (
pattern,pattern_group,pattern_tech) и доп. колонки; - V19__refresh_processes_table.sql – наполнение таблицы
process(может зависеть от конкретныхtech_id).
Ниже приведены ключевые эндпоинты (не полный список).
-
Технологии (
TechController, базовый путь"/api/v1/tech"):GET /api/v1/tech– список технологий (опционально только актуальные);GET /api/v1/tech/{id}– технология с историей статусов;GET /api/v1/tech/by-ids?ids=1&ids=2– технологии по списку ID;POST /api/v1/tech– создание технологий;PATCH /api/v1/tech/{id}– обновление технологии;DELETE /api/v1/tech/{id}– удаление технологии;- версии технологии:
POST /api/v1/tech/{tech_id}/versionPATCH /api/v1/tech/{tech_id}/version/{id_version}DELETE /api/v1/tech/{tech_id}/version/{version_id}
POST /api/v1/tech/export/{doc_id}– экспорт в документ.
-
Паттерны (
PatternController, базовый путь"/api/v1"):GET /api/v1/patterns– все паттерны;GET /api/v1/patterns/tech/{tech_id}– паттерны по технологии;GET /api/v1/pattern/{id}– паттерн по id;GET /api/v1/patterns/auto-check– паттерны с авто‑проверкой;- группы паттернов:
GET /api/v1/pattern/groupGET /api/v1/pattern/group/treePOST /api/v1/pattern/groupPATCH /api/v1/pattern/group/{id}DELETE /api/v1/pattern/group/{id}
- паттерны:
POST /api/v1/patternPATCH /api/v1/pattern/{id}DELETE /api/v1/pattern/{id}
-
Справочники:
GET /api/v1/sectors– сектора;GET /api/v1/rings– кольца;GET /api/v1/category– категории.
-
Процессы:
GET /api/v1/processes– список процессов.
GET /actuator/health– проверка здоровья приложения;GET /actuator/prometheus– метрики Prometheus (если включены).
- Основной пакет:
ru.beeline.techradar.* - Доменные сущности:
ru.beeline.techradar.domain.* - Контроллеры:
ru.beeline.techradar.controller.* - Сервисы:
ru.beeline.techradar.service.* - Репозитории:
ru.beeline.techradar.repository.* - DTO/мапперы:
ru.beeline.techradar.dto.*,ru.beeline.techradar.maper.*
Для локальной разработки можно использовать PostgreSQL из docker-compose.yml
или собственный экземпляр Postgres с той же схемой и миграциями.