Release Notes

Thriftly v2.3

Thriftly v2.3 was released in October of 2019.

New Features

  • Enhanced JWT and JWS Support

    • Your application’s JWT and JWS (the encoded, signed JWT) can now be directly retrieved from your API service. Previously, you would have needed to manually store the JWT for later access, so now you can save a step and thus have less code to manage. Also there was no prior way of simply retrieving the JWS (which is how your JWT appears in your headers - encoded and signed) from within the service. Now with the JWS easily accessible you have more options for managing your authentication process to provide more robust security.

    • The sample projects that come with the Thriftly Developer installation have been updated with JWT and JWS usage examples to help get you started on securing your APIs.

  • Improved Error Handling

    • The custom error system setting allows you to set a more detailed error structure with custom fields such as message, error number, description, and so on. This structure is assigned to a service, so the error structures can even be customized for different services within your Thriftly application.

    • Previously this feature was only supported for Dataflex, but now has been added for C# and Java.

    • The expanded support will allow for a more powerful, customized error handling experience with your Thriftly applications.

Bug Fixes

  • Licensing Issues Fixes: There were issues with licenses sometimes falsely becoming invalid on the Thriftly desktop applications due to machine identifiers changing. This invalid license error required reactivating the license which would then erroneously subtract from the available activations. These licensing issues have been resolved by implementing automatic handling of such machine changes to prevent false invalid license errors and unnecessary reactivations.

  • Shared Struct Issues Fixes: Delphi and Java applications were throwing a duplicated structure name error when the same struct was being shared between different service. This issue has been resolved so that structs can be used by multiple services without that error.

  • Startup Error Catching Fix: Previously regular Dataflex errors were not able to be caught properly in Dataflex applications using Thriftly. The Dataflex Thriftly package has been fixed to use the standard Dataflex error handler for startup errors that occur before Thriftly starts successfully.

  • Datetime Conversion Fix: Datetime fields in Java APIs were being converted inaccurately by an hour. This issue has been fixed in this release.

Thriftly v2.2

New Features

  • New Trial Licensing Makes Getting Started Easier: We’ve updated both the Thriftly Developer and Thriftly Deployment downloads to make getting started with Thriftly even easier:

    • Thriftly Developer continues to be free-forever, but you no longer have to re-register your installation every six months. The Thriftly Deployment trial is now also free-forever, but we’ve limited the number of application pools and processes you can deploy using a trial license. Additionally, trial licenses now contain a data transfer limit, as described near the end of the Installing and Licensing Thriftly Deployment topic.

    • We expect this new model will allow independent developers, whose APIs often require only one endpoint and minimal data transfers, to continue using our free trial longer than 30 days. It will also resolve licensing and endpoint consolidation issues larger customers have had when reconciling their trial deployment with their subscriptions.

    • If you’re using a previous trial version, you’ll be prompted to reconcile your deployment with these new restrictions after you update and launch Thriftly Deployment.

  • Serve Your API Using gRPC: We’ve added the gRPC protocol buffer, Google’s high-performance RPC framework, to the list of transports and protocols we support. You can deploy your API as a gRPC service by selecting gRPC as your API’s transport and protocol (as detailed in step 4 of the Adding Endpoints topic) and then following the instructions in the Deploying Your API as a gRPC Service section. Note that, currently, Thriftly-based gRPC services include the following limitations:

    • You can not deploy Thriftly-based gRPC services using the Thriftly Gateway; you must deploy and access them from your local machine using localhost ports.

    • You can not use request headers to transform your API into a gRPC service after deployment. If you intend to use your API as a gRPC service, you must specify your API is a gRPC service as you deploy it from Thriftly.

    • Thriftly gRPC services support only the simple RPC method, not response-streaming, request-streaming, or bidirectionally-streaming RPC.

    • Thriftly implements gRPC over HTTP2. Thriftly gRPC services are not compatible with HTTP1 implementations.

  • Monitor Your API’s Performance Using Prometheus: To give you a free, open-source option for monitoring your Thriftly API’s performance, we’ve integrated Thriftly with Prometheus, an application that gathers and graphs a variety of key API performance metrics.

    Additionally, you can use Prometheus’s own integration with Grafana to create and share stylized dashboards detailing your API’s performance. You can also create automatic email alerts to inform you when your API hits a certain performance threshold.

    To connect your API with Prometheus, refer to the Analyzing Metrics and Creating Alerts Using Prometheus and Grafana section.