github FOSSBilling/FOSSBilling 0.6.0

latest releases: 0.6.21, 0.6.20, 0.6.19...
6 months ago

0.6.0 (12-11-2023)

If you want a nice overview of the most exciting changes and some screenshots for this release, give a look at the FOSSBilling forum.

Important:
This release has a lot of changes, many of which are breaking changes. Please review the entire release notes before updating, however the most critical things to note are as follows:

  • The staff permissions system has been redone to be more flexible and as a result permissions will need to be reconfigured after updating. Sorry!
  • Numerous breaking changes that effect theming. If you are using the Tide theme, it will not function correctly with this update. The developer has been informed that changes are needed and will hopefully publish a new release in the near future.
  • PHP 8.0 is no longer supported. As always, we follow the official PHP supported versions list which means PHP 8.1, 8.2, and 8.3 are all supported by FOSSBilling.
  • Some PHP constants have been renamed or removed.
  • The behavior of invoice numbering has changed and it is now continuous.
  • Direct browser access to PHP files is now blocked via the .htaccess to improve security.
    • This also applies to the cron.php file. If you are reliant on an external service to call this file via a URL, you will need to access the "Scheduled Tasks" settings, enable the guest API endpoint, and then update the URL on the external service to point to the one that's provided on the settings page.
  • The ISPConfig and Virtualmin server managers have been removed from the application as they did not work. The associated files will be auto-deleted when performing an update as they could otherwise prevent aspects of the admin panel from functioning. They are now under new repositories and are open to external contributors who can maintain them.

📈 Enhancements

  • Optimizations throughout the application to improve the speed and reliability of FOSSBilling.
    • Emails are now queued and then sent via cron rather than being sent on-demand. The result is that many tasks including, but not limited to orders and ticket submissions are now 2-4 seconds faster for some installations.
    • Better use of caching in various places.
    • Improved handling of the autoloader FOSSBilling uses internally.
    • Extension configs are cached, saving the system from needing to pull them from the database and decode them each time it's requested.
  • PDF Invoices have been improved.
  • The behavior of the "test email" button has been improved to only email the person who clicked it & to display errors on the front-end if any occur.
  • The "Huraga" client theme has been migrated to Bootstrap 5 to have a significantly more modern UI and has had many bug fixes.
  • On the development side of things, we've improved our workflows to provide better code coverage and catch more issues before they have the opportunity to make it into the main source code.
  • The Stripe payment adapter will now set the client's name and email address, improving your dashboard analytics as well as improving Stripe's ability to perform fraud detection.
  • The Extension Directory has been moved to a separate tab for both Payment Gateways and Domain Registrars.
  • Various improvements to the developer experience.
  • You may now configure the port for a hosting server during the initial setup process rather than after.
  • Client searching in the administrator panel now searches more fields.
  • The order is now made available to the registrar to allow them to use information from it for the domain creation process.
  • The birthday and document_nr are now set within Registrar_Domain_Contact to be used for identification with domain registrations.
  • The email queue behavior has been updated to more reliable, especially with situations such as brief outages preventing emails from sending correctly.
  • The Mass Mailer module now goes through the standard email queue rather than using the now removed queue module. This ensures more reliable and predicable behavior of the queue.
  • You man now view the current email queue from the email settings. This tab will list all emails queued to be sent including their recipient, creation date, subject, and the number of attempts done to send the email.
  • The requirements system has been reworked and will now list missing recommended extensions. Additionally, we've rechecked the system requirements and have properly documented them on the documentation.

➕ New Features

  • FOSSBilling will now display a little notification if an update is considered to be a major or minor patch to help people be aware of when significant changes have been done.
  • Company info and system version visibility through the API is now configurable.
  • Invoice PDFs can now have their HTML customized rather than just the CSS.
  • You can now update all orders associated with a downloadable product at once when uploading a new file.
  • Reoccurring pricing check-boxes are un-ticked by default and will be automatically ticked when a price is entered when configuring a product.
  • There is now a copy button for the order button example code.
  • You can now disable languages (translations) from within the FOSSBilling administrator panel.
  • FOSSBilling will no longer includes translations that are less that 25% complete and you can also view how complete any of the default translations are from within the administrator panel.
  • PDF Invoices can now include information such as banking info for billing and the same info can be added to the client area to make it more easily discoverable for clients.
  • You can now view the readme for items on the Extension Directory directly from within FOSSBilling.
  • The installer has been completely overhauled with a new design and to no longer rely on jQuery.
  • Added opt-in automated error reporting via Sentry.io to improve our ability to catch and fix bugs, give better technical support, and to improve the overall stability of FOSSBilling.
  • The Massmailer module will now allow you to preview the list of recipients for a message before sending it.
  • The API and Huraga theme have been updated to allow clients to choose if they'd like to pay with a subscription or a one-time payment. This is disabled by default via the theme settings.
    • Developers: When using the client/get_banklink API endpoint you may now pass allow_subscriptionwith a value of 0 as a GET parameter to instruct FOSSBilling to not create a subscription. If you don't pass the parameter, the previous behavior of automatically using one when the payment gateway and invoice both support it will be used instead.
  • To help with development, FOSSBilling now includes a debug bar which will automatically be displayed with the APP_ENV environment key is set to dev
    • Theme creators: this must be added into your theme in order to rendered.
    • {{ DebugBar_renderHead() }} Should be added to the head of your base template
    • {{ DebugBar_render() }} should be added at the bottom on your template.
    • Our default themes already include these new additions.
  • Server managers may now implement SSO support to generate direct login links for clients. This has been implemented int into the Plesk server manager and will be added to others over time.

🔐 Security

  • The default .htaccess no longer allows direct access to PHP files. Only the few that are needed for functionality are allowed.
  • We've improved the HTTPS check and the behavior of how FOSSBilling enables secure cookies to be more opportunistic.
  • The staff permission system has been revamped to allow granular permission control with full support for custom modules to define permission keys. We've implemented some baseline options and will gradually fill out the permissions list for our default modules over time.
  • We have improved the behavior of the session expiration to behave more as one might expect.
  • FOSSBilling will now require authentication to view invoices, even when viewed directly using their unique hash. This may be disabled if you prefer.

🐛 Bug Fixes

  • Fixed an issue that prevented multiple toasts from appearing in the administrator panel.
  • Fixed a bug that resulted in add-ons getting separate invoices generated.
  • FOSSBilling will now prevent certain actions on orders with bad statuses.
  • Deletion of servers, hosting plans, and TLDs with active orders / products is now prevented.
  • The FOSSBilling installer will no longer display an error if the config.php file doesn't exist & will correctly check that it is writable.
  • We've fixed the message on the dashboard that alerts the administrator if cron isn't being run correctly.
  • Fixed an issue with the the Mass Mailer module's send functionality.
  • Improved handling of situations where a client may be deleted while leaving their old tickets in place.
  • Fixed file action paths pointing to the wrong directory in the UpdatePather class.
  • When FOSSBilling is accessed via it's API mode, PHP's display_errors option will be disabled. Previously enabling debug mode had the chance to break API responses as the response may include a PHP error and therefore no longer have a valid JSON response and this change corrects that.
  • Fixed the filter options in the Massmailer module.
  • Added in prevention against recipients being duplicated when using the Massmailer module.
  • Fixed an issue where stock control could only be configured when using the "custom" product type.
  • Numerous minor bugs that have been caught via error reporting have been resolved.
  • Failed email deliveries will no longer result in an email being sent to the DB log multiple times.
  • FOSSBilling will now behave correctly for HEAD requests. Some uptime services such as updown.io use these request types to save bandwidth for both parties and starting with FOSSBilling version 0.6.0 this functionality should now work correctly.
  • Fixed an issue where the max uses for a promo code could not be changed after initial creation.
  • Fixed an issue that could happen type when attempting to delete orders for the API key product.

⚠️ Breaking Changes

  • You will need to re-configure staff permissions when updating due to the changes in how they are saved.
  • The invoice numbering has been modified to be continuous.
  • We have removed the following server managers from the core application since they did not work:
    • ISPConfig and Virtualmin.
    • Both have been moved to their own repositories on GitHub if someone else would like to maintain them.
  • We have removed the following Payment Gateways from the core application as we are unable to maintain them:
    • AliPay (Status unknown)
    • Interkassa (Reported non-functional)
    • Onebip (Status unknown)
    • WebMoney (Status unknown)
    • TwoCheckout (Reported working, will be added to the Extension Directory)
  • The KB and Support modules have been merged into one singular Support module. (See PR#1180 for changes)
  • Some of the constants have been renamed within FOSSBilling to remove references to BoxBilling:
    • BB_DEBUG -> DEBUG
    • BB_URL -> SYSTEM_URL
    • BB_MODE_API -> API_MODE
  • The following constants have been removed: BB_SSL and BB_URL_API.
  • Support for PHP 8.0 has been removed as it no longer is receiving security updates.
  • The queue module has been completely removed as it was somewhat incomplete and only being used by the Massmailer module.
  • getLoginUrl and getResellerLoginUrl for server managers now need to accept a new parameter which will either be null or a Server_Account object. This is provided for SSO support. If the system doesn't want an SSO link, null will be passed.

📝 Changes

  • The "Remember me" check-boxes have been removed as they didn't actually do anything.
  • Minor improvements to the developer workflow.
  • We've removed the messages that could appear when your FOSSBilling instance reported it's version as 0.0.1.
  • We've removed the option to generate EU VAT rates as these values were hard-coded, making the option misleading and potentially confusing.

Don't miss a new FOSSBilling release

NewReleases is sending notifications on new releases.