Устранить уязвимости backend-образа
Some checks failed
Проверка, сборка и развёртывание Magistr / Обязательные проверки (push) Successful in 1m12s
Проверка, сборка и развёртывание Magistr / Собрать backend image (push) Successful in 6m31s
Проверка, сборка и развёртывание Magistr / Собрать frontend image (push) Successful in 25s
Проверка, сборка и развёртывание Magistr / Проверить опубликованные образы (push) Failing after 6m40s
Проверка, сборка и развёртывание Magistr / Развернуть проверенные digests (push) Has been skipped
Some checks failed
Проверка, сборка и развёртывание Magistr / Обязательные проверки (push) Successful in 1m12s
Проверка, сборка и развёртывание Magistr / Собрать backend image (push) Successful in 6m31s
Проверка, сборка и развёртывание Magistr / Собрать frontend image (push) Successful in 25s
Проверка, сборка и развёртывание Magistr / Проверить опубликованные образы (push) Failing after 6m40s
Проверка, сборка и развёртывание Magistr / Развернуть проверенные digests (push) Has been skipped
This commit is contained in:
@@ -1,11 +1,37 @@
|
||||
{
|
||||
"generated_at": "2026-07-29T20:02:59.230356+00:00",
|
||||
"generated_at": "2026-07-29T21:00:52.911357+00:00",
|
||||
"nodes": {
|
||||
"_gitea_workflows_docker_build_build_and_push_docker_images": {
|
||||
"code_fingerprint": "80373e004c326a786715725be21ddb9214b6ff382a02cb829acad1bb9c9098f8",
|
||||
"label": "Workflow сборки и публикации Docker-образов",
|
||||
"last": "2026-07-29T19:59:04.551881+00:00",
|
||||
"_gitea_workflows_docker_build_backend_image_pipeline": {
|
||||
"code_fingerprint": "672f3effb2b85afa48bca601809662a5567dc0d57a24b224d4c7f1624899b222",
|
||||
"label": "Pipeline backend-образа",
|
||||
"last": "2026-07-29T20:38:53.488440+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||||
}
|
||||
],
|
||||
"score": 0.999647225,
|
||||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"_gitea_workflows_docker_build_build_and_push_docker_images": {
|
||||
"code_fingerprint": "672f3effb2b85afa48bca601809662a5567dc0d57a24b224d4c7f1624899b222",
|
||||
"label": "Workflow сборки и публикации Docker-образов",
|
||||
"last": "2026-07-29T20:38:53.488440+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||||
},
|
||||
{
|
||||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "сам можешь выполнить эти действия?"
|
||||
},
|
||||
{
|
||||
"date": "2026-07-29T19:59:04.551881+00:00",
|
||||
"outcome": "useful",
|
||||
@@ -17,10 +43,42 @@
|
||||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||||
}
|
||||
],
|
||||
"score": 1.999355769,
|
||||
"score": 3.996372989,
|
||||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
"uses": 4
|
||||
},
|
||||
"_gitea_workflows_docker_build_deploy_to_k8s": {
|
||||
"code_fingerprint": "672f3effb2b85afa48bca601809662a5567dc0d57a24b224d4c7f1624899b222",
|
||||
"label": "Job деплоя в Kubernetes",
|
||||
"last": "2026-07-29T20:12:38.880629+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "сам можешь выполнить эти действия?"
|
||||
}
|
||||
],
|
||||
"score": 0.999226384,
|
||||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"_gitea_workflows_docker_build_frontend_image_pipeline": {
|
||||
"code_fingerprint": "672f3effb2b85afa48bca601809662a5567dc0d57a24b224d4c7f1624899b222",
|
||||
"label": "Pipeline frontend-образа",
|
||||
"last": "2026-07-29T20:38:53.488440+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||||
}
|
||||
],
|
||||
"score": 0.999647225,
|
||||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_config_auth_authorizationinterceptor_authorizationinterceptor": {
|
||||
"code_fingerprint": "70b01b3fa22e058ee997250c52cc0affee54ab37aa5f8cc7eb74411487f1bbbf",
|
||||
@@ -43,7 +101,7 @@
|
||||
"q": "Почему RequireRoles связывает множество контроллеров, моделей и сервисов как cross-community bridge?"
|
||||
}
|
||||
],
|
||||
"score": 1.861135007,
|
||||
"score": 1.859406956,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/auth/AuthorizationInterceptor.java",
|
||||
"status": "preferred",
|
||||
"uses": 3
|
||||
@@ -59,7 +117,7 @@
|
||||
"q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
}
|
||||
],
|
||||
"score": 0.661231273,
|
||||
"score": 0.660617324,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/auth/JwtTokenService.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -75,7 +133,7 @@
|
||||
"q": "Почему RequireRoles связывает множество контроллеров, моделей и сервисов как cross-community bridge?"
|
||||
}
|
||||
],
|
||||
"score": 0.556344408,
|
||||
"score": 0.555827846,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/auth/RequireRoles.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -91,7 +149,7 @@
|
||||
"q": "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
|
||||
}
|
||||
],
|
||||
"score": 0.676664767,
|
||||
"score": 0.676036488,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/DataInitializer.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -107,7 +165,7 @@
|
||||
"q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
|
||||
}
|
||||
],
|
||||
"score": 0.643559327,
|
||||
"score": 0.642961786,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/ConfigMapUpdater.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -123,7 +181,7 @@
|
||||
"q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
|
||||
}
|
||||
],
|
||||
"score": 0.676550037,
|
||||
"score": 0.675921865,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantConfig.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -149,7 +207,7 @@
|
||||
"q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
|
||||
}
|
||||
],
|
||||
"score": 1.99677413,
|
||||
"score": 1.994920139,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantConfigWatcher.java",
|
||||
"status": "preferred",
|
||||
"uses": 3
|
||||
@@ -175,7 +233,7 @@
|
||||
"q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
}
|
||||
],
|
||||
"score": 2.014446076,
|
||||
"score": 2.012575677,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java",
|
||||
"status": "preferred",
|
||||
"uses": 3
|
||||
@@ -191,7 +249,7 @@
|
||||
"q": "Почему в выборе аудитории показаны корпус и этаж?"
|
||||
}
|
||||
],
|
||||
"score": 0.831862505,
|
||||
"score": 0.831090126,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ClassroomController.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -207,7 +265,7 @@
|
||||
"q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
}
|
||||
],
|
||||
"score": 0.661231273,
|
||||
"score": 0.660617324,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/DatabaseController.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -228,7 +286,7 @@
|
||||
"q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
|
||||
}
|
||||
],
|
||||
"score": 1.353214804,
|
||||
"score": 1.351958353,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/DatabaseController.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -244,7 +302,7 @@
|
||||
"q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
|
||||
}
|
||||
],
|
||||
"score": 0.643559327,
|
||||
"score": 0.642961786,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/GlobalExceptionHandler.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -265,7 +323,7 @@
|
||||
"q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
}
|
||||
],
|
||||
"score": 1.492325672,
|
||||
"score": 1.490940058,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleController.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -281,7 +339,7 @@
|
||||
"q": "Как безопасно валидировать и сохранять точечные изменения расписания?"
|
||||
}
|
||||
],
|
||||
"score": 0.671815777,
|
||||
"score": 0.671192001,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleOverrideController.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -302,7 +360,7 @@
|
||||
"q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
|
||||
}
|
||||
],
|
||||
"score": 1.319879771,
|
||||
"score": 1.318654271,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleRuleAdminController.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -318,7 +376,7 @@
|
||||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||||
}
|
||||
],
|
||||
"score": 0.851581632,
|
||||
"score": 0.850790945,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/AcademicCalendar.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -334,7 +392,7 @@
|
||||
"q": "Почему в выборе аудитории показаны корпус и этаж?"
|
||||
}
|
||||
],
|
||||
"score": 0.831862505,
|
||||
"score": 0.831090126,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/Classroom.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -350,7 +408,7 @@
|
||||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||||
}
|
||||
],
|
||||
"score": 0.851581632,
|
||||
"score": 0.850790945,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/Department.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -371,7 +429,7 @@
|
||||
"q": "Корректны ли inferred-связи вокруг ScheduleRule?"
|
||||
}
|
||||
],
|
||||
"score": 1.23328582,
|
||||
"score": 1.232140722,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/ScheduleRule.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -387,7 +445,7 @@
|
||||
"q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
|
||||
}
|
||||
],
|
||||
"score": 0.676320444,
|
||||
"score": 0.675692485,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/ScheduleRuleSlot.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -408,7 +466,7 @@
|
||||
"q": "в дополнительные фильры просмотра расписаний нужно добавить выбор семестра"
|
||||
}
|
||||
],
|
||||
"score": 1.682676032,
|
||||
"score": 1.681113679,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/Semester.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -424,7 +482,7 @@
|
||||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||||
}
|
||||
],
|
||||
"score": 0.851581632,
|
||||
"score": 0.850790945,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/StudentGroup.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -440,7 +498,7 @@
|
||||
"q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
|
||||
}
|
||||
],
|
||||
"score": 0.676320444,
|
||||
"score": 0.675692485,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/repository/SemesterRepository.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -461,7 +519,7 @@
|
||||
"q": "Как безопасно валидировать и сохранять точечные изменения расписания?"
|
||||
}
|
||||
],
|
||||
"score": 1.502910177,
|
||||
"score": 1.501514735,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/service/ScheduleQueryService.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
@@ -477,7 +535,7 @@
|
||||
"q": "Корректны ли inferred-связи вокруг ScheduleRule?"
|
||||
}
|
||||
],
|
||||
"score": 0.556965376,
|
||||
"score": 0.556448237,
|
||||
"source_file": "backend/src/test/java/com/magistr/app/model/ScheduleRuleTest.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -493,7 +551,7 @@
|
||||
"q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
}
|
||||
],
|
||||
"score": 0.661231273,
|
||||
"score": 0.660617324,
|
||||
"source_file": "compose.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -509,7 +567,7 @@
|
||||
"q": "новая схема на проде на удалённом сервере создана через CREATE SCHEMA public. я проверил, давай дальше"
|
||||
}
|
||||
],
|
||||
"score": 0.999937245,
|
||||
"score": 0.99900881,
|
||||
"source_file": "compose.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
@@ -525,32 +583,58 @@
|
||||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||||
}
|
||||
],
|
||||
"score": 0.999418524,
|
||||
"score": 0.998490571,
|
||||
"source_file": "docs/DATABASE.md",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"docs_infrastructure_jwt_secret_policy": {
|
||||
"code_fingerprint": "fbce586f3b64dba203d336f5744d9895924e86e122cdde1939c0dec1600e1af1",
|
||||
"label": "Политика JWT-секрета",
|
||||
"last": "2026-07-29T19:26:44.188240+00:00",
|
||||
"docs_infrastructure_gitea_actions_cicd": {
|
||||
"code_fingerprint": "40b5d07ca2998f186f60fcab44ece5a5bf3ee2ad747acfbe1be3c29d3b7a00f5",
|
||||
"label": "CI/CD Gitea Actions в инфраструктуре",
|
||||
"last": "2026-07-29T20:38:53.488440+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||||
}
|
||||
],
|
||||
"score": 0.999647225,
|
||||
"source_file": "docs/INFRASTRUCTURE.md",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"docs_infrastructure_jwt_secret_policy": {
|
||||
"code_fingerprint": "40b5d07ca2998f186f60fcab44ece5a5bf3ee2ad747acfbe1be3c29d3b7a00f5",
|
||||
"label": "Политика JWT-секрета",
|
||||
"last": "2026-07-29T20:12:38.880629+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "сам можешь выполнить эти действия?"
|
||||
},
|
||||
{
|
||||
"date": "2026-07-29T19:26:44.188240+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||||
}
|
||||
],
|
||||
"score": 0.999418524,
|
||||
"score": 1.997716954,
|
||||
"source_file": "docs/INFRASTRUCTURE.md",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
},
|
||||
"docs_infrastructure_kubernetes_production": {
|
||||
"code_fingerprint": "fbce586f3b64dba203d336f5744d9895924e86e122cdde1939c0dec1600e1af1",
|
||||
"code_fingerprint": "40b5d07ca2998f186f60fcab44ece5a5bf3ee2ad747acfbe1be3c29d3b7a00f5",
|
||||
"label": "Production-инфраструктура Kubernetes",
|
||||
"last": "2026-07-29T19:59:04.551881+00:00",
|
||||
"last": "2026-07-29T20:12:38.880629+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "сам можешь выполнить эти действия?"
|
||||
},
|
||||
{
|
||||
"date": "2026-07-29T19:59:04.551881+00:00",
|
||||
"outcome": "useful",
|
||||
@@ -562,13 +646,13 @@
|
||||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||||
}
|
||||
],
|
||||
"score": 1.999355769,
|
||||
"score": 2.996725764,
|
||||
"source_file": "docs/INFRASTRUCTURE.md",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
"uses": 3
|
||||
},
|
||||
"docs_infrastructure_tenants_configmap": {
|
||||
"code_fingerprint": "fbce586f3b64dba203d336f5744d9895924e86e122cdde1939c0dec1600e1af1",
|
||||
"code_fingerprint": "40b5d07ca2998f186f60fcab44ece5a5bf3ee2ad747acfbe1be3c29d3b7a00f5",
|
||||
"label": "Tenants ConfigMap",
|
||||
"last": "2026-07-29T19:26:44.188240+00:00",
|
||||
"provenance": [
|
||||
@@ -578,7 +662,7 @@
|
||||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||||
}
|
||||
],
|
||||
"score": 0.999418524,
|
||||
"score": 0.998490571,
|
||||
"source_file": "docs/INFRASTRUCTURE.md",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-29T21:27:26.637336+00:00"
|
||||
question: "Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["Workflow сборки и публикации Docker-образов", "Pipeline backend-образа", "CI/CD Gitea Actions в инфраструктуре", "SpringBootApplication"]
|
||||
---
|
||||
|
||||
# Q: Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1
|
||||
|
||||
## Answer
|
||||
|
||||
CI дошёл до сканирования опубликованного backend-образа, поэтому передача исходников в контейнеры уже исправлена. HIGH/CRITICAL находились в устаревших пакетах Alpine и Java-зависимостях Spring Boot 3.2.5. Backend обновлён до Spring Boot 3.5.16, PostgreSQL JDBC закреплён на 42.7.12, для Flyway 11 добавлен flyway-database-postgresql, runtime устанавливает исправления Alpine. Локальный образ прошёл тот же Trivy gate: Alpine 0, app.jar 0, OpenTelemetry agent 0. Полный backend-набор: 300 тестов без ошибок; обязательные CI, frontend, Compose и supply-chain проверки также прошли.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- Workflow сборки и публикации Docker-образов
|
||||
- Pipeline backend-образа
|
||||
- CI/CD Gitea Actions в инфраструктуре
|
||||
- SpringBootApplication
|
||||
@@ -1,19 +1,20 @@
|
||||
# Lessons
|
||||
|
||||
_Auto-generated by `graphify reflect` from 14 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._
|
||||
_Auto-generated by `graphify reflect` from 16 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._
|
||||
|
||||
## Summary
|
||||
|
||||
- 13 useful · 1 dead ends · 0 corrected · 0 unmarked
|
||||
- 15 useful · 1 dead ends · 0 corrected · 0 unmarked
|
||||
|
||||
## Lessons
|
||||
|
||||
**Preferred sources** — corroborated by ≥2 useful results; start here.
|
||||
|
||||
- `Workflow сборки и публикации Docker-образов` (4× useful)
|
||||
- `Production-инфраструктура Kubernetes` (3× useful)
|
||||
- `ScheduleGeneratorService` (3× useful)
|
||||
- `TenantRoutingDataSource` (3× useful)
|
||||
- `Production-инфраструктура Kubernetes` (2× useful)
|
||||
- `Workflow сборки и публикации Docker-образов` (2× useful)
|
||||
- `Политика JWT-секрета` (2× useful)
|
||||
- `TenantConfigWatcher` (3× useful)
|
||||
- `AuthorizationInterceptor` (3× useful)
|
||||
- `Semester` (2× useful)
|
||||
@@ -25,10 +26,13 @@ _Auto-generated by `graphify reflect` from 14 session memories in graphify-out/m
|
||||
|
||||
**Tentative** — useful in fewer than 2 results; verify before relying.
|
||||
|
||||
- `CI/CD Gitea Actions в инфраструктуре` (1× useful)
|
||||
- `Pipeline backend-образа` (1× useful)
|
||||
- `Pipeline frontend-образа` (1× useful)
|
||||
- `Job деплоя в Kubernetes` (1× useful)
|
||||
- `PostgreSQL-сервис Docker Compose` (1× useful)
|
||||
- `Flyway-миграции` (1× useful)
|
||||
- `Tenants ConfigMap` (1× useful)
|
||||
- `Политика JWT-секрета` (1× useful)
|
||||
- `AcademicCalendar` (1× useful)
|
||||
- `Department` (1× useful)
|
||||
- `StudentGroup` (1× useful)
|
||||
|
||||
Reference in New Issue
Block a user