Make a fresh deploy run only what it is told to #2

Open
Ynnead wants to merge 17 commits from fork-defaults into test
Owner

A fresh copy of this repo now behaves like a stranger's site rather than like aqcloset.com.

Before: a new deploy crawled the AQW wiki every 15 minutes, harvested map files from the wiki and the web archive, probed aq.com's file servers, sent aq.com a game Referer, named aqcloset.com in its User-Agent and gave the owner's address on its policy pages. Comments and docs pointed into other projects' files.

After: each of those is off or blank until its variable is set, and the boot log says which took. A deploy with nothing set gets game files only from its charbot.

  • Background jobs: MAP_HARVEST, WIKI_CATCHUP_MS and CC_SWEEP default to off. Wiki fetches send the site's own User-Agent. README lists every outbound job and its switch.
  • Config instead of code: AQW_GAMEFILE_HOST, GAMEFILE_HEADERS and AQW_CHARPAGE_BASE have no aq.com defaults. .env.example lists every variable README documents.
  • No owner defaults: no default User-Agent naming aqcloset.com, CONTACT_EMAIL or GITHUB_ISSUE_REPO. The policy pages name the site by its own host.
  • NOTICE names the wiki-derived data files and their CC BY-SA 3.0 licence. /legal says the code is MIT.
  • The patched Ruffle build stays; its patch notes and measurements are gone from the docs.
  • Comments describe what charbot does instead of citing its files.
  • /local/ serves only the two avatar models, and /api/swf-classes only body files under classes/M and classes/F.
  • Suites that relied on the aq.com fallback get small generated SWFs instead (spike/fixture-swf.mjs).

Deploy note: production and the test deploy each need their variables set before this reaches them, or the map harvest, wiki catch-up, colour-custom sweep, direct game file fetches and the contact address stop.

Checks: copy-test, 42 node suites and 41 page suites pass locally. export-ui timed out once in a full run and passed twice on its own.

A fresh copy of this repo now behaves like a stranger's site rather than like aqcloset.com. Before: a new deploy crawled the AQW wiki every 15 minutes, harvested map files from the wiki and the web archive, probed aq.com's file servers, sent aq.com a game Referer, named aqcloset.com in its User-Agent and gave the owner's address on its policy pages. Comments and docs pointed into other projects' files. After: each of those is off or blank until its variable is set, and the boot log says which took. A deploy with nothing set gets game files only from its charbot. - Background jobs: MAP_HARVEST, WIKI_CATCHUP_MS and CC_SWEEP default to off. Wiki fetches send the site's own User-Agent. README lists every outbound job and its switch. - Config instead of code: AQW_GAMEFILE_HOST, GAMEFILE_HEADERS and AQW_CHARPAGE_BASE have no aq.com defaults. .env.example lists every variable README documents. - No owner defaults: no default User-Agent naming aqcloset.com, CONTACT_EMAIL or GITHUB_ISSUE_REPO. The policy pages name the site by its own host. - NOTICE names the wiki-derived data files and their CC BY-SA 3.0 licence. /legal says the code is MIT. - The patched Ruffle build stays; its patch notes and measurements are gone from the docs. - Comments describe what charbot does instead of citing its files. - /local/ serves only the two avatar models, and /api/swf-classes only body files under classes/M and classes/F. - Suites that relied on the aq.com fallback get small generated SWFs instead (spike/fixture-swf.mjs). Deploy note: production and the test deploy each need their variables set before this reaches them, or the map harvest, wiki catch-up, colour-custom sweep, direct game file fetches and the contact address stop. Checks: copy-test, 42 node suites and 41 page suites pass locally. export-ui timed out once in a full run and passed twice on its own.
The wiki catch-up, the map harvest and the colour-custom sweep now run
only when switched on (WIKI_CATCHUP_MS, MAP_HARVEST=on, CC_SWEEP=on), so
a copy of the repo no longer crawls the AQW wiki, the SWF wiki or the
web archive, or spends charbot renders, without choosing to. The wiki
catch-up sends the site's own User-Agent instead of Node's default.

README lists every job the site runs on its own: what it fetches, how
often, and the variable behind it. The sweep suite boots with
CC_SWEEP=on and checks that unset is off; the rarity suite checks the
User-Agent reaches the wiki fetch.
With no AQW_GAMEFILE_HOST the site no longer falls back to aq.com's
file servers: game files come only through charbot's /files/, and the
map harvest does not start. Direct game file requests send no Referer
unless GAMEFILE_HEADERS gives one. The backdrop route's last source,
the CharPage bgs/ folder, is skipped unless AQW_CHARPAGE_BASE is set,
and says so in the list of what it tried.

.env.example lists every variable README documents, blank and grouped.
The header suite checks there is no Referer by default and that
GAMEFILE_HEADERS replaces the set; the charpage suite covers an unset
CharPage address.
The outbound User-Agent names the deploy's own SITE_BASE_URL, or no
address at all, instead of aqcloset.com. CONTACT_EMAIL has no default:
with none set, the policy pages and /api say no contact address is set
on this deploy instead of linking someone else's inbox. The privacy and
terms pages show the deploy's own origin. Bug reports need both
GITHUB_ISSUE_TOKEN and GITHUB_ISSUE_REPO; there is no default
repository, and diagnostics name both when either is missing.

The legal page's Contact line gains a verb so it reads either way. The
suites cover the User-Agent with and without SITE_BASE_URL, the pages
with and without CONTACT_EMAIL, and a token with no repository.
server/hairs.json, server/maps.json, server/wiki_facts.json.gz,
server/badge_shops.json and server/wiki_events.json are compiled largely
from the AQW Wiki, which is CC BY-SA 3.0, and hold AdventureQuest
Worlds names and game file paths. NOTICE now lists them as outside the
MIT licence, and no longer says that no AQW item data is in the
repository.
vendor/ruffle-aqw/README.md and docs/RUFFLE-BUILD.md no longer list the
patches, the performance measurements, the build's internal switches or
where its source is kept. They still say what the folder holds, how the
page picks a build, how replaced players free their WebGL contexts, how
to switch to stock Ruffle (RUFFLE_BUILD=stock, RUFFLE_AQW_DIR) and the
licence. Two client comments lose a patch file name and a timing.
Comments that cited charbot's, wiki-search's or the Ravens site's source
by file name, function name or line number now say what those services
do instead. LOCAL_SWF_DIR defaults to ../charbot rather than a named
checkout, and the suites that read charbot's files (the mock's
/site-assets, aqdata's item table) look under LOCAL_SWF_DIR too.
renderer-trace reads the renderer's source from RENDERER_SOURCE and
skips that check when it is unset.
/local/:name answered any well-formed *.swf name by asking charbot for
it with the render token, outside the API ration. It now serves only
aqlite.swf and characterB.swf and answers 404 for any other name
without a fetch.

/api/swf-classes read the class list of any game file for anyone. Its
one caller, the wardrobe's Framing panel, asks only about the body
file under classes/M/ or classes/F/, so every other path is refused.

The bytes suite checks a made-up model name is a 404 that never
reaches charbot; the owner suite checks the paths refused and reads a
body fixture's class list.
With no default game file host, egress, warm-assets, missing-art and
swap no longer get real item files from the game's servers when the
charbot stand-in has none, so on a runner they would fail the way they
already do wherever those servers cannot be reached. Each now hands the
stand-in the few files it needs through GAMEFILE_FIXTURES.
spike/fixture-swf.mjs builds them: a valid SWF past the empty-file size
lines, exporting the classes a suite expects (GOLDSword, VikingHat).
The owner suite's swf-classes fixture uses it too.
SPIKE_BASE and RENDERER_SOURCE are named in README's checks section and
were missing from the list.
The game file hosts, the CharPage address, wiki catch-up and the map
harvest are now off or blank unless set, and nothing said whether a
setting took. One boot line names the hosts, the header names (never
their values), the CharPage address, the catch-up interval and whether
the harvest is on. A GAMEFILE_HEADERS value that is not a JSON object
is warned about instead of quietly losing its Referer, and MAP_HARVEST
ignores case and spaces, as CC_SWEEP does.
MAP_HARVEST_GAP_MS, MAP_HARVEST_DELAY_MS, CC_SWEEP_START_MS,
PREVIEW_TTL_MS and PRECOMPRESS_DELAY_MS are read with ??, so a copy of
the file passed with --env-file set them to 0: no pause between
requests to the wiki, the archive and the game servers. They are now
commented out with their defaults.
swap-test's opening outfit wears UndeadVoltaire.swf, which came from
aq.com through the default hosts that are gone. With no fixture the
stand-in answered with the empty SWF, the page fell back to the default
body and two armour checks failed. missing-art-test's comments still
described a CDN fallback that no suite has now.
The fallbacks for CHARBOT_URL and RAVENS_SITE_URL read one service's
variable by its full name, which named other projects in this tree and
missed a fork's service called anything else. They now take the one
RAILWAY_SERVICE_*_URL whose name starts with CHARBOT or RAVENS. Two or
more matches give none and a warning in the deploy log, so a token is
never sent to the wrong service. An explicit CHARBOT_URL or
RAVENS_SITE_URL still wins.
The legal page still said the source was not public, which is no
longer true of this repository or of any copy of it. NOTICE said the
wiki-derived data files were outside the MIT licence without saying
what they are under; they are shared under CC BY-SA 3.0, as the wiki
is, with the licence's address beside them.
Three comments and one line of the Ruffle notes still cited charbot's
internal function names. They now say what charbot does: disables
ExternalInterface in its copy of the model, and reports render verdicts
on colour custom.
{{ORIGIN}} as link text read https://aqcloset.com where it used to read
aqcloset.com, so a {{HOST}} token fills the text. The contact lines on
/terms and /privacy were labels with a colon, which read badly when no
contact address is set.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fork-defaults:fork-defaults
git switch fork-defaults

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch test
git merge --no-ff fork-defaults
git switch fork-defaults
git rebase test
git switch test
git merge --ff-only fork-defaults
git switch fork-defaults
git rebase test
git switch test
git merge --no-ff fork-defaults
git switch test
git merge --squash fork-defaults
git switch test
git merge --ff-only fork-defaults
git switch test
git merge fork-defaults
git push origin test
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
OpenAQW/aq-closet!2
No description provided.