This is a contributors guide and NOT a user guide. Please visit these docs if you are using or evaluating SuperTokens.
The frontend driver interface (FDI) is an interface that defines how the frontend SDK communicates with the backend SDK.
For example, when the frontend UI's "sign up" button is clicked, it needs to call an API to initiate the sign up flow. This API is exposed via the backend SDK and the API spec is defined in the frontend driver interface.
You can find the Open API spec here.
It has its own versioning system with the format
Xvalue is incremented when there is a breaking change to the API spec. Breaking changes are defined by if an existing API is changed without / removed.
- We increment the
Yvalue for most changes - these include non breaking changes like adding new APIs
Zvalue never really gets incremented, and can be ignored.
Each backend and frontend SDK has a list of FDIs they are compatible with. For example, see this file. These values determine if a frontend and backend SDK version can work together or not.
One exception is that the consumer of the FDI (that is the frontend SDKs) may be compatible with an FDI, but may not consume all of its APIs. For example, a frontend SDK may only work with the session recipe and still be compatible with an FDI that has other recipes as well.
However, the same does not apply to the backend SDKs - for a backend SDK to be compatible with an FDI, it needs to have implemented ALL the APIs that the FDI spec says. This is because it's the provider of the FDI APIs and not the consumer.