добавление аудита в таблицу history

This commit is contained in:
Anton Dzyk
2026-01-10 16:33:41 +03:00
parent 11b8f6aa82
commit 3ccb43cb6f
10 changed files with 419 additions and 8 deletions
+145
View File
@@ -0,0 +1,145 @@
@startuml LTI Provider
' Настройка для A4 портретной ориентации с ГОСТ отступами (3см слева)
skinparam dpi 150
skinparam defaultFontSize 10
skinparam class {
BackgroundColor<<Controller>> LightBlue
BackgroundColor<<Service>> LightGreen
BackgroundColor<<Entity>> Wheat
BackgroundColor<<Infrastructure>> LightSalmon
FontSize 10
}
skinparam packageStyle rectangle
skinparam linetype polyline
' Слой Controllers - верх по центру
package "Controller Layer" {
class LaunchController <<Controller>> {
+ login()
+ redirect()
}
class TaskController <<Controller>> {
+ getTask()
+ updateTask()
+ submitTask()
}
}
' Левая колонка - Service/Repository/Infrastructure
package "Service Layer" {
class TaskServiceImpl <<Service>> {
+ getTask(UUID): TaskData
+ saveTask(RequestUpdateTask)
+ checkTask(ResultRequest)
}
class JwtService <<Service>> {
+ getPayload(jwt): Payload
+ getTokenPayload(jwt): IdTokenPayload
}
class HistoryService <<Service>> {
+ logEvent()
+ logAction()
}
}
package "Repository Layer" {
interface LMSContentRepository {
+ getLMSContentByContentUuid()
}
interface HistoryRepository {
+ findByContentUuid()
+ findByDeploymentId()
}
}
package "Infrastructure Layer" {
class LMSService <<Infrastructure>> {
+ ltiAuth()
+ exchangeForAccessToken()
}
class Runner <<Infrastructure>> {
+ run(userId, script)
+ check(userId, script)
}
}
' Правая колонка - Entity/Domain
package "Entity Layer" {
class LMSContent <<Entity>> {
- id: long
- contentUuid: UUID
- deploymentId: UUID
- task: Task
}
class Task <<Entity>> {
- id: long
- name: String
- description: String
- initScript: String
- verificationScript: String
- deleteScript: String
}
class History <<Entity>> {
- id: long
- contentUuid: UUID
- message: String
}
}
package "Domain Models" {
class TaskData {
- name: String
- description: String
- initScript: String
- verificationScript: String
- deleteScript: String
}
}
' Вертикальное выравнивание левой колонки
"Controller Layer" -[hidden]down- "Service Layer"
"Service Layer" -[hidden]down- "Repository Layer"
"Repository Layer" -[hidden]down- "Infrastructure Layer"
' Вертикальное выравнивание правой колонки
"Entity Layer" -[hidden]down- "Domain Models"
' Горизонтальное расположение колонок
"Service Layer" -[hidden]right- "Entity Layer"
"Repository Layer" -[hidden]right- "Entity Layer"
"Infrastructure Layer" -[hidden]right- "Domain Models"
' Связи Controllers -> Services
LaunchController --> JwtService
LaunchController --> LMSService
LaunchController --> HistoryService
TaskController --> TaskServiceImpl
TaskController --> HistoryService
' Связи Services -> Infrastructure/Repository
TaskServiceImpl --> LMSContentRepository
TaskServiceImpl --> Runner
TaskServiceImpl --> LMSService
TaskServiceImpl --> HistoryService
TaskServiceImpl ..> TaskData
Runner --> HistoryService
' Связи Repository -> Entity
LMSContentRepository ..> LMSContent
HistoryRepository ..> History
' Связи Entity
LMSContent "*" --> "1" Task
@enduml
+39
View File
@@ -0,0 +1,39 @@
@startuml
skinparam backgroundColor white
skinparam componentStyle rectangle
scale 1024 width
' Определяем участников системы
package "Learning Platform" {
[openOLAT] --> [External Tool]
}
package "CI/CD Pipeline" {
[GitLab] --> [GitLab Runner]
[GitLab Runner] --> [Harbor]
}
package "Deployment" {
[Kubernetes]
[Docker]
}
actor User
' Связи
User --> [External Tool]
User --> [GitLab]
User --> [Kubernetes]
User --> [Docker]
[External Tool] --> [GitLab] : init/delete script
[External Tool] --> [Kubernetes] : init/delete script
[Harbor] --> [Kubernetes] : Pull images
"Learning Platform" -[hidden]down- "CI/CD Pipeline"
"Learning Platform" -[hidden]down- "Deployment"
@enduml