176 lines
3.1 KiB
Markdown
176 lines
3.1 KiB
Markdown
# UML Guidance
|
|
|
|
## 1. Use Case Diagram
|
|
|
|
### Main Actor
|
|
|
|
- Admin
|
|
|
|
### Main Use Cases
|
|
|
|
- Sign in
|
|
- Access protected dashboard
|
|
- View dashboard summary
|
|
- Manage servers
|
|
- Manage services
|
|
- Manage domains
|
|
- Check DNS for a domain
|
|
- Manage notes
|
|
- View notes related to a specific server
|
|
- Sign out
|
|
|
|
## 2. Class Diagram
|
|
|
|
### Main Classes / Entities
|
|
|
|
#### Server
|
|
|
|
- id
|
|
- name
|
|
- primaryIpAddress
|
|
- secondaryIpAddress
|
|
- operatingSystem
|
|
- location
|
|
- provider
|
|
- description
|
|
- status
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
#### Service
|
|
|
|
- id
|
|
- serverId
|
|
- name
|
|
- type
|
|
- internalPort
|
|
- externalPort
|
|
- protocol
|
|
- status
|
|
- description
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
#### Domain
|
|
|
|
- id
|
|
- serviceId
|
|
- name
|
|
- expectedServerIp
|
|
- lastResolvedIp
|
|
- lastResolvedIps
|
|
- resolutionStatus
|
|
- lastCheckedAt
|
|
- remarks
|
|
- lastCheckMessage
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
#### Note
|
|
|
|
- id
|
|
- serverId
|
|
- title
|
|
- content
|
|
- category
|
|
- createdAt
|
|
- updatedAt
|
|
|
|
### Relationships
|
|
|
|
- Server 1..\* Service
|
|
- Server 1..\* Note
|
|
- Service 1..\* Domain
|
|
- Service \*..1 Server
|
|
- Domain \*..1 Service
|
|
- Note \*..1 Server
|
|
|
|
### Implementation Notes
|
|
|
|
- Server detail page displays related notes for the selected server.
|
|
- Service forms select an existing server.
|
|
- Domain forms select an existing service.
|
|
- Note forms select an existing server.
|
|
|
|
## 3. Activity Diagram
|
|
|
|
Suggested activity: **Check DNS from Domain List**
|
|
|
|
Flow:
|
|
|
|
- Admin opens domain list
|
|
- Admin clicks the DNS status badge
|
|
- System resolves IPv4 A record(s)
|
|
- System compares resolved IPs with `expectedServerIp`
|
|
- System stores check result in the domain record
|
|
- System refreshes the list
|
|
- System shows `MATCH`, `MISMATCH`, or `UNRESOLVED`
|
|
|
|
## 4. State Chart Diagram
|
|
|
|
Suggested state chart: **Domain DNS Status**
|
|
|
|
States:
|
|
|
|
- UNRESOLVED
|
|
- MATCH
|
|
- MISMATCH
|
|
|
|
Transitions:
|
|
|
|
- DNS check success and expected IP found -> MATCH
|
|
- DNS check success and expected IP not found -> MISMATCH
|
|
- DNS resolution failure -> UNRESOLVED
|
|
|
|
## 5. Sequence Diagram
|
|
|
|
Suggested sequence: **Create Domain and Check DNS**
|
|
|
|
Objects:
|
|
|
|
- Admin
|
|
- Web UI
|
|
- tRPC API
|
|
- Database
|
|
- DNS Resolver
|
|
|
|
Flow:
|
|
|
|
- Admin opens create domain page
|
|
- UI loads available services
|
|
- Admin selects a service and submits the form
|
|
- API validates the service relationship
|
|
- API stores the domain
|
|
- Admin clicks DNS status / check action
|
|
- UI calls `domains.check`
|
|
- API resolves DNS A records
|
|
- API updates domain check fields in the database
|
|
- UI refetches and displays the new status
|
|
|
|
## 6. Collaboration Diagram
|
|
|
|
Show collaboration between:
|
|
|
|
- Admin
|
|
- Dashboard UI
|
|
- better-auth client / auth middleware
|
|
- tRPC routers
|
|
- Database
|
|
- DNS lookup module
|
|
|
|
Suggested emphasis:
|
|
|
|
- Protected route access
|
|
- CRUD coordination between UI and API
|
|
- Parent-child relationship selection in forms
|
|
- DNS checking and persistence flow
|
|
- Server detail page collaboration with note listing
|
|
|
|
## 7. UI/Interaction Notes for Documentation
|
|
|
|
Useful current UI details you can reflect in diagrams or captions:
|
|
|
|
- `/` redirects to `/dashboard` or `/login` based on session state
|
|
- Main list pages are ordered by `createdAt DESC`, then `id DESC`
|
|
- Delete actions use a two-click icon confirmation flow
|
|
- Domain DNS check is triggered from the DNS status badge in the list view
|