October 2023 Changelog
October was dedicated to enhancing the developer experience at Basis Theory.
A big focus in October was cleaning up and simplifying our engineering customers’ lives across nearly all aspects of our product. We made a few small enhancements across our API to ensure our product continues to be flexible enough to meet all engineering needs. We also fully reworked our Reactor experience to create a more streamlined experience.
🇪🇺 Solved GDPR and European Latency
We are excited to introduce our private EU platform, which replicates our existing U.S.-based deployment in Europe. This platform allows European businesses to have a high-end payment platform close to their systems, ensuring the lowest latencies and keeping customer data local and in the region by default. By utilizing this dedicated EU ecosystem, businesses can ensure their payment data automatically complies with GDPR requirements and provide enhanced data protection.
We are still expanding access to additional waitlisted customers - if you’re looking to use any of our features within a dedicated EU ecosystem, reach out to our team!
Streamlined Reactor DX
Reactors have been a valuable tool for engineers since their introduction in 2021. However, after observing their usage, we found that Reactor Formulas were often unnecessary and bulky in 95% of use cases. To simplify the Reactor engineering experience, we have introduced a code
property directly on our Reactors allowing the ability to create Reactors with code
directly tied to it, eliminating the need for separate Formulas.
We’d love your feedback on what else is missing as we plan the v2 of our Reactors for 2024!
Custom Response in Proxy Transforms and Reactors
Over the last 6 months, engineers integrating with our Proxies have continued to find scenarios where they need to short-circuit the default workflow and handling of responses. Some examples of these situations are:
- Handling custom authentication in a Request Transform
- Standardizing error responses in both Request and Response Transforms
- Transforming status codes on the fly
In all of these cases, we found the need to be able to short-circuit our RequestTransform to respond directly to the caller without hitting the final destination. We’ve introduced a new CustomHttpResponseError, which when thrown will allow you to stop the progress of your Proxy and return custom headers
, body
, and statusCode
directly from your transform:
module.exports = async function (req) {
throw new CustomHttpResponseError({
status: 400,
headers: {
"Custom-Response-Header-1": "custom-value-1",
"Custom-Response-Header-2": "custom-value-2"
},
body: {
myCustomError: "My custom error message"
}
});
};
Other Improvements
- [iOS] Fixed issue with validation not clearing when clearing element
- [Proxy] Allowing
X-ClientId
header to be passed through to the destination - [Tokens] Fixing small issues with updating large tokens
- [Formulas] Deprecating Reactor Fomulas in favor of
code
- [Reactors] Adding templates for Reactors
- [Proxy] Increasing performance when proxying w/o an Expression