Server update changelog

November 20th 2020

  • Optimize the optimizer! New package releases will be optimized for use in the Bazaar faster and become available to install more quickly.
  • Migrate links to core foundry icons used by modules’ and systems’ compendium packs, into using the CDN as well.
  • Automatically convert base64 encoded scene thumbnail images (and other entities) in compendiums of Bazaar packages to files that are uploaded to the CDN, further reducing the compendium file’s size and optimizing access to the thumbnails as well.
  • Add file deduplication support for Bazaar packages, reducing storage size needed by 4x and improving performance with kernel-side caching of similar files across different package versions.
  • Add support for securing Forge Premium content from predictable URL patterns
  • Add support for a separate assets path for Premium Bazaar packages and its media files for public display
  • Add support for automatically redirecting missing Data files to Bazaar content if a package has assets that aren’t included in its module folder
  • Add backend support for browsing the assets of a Bazaar module/system via the FilePicker API
  • Fix issue of file browser showing a non existing folder when browsing with an asset that comes from a different user’s library
  • Improve support for browsing a folder in the Foundry File Picker without requiring a trailing /
  • Correctly return files in the file browser that match the extensions list requested by Foundry
  • Add protection against using the File browser API with wildcard support for discovering Premium Bazaar content
  • Stop reuse an existing running game for installing protected content from the Bazaar when the Game Manager is enabled, in preparation for a 0.7.8 API change.

November 20th 2020 (part 2)

  • Automatically create a user’s game after they subscribe, without them needing to go to the “My Foundry” page first
  • Fix a bug creating a new blank game by pressing the Enter key
  • Automatically install the game’s system if installed, when installing a world from the Bazaar
  • Fix possibly returning the wrong game data when creating a new game via the API
  • Fix a bug in the Bazaar deduplication algorithm

November 20th 2020 (part 3)

  • Busy day for someone theoretically on vacation! Still doing the Bazaar migration, Probably a couple more hours before it’s done and the updater is re-enabled.
  • Change the default Display Name of a newly created account to match the chosen username instead of the user’s name.
  • Fix the “Create Game” button in the game manager tab when no games exist, which was disabled
  • Fix the package list within Foundry’s setup page bypassing the Bazaar and returning the list from Foundry itself
  • Add a “Launch My Foundry” button at the top of the game configuration page to match the layout when the game manager is enabled
  • Automatically enable the user manager for new games being created, which have a single user, and auto assign the game owner to that user (such as when creating a game from the Bazaar).
  • When using the User Manager, if a player has no display name, default to using their role’s name instead of displaying “null” as the player name.
  • When installing a new game from the bazaar with the game manager enabled, display the newly created game rather than the disable non-game-manager server if it had been last idle into a game with the same world name.
1 Like

November 22nd 2020

  • Default the Foundry file browser to the Assets Library folder
  • Add a [Bazaar] pseudo folder in My Assets Library to browse the assets of your installed packages and get the CDN-backed URL for the modules and their content.
  • Fixes an issue with the new Bazaar optimization update which broke the CSS files of recently updates modules
  • Add a protection against an external library related bug which seems to happen once in a blue moon but can cause games to become inaccessible until manual intervention.
  • World and Module Exports will now download directly without opening a new window temporarily
  • Improve the layout of the “create game” section in the game manager tab when no games exist
  • Fix the font used in the “Social Links” in the page footer and hide the bullet points
  • Fix an issue with exposing the manifest for premium content through the Bazaar API
  • Add a new query parameter for the Bazaar API to return the package information and manifest in a single query
  • Fix issue with the “last updated” field for all the Bazaar packages being updated every day by mistake
  • Add the ability to return the full description of a package in preparation for an upcoming Bazaar UI update
  • Fix bug where uninstalled modules through the Bazaar UI was not updating the internal state of which modules are installed and which aren’t
  • Updated the contest info banner as the contest is about to end :scream:
1 Like

November 22nd 2020 (Part 2)

  • Fix issue where games with the user manager disabled can get their Foundry user roles set to None, preventing access to their world.
  • Remove the muted class on the user manager text in the configure players side panel, making it visible for those with the Darkly theme.
1 Like

November 23rd 2020

  • Work around a Foundry bug with the CORS loading mechanism for invalid URLs that prevented scenes from loading
  • Fix the annoying 1 pixel shift of a Bazaar package’s description when hovering on the name/author line (Thanks @lordzeel and @akrigline)
  • Change the way a world/system package looks when hovered in the game creation dialog
  • When browsing the bazaar assets from within Foundry, redirect to the correct folder for premium content
  • Fix a race condition between the Forge API and the Foundry init hook when the User Manager is enabled which could cause an error to happen early when opening a game
  • Add server side protection to prevent adding an update to a Bazaar update if network issues prevent synchronization of data for the new package between all regions.
  • Remove the manifest and download urls from the module.json for Premium modules during package optimization.
  • Added baileywiki’s Premium maps to the Bazaar for baileywiki’s Patreon supporters.
1 Like

November 30th 2020

  • Added support for the new amazing Explorer Mode for non Foundry license owners to try Foundry with a time limited temporary license.
  • Automatically idle games when installing modules from the Bazaar and warn the user about the need to restart a game if it’s in use and could not be idled automatically.
  • Fix a long standing and rare race condition that could happen when idling or stopping a Foundry instance at the same as the process is requested to start.
  • Remove mention in the “Add License” dialog of the story teller features as being not yet supported
  • Automatically enable the User Manager on worlds where non GM players have a name of “Player 1”, “Player 2”, etc…
  • Fix assets library search failing if the search term had an upper case character
  • Remove an unused API call during custom manifest install
  • Prevent auto idling of a game 30 seconds after it was last accessed to prevent a possible boot loop issue with websocket auto reconnections
  • Be more mindful of when to trigger an FVTT start procedure and automatically destroy the previous instance if it already exists. Should fix issues where Foundry locks up by restarting it automatically.

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

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 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 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 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 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 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 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 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.

January 1st 2021

  • 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.

January 8th 2021

  • 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 12th 2021

  • 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 15th 2021

  • Implement a new scheduler for Foundry instances to better utilize server resources
  • Add loop and thumbnail fields to the media array returned by the Bazaar API (required for the Foundry Hub project which uses it)
  • Add automatic retry of failed Paypal payments, and an improve concurrent handling of payments
  • Added basis for automated machine provisioning
  • Upgrade node dependency library for security purposes