Skip to main content
Greenlight reads source files from an S3-compatible bucket, writes results back to an output bucket, and supports three backend drivers.

Backends

minio (default)

For local dev and on-prem deployments. docker-compose boots MinIO automatically and seeds matching credentials.

s3

AWS S3 or any other S3-compatible service.
Leave S3_ENDPOINT blank for AWS S3 proper. Set S3_FORCE_PATH_STYLE=true for any third-party service that requires path-style addressing.

noop

Disables storage entirely. Useful for pure-stdin / stdout pipelines or integration tests.

Key layout

Input

Default: greenlight/screenplays/input/. Submission references the full object key relative to the bucket:

Output

output_key is supplied per-job; task.output_dir is defined per task in config/tasks.yml. Example, submitting with output_key: "screenplays/output/script-v1" and tasks: ["convert-fdx-to-screenjson", "validate-screenjson"] produces:

Browsing storage

The service exposes GET /storage to list buckets and objects directly. Convenient for debugging but usually not exposed publicly — put it behind auth.

IAM (AWS S3)

Minimum permissions for a dedicated service account:

Large files

Default JOB_TIMEOUT=30m handles multi-hundred-megabyte PDFs comfortably. For unusually large source material, raise the timeout and scale worker replicas horizontally; no single worker is sharded per task.