Gadget has a built-in, scalable logging system available for use in every application. Gadget emits logs about important happenings within your application by default, like incoming HTTP requests, webhooks, and connection syncs. You can also emit your own logs. Logs are viewable and searchable in Gadget's built-in Log viewer.
Gadget's CLI, named ggt, is the command-line interface for the Gadget platform.
ggt provides additional functionality for working with your Gadget applications using your existing tools on your machine. ggt isn't
required for building end-to-end Gadget apps but supports syncing files locally (and more soon) for your preferred coding experience.
Gadget offers built-in support for storing and accessing environment variables.
For more information on how to manage your environment variables read the guide here.
Access control
Gadget has a built-in, role-based access control system. As you build out models and actions, Gadget auto-generates permissions that manage who can read data or run those actions. To read data or run an action, the actor making the request must be granted specific permissions to read that data or to run that action. Actors are granted permissions by assigning roles to an actor. API keys are one type of actor -- they can be assigned roles within the Gadget editor quickly and easily. For more advanced use cases, like a full user-facing authentication system, specific records can be granted roles, which allows you to dynamically assign roles at runtime.
You can use Gadget's CLI to write and run unit tests for your Gadget application on your local machine. You can also set up a CI/CD pipeline that runs your unit test suite automatically when you push code to source control such as GitHub.
For more information on setting up a unit test framework and CI/CD pipeline, see the unit testing guide.
Keyboard shortcuts
Gadget provides numerous keyboard shortcuts for use.