GraphBolt v1.0.0 is Here 🚀

What's new in V1.0.0?

GraphBolt v1.0.0 is Here 🚀

After opening sales in December, and leaving the Beta phase in January, today, I'm proudly announcing one of the biggest releases to date. This version marks a huge milestone in the project and offers some major features I've wanted to include for a long time. It's so important that it deserved a MAJOR version bump: v1.0.0 🚀

In this blog post, I will explain them and tell you how to make the best out of them.

Say "Hi" to Projects 👋

When you work on a project, you often need to work on the same service in its different stages (also known as Environments). This is especially true for serverless applications where you often have 3 or more of them. i.e. You probably have dev, staging, prod; plus, every dev might have their own account/environment, without mentioning a bunch of ephemeral (or ci/cd) stacks. That's a lot of environments all representing the same application or service(s)!

More concretely, if you're deploying the same AppSync API to those different environments, you probably want to be able to manage (and test) them in one convenient place.

In this new version of GraphBolt, you can now create Projects to logically group all your API instances, even if they live in different AWS accounts and regions.

After selecting AWS profiles and regions, GraphBolt will automatically explore your accounts and discover your AppSync APIs. You can then choose which ones to include in the project.

After creating a Project, you can access all your favorite GraphBolt tools, within a single and homogenized scope. This means that, for example, Operation and Resolver collections now belong to the Project, and not to individual APIs (as it was the case before). When selecting an operation (i.e. a Query, Mutation, or Subscription), you can execute it against any of the APIs included in the project.

For those of you coming from Postman, you can think of Projects as workspaces, where each API corresponds to an environment.
💡
Tip: GraphBolt lets you include a specific list of APIs or all APIs from an account/region. For stable environments (e.g. above dev), I recommend selecting the exact API instances to include. For lower environments, keep the "All current and future APIs" toggle checked. This way, any newly created API will be automatically included.

Tabbing Navigation 🗂

Until now you were only able to work on one thing at a time, whether it was an operation, a resolver, etc. This was very limiting in some cases, like executing a Subscription followed by a Mutation to check if the message is delivered as expected. This has been a long-standing issue with GraphBolt.

Starting from this version, every "view" will open in a new tab, making it much easier to work with several things at the same time.

💡
GraphBolt lets you know (with a 🔴 badge when something happens in a tab (e.g. a new subscription message arrives).

Request History 🕓

Did you know that GraphBolt has been silently keeping track of all your requests for a while now? (Don't worry everything is still stored on your machine, I don't see them). However, there was no way to access them from the UI. This is now a done thing! You'll find a new drop-down menu on top of the response panel that lets you see the execution history.

Per Request Authentication 🔒

So far, the authentication settings have been global per API. This was a problem when some operations use a different authentication method than others. For example, you could have a "public" query named getPost() which uses the API key authorizer, while the createPost() mutation uses Cognito User Pools.

You can now use a different authentication method for every individual operation.

For now, you are still limited to one Cognito User across all operations, per API, though. I hope to be able to introduce support for several user profiles soon. (e.g. user, admin, etc.)

What Else?

Those are by far my favorite features, but I did not stop there. This new version also includes some bug fixes and other smaller improvements, notably in the UI and the onboarding process.

What's Next?

There are plenty of other great features I'd like to add that I will work on in the following weeks/month. What features would YOU like to see? Let me know!

Conclusion

This new release is one of the biggest ever. Projects and tabs were much-needed features and I truly hope that they will boost your AppSync development workflow.

Start using it now, and don't hesitate to send me your questions and feedback.