posted by chriskapp on
We are really excited to finally release the next major version 5.0 of Fusio.
This release provides some great new features, and we continue our mission to build one of the best tools to build innovative API solutions. Like always we will cover all important features of this new release in the following list.
Fusio now supports multi tenancy on the database level. This helps to efficiently run multiple Fusio
instances on a single large server or cluster. To configure a tenant you only need to set the
APP_TENANT_ID
environment variable and all database calls will only select rows with the fitting
tenant id. There are also API endpoints to setup or remove a tenant.
We have redesigned the worker system. In general the worker system allows to write backend logic in different programming languages. Previously we have used the Thrift RPC system to manage the communication between Fusio and the worker. We have moved away from this to a simple REST API which gives us the benefit to run such a worker in different environments like on a serverless platform which is a natural fit for a worker.
It is now possible at the user panel to create a personal access token. Through this a user can easily obtain an access token to access private endpoints. It is possible to select specific scopes for the token and how long the token is valid.
The config file contains two new options fusio_action_exclude
and fusio_connection_exclude
which can be used to exclude specific connections or actions at your instance. I.e. by default Fusio offers some
"unsafe" actions like the CLI or PHP-Sandbox action which can be a security issue. Through the new config it is
possible to exclude such actions.
We have added a new dedicated account app which can be integrated into an existing web app to manage all developer account details. This app is also included at the developer and backend app.
Inside your action it is now possible to access the metadata of the action. You can set this metadata if you create an action through our backend API.
At the backend we have a new panel under System / Backend which can be used to import/export the complete configuration. This makes it also easier to move configurations from test to production environments. Note this only exports the database configuration, custom classes at the src folder are not exported and must be synced separately.
The backend API now returns the affected primary key for every create, update and delete operation. This can be useful if you want to directly further work with an entity which you have created.
We have added the following two new actions, besides this we have also improved several other actions.
Fusio\Adapter\Http\Action\HttpRaw
A new action to send complete customized HTTP requests. This allows i.e. to send XML payloads to invoke legacy web services.
Fusio\Adapter\Util\Action\UtilCondition
A new action to invoke different actions depending on a logic expression. Through this it is possible to invoke different actions depending on a condition.
We have improved the OAuth2 connection handling so that it is now easier to add connections which needs OAuth2 authorization. In the future we will add new connections to external services so that our users can easily integrate those external services into Fusio.
At the end I like to give you a short insight into our future plans. We are working for some time in the background on a new project called SDK-Fabric, this project basically tries to build a global SDK infrastructure for different provides. We plan to integrate those SDKs into Fusio so that you can easily work with those services in your actions. You can think of it like Zapier where you can configure your connections and then create actions to execute specific tasks. The SDK-Fabric project contains currently only some provides but we hope to extend this in the future also with the help of our community. Despite this we plan to reboot our Fusio cloud platform using our new tenant and worker system. We try to build a platform where every user can easily get a new Fusio instance in the cloud.
Finally I like to thank every user who supports our project. In the last year we have seen many activities and I had also lots of great conversations which also influenced this release. To support our project feel free to give it a star on GitHub and you can also financially support the project through a donation.
Best regards
Christoph