Fusio 2.1.9 released and plans for 3.0
posted by chriskapp on
We are happy to announce the release of version 2.1.9 of Fusio. This is probably the last patch release in the 2.x release line. This post will cover the most important changes which we have released since the last post.
Use symfony mailer
We have moved from the deprecated
swiftmailer/swiftmailerto the new
symfony/mailercomponent for sending mails. Because of this there is also a new
FUSIO_MAILERenv config which allows you to configure the mailer.
Add stripe adapter #428
We have added support for stripe as new payment provider.
Update developer portal
There are many fixes regarding the developer portal how payments are handled and also all login provider and recaptcha keys are now stored at the backend and Fusio will automatically insert those keys if you update an app.
Add OAuth2 connection handling
It is now possible to add connections which support an OAuth2 flow. This will be useful in the future if we add more 3rd party API connections where we can use an OAuth2 authorization code flow.
Add insomnia importer and improve postman import
We have improved the insomnia and postman import over the last releases and they can be now used to easily import data from these systems.
Remove sample todo endpoint #403
We have removed the sample todo endpoints so that you have a clean Fusio instance if you simply make a plain installation.
Add HttpComposition and HttpLoadBalancer action #391
We have added two new HTTP actions to handle composition of multiple endpoints and load balancing requests between endpoints.
As noted before we are currently planing and working on the 3.0 release of Fusio. To share our plans with our community we are going through our internal list. Please let us know if you have any other ideas or topics which you would like to see in the next 3.0 release.
Set PHP 8.0 as minimum requirement and improve code basis using type hints
We are currently working on this topic in the background. Most of our underlying components are already 8.0 compatible. This will improve our code quality. Beside migrating our code base we also update all our dependencies to the latest version. This change is of course only internal but we think it is a great step to improve our code quality.
Migrating the backend app to Angular 13
This is a feature request which we get from many users and with the next release we finally want to move from our old AngularJS app to a new Angular app. This will take a bit time since the backend app has grown over the time, but it is a needed step. This will also enable us to integrate a visual schema editor into our backend which we have already developed for a different project. Beside the backend app we should also migrate the developer app but this has not the highest priority.
Creating a separate Fusio Framework (project Potara)
Currently Fusio provides two ways to use the project. The first way is that a user simply installs Fusio and uses the backend to manage all tasks, so it can be used i.e. like a CMS. The other way is that a user can write actual PHP classes and through the deploy command it is possible to provide these classes to Fusio. Internally the deploy command also only talks to the internal API like if you use the backend app.
With the project Potara we have the idea to create a separate project which basically provides only the framework. This means it does not work with a database instead it is like a framework where a user only provides .yaml config files to describe the routes, actions and connections etc. This allows the user to use all actions and connections which are already available as adapter. Of course the framework users would be not able to get features like Rate-Limiting etc. since there is no database where we log incoming requests but it would be a great option for users who would like to use Fusio more as a framework.
Creating a fusiocasts.com website
This is not directly related to the 3.0 release but a topic which we have on our list for a long time. So we would like to create a video series where we cover and explain all aspects of Fusio. This should cover simple things i.e. how to setup a Fusio instance to more complex topics like building custom actions using a worker or setup a payment provider. Maybe we will make some more advanced videos only available to our donators but this is not decided yet.
Create a new documentation website
Like in many other open source projects the state of our current documentation is not optimal. We would like to move away from readthedocs and create a new dedicated subdomain i.e. docs.fusio-project.org where we serve our documentation. We had some great experiences with Docusaurus which we currently already use at phpsx.org. With this step we also would like to improve the documentation and make it more beginner-friendly.
Improving our external services
Besides the Fusio open source project we have launched the apigen.app and fusio.cloud project. The APIgen app can basically generate a complete API for you based on an entity definition. The fusio.cloud app is basically a hosting service which you can use to simply get a running Fusio instance in the cloud. We also plan to continue and evolve those services so that they benefit our community.
This is another project on our todo list which we would like to finalize. Some of our customers would like to have an SDK for their API which they have build with Fusio without manually building any SDK. We really like this idea and we have a plan to create a service where you can login via Github, then the user needs to provide an OpenAPI specification (or maybe also a link to a Fusio instance), the user then also selects the supported languages and for each language the user selects a specific repository. The service then automatically generates a client SDK and pushes those changes to the repository. The user can then register such repos directly at a package manager like npmjs and then he has a system which automatically updates the code if the schema changes.
So these are currently our big topics. Some of them are not directly related to the 3.0 release but I think it is interesting for our community to know these topics. Beside those major topics we have of course our issue list where we also want to address some issues with the next release. So please let us know if you have any specific ideas for the next release and we are looking forward for the next 3.0 release.