docs(website): the org lead's answers to the step-5 walk (DM27-DM29)
DM27 locks removing a Steam link on the demo (player route by demoLocks, staff route in its handler); DM28 has seed:demo switch on the actions the seeded events use; DM29 leaves SECRET_WORDS as is. The Chrome problem was local to the walker's PC, and play-review is walked once the fixes land. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -71,7 +71,8 @@ routes in `module.json` (DM1, §3.2).
|
||||
```json
|
||||
"demoLocks": [
|
||||
{ "method": "PUT", "path": "/admin/rust/servers/:id" },
|
||||
{ "method": "DELETE", "path": "/admin/rust/servers/:id" }
|
||||
{ "method": "DELETE", "path": "/admin/rust/servers/:id" },
|
||||
{ "method": "DELETE", "path": "/player/rust/links/:steamId" }
|
||||
]
|
||||
```
|
||||
|
||||
@@ -118,6 +119,7 @@ so the server cannot tell which row in `GET /auth/me/sessions` is the caller's o
|
||||
| --- | --- | --- |
|
||||
| The link to the rig | `PUT`/`DELETE /admin/rust/servers/:id` | Repoint or delete the sidecar link; the site goes dark |
|
||||
| The bridge's config, **read or written** | `GET`/`POST /admin/rust/config/:serverId/file`, `GET …/writes…` for the `RunicGateway` plugin's files, which are also left out of `GET …/files` | It holds the bridge's link to the sidecar and its credentials. Read, it would let someone talk to the sidecar directly over HTTP (DM14, §3.5) |
|
||||
| Removing a Steam link (DM27) | `DELETE /player/rust/links/:steamId` (`demoLocks`), and staff's `DELETE /admin/users/:id/rust/links/:steamId`, which the module's handler refuses behind `ctx.demoMode` because it serves under core's users mount, where a module may not declare a lock | `demo-player`'s stand-in link is what its Rust pages, rewards and permission grants hang on; unlinked, the player tour is empty until the wipe |
|
||||
|
||||
**Settings stay open (DM2).** Theme, navigation and the other `PUT /admin/settings` values can be
|
||||
changed and come back at the wipe, except the keys in the "Settings that reach a lock" row above.
|
||||
@@ -366,7 +368,10 @@ current `rust-oxide`. **Done:** the org lead created the subuser and added the s
|
||||
- creates the four accounts (§4), or resets them if they exist: password, role, active, 2FA off;
|
||||
- sets the site live with registration disabled, plus any `settings` the fixture adds;
|
||||
- writes the seeded site content: news posts, wiki pages, pages and the demo events. It does
|
||||
this only on the first run against a database, so a re-run never duplicates it;
|
||||
this only on the first run against a database, so a re-run never duplicates it. With the
|
||||
events it switches on, in the events switchboard (EVENTS.md §K), every action their steps
|
||||
use, uncapped. A fresh database starts every `change` and `irreversible` action switched
|
||||
off, so without this the seeded events could not run (DM28);
|
||||
- hands each installed module its `modules.<id>` section through the module's `onDemoSeed` hook
|
||||
(DM15, `MODULE_API` 1.18.0). The Rust module writes its own server row, with the rig's sidecar URL
|
||||
and token, and `demo-player`'s stand-in Steam link (DM6), and the default set's NPC faction
|
||||
@@ -487,6 +492,9 @@ down.
|
||||
| DM24 | (build, step 5) The module's demo code was on `edge` only, so no release could be installed. Cut over? | **Yes, now:** `Module-Rust` `edge` → `main` releases v0.6.0, the first with `protocol` in its install manifest |
|
||||
| DM25 | (amendment, 2026-10-27) Uploads are locked, but an image pasted into rich text is saved as a `data:` URI inside the JSON body. Block it? | **Yes, on every write and for every `data:` URI.** Core refuses any write whose JSON body has a `data:` URI in any string, on any route, the same way the multipart rule needs no list (§3.3) |
|
||||
| DM26 | (build, step 5, 2026-10-27) The restored rig is marked managed, so a fresh site adopts none of its NPC profiles and empties them on its first push; chat styles are never adopted. How does the default set bring them back? | **Seed them.** Module-Rust's `onDemoSeed` also takes `npcs` (factions, profiles) and `chat` (a style per group), written before the site's first sync (§7.1, §7.3). Patch release v0.6.1 |
|
||||
| DM27 | (step-5 walk, W4, 2026-10-28) `demo-player` can remove its stand-in Steam link, and staff can remove it from Admin → Users. Lock it, or leave it to the wipe? | **Lock it, both ways.** The player's route through `demoLocks`; the staff route in its handler, because it serves under core's users mount (§3.3). Module-Rust patch release |
|
||||
| DM28 | (step-5 walk, W1, 2026-10-28) The seeded events' actions start switched off on a fresh database, so they fail when run. Fix? | **Yes.** `seed:demo` switches on every action a seeded event uses, uncapped, with the events (§7.3). Core only, no `MODULE_API` change |
|
||||
| DM29 | (step-5 walk, W2, 2026-10-28) `SECRET_WORDS` also hides harmless fields such as "Allow Master Key" and "TC Auth Only". Narrow it? | **No, leave it as is** |
|
||||
|
||||
DNS and HTTPS for `demo.runicgateway.com` come from an external reverse proxy, which the org lead is
|
||||
setting up. The app sits behind it on plain HTTP; core already trusts one proxy hop for
|
||||
@@ -595,16 +603,19 @@ through that proxy.
|
||||
back as the default set has them, with all four NPCs alive. The site reseeded at 08:07 and the
|
||||
rig was fully back at 08:17.
|
||||
|
||||
**Found by the walk, open:**
|
||||
- **The seeded events cannot run.** A fresh database has every event action switched off, so
|
||||
Server greeting, Treasure drop and Payday show as ready but fail when started ("not enabled on
|
||||
this deployment"). An admin can switch the action on, and the wipe switches it off again.
|
||||
**Found by the walk** (the org lead's answers, 2026-10-28):
|
||||
- **The seeded events could not run.** A fresh database has every event action switched off, so
|
||||
Server greeting, Treasure drop and Payday showed as ready but failed when started ("not
|
||||
enabled on this deployment"). **Fixed (DM28):** the seed switches on the actions they use.
|
||||
- **The credential check over-flags.** `SECRET_WORDS` matches words such as `key` and `auth`
|
||||
inside longer names ("Allow Master Key", "TC Auth Only", a drone preset key), so on the demo
|
||||
those harmless fields are hidden and read-only.
|
||||
- **`play-review` was not walked**: its password is only in the host's `.env`.
|
||||
- `demo-player` can unlink its stand-in Steam link (the player's Rust page). It is not locked,
|
||||
and the wipe puts it back.
|
||||
those harmless fields are hidden and read-only. **Left as is (DM29).**
|
||||
- **`play-review` was not walked**: its password is only in the host's `.env`. It is read on the
|
||||
host and walked after the two fixes land.
|
||||
- `demo-player` could remove its stand-in Steam link, and staff could remove it for them.
|
||||
**Locked (DM27).**
|
||||
- The public URL did not open in Chrome on the walker's PC, while curl and the emulator reached
|
||||
it; the org lead opened it through the proxy without trouble, so it is local to that PC.
|
||||
- Nothing seeds the moderation queues, so the moderator tour shows empty lists.
|
||||
6. **Play**: the sign-in details in the Play Console point at `play-review`;
|
||||
runicgateway.com `/beta` publishes the logins.
|
||||
|
||||
Reference in New Issue
Block a user