Scripts
A script is a versioned, reusable piece of code that can be executed by a Script node inside a workflow. Scripts are language-agnostic: you write them in whichever runtime makes sense for the task.
Supported runtimes
Section titled “Supported runtimes”Scripts can be written in a wide range of languages, including:
| Runtime | File extension |
|---|---|
| Python | .py |
| TypeScript (Bun / Deno) | .ts |
| Bash / PowerShell | .sh / .ps1 |
| Go | .go |
| PHP | .php |
| SQL (PostgreSQL, MySQL, BigQuery, …) | .sql |
| Rust | .rs |
…and more. See the CLI docs for the full, current list of supported languages.
Script anatomy
Section titled “Script anatomy”A script is a plain source file that exports a main function. Its input schema is inferred from the parameters of main. There is no separate input declaration to keep in sync:
def main(customer_id: str, dry_run: bool = False): # ... your logic ... return {"result": f"processed:{customer_id}"}The parameter types and defaults determine validation and the auto-generated UI. Run orvanta generate-metadata to produce the lock and schema files that capture this for deployment.
Versioning
Section titled “Versioning”Every push creates a new version. You can inspect a script’s history and show any previous version:
orvanta script history f/folder/my_scriptorvanta script get f/folder/my_scriptSharing scripts
Section titled “Sharing scripts”Scripts live at a path. Folder-owned scripts (f/folder/...) are shared with everyone who has access to that folder; user-owned scripts (u/user/...) are private to you. Access is governed by roles and permissions.
Related
Section titled “Related”- Workflows: How scripts are used inside workflow nodes.
- CLI: /scripts: Manage scripts from the command line.