Script Editor
In Windmill, Scripts are the basis of all major features (they are the steps of flows, linked to apps components, or can be run as standalone).
A Script can be written in: TypeScript (Deno), Python, Go, Bash or SQL. Its two most important components are the input JSON Schema specification and the code content.
Python and Go Scripts also have an auto-generated lockfile that ensure that executions of the same Script always use the exact same set of versioned dependencies. The code must always have a main function, which is its entrypoint when executed as an individual serverless endpoint or a Flow module:
TypeScript:
async function main(param1: string, param2: { nested: string }) {
...
}
Python:
def main(param1: str, param2: dict, ...):
...
Go:
func main(x string, nested struct{ Foo string \`json:"foo"\` }) (interface{}, error) {
...
}
Bash:
There is no main needed for Bash. The body is executed and the args are passed directly.
The Script Editor is made of the following features: