Skip to content
Trigora
Start building →

trigora.toml

trigora.toml is the project deployment manifest. Programs stay discovered from globs. Triggers are declared beside them. A trigger is not part of a Program artifact.

[project]
name = "acme-agents"
programs = ["src/**/*.py"]
[[triggers]]
name = "approval-webhook"
type = "webhook"
program = "approval"
[[triggers]]
name = "nightly-research"
type = "cron"
program = "research-agent"
schedule = "0 2 * * *"
timezone = "UTC"
[triggers.input]
scope = "daily"
limit = 100
[triggers.input.filters]
active = true
regions = ["us", "eu"]

[project].name is required. programs lives in that table. Unknown fields are errors. Key order does not matter. Platform ids are never written into the file.

programs accepts one glob or an array of globs. Discovery names:

LanguageProgram id
TypeScriptNamed default export, otherwise the file stem
PythonThe file stem
RustThe source file stem. For lib.rs and main.rs, the Cargo package name

An anonymous TypeScript default export compiles with artifact function name "default". That name is compiler metadata. The Program id is the file stem.

trigora deploy --program selects one of those ids. See Programs.

[[triggers]] entries are project resources. name is unique in the project and is how deploy reconciles them. program must name a discovered program. A file with no [[triggers]] replaces the project’s triggers with an empty list.

TypeFields
webhookname, type, program. No schedule, no timezone, no input. The POST body is the program input.
cronschedule is required. timezone defaults to UTC. input is optional.

Cron input decodes to JSON: strings, integers, floats, booleans, arrays, and tables. TOML datetimes are rejected.

Deploy replaces the project’s triggers with this list. Removing an entry removes that trigger. See Triggers.