Preserve deleted server history
Retain historical server identities, results, and evidence after deletion. Mark archived entries as Deleted and prevent old work from targeting servers that reuse the same name. Fixes #16.
This commit is contained in:
@@ -382,6 +382,17 @@ RCON parsing (fake UDP socket).
|
||||
|
||||
Campaigns (`/campaigns`) tracks script/config updates, drift reconciliation, restart progress, file diffs, and rollbacks. Existing campaign records are preserved in the original database tables. The campaign API lives at `/api/campaigns`; legacy detail API endpoints remain available for compatibility.
|
||||
|
||||
Deleting a server preserves its name, recorded beta progress and test evidence,
|
||||
campaign results and file diffs, provisioning and maintenance history, and match
|
||||
records. Historical entries show **Deleted** and omit live server links and
|
||||
actions. Reusing the same server name starts a new instance; old records remain
|
||||
marked deleted, and old work cannot target the replacement. Deleting a participant
|
||||
pauses an open beta; roll it back and open a new beta to test the replacement.
|
||||
Normal history retention still applies. Records erased by earlier versions cannot
|
||||
be restored by this upgrade. Existing history is marked deleted where the server
|
||||
is already absent; instances that reused a name before upgrading cannot always be
|
||||
distinguished.
|
||||
|
||||
Provisioning (`/provisioning`, `/api/provisioning`) owns Create, Start, Restart, Rebuild, Stop, and Destroy: request persistence, eligibility and occupancy checks, execution, recovery, and history. Campaigns, betas, and scheduled maintenance request lifecycle work through Provisioning and link to the resulting operation. They retain their file, test-evidence, and version-verification workflows. Pending automated restarts appear in Provisioning before execution. History survives server removal. New creation requests return HTTP 202 with an operation ID and open the provisioning detail page. Creation is complete only when Komodo reports healthy and RCON or fresh telemetry verifies game status with an engine map that exactly matches the selected map. Queued requests reserve their server name and port; queued creation and pending health checks survive application restarts. The detail page records startup progress and explains any health or map mismatch that is still blocking completion.
|
||||
|
||||
Each server deployment opens a detail page with its flow and timestamped activity. Destroy uses an in-app confirmation modal and immediately returns a queued deployment (`DELETE /api/servers/:name` returns HTTP 202 with `deploymentId`). The worker waits for a fresh zero-player RCON or telemetry report, or a verified stopped container, before teardown. Occupied reports from either source block teardown; servers without current verification remain queued and are checked each worker tick. Waiting requests survive application restarts, while interrupted teardown is marked for inspection. Completed destruction stays on the provisioning detail page.
|
||||
|
||||
Reference in New Issue
Block a user