Keep shared configuration and private values in one place. Open Global at the top of an endpoint, function or event, or open the manager from Settings. The Variables and Secrets tabs belong to the selected workspace.
Use ordinary variables for reusable settings such as a default page size or service address. Use secrets for private values such as an external service's API key. Secret names can be selected in server workflows, but their saved values are never shown in the manager.
The Variables tab keeps the familiar typed editor. Add a field, choose its type, enter its value and save. Existing workflows continue to use references such as $global.default_page_size.
These values remain editable configuration. Hiding a text field on screen does not make it a protected secret. Keep credentials in Secrets instead. Changing a value during a workflow does not save a new workspace setting; edit the manager when you want to change the saved configuration.
Check the workspace name and Dev/Prod badge before entering a value.
Open Secrets and choose Add secret. The editor opens above the list, using the same name and value fields as other variables.
Enter a descriptive name, such as SERVICE_KEY. Use letters, numbers and underscores, beginning with a letter or underscore.
Enter the value and save. You can also save a name without a value to prepare it for later configuration.
A confirmation appears in the bottom notification bar after saving or removing a secret.
The list shows whether the secret is configured, together with its update time. It never displays the saved value, and there is no reveal button. A secret name stays the same after creation so existing workflow references remain clear. To use a different name, create a new secret and update the affected workflows.
Each workspace can hold up to 100 secrets. A value can contain up to 16 KiB of text. Do not paste a private value into the name, a workflow label or an ordinary variable.

The list shows configured values as Set and a prepared name without a value as Not set.
Choose Replace to enter a new value. The replacement field starts empty; leaving it empty keeps the saved value. After saving, the new value is available to subsequent runs without publishing every workflow again. A run that has already started continues with the values it loaded.
Use Remove when you intend to remove a secret, then confirm the change. A workflow that still requires it will need attention. Removing all ordinary globals does not remove secrets.
If another person changes the secret while you are editing, refresh its latest details before replacing it. Temporary values are cleared when you leave the editor or switch workspaces; enter the replacement again if needed. Only members allowed to manage the workspace can change its secrets.

Replacement starts with an empty value field. Leaving it blank keeps the saved value.
Choose a secret from the variable selector in a server workflow. References use $secrets.SERVICE_KEY; the ordinary variable prefix remains $global.

Select a secret by name without revealing its value. This example compares a test input with a workspace secret.
For example, select the secret as the value for an external service's authorization header. Keep the value out of the endpoint's response. Secrets are available to server workflows, including endpoints, functions, middleware and events. They are not available to browser/page workflows.
A secret without a configured value cannot satisfy a workflow that requires it. Configure it in that workspace before testing or enabling the workflow. Test runs use their selected workspace's secrets even when database records are isolated; an isolated test does not automatically select development credentials.
Give the same secret name different values in your existing Dev and Prod workspaces. For example, Dev can use a service's test key while Prod uses its live key. References remain the same, but each run resolves the selected workspace's own value. There is no fallback to another workspace.
Secrets do not need an extra workspace and do not increase your workspace limit. If your account is already at its limit, use an existing permitted test workspace. Changing a workspace's Dev/Prod label does not move, replace or choose a second set of secret values.
Secret values are not copied between workspaces, included in release comparisons or restored by rollback. A release checks that required secret names have configured values in its destination. Add or configure missing secrets there, then review the release again. A rollback restores workflow definitions while retaining the destination's current secrets.

Release review lists missing names so you can configure them in the destination before trying again. Values stay hidden.
Saved secret values stay hidden in management screens and are redacted from supported logs, traces and test diagnostics. This does not make every authored workflow safe: an endpoint can deliberately send a secret or a transformed value in its response or an external request. Review the fields you send and return, use sample keys when testing and replace a key if it is exposed.
Useful guides: Workspaces, Testing, Safer releases, Send an external request.
Live debugging
Pause an isolated editor test before a command runs, move through it one step at a time, and inspect its recorded outputs. Use this to find where a calculation or decision begins to differ from what you expected. Start a debug test. 1. Open a server function, endpoint or event and choose Test. 2. Ch...
Commands in Twidget
Commands are the building blocks of Twidget's no-code platform. They function like code statements and can perform various operations such as creating and updating variables, loops, conditionals, retrieving and manipulating data in the datastore, and much more. Creating a Command. 1. Navigate to the...
Output
Each function also has an optional output where you can return an output variable. To simplify the use of functions, you can define an output schema. The output schema acts as an internal documentation detailing what the output of the function will look like. This makes it easier to understand and u...
Reusable Middleware
Middleware is a reusable workflow that runs before or after an endpoint, function or event. Build it once, then apply it wherever you need the same input checks, response formatting or logging. Create middleware. Open Middleware from the sidebar and choose Create Middleware. Give it a clear name, su...
Command Output
Some commands in Twidget return outputs, which are essential for dynamic and conditional logic within your workflows. These outputs are displayed next to the command and are prefixed with an "as" to indicate the variable name. Using Output Variables. Once a command returns an output, you can use the...