sluis

command
v1.77.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: MIT Imports: 46 Imported by: 0

Documentation

Overview

Command sluis is the whole product in one binary, one image and one chart (docs/decisions/0032), and one process: `sluis serve` is the issuer, the hub, the console and, beside them, the controllers its document names.

sluis serve --config <file>              the one process: the issuer, the hub, the console and its controllers
sluis controller github --config <file>  the GitHub controller's loop alone (deprecated)
sluis controller slack --config <file>   the Slack controller's loop alone (deprecated)
sluis tick github <target> --config <file>  one GitHub target's tick, once
sluis tick slack <target> --config <file>   one Slack workspace's tick, once
sluis migrate --from <config> --to <config>  copy the State between storages (docs/decisions/0031)

The command line is a urfave/cli v3 tree (commands.go): one multi-call binary, one module per process (docs/decisions/0071). The module commands (issuer, console, github, slack, cloudflare, google, backup) each run their role; the commands above stay as they are.

Each subcommand is configured by one file and reads nothing else (see internal/config). Everything a subcommand decides is assembled in its own package, internal/rosterapp and internal/{github,slack}roster/app; this file only chooses which one to start and stops it.

`serve` runs every controller its service document (apiVersion sluis.truvity.github.io/sluis/v3) names under `controllers`, each in a loop of its own beside the service. `controller <kind>` is the same loop as a process of its own, kept for one release for a deployment that still runs the controllers apart; it reads either its own v2 document or the one document, and says it is deprecated. `tick <kind> <target>` is the unit of work the loop is made of (docs/decisions/0029), run once under the target's lease and then exit: an operator's command now, and the shape of a function that lives for one invocation later. A target is an organisation's login or `github:links` for GitHub, and a workspace's key for Slack.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL