Forge Server changelog archives

Here are the changelogs for June-September 2020

September 28th 2020
  • Sort folders and files in assets library based on locale sort order rather than ASCII order
  • Add checks for stripe webhooks for the use case of deleted customer accounts
  • Add support for new FVTT <-> Forge VTT Service Provider API and configuration
September 26th 2020
  • Improve performance of the new assets library UI by lazy loading the sidebar content until the asset is clicked
  • Automatically stop playing a video/audio when dismissing the sidebar preview of an asset
  • Calculate taxes for Paypal users based on their IP location when billing address doesn’t match
  • Correctly mark accounts as unpaid when using paypal and a payment is declined
  • Fix another memory leak in the websocket proxy
September 21st 2020
  • Complete rewrite of the Assets Library browser :partying_face:
    • A new and dynamic UI that is faster to use and more convenient
    • Show image thumbnails within the browser itself and remove the hover
    • Add a sidepanel on file click with more options
    • Add multi file selection and deletion
    • Add file and folder move with drag&drop support
    • Optimize the display of files and folder by loading content as you scroll
    • Optimize the loading of images by only fetching the images as they are being displayed
  • Fix the import wizard not mapping files to their assets library url when the filename has a comma (,) in it.
  • Add link to the Forge subreddit in the social links in the page footer
  • Fix an issue with renaming of assets not updating the file correctly on the CDN
  • Fix an issue with the CDN not updating the thumbnail of an image after it gets updated.
  • Show a more meaningful error to the user when a rename fails
September 20th 2020
  • Add a latency test to the Assets Library servers from the Region change screen
  • Fix issue with the bazaar updater which caused newly created packages from not appearing in the list right away
  • Fix a possible issue where uploading a file would work but report that it failed
  • Fix the automatic redirection of data files to the assets library failing when the filename has a special character, like , for example.
  • Slightly decrease the amount of bandwidth used when browsing the assets library.
September 18th 2020
  • Add support for Ultrawide resolution for the main site, wasting less spaces on the sides
  • Fix issue with importing a compendium module which doesn’t include any assets (bug introduced in the update from September 17th)
  • Second attempt at mitigating issue of S3 storage provider which could report an asset file was uploaded correctly when it actually had failed to upload.
  • Removed obsolete code that handled the seamless transition from the old asset library design to the new design.
September 17th 2020 (Part 2)
  • Import wizard: Show current system/module/world being imported in the progress bar
  • Import wizard: Detect compendium-only modules and move their assets to the asset library, and migrate the module compendiums (allows it to use minimal Data storage space)
  • Import wizard: Fix issue where importing a single module or system zip file would cause it to install the zip itself even if the package is available in the Bazaar
  • Forge Module: return a status and message field in the FilePicker.upload API response
  • Shared Compendium: Add a Monsters and Monster Features compendium to the generated shared compendiums.
September 17th 2020
  • Update the Foundry logo used on the site
  • Optimize tokens in Bazaar modules that use wildcard tokens, in order to use the CDN network
  • Add a temporary workaround to the assets library proxy DNS issues that impacted users today at 1AM until the new DNS records are propagated for everyone.
September 14th 2020
  • Add link to the Foundry knowledge base to the Help menu
  • Bazaar: Fix the display of a package’s author when the manifest uses an authors field with an empty name alongside the author field (midi-qol for example)
  • Bazaar: Prioritize installing the latest version of a module as returned by their manifest, rather than based on version number. Fixes issue in the Bazaar with modules that use incorrect semantic versioning (version 0.9 being smaller than 0.10 for example)
  • Assets library: Add a workaround for a server provider bug which caused some asset files to be deleted when uploading multiple versions of the same file simultaneously.
September 9th 2020
  • Fix support for players accessing wildcard tokens from someone else’s assets library in a game
  • Add the filename to the assets rename dialog, and automatically select the filename without the extension.
September 8th 2020
  • Phase 3 of the new assets library revamp is now in place
  • Added multi-file upload support to the import wizard
  • Added support for renaming and moving files and folders in the assets library
  • Added support for deleting multiple files and folders through the API (no way to do it via the UI yet)
  • Fix a bug with single file uploads not returning the new file URL which affected Foundry module compatiblity (such as with VTTA-Tokenizer)
  • Display the upload and import errors in the console when errors occured in the import wizard.
  • Change the assets library manager so that clicking “open in new tab” on a folder or in the path header, will actually work
  • Fix issue where import errors were not correctly being showed in red in the progress bar during multi file uploads.
  • Fix an issue where it would say “Analyzing ZIP file” when a folder was actually selected
  • Fix issue with worlds in the Bazaar that could have a packs folder in the zip but no actual packs in the world.json, which could prevent the user from creating world compendiums.
  • data: URLs are not counted as “missing assets” anymore when importing a world
  • Fix a CORS related issue that could happen when using the API server in one region while having the user’s region set to a different one (such as after changing region but without reloading the page)
September 7th 2020
  • Phase 2 of the new assets library revamp is in place
    • Complete redesign of the assets library backend to allow new cool features (in future updates)
    • Optimized mass upload of files from the Assets Library page
    • Addition of Kubernetes backed upload and download micro-services for assets management
    • (About 51 commits (features and fixes) over 1 month of work that would be too long and confusing to list/explain)
September 1st 2020
  • Import Wizard: Show a more detailed error message when parsing an invalid module.json or system.json
  • Added an information banner on the Assets Library page about the upcoming UI revamp
  • Fix a typo about a payment being “perceived” when it should say “collected” (literal French translation does not work well in English)
  • Improve the error message shown when attempting to link a Patreon account which is already linked to another Forge account
  • Add a “Trial” indicator to the Checkout button when creating a new subscription to make it clearer to new users that the Trial is available.
  • Improve wording of the mandate text to authorize credit card charges
  • Add a new system to switch existing finalized invoices from charging a credit card (if it failed) to charging a Paypal account, and vice versa.
  • Automatically retry payment of the last failed invoice when the user updates their payment methods.
  • Prevent upgrades of a subscription plan while the last invoice is unpaid, which was allowing users to bypass the account lock for failed payments without paying the actual invoice.
  • Correctly compare floating point version numbers of Bazaar packages, instead of using semantic versioning comparisons (0.09 < 0.1, even if 9 > 1), which allows to return the correct latest version of some packages
August 30th 2020
  • Fix a configuration issue when the user sets a custom game url ending with a reserved slug (such as “forums”) redirecting to the subservice instead of the user’s game.
  • Make the info notice about Paypal authorization into an info banner (blue) instead of a warning (yellow)
  • Add ability to delete a game’s url in the “My Foundry” page to have a new url generated.
  • Automatically remove whitespace from the start and end of the API key to be more resilient to copy pastes
  • Sanitize package manifest data before storing it in the database to fix an issue with the bazaar updater being broken due to the use of reserved db keys in its manifest.
  • Add to the Bazaar API the systems and languages supported by a package
  • Add option to pretty up any API response
  • Misc server side improvements
August 23th 2020 (Part 2)
  • Add support for the new package API format used by Foundry 0.6.6 to display Bazaar packages
  • Add support for fetching the package tags from the official Foundry sources and map them to the Bazaar tagging system
  • Add support for switching return Bazaar API based on the running version of the Foundry server.
August 23th 2020
  • Change the game card layout on larger screens to be horizontal
  • Fix a small issue with handling some Stripe webhooks
  • Add package download statistics to the API Bazaar (not yet visible in any part of the site)
August 21th 2020
  • Finally destroyed the goblin that was slowly eating the server’s RAM since level 1 (Fixed a long standing node-related bug that was causing memory leaks and degraded performance)
  • Major optimization work on the server side to decrease RAM usage and answer requests faster
  • Use a new database collection to store available Foundry VTT versions and release channels, allowing for faster availability on the Forge when official FVTT versions are released
  • Big cleanup of unused server side dependencies, upgrade of some dependencies to fix potential vulnerabilities and improved the build process for each release
  • Small refactor of how Assets are stored in the database, in preparation for the assets library revamp
  • Fix assets deletion when attempting to delete directories with over 1000 files at once
  • Fix a race condition caused by improper order of operation during idling of servers which could cause a rogue Foundry server to remain running but untracked by the Forge.
  • Added a new public API for listing content from the Bazaar in preparation for the new Bazaar UI.
  • Fix the author field for some modules that used an array of strings to represent multiple authors.
  • Fix an issue with the bazaar where the latest recorded version may be incorrect if the manifest file contains a version number that differs from the version of the manifest within the downloaded zip file.
August 18th 2020
  • Fix a bug where asset files larger than 5MB were getting re-uploaded even if they hadn’t changed when using the import wizard on content that had already been imported before.
  • Add a notice about the Paypal authorization that occurs during trial for Paypal subscribers
  • Fix an error that may happen on one of the payment processor’s events when a subscription had just been downgraded
  • Slightly increase database performance when listing a user’s foundry game
  • Initial setup in preparation for the assets library optimization revamp
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.
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 7th 2020
  • Fix a race condition issue where logging in/logout may not appear to have worked until you refresh the page
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
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.
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 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 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 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 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 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 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 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 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.
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.
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
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 20th 2020
  • Fix a bug that was preventing some people from creating a new subscription after their trial period had ended
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 11th 2020
  • Fix The Forge module not showing Assets Library when browsing for files/directories from some other modules, such as VTTA-tokenizer or Playlist Importer
June 10th 2020
  • Prevent access to the Foundry /setup page by the non-owner user if no admin access key was set
  • Prevent access to the Forge API from within the Foundry instance without an API key set. This prevents malicious modules from accessing private information about the account owner.
  • Do better validations of XSRF tokens updates during API calls from the Forge module in Foundry.
  • Fix issue with accessing “My Table” page when a world exists with an invalid world.json content
  • Hide the “Change Extras” button in the subscription manager if there is no subscription but existing bonus free extras exist in the account (for patreon beta testers)
  • Better sanity checking on billing information
  • Change Subscription Manager UI to make it clear that closing the dialog without going to checkout will cancel all changes
  • Skip entering billing information in subscription manager if downgrading or cancelling a plan
  • Add a search box for more easily finding your country in the country selection list
  • Make the State/Province selection list look nicer
  • Fix an issue where the subscription end date was being miscalculated (still need to fix those accounts with a wrong value).
June 5th 2020
  • Show world, system and module sizes in the delete content dialog
  • Add Foundry VTT 0.6.2 update to the stable releases channel
  • Add ability to export worlds data even after a subscription has been cancelled
  • Added monthly revalidation of license keys in case a key has been leaked or refunded and revoked
  • Fix a bug when trying to add extras on a monthly subscription
  • Use the $ currency sign as a prefix instead of a suffix. Apparently it’s a prefix and it’s only used as a suffix in Quebec.
  • Remove Tax ID field in billing information and disable support for B2B purchases since apparently, EU VAT-MOSS requires B2C support only.
September 17th 2019 => June 1st 2020
  • 394 changes that I’ll spare you (and me) the details