System Context¶
Code To UML đưa Diagram as Code vào những công cụ mà nhóm phát triển đã sử dụng. Người viết có thể tạo và xem trước sơ đồ trong Playground hoặc VS Code, đưa sơ đồ vào GitLab và Confluence, sau đó đánh giá thay đổi ngay trên merge request.
Phạm vi bối cảnh gồm người sử dụng, các nền tảng họ tương tác và trách nhiệm của Code To UML trong toàn bộ hành trình Diagram as Code.
1. Bối cảnh hệ thống¶
Playground và Gateway nằm trong phạm vi Code To UML. VS Code, GitLab, Confluence và static documentation host là các hệ thống hoặc nền tảng bên ngoài; dự án cung cấp extension, Forge app và artifact tích hợp để kết nối với chúng.
Các đường từ Code To UML tới nền tảng bên ngoài biểu thị điểm tích hợp mà sản phẩm cung cấp cho từng nền tảng.
2. Người sử dụng¶
| Nhóm | Việc cần hoàn thành |
|---|---|
| Người viết sơ đồ | Soạn source, điều chỉnh cách hiển thị, xem trước và xuất kết quả |
| Người đánh giá hoặc đọc tài liệu | Đọc sơ đồ trong tài liệu và so sánh thay đổi trên merge request |
| Người vận hành | Triển khai rendering service, quản lý secret, theo dõi trạng thái và xử lý sự cố |
Một người có thể đảm nhận nhiều vai trò. Developer thường vừa viết sơ đồ trong VS Code, vừa đánh giá thay đổi trên GitLab.
3. Phạm vi sản phẩm¶
Code To UML chịu trách nhiệm cho sáu điểm tiếp xúc với người dùng và hệ thống tích hợp:
- Playground để soạn, xem trước và xuất sơ đồ
- VS Code extension cho Preview và xuất sơ đồ
- GitLab document integration để nhúng sơ đồ; self-managed GitLab có thể xử lý thêm fence params trong Markdown pipeline
- Browser extension để xem trước Markdown và so sánh thay đổi sơ đồ trên GitLab merge request
- Confluence Forge integration để soạn sơ đồ bằng macro, chuyển code block thành macro và hiển thị sơ đồ trong trang
- Gateway làm điểm vào HTTP chung cho các trải nghiệm trên.
Java core và phần lớn môi trường renderer được kế thừa từ Kroki. Dự án đóng gói, tùy biến và mở rộng phần nền này để phục vụ sản phẩm; renderer không được xem là một sản phẩm độc lập.
4. Ngoài phạm vi¶
Hệ thống không cung cấp tài khoản người dùng, dashboard quản lý sơ đồ, cộng tác trực tuyến, lịch sử phiên bản hoặc kho lưu sơ đồ phía server. Source và lịch sử thay đổi vẫn thuộc workspace, GitLab repository, Confluence page hoặc trình duyệt của người dùng.
Shared rendering token chỉ bảo vệ endpoint render, không đại diện cho danh tính người dùng. Quyền xem và chỉnh sửa tài liệu vẫn do VS Code workspace, GitLab và Confluence quản lý.
5. Ranh giới tin cậy¶
Authenticated POST được dùng khi client hoặc backend có vùng lưu token tin cậy. Encoded GET không cần token và phù hợp với image URL trong Markdown hoặc static website, nhưng source trong URL có thể được khôi phục. Code To UML không biến encoded URL thành vùng lưu trữ riêng tư và không thay thế cơ chế phân quyền của GitLab, Confluence hoặc nơi phát hành tài liệu.