docs(diagrams): align §28 sequence diagrams with implemented routes
Adversarial cross-check of the three §28 diagrams against the wake, claim
and link code paths surfaced two fidelity drifts:
- The wake/status/join-event lanes used abbreviated /internal/... paths;
the registered internal-face routes carry the /api/v1 prefix (api.go),
matching the convention the claim and link diagrams already use.
- The /link diagram showed the game posting {mc_uuid, auth_source}, but no
shipped in-game caller sends auth_source — LinkClient posts {mc_uuid}
and the API defaults auth_source to mojang server-side.
The claim diagram already matched the code (verbatim atomic UPDATE,
404/409/200 mapping) and is unchanged.
This commit is contained in:
1 file changed
+7
-7
@@ -30,7 +30,7 @@ sequenceDiagram
|
|||||||
Player->>Backend: connect
|
Player->>Backend: connect
|
||||||
else backend not ready and lobby configured
|
else backend not ready and lobby configured
|
||||||
Velocity-->>Player: initial server = lobby
|
Velocity-->>Player: initial server = lobby
|
||||||
Velocity->>API: POST /internal/servers/{name}/wake {mc_uuid}
|
Velocity->>API: POST /api/v1/internal/servers/{name}/wake {mc_uuid}
|
||||||
API->>Cluster: GetServer(name)
|
API->>Cluster: GetServer(name)
|
||||||
API->>API: authorize autostartPolicy, cooldown, running cap
|
API->>API: authorize autostartPolicy, cooldown, running cap
|
||||||
API->>Cluster: SetDesiredState(name, Running)
|
API->>Cluster: SetDesiredState(name, Running)
|
||||||
@@ -41,7 +41,7 @@ sequenceDiagram
|
|||||||
Backend-->>Operator: RCON-ready / lifecycle ready
|
Backend-->>Operator: RCON-ready / lifecycle ready
|
||||||
Operator-->>Cluster: status.ready=true
|
Operator-->>Cluster: status.ready=true
|
||||||
loop every waiting tick
|
loop every waiting tick
|
||||||
Velocity->>API: GET /internal/servers/{name}/status
|
Velocity->>API: GET /api/v1/internal/servers/{name}/status
|
||||||
API->>Cluster: GetServer(name)
|
API->>Cluster: GetServer(name)
|
||||||
API-->>Velocity: ready flag
|
API-->>Velocity: ready flag
|
||||||
end
|
end
|
||||||
@@ -49,12 +49,12 @@ sequenceDiagram
|
|||||||
Velocity-->>Player: "ready - moving you in"
|
Velocity-->>Player: "ready - moving you in"
|
||||||
Velocity->>Player: Connect request to backend
|
Velocity->>Player: Connect request to backend
|
||||||
Player->>Backend: connect
|
Player->>Backend: connect
|
||||||
Velocity->>API: POST /internal/servers/{name}/join-event {mc_uuid}
|
Velocity->>API: POST /api/v1/internal/servers/{name}/join-event {mc_uuid}
|
||||||
API->>API: RecordJoin; refresh activity and allowlist UUID
|
API->>API: RecordJoin; refresh activity and allowlist UUID
|
||||||
API-->>Velocity: 204
|
API-->>Velocity: 204
|
||||||
else backend not ready and no lobby configured
|
else backend not ready and no lobby configured
|
||||||
Velocity-->>Player: disconnect with reconnect-later message
|
Velocity-->>Player: disconnect with reconnect-later message
|
||||||
Velocity->>API: POST /internal/servers/{name}/wake {mc_uuid}
|
Velocity->>API: POST /api/v1/internal/servers/{name}/wake {mc_uuid}
|
||||||
API->>Cluster: SetDesiredState(name, Running) if authorized
|
API->>Cluster: SetDesiredState(name, Running) if authorized
|
||||||
API-->>Velocity: 202 or branchable error
|
API-->>Velocity: 202 or branchable error
|
||||||
end
|
end
|
||||||
@@ -117,10 +117,10 @@ sequenceDiagram
|
|||||||
participant APIExternal as felis-api external face
|
participant APIExternal as felis-api external face
|
||||||
|
|
||||||
Player->>Game: /link
|
Player->>Game: /link
|
||||||
Game->>Game: read verified online-mode UUID and auth_source
|
Game->>Game: read verified online-mode UUID
|
||||||
Game->>LinkClient: requestCode(mc_uuid)
|
Game->>LinkClient: requestCode(mc_uuid)
|
||||||
LinkClient->>APIInternal: POST /api/v1/internal/account/link/code {mc_uuid, auth_source}
|
LinkClient->>APIInternal: POST /api/v1/internal/account/link/code {mc_uuid}
|
||||||
APIInternal->>APIInternal: validate UUID and auth_source; generate 8-symbol code
|
APIInternal->>APIInternal: validate UUID; default auth_source=mojang if absent; generate 8-symbol code
|
||||||
APIInternal->>Repo: CreateLinkCode(code, mc_uuid, auth_source, expires_at)
|
APIInternal->>Repo: CreateLinkCode(code, mc_uuid, auth_source, expires_at)
|
||||||
Repo-->>APIInternal: inserted account_link_codes row
|
Repo-->>APIInternal: inserted account_link_codes row
|
||||||
APIInternal-->>LinkClient: 201 {code, expires_at}
|
APIInternal-->>LinkClient: 201 {code, expires_at}
|
||||||
|
|||||||
Reference in new issue
Block a user