Expand description
Report server for RavenRS Reporting: stores layouts with versions, renders them over HTTP and delivers scheduled reports by email or to a folder.
configreads the server’s configuration; secrets come from the environment.storekeeps layouts, jobs, history and documents as files.cronparses schedules and finds the next run, time zones included.jobis the job format and its validation.renderresolves a layout’s data and writes the output files.deliversends files by email or writes them to a folder.schedulerruns what is due, with retries, history and retention.httpis the API.
The binary runs all of it from a configuration file. The server has one administrative identity, its API token, and is meant to run as one instance.
Modules§
- config
- The server’s configuration. Secrets are never in the file: it names the environment variables that hold them.
- cron
- Cron schedules: five fields (minute, hour, day of month, month, day of week),
with
*, lists, ranges, steps and English month and day names. - deliver
- Sends a run’s files: by email, or to a folder under the server’s output folder.
- http
- The HTTP API. Every route but
/healthneeds the API token. - job
- Scheduled jobs: what to render, when, and where it goes.
- render
- Resolves a layout’s data and parameters, and writes its output files.
- scheduler
- Runs jobs: what is due on the schedule, or what is asked for by hand, with retries, a history of who received what, and retention of the files.
- store
- Keeps layouts, jobs, history and documents as files, so they can be backed up and read with ordinary tools. Every name is validated before it touches a path, and writes go through a temporary file so a crash leaves no half file.