c4-component.puml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. @startuml
  2. !include C4_Component.puml
  3. LAYOUT_WITH_LEGEND()
  4. Container_Boundary(api, "Сервер приложения") {
  5. Component(api_controller, "Access API", "ASP.NET Core", "Принимает запросы на проверку доступа")
  6. Component(admin_controller, "Admin API", "ASP.NET Core", "Управление политиками и хостами")
  7. Component(decision_service, "Decision Service", "C#", "Принимает решение по доступу")
  8. Component(policy_service, "Policy Service", "C#", "Работа с политиками доступа")
  9. Component(audit_service, "Audit Service", "C#", "Логирование событий доступа")
  10. Component(management_service, "Management Service", "C#", "Управление сущностями системы")
  11. Component(policy_repo, "Policy Repository", "EF Core", "Доступ к данным политик")
  12. Component(audit_repo, "Audit Repository", "EF Core", "Доступ к журналу")
  13. Component(management_repo, "Management Repository", "EF Core", "Доступ к данным системы")
  14. }
  15. ContainerDb(db, "Database", "PostgreSQL", "Хранение данных системы")
  16. Rel(api_controller, decision_service, "Передаёт контекст запроса")
  17. Rel(decision_service, policy_service, "Запрашивает политики")
  18. Rel(policy_service, policy_repo, "Читает политики")
  19. Rel(decision_service, audit_service, "Передаёт результат")
  20. Rel(audit_service, audit_repo, "Записывает лог")
  21. Rel(admin_controller, management_service, "Управляет системой")
  22. Rel(management_service, management_repo, "Работа с данными")
  23. Rel(policy_repo, db, "Читает/пишет", "SQL")
  24. Rel(audit_repo, db, "Читает/пишет", "SQL")
  25. Rel(management_repo, db, "Читает/пишет", "SQL")
  26. @enduml