Directory
Directory stores reusable regional values for your Letterflows. Values, credentials and private keys are encrypted in the selected region.
Create and reference a variable
Create and edit Directory variables from the dashboard. Each variable has its own form; choose its region when creating it.
Open Directory, choose a region, and save a named variable. Names begin with a letter and contain letters, digits and underscores, up to 60 characters. Region codes are reserved; names are unique within your account and region.
{{ dir.base_url }}
{{ dir.au.base_url }}
{{ dir["us"].base_url }}
Set your default region on the Settings page. Unqualified references use that region. Explicit regions must be available on your plan. Tinkerer requires every dependency, including shared-header dependencies, to be in the Coordinator region.
Variable types
- Text and secret text store literal text. Secret text uses a concealed editor field.
- JSON and XML accept document text. Whole references preserve that text; property and index paths traverse the parsed document. Structured subvalues render as JSON.
- XML paths include the root element. Repeated children become lists; attributes use @name and mixed text uses #text. Namespace keys use brackets. DTDs, entities and external references are rejected.
- Basic authentication stores an ID and password. Use .id or .password, or a whole variable in Directory basic authentication. HTTP receives Basic Authorization; FTP and SFTP receive both fields.
- Private keys can be uploaded or generated as Ed25519, with an optional passphrase. Use .key and .passphrase, or a whole variable in Directory private key (SFTP). Copy the generated public key to your server.
- HTTP headers use text or field editing. Header values may reference other Directory variables; Letterflow step references and dependency cycles are rejected.
Expand expressions in JSON/XML values. Directory templates can reference only Directory variables. Inserted values are escaped and never interpreted again. Document template
Shared headers
Use a Headers variable or a JSON object of text values in the Letter component's Directory headers input. Local headers override shared names without regard to case. Choose Headers when its values need further Directory interpolation; JSON values remain literal data.
{{ dir.common_headers }}
Authorization: Bearer {{ dir.api_token }}
Captured revisions and limits
Submission captures your default region and every required immutable variable revision before queuing. Later edits cannot change those inputs. Each scheduled occurrence captures fresh revisions. Deleting a required variable cancels affected waiting runs; admitted runs keep their snapshots.
Directory limits apply across all regions: 5 variables on Tinkerer, 30 on Aspiring and 100 on Coder. Text, secret, JSON and XML values allow 64 KiB, 256 KiB and 1 MiB respectively. Headers allow 64 KiB; basic-auth fields and passphrases 4 KiB each; private keys 256 KiB. Runtime request and memory limits still apply after expansion.
The editor checks sizes, JSON/XML syntax and nesting, and headers before upload. Errors preserve your draft. Server validation remains authoritative. Only Headers expand Directory references; text, JSON and XML remain literal.
Integration access
Paid integration keys may explicitly select directory:read to list variables and obtain regional value URLs, including secrets. This permission is never automatic. Directory changes remain dashboard-only.