Engine CLI reference
Run sasy serve [OPTIONS] to start the engine. This table covers all 41 configurable long options plus help, checked against the current full engine’s sasy serve --help. --policy is an alias of --policy-metadata; do not pass them as separate logic and metadata settings. A flag does not enable a backend omitted from your build. The restricted guard engine serves only its baked profiles.
See configuration for startup examples, authentication for identities and TLS, environment for process variables, and building for backend/toolchain requirements. CLI values override the corresponding environment variables.
| Flag | Default | Purpose |
|---|---|---|
--policy-metadata <FILE> (alias --policy) |
unset |
One source-file option with two spellings. Soufflé backends compile/read this source and its annotations. With --policy-plugin, it supplies annotation metadata for that plugin instead. Restricted builds still serve only baked profiles. |
--policy-plugin <FILE> |
unset |
Trusted precompiled policy plugin (.so/.dylib); takes precedence over --evaluator in the full build and runs in the engine process. |
--evaluator <BACKEND> |
souffle |
souffle, souffle-interpreted, experimental external flowlog, or development stub. The stub backend allows actions; do not use it for enforcement. |
--flowlog-bin <FILE> |
unset |
Path to the external FlowLog evaluator IPC wrapper when selecting that backend. |
--souffle-program <NAME> |
policy_program |
Soufflé relation/program name answered by the evaluator. |
--souffle-interpreted-bin <FILE> |
souffle-interpreted |
Interpreted evaluator shim executable; required when selecting that backend. |
--souffle-policy <FILE> |
unset |
Policy .dl input for interpreted mode. |
--souffle-functor-lib <FILE> |
unset |
Explicit functor shared library for interpreted evaluation; otherwise the backend can compile its adapter library using the configured toolchain. |
--auth-provider <FILE> |
unset |
Authentication-provider JSON. Missing authentication refuses startup unless SASY_ALLOW_NO_AUTH=1 explicitly enables local development without authentication. |
--auth-config <FILE> |
unset |
YAML mapping authenticated entities to roles and tenants. |
--transforms <FILE> |
unset |
JSON request-transform and credential-injection rules. |
--addr <HOST:PORT> |
127.0.0.1:50051 |
gRPC listen address. |
--proxy-port <PORT> |
0 |
Separate raw HTTP proxy port; 0 disables it. |
--proxy-bind <ADDRESS> |
127.0.0.1 |
Raw proxy bind address. This listener does not authenticate callers; restrict network access. |
--proxy-tenant <TENANT> |
default |
Single tenant pinned to the raw proxy listener; this does not authenticate a caller. |
--trust-proxy-headers |
off |
Accept delegated x-entity/x-roles from authenticated callers without requiring their service-proxy role. Enable only behind a protected trusted proxy. |
--tls-cert <FILE> |
unset |
PEM server certificate; together with --tls-key, enables TLS. |
--tls-key <FILE> |
unset |
PEM server private key; pair with --tls-cert. |
--tls-ca <FILE> |
unset |
CA for verifying client certificates (mTLS). Configure the authentication provider to map those certificates to identities. |
--data-dir <DIR> |
data/graph |
Graph and engine state directory, resolved relative to the startup working directory. |
--credential-backend <BACKEND> |
sqlite |
sqlite, memory, or openbao. Memory seeds credentials from the environment and shares them across tenants. |
--credentials-db <FILE> |
<data-dir>/credentials.db |
SQLite credential database; other backends do not use this file. |
--credentials-env-file <FILE> |
unset |
Additional memory-backend credentials; file values override the environment. Other backends warn and ignore this option. |
--openbao-addr <URL> |
unset |
Required OpenBao URL for the openbao backend; HTTPS unless loopback. |
--openbao-mount <NAME> |
secret |
OpenBao KV v2 mount. |
--openbao-path-prefix <PATH> |
sasy |
Lookup prefix; credential paths append tenant/entity/service. |
--openbao-namespace <NAME> |
unset |
OpenBao namespace header. |
--openbao-token-file <FILE> |
unset |
Token file; use this or the AppRole pair, not both. |
--openbao-approle-role-id <ID> |
unset |
AppRole role identifier; pair with the secret-ID file. |
--openbao-approle-secret-id-file <FILE> |
unset |
AppRole secret-ID file. |
--openbao-ca-cert <FILE> |
unset |
PEM CA for a private OpenBao server certificate. |
--openbao-cache-ttl-secs <N> |
60 |
Credential read-cache TTL in seconds. |
--openbao-timeout-secs <N> |
5 |
OpenBao request timeout in seconds. |
--query-timeout-secs <N> |
10 |
Fail-closed answer deadline in seconds; must be positive. The evaluator may finish in-flight work after a refused request. |
--evaluator-stall-secs <N> |
60 |
Kill/restart threshold for an evaluator owing a reply; must be at least the query deadline. |
--oracle-redaction <on|off> |
on |
Scrub recognized secret shapes in oracle question/context strings. Does not redact stored graph data or the agent’s own model requests. |
--neo4j-uri <URI> |
unset |
Enable the optional background graph mirror at this Neo4j URI. |
--neo4j-username <NAME> |
neo4j |
Neo4j mirror username. |
--neo4j-password <VALUE> |
observability |
Neo4j mirror password; replace the development default when using a shared server. Command-line values can appear in process listings. |
--neo4j-database <NAME> |
neo4j |
Neo4j mirror database. |
--allow-user-functors[=<VALUE>] |
off |
Non-admin native functor admission: bare flag or sandboxed requires working confinement; unsandboxed explicitly permits unconfined development execution. Admin functors remain native code. |
--help |
— |
Print help; -h prints a shorter summary. |
The raw proxy has a separate, limited HTTP contract described in configuration. It does not inherit per-request gRPC authentication.
Other full-engine commands are sasy init-credentials [--credentials-db FILE] [--env-file FILE] to initialize/seed SQLite credentials, and sasy install-assets DIR to materialize the six embedded compile-chain assets. init-credentials defaults to data/credentials.db; see building before selecting an asset override. install-assets requires a compiler-enabled build.