добавление аудита в таблицу history
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user