github Griefed/ServerPackCreator 9.0.0-beta.3

pre-release3 hours ago

✂️ Refactor

  • api: give ServerPackGeneration a place for scan findings (35e6e66)
  • api: give the modpack malware scan an observable seam (8b108fb)
  • api: make ServerPackHandler.run's security scan injectable (a260780)
  • app: give DatabaseStorageService the delete it never had (9cd0297)

📔 Docs

  • analyse test depth and residual defects in the upload pass (f377983)
  • audit the upload/check/storage pass against the conventions (e768516)
  • correct four doc comments that described code that does not exist (3fb0333)
  • mark the size row as app-scoped, not published-API (03ba296)
  • record how each audit and analysis finding was closed (d2a2c46)
  • record the new test seams, the springdoc correction, and B41/B42 (d5ec010)
  • record the test-database follow-up and refresh the app count (c648840)
  • record the upload/check/storage pass and refresh the counts (ea22bf6)
  • api: document SecurityScans' companion instead of leaving it bare (310494e)
  • api: document the last two undocumented companions (4940f18)
  • api: say plainly that checkForInvalidPathCharacters returns true when CLEAN (9a088d5)
  • app: document ConsolePrompt's companion (0fb7c27)
  • app: record the embedded MongoDB setup and its landmines (8b61065)

🧪 Tests

  • api: pin that a bad exclusion filter names the exclusion field (ae375df)
  • api: pin that a modpack's server-icon survives having a manifest (71b348e)
  • api: pin that a Modrinth index is actually read (cf05195)
  • api: pin that a scan finding is not a generation failure (05c8eb9)
  • api: pin that a ZIP modpack is scanned after it is extracted (6703b71)
  • api: pin that an unextractable modpack fails its checks (e44ba09)
  • api: pin that trimming a trailing dot trims only the trailing one (8ef6f2e)
  • api: pin that unzipArchive declares no checked exception to Java (060266e)
  • app: boot the context test against the embedded database (e94e32d)
  • app: bound the suite's MongoDB server-selection timeout (c98cc3f)
  • app: characterize the storage seam and both cleanup schedules (187ecad)
  • app: cover the 415 refusal and both sweeps against a real database (bcb25ed)
  • app: pin how a recorded download is identified and ordered (59c2cff)
  • app: pin that a rejected upload costs nothing durable (5a857c3)
  • app: pin that a stored file reports its size in bytes (3657fcb)
  • app: pin that a throwing task must not kill the generation queue (fdffd4a)
  • app: pin that an archive never travels through the heap (c9567b3)
  • app: pin that an upload filename cannot steer the path it is written to (3002c30)
  • app: pin that an upload name cannot inject a Content-Disposition parameter (65ced9b)
  • app: pin the destructive edges of both nightly sweeps (131501f)
  • app: pin the GridFS id round-trip, the empty miss, and the delete (30b335d)
  • app: pin the paginated event sort too (eb76d83)
  • app: repair a guard that stopped reproducing its own condition (aa0fe0e)
  • app: run the persistence tests against a real MongoDB, in-process (4fbba1d)
  • frontend: pin the regeneration path's ids and its error handler (5899b57)

🛠 Fixes

  • make a generation's success mean the generation worked (6b7d890)
  • report archive sizes in bytes, and stop hiding small packs (0111d3d)
  • stop handing server paths and stack traces to anonymous callers (f5755f7)
  • stop the regeneration path reporting ids that do not exist (8e10961)
  • api: dispatch to the Modrinth manifest parser that nothing called (872900a)
  • api: find a modpack's server-icon inside the modpack (62b5c26)
  • api: handle an unreadable modpack directory instead of asserting on it (9148e28)
  • api: let a failed extraction fail the modpack instead of vanishing (645b181)
  • api: report a bad exclusion filter as an exclusion problem (c7bed07)
  • api: restore Java source compatibility on unzipArchive (c9639c5)
  • api: scan the modpack after it is extracted, not before (cb495c6)
  • api: trim only the trailing dot or space, in both sanitisers (22ddd51)
  • app: build the Content-Disposition header instead of interpolating it (011e782)
  • app: declare the upload endpoint as multipart, and regenerate the spec (8a9e337)
  • app: give a recorded download its own id, and sort on fields that exist (f05d28c)
  • app: keep an upload's filename out of the path it is written to (57b172c)
  • app: keep the generation queue alive when a task throws (fc8b89c)
  • app: make both nightly sweeps survive the rows they trip over (282fa35)
  • app: reclaim an orphaned pack once, not once per directory entry (94e38c1)
  • app: reclaim the GridFS copy on delete, and return empty for a miss (25908c6)
  • app: stream archives instead of carrying them through the heap (8bbd000)
  • app: sweep orphaned files through storage, and stop asserting fileID (5aa02a7)
  • app: type the GridFS miss honestly, and prove the guard fires (f150c06)
  • app: validate an upload before storing it, and hash it without a heap copy (2a13cd2)
  • build: publish kotlin-stdlib with a version, unbreaking the Maven release (43dc174)

VirusTotal

Don't miss a new ServerPackCreator release

NewReleases is sending notifications on new releases.