Server update changelog

Hi,

I often update The Forge servers, add new features or bugfixes and improve the general user experience.

You will find a summary of all updates that occur and how it affects your gaming experience.

January 12th 2020
  • Automatically redirect FilePicker.browse API to browsing the assets library when a module tries to browse for files in a non existing folder from the Data or user sources.
  • Improve idle game detection by resetting inactivity timer when server side events occur (chat message is created, token is moved, actor is updated, active scene is changed, etc…) to prevent inaccurately detecting an inactive tab that is observing a game only.
  • Lower game inactivity threshold to 1 hour when user is alone and no other players are connected to the game
  • Lower game inactivity threshold to 2 hours as server activity + local activity should handle all use cases now and be more than enough for everyone.
  • Handle use case of a paypal using account paying for an invoice through the stripe hosted portal, so the subscription status gets correctly updated. Also improves subscription status handling in general for the paypal use case.
  • In case of error contacting S3 storage, retry after a short delay to improve access to assets when S3 backend is having network issues.
January 8th 2020
  • Rename “Extra Data” on the site to “Extra Game Data” to avoid some possible confusion for users wanting to increase their Assets
  • Improve Foundry orchestrator to avoid a possible race condition and remove risk of infinite loop in case of slow process boot up
  • Fix a rare error that could happen when proxying websocket data on a stopped instance after it gets auto started.
January 1st 2020
  • Happy new year everyone!
  • Revert Germany VAT rates to the standard 19% rates
  • Boxing Week sale coupon has expired (will apply to anyone who subscribed during the Boxing Week)
  • Revert the christmas logo to the regular logo
  • Fix an issue with subscriptions for Paypal users where unpaid invoices didn’t stop finalizing future invoices from being generated for delinquent accounts.
December 26th 2020
  • Whaaaatt??? For realz? Yep! Added a 10% off sale for Boxing Week (Backend + frontend support)!
  • Added support for viewing pending invoice items and account balance during invoice preview when user has credits to their account (contest winners, gift cards)

[Part 2]

  • Add a database-backed system for service announcements and the ability to dismiss them on a per user session basis.
December 24th 2020
  • Fix issue preventing some custom manifest urls from installing when the url didn’t end in .json
  • Improve the ‘My Account’ page to display better on smaller screens (thanks @bmarian)
  • Change the Forge logo in the page header to be more festive :slight_smile: :santa:
December 21st 2020
  • In invoice preview, show British users the GBP currency as a reference instead of euros.
  • Fix Yukon province code from YU to YT, which prevented Yukon subscriptions from working
December 19th 2020
  • Report error when Foundry fails to start instead of showing an “error communicating” error
  • Fix issue with detecting the correct latest version of a module when the manifest url doesn’t match the URL in the manifest itself
  • Ensure the data directory is always purged when a new Explorer Mode is enabled, in case some files were left over after a change of user region.
  • Fix issue installing premium modules when the game had a Foundry world configured as last launched
  • Clarify the “Unknown system error -122” error from Foundry when installing premium modules to say that it’s a data exceeded error
  • Show link to the forums for information on how to install premium modules when an error occurs
December 16th 2020
  • Change jQuery library dependency from code.jquery.com to cdnjs.cloudflare.com CDN due to the former having some issues loading for some people
  • Fix an issue where the Forge service config file wasn’t taken into account with the new containerized applications
  • Include the Forge module in the /stream endpoint to allow automatic idling of those sessions as well.
December 14th 2020
  • Fix Foundry server crashing on load for unusually large or corrupted worlds by doubling RAM limitations on the containers and configuring node’s heap options to make efficient use of RAM and Swap.
  • Fix import wizard failing to import a world from zip where the world is in the root directory of the zip file
  • Fix a server side crash during zip extraction when an uploaded zip archive contains absolute paths, as the path rejection error was left uncaught.
December 13th 2020
  • Assets library now distributed over 49 worldwide locations! :partying_face: (update count in region change dialog)
  • Speed up game boot time from idle dramatically by dropping support for automatically re-linking all Bazaar modules when downgrading from Foundry 0.6.4+ to an earlier version
  • Remove the forced 1 second delay to redirect to Foundry after boot that was caused by a bug in Foundry 0.7.5
  • Add a button to delete a user’s content if worlds exist and their subscription was cancelled
  • Allow installs of json manifest even if the URL points to a file with the wrong mimetype
  • Show more verbose error messages if encountering an error installing a package from manifest
  • Fix a display bug and show error details when encountering an error deleting an asset
  • Fix impossible issue trying to browse or delete an asset which has a null byte character in its name
  • Display the exact server side error when failing to upload an asset
  • Fix error that occured when uploading a zero-sized asset file
  • Fix issues with the server-side Docker deployment for Foundry
  • Kubernetes cluster upgrade and firewall restriction on services
December 7th 2020
  • Fix issue with the “Return to setup” button not working anymore from the join screen (Fixed on December 2nd after it was reported an API change broke the feature)
  • Major infrastructure change for enhanced security and performance:
    • Added docker support where each Foundry instance is isolated from the rest of the system (deployment will be progressive).
    • Trying out Foundry under Node 14.x for performance and stability
    • Fine tuned load balancer configuration to improve performance during peak hour load
  • Fix issue where Foundry would not have the license file pre-configured when you add your full license while in Explorer Mode
  • Tweak the text of the explorer mode activation dialog
  • Add a workaround for a potential database read-concern issue causing the “No suitable server found” error that appears rarely to some users.
  • Fix the wrong redirection to the “configure players” screen on User-manager enabled games, for a GM who isn’t the game owner.
  • Override the ‘configure players’ button redirection from the client side to avoid doing two requests to get to the correct final URL.
December 1st 2020
  • Fix some API calls to manage games possibly returning the wrong JSON data due to how internal system API calls were handled
  • Fix the missing warning about the server needing a restart when a game is in session and a package is installed in the bazaar
  • Redirect requests to the correct region when using API requests with an Access Key or an OAuth Bearer Token, when the API related to the user’s Data
  • Fix Bazaar optimized content when it refers to assets from other modules or systems (Dragon Festival world for example, which uses dnd5e and dn5eja assets)
  • Fix missing assets discovery during optimization of packages when the asset path is urlencoded
  • Ensure the scenes thumbnails directory is always created when installing worlds from the Bazaar even if original Data didn’t contain the directory
  • Prevent uploads to the [Bazaar] pseudo directory from within the File Picker.
  • Change the behavior of the /game/idle API endpoint when the game slug is not specified, to only idle the game if it was online.
  • Added Atropos Batllemaps to the Bazaar’s list of Patreon-linked Premium content

Due to a limit on the size of this single post, the rest of the changelog has been moved to the archives section here : Forge Server changelog archives

Thank you,
KaKaRoTo

5 Likes

June 18th 2020

  • Add Foundry 0.6.3 beta release
  • Clarify plans text about the Game Master tier being able to create as many worlds as they want
  • Add server-side security with possible leak of environment variable across processes
  • Change the ‘Close without changes’ button on the last step of the subscription manager into “Close”
  • Remove obsolete code during world import which enabled “The Forge” module while it’s not necessary anymore
  • Disable direct uploads to the data directory by modules
  • Properly implement redirects from game across regions when re-sending POST data after a region change
  • Rename old/forgotten “Free Account” tier name into the “Player” tier name for the top page banner.
  • Correct information about Extra availability
  • Use ‘$’ sign as prefix instead of suffix in the Extra pricing of the plans page.

June 20th 2020

  • Fix a bug that was preventing some people from creating a new subscription after their trial period had ended

June 23rd 2020

  • Added Foundry 0.6.4 support
  • Fix possible issue when doing multiple folder creates in the assets library concurrently
  • Update privacy policy to include information about Stripe payment processor
  • Add a button to reset the game invitation link
  • Fix text saying “Done” before importing a world instead of “Loading assets library… Done”

June 25th 2020

  • Add support for the Bazaar
    • Intercept Package listing, installation, update check and uninstallation from Foundry and use the Bazaar content automatically
    • Automatically synchronize the Bazaar with the official Foundry package list
    • Optimize all Compendiums to use the Bazaar’s Assets Library
    • Optimize specific systems and modules to use the Bazaar’s Assets Library for loading the package’s scripts and styles
    • Add Bazaar page to the website with basic information about the feature, and as placeholder for the upcoming Bazaar browser.
    • Add API support for installing packages through the Bazaar via API
    • Add support for bypassing the bazaar with ?bazaar=disabled in the manifest URL, if the user wants it
  • Attempt Bazaar install of systems and modules in the Import Wizard based on package name and local version
  • Remove the separate “My Games” page and make it the main site page instead.
  • Delegate Foundry websocket proxying to a microservice to allow for website updates and maintenance without the 5 second interruption to ongoing games.
  • Prevent import of a world if a world with the same name already exists, to avoid accidental overwrites.
  • Add ability to export compendium modules
  • Automatically idle/reload Foundry if the FVTT Version, Game URL or Admin key is changed.
  • Add an API to start, stop and idle games
  • Fix shared compendium that Forge creates from not showing its compendiums in FVTT 0.6.4
  • Fix broken “Delete content” UI when a package has quotes in its description.
  • Fix invalid/corrupt modules from showing as empty line in the ‘Delete content’ dialog and show them in the orphans section instead
  • Correctly report the size of a user data directory when it’s a symbolic link, in the ‘Delete content’ dialog
1 Like

June 29th 2020

  • Fix a bug which sometimes prevented the “Select Data Files to Delete” dialog from the Table page from opening
  • Remove the Table Tools dropdown button and make the table tools options appear as separate buttons
  • Change the start server/stop server buttons to green/red respectively
  • Add a brief explanation of what the Shared Compendiums are and how to use them.

July 1st 2020

  • Fix an issue when trying to check for updates on a custom installed package
  • Add better support for unexpected values in a module’s author field
  • Remove access to free subscription for Patreons as planned
  • Temporarily decrease German VAT rate from 19% to 16% according to the latest COVID-19 economic stimulus package.

July 5th 2020

  • Add Foundry 0.6.5 to the Alpha and Beta channels
  • Add display of maximum asset upload size to the My Account list of quotas
  • Add local Audio/Video relay servers for Europe and Asia regions
  • Enable DTLS encryption for A/V relay servers for increased security
  • Add a more secure time-based per-user authentication system for locking access to the Audio/Video relay servers
  • Minor miscellaneous infrastructure changes

July 6th & 8th 2020

  • Fix Bazaar issue with regards to systems or modules that may change their name (such as starfinder -> SFRPG)
  • Add Foundry VTT 0.6.5 to the stable release channel and update server with the updated 0.6.5 version
  • Add a link to the FAQ/Tutorial for more information on how to use the shared compendium feature.

July 14th 2020

  • Fix an issue where the Bazaar installer would install an older version of a module until it was updated
  • Fix an issue with accessing the “My Table” page when a custom module is installed that doesn’t specify its authors
  • Fix the import wizard not converting random token avatars to use the assets library (See Fixing random token actors from a bad import)

July 15th 2020

  • Add support for 0.7.0 release on the alpha channel
  • Add automatic package cache purging for 0.7.0 on Bazaar installs
  • Automatically idle game when importing worlds and packages with the import wizard
  • Do not automatically dismiss the error message when failing to import a package, so it’s readable by the user
  • Add a note in the “delete files” tool about the server needing to be offline for world deletions to work
  • Add API to allow force the world to idle a game into

July 18th 2020

  • Fix an issue where a world (kobold cauldron) installed through the bazaar had its scene thumbnails folder write protected, preventing new scenes in the world from being created.
  • Add a check in the import wizard to remove the “FoundryVTT/Data/” directory prefix when importing the entire FoundryVTT folder instead of the Data folder, for asset uploads. (See here)
  • Add autocomplete indicators in the billing page to help browsers enter the correct information when autofilling fields.
  • Removed a dependency to lodash library in the import wizard.

July 20th 2020

  • Fix a bug introduced in the July 18th update which caused the import wizard to import some assets, under specific conditions, under a Data/ directory instead of the root folder of the assets library

July 25th 2020

  • Added a new Extra option for increasing the upload size per asset file
  • Added a dedicated button in My Account to update user’s Billing Information
  • Added a dedicated button in My Account to access the Stripe portal to change payment methods and see billing history/past invoices
  • Update system to synchronize subscription information with the payment processor to make sure expiration dates are accurate
  • Show a warning and error message to users who have past due invoices or unpaid subscription
  • Automatically lock/unlock accounts for unpaid subscriptions (used to be a draining manual process)
  • Added a grace period of 24 hours after a subscription ends before services stop.
  • When adding a new license, don’t reload the page after 5 seconds, instead prompt the user to reload.
  • Use the verify Foundry endpoint instead of the sign endpoint for monthly license validations
  • Add an automatic latest symlink in each Bazaar package (useful for a localization script by @lordzeel)
  • Simplified internal payment processing system and removed some obsolete code
  • Fixed small bug where the ‘preview changes’ in subscription manager didn’t become clickable immediately after entering the address line content
  • Fix an issue where updating billing information updated them on the customer but not on the attached payment method
  • Added the initial implementation for Paypal support (not finished)
  • Added basic framework for switching to a reactive UI

July 27th 2020

  • Add a “per file” suffix to the upload size limit quota on My account page to make it clearer what it’s about
  • Module: Fix an issue where the assets library wasn’t browsable within Foundry if a file contained a % character in its name
  • Module: Remove a console error that would happen when browsing the assets library using the Tiles browser dialog
  • Bazaar: Add ability to install a specific package version by adding ?version=x.y to the manifest url
  • Bazaar: Fix a bug where the latest version that gets installed was one that had its minimumCoreVersion requirement higher than the currently running Foundry version, rather than inferior to it.

July 31st 2020

  • About a 100 different changes that are summarized with : Added Paypal support!
  • Revamped the Payment details screen to use a new reactive interface
  • Add direct access to the new payment details manager without going through the subscription manager
  • Add a warning to the subscription manager when email address is not verified so people don’t miss their invoices and receipts.
  • Fix subscription manager showing the wrong upload size limit for new subscriptions
  • Update Sales policy to include that users choosing Paypal will still be entitled to the free trial (it used to say, only for those choosing credit card payment)
  • Prevent use case where subscription was not created properly if a card payment is declined for a user who adds a new subscription after they had tried the service and cancelled, and after their trial period had ended.
  • Improve display name of existing user-attached credit cards (American Express instead of amex, and use capitalized word for Visa and Mastercard)
  • Remove some obsolete code and general code cleaning.

August 6th 2020

  • Try a first pass at revamping the whole Game/Table concept and improve the descriptions and change the name of “My Table” to “My Foundry”, “Launch Game” into either “Launch Foundry” (for our own server) or “Access game” (for games we were invited to)
  • Add listing of players invited to a game as well as per-player usage statistics for that game
  • fix an import wizard crash during world migration if the world.json file is invalid
  • Fix an issue with updating internal subscription state for users after they downgrade their subscription

August 7th 2020

  • Fix a race condition issue where logging in/logout may not appear to have worked until you refresh the page

August 11th 2020

  • Add support for Foundry VTT 0.7.1 (including first hotfix) in the Alpha channel
  • Add a “Return to Setup” button in the join page for the game owner
  • Sort player usage by time spent on a game in the game info hover list
  • The default game URL will now default to using your username instead of random dictionary words
  • Fix a bug when generating the random game url where the website would fail to load if it generates a url that is already in use by another user
  • Use smarter logic in the bazaar to allow updating a module by name even if the manifest url of the package is wrong.
  • Prevent a race condition where setting an admin key on Foundry while having the game in use could cause it to be restarted before the new admin key is set, which makes the Forge think an admin key is set while Foundry doesn’t know of the key.
  • Fix an issue where a client bug happens if FilePicker.browse returns a null response
  • Fix The Forge module to be compatible with the 0.7.1 release
  • Some misc server side improvements

August 14th 2020

  • Fix issue that prevented the deletion of an orphaned module directory containing an invalid or corrupted module.json file
  • Allow the display of a user’s game on the front page even if their subscription ended (but they cannot launch it or configure it)
  • Fix an issue generating new game URLs for users that signed up using the Patreon login service and who did not have a username assigned to their account. The default URL it will generate will now be based on their patreon’s username.