////
    Do not modify this file directly, it is automatically generated by combining
    the Python script `docs/utils/gen-conf-ref.py` and the template
    `docs/utils/conf-ref.adoc.j2`. Please refer to the Python script comments
    to discover how it is used.
////




== `service`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|cluster
|str
|Name of cluster served by agent


*Example:* `atlas`


_No default value_

|✅

|interface
|str
|Interface address to bind for incoming connections




*Default:* `localhost`

|-

|port
|int
|TCP port to listen for incoming connections




*Default:* `5012`

|-

|cors
|bool
|When true, Cross-Origin Resource Sharing (CORS) headers are enabled.




*Default:* `False`

|-

|debug
|bool
|Enable debug mode




*Default:* `False`

|-

|log_flags
|list[str]
|List of log flags to enable. Special value `ALL` enables all log flags.



*Choices:*


* `slurmweb`
* `rfl`
* `werkzeug`
* `urllib3`
* `racksdb`
* `ALL`


*Default:*


* `ALL`


|-

|debug_flags
|list[str]
|List of debug flags to enable. Special value `ALL` enables all debug
flags.




*Choices:*


* `slurmweb`
* `rfl`
* `werkzeug`
* `urllib3`
* `racksdb`
* `ALL`


*Default:*


* `slurmweb`


|-


|===



== `slurmrestd`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|uri
|uri
|URI to slurmrestd HTTP server. It can either be in the form
http://host:port for TCP/IP server or unix:///path/to/slurmrestd.socket
for Unix socket.





*Default:* `unix:/run/slurmrestd/slurmrestd.socket`

|-

|socket
|path
|Path to slurmrestd Unix socket.

WARNING: This parameter is *deprecated* in favor of `[slurmrestd]` > `uri`.



_No default value_

|-

|auth
|str
|Authentication method with slurmrestd.

The `jwt` authentication method is supported by both TCP/IP and Unix
sockets URIs.

Note that `local` authentication method is only supported with Unix socket
URI and Slurm <= 24.11. With this method, Slurm-web agent must run with
the _slurm_ system user as well as `slurmrestd` service. Running
`slurmrestd` as _slurm_ system user is not possible with Slurm >= 25.05.




*Choices:*


* `local`
* `jwt`


*Default:* `jwt`

|-

|jwt_mode
|str
|Slurmrestd JWT authentication mode, either _auto_ or _static_.

In _auto_ mode, Slurm-web agent generates tokens with the signature key
specified in `jwt_key`. The tokens have a limited lifespan as defined with
`jwt_lifespan`. Tokens are automatically renewed upon expiration. This is
the recommended mode.

In _static_ mode, Slurm-web simply use the token provided with
`jwt_token`.

This parameter is used only when `auth` is _jwt_.




*Choices:*


* `auto`
* `static`


*Default:* `auto`

|-

|jwt_user
|str
|The user name used in HTTP headers with JWT authentication.

This parameter is used only when `auth` is _jwt_.





*Default:* `slurm`

|-

|jwt_lifespan
|int
|Lifespan of JWT tokens generated by Slurm-web in seconds. The default
value is 1 hour.

This parameter is used only when `auth` is _jwt_ and `jwt_mode` is _auto_.





*Default:* `3600`

|-

|jwt_key
|path
|Path to private key shared with Slurm for JWT signature. The key is used
by Slurm-web to generate its token for authentication on slurmrestd in
_auto_ mode. It must be the same key as used in Slurm `AuthAltParameters`
so that Slurm services can validate JWT generated by Slurm-web.

This parameter is used only when `auth` is _jwt_  and `jwt_mode` is
_auto_.





*Default:* `/var/lib/slurm-web/slurmrestd.key`

|-

|jwt_token
|password
|The static JSON Web Token (JWT) used in HTTP headers with JWT
authentication, typically generated with `scontrol token`. While this is
generally not a good practice, it is recommended to generate tokens with
infinite lifespan to avoid failures due to expired token.

This parameter is used only when `auth` is _jwt_ and `jwt_mode` is
_static_.




_No default value_

|-

|version
|str
|Slurm REST API version (deprecated).

This parameter is deprecated. Use `versions` instead to specify a list of
supported slurmrestd API versions.

CAUTION: You SHOULD NOT change this parameter unless you really know what
you are doing. This parameter is more intented for Slurm-web developers
rather than end users. Slurm-web is officially tested and validated with
the default value only.


WARNING: This parameter is *deprecated* in favor of `[slurmrestd]` > `versions`.



_No default value_

|-

|versions
|list[str]
|List of supported slurmrestd REST API versions to try during discovery,
in descending order (newest first).

The agent will try each version in order until it finds one that works.
This allows the agent to support multiple slurmrestd API versions
automatically.

CAUTION: You SHOULD NOT change this parameter unless you really know what
you are doing. This parameter is more intented for Slurm-web developers
rather than end users. Slurm-web is officially tested and validated with
the default value only.





*Default:*


* `0.0.45`

* `0.0.44`

* `0.0.43`

* `0.0.42`

* `0.0.41`


|-


|===



== `filters`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|jobs
|list[str]
|List of slurmctld job fields kept when retrieving a list of current jobs
from controller, all other fields are filtered out.





*Default:*


* `account`

* `cpus`

* `gres_detail`

* `job_id`

* `name`

* `job_state`

* `node_count`

* `nodes`

* `partition`

* `priority`

* `qos`

* `sockets_per_node`

* `state_reason`

* `tasks`

* `tres_per_job`

* `tres_per_node`

* `tres_per_socket`

* `tres_per_task`

* `user_name`


|-

|jobs_dbd
|list[str]
|List of slurmdbd job fields kept when retrieving the past jobs list from
accounting, all other fields are filtered out before normalization.





*Default:*


* `account`

* `job_id`

* `name`

* `nodes`

* `partition`

* `priority`

* `qos`

* `state`

* `time`

* `tres`

* `user`


|-

|acctjob
|list[str]
|List of slurmdbd job fields selected in slurmrestd API when retrieving a
unique job, all other fields are filtered out.





*Default:*


* `association`

* `comment`

* `derived_exit_code`

* `exit_code`

* `group`

* `name`

* `nodes`

* `partition`

* `priority`

* `qos`

* `script`

* `state`

* `steps`

* `submit_line`

* `time`

* `tres`

* `user`

* `wckey`

* `working_directory`


|-

|ctldjob
|list[str]
|List of slurmctld job fields selected in slurmrestd API when retrieving a
unique job, all other fields are filtered out.





*Default:*


* `accrue_time`

* `batch_flag`

* `command`

* `cpus`

* `current_working_directory`

* `gres_detail`

* `last_sched_evaluation`

* `node_count`

* `partition`

* `shared`

* `sockets_per_node`

* `stderr_expanded`

* `stdin_expanded`

* `stdout_expanded`

* `tasks`

* `tres_per_job`

* `tres_per_node`

* `tres_per_socket`

* `tres_per_task`

* `tres_req_str`


|-

|nodes
|list[str]
|List of nodes fields selected in slurmrestd API, all other fields are
filtered out.





*Default:*


* `name`

* `cpus`

* `sockets`

* `cores`

* `gres`

* `gres_used`

* `real_memory`

* `state`

* `reason`

* `partitions`

* `alloc_cpus`

* `alloc_idle_cpus`


|-

|node
|list[str]
|List of invidual node fields selected in slurmrestd API, all other fields
are filtered out.





*Default:*


* `name`

* `architecture`

* `operating_system`

* `boot_time`

* `last_busy`

* `cpus`

* `sockets`

* `cores`

* `threads`

* `real_memory`

* `gres`

* `gres_used`

* `state`

* `reason`

* `partitions`

* `alloc_cpus`

* `alloc_idle_cpus`

* `alloc_memory`


|-

|partitions
|list[str]
|List of partitions fields selected in slurmrestd API, all other fields are
filtered out.





*Default:*


* `name`

* `node_sets`


|-

|qos
|list[str]
|List of qos fields selected in slurmrestd API, all other fields are
filtered out.





*Default:*


* `name`

* `description`

* `priority`

* `flags`

* `limits`


|-

|reservations
|list[str]
|List of reservations fields selected in slurmrestd API, all other fields
are filtered out.





*Default:*


* `name`

* `users`

* `accounts`

* `node_list`

* `node_count`

* `start_time`

* `end_time`

* `flags`


|-

|accounts
|list[str]
|List of accounts fields selected in slurmrestd API, all other fields are
filtered out.





*Default:*


* `name`


|-

|associations
|list[str]
|List of associations fields selected in slurmrestd API, all other fields are filtered out.





*Default:*


* `account`

* `max`

* `parent_account`

* `qos`

* `user`


|-


|===



== `policy`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|definition
|path
|Path to RBAC policy definition file with available actions




*Default:* `/usr/share/slurm-web/conf/policy.yml`

|-

|vendor_roles
|path
|Path to default vendor RBAC policy definition file with roles and
permitted actions





*Default:* `/usr/share/slurm-web/conf/policy.ini`

|-

|roles
|path
|Path to site RBAC policy definition file with roles and permitted actions





*Default:* `/etc/slurm-web/policy.ini`

|-


|===



== `jwt`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|key
|path
|Path to private key for Slurm-web internal JWT signature.




*Default:* `/var/lib/slurm-web/jwt.key`

|-

|algorithm
|str
|Cryptographic algorithm used to sign JWT



*Choices:*


* `HS256`
* `HS384`
* `HS512`
* `ES256`
* `ES256K`
* `ES384`
* `ES512`
* `RS256`
* `RS384`
* `RS512`
* `PS256`
* `PS384`
* `PS512`
* `EdDSA`


*Default:* `HS256`

|-

|audience
|str
|Audience defined in generated JWT and expected in JWT provided by clients





*Default:* `slurm-web`

|-


|===



== `racksdb`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|enabled
|bool
|Control if RacksDB integration feature for advanced visualization of
resources is enabled.

When this parameter is omitted in configuration, the agent tries to load
the RacksDB database and schema and disables the feature if unable to
load (_auto_ mode).

When this parameter is set to _yes_, RacksDB is required and the agent
fails to start if the library, database or schema cannot be loaded.

When this parameter is set to _no_, RacksDB integration is disabled and
the database is not loaded.




_No default value_

|-

|db
|path
|Path to RacksDB database




*Default:* `/var/lib/racksdb`

|-

|schema
|path
|Path to RacksDB database schema




*Default:* `/usr/share/racksdb/schemas/racksdb.yml`

|-

|extensions
|path
|Path to site-specific RacksDB schema extensions




*Default:* `/etc/racksdb/extensions.yml`

|-

|drawings_schema
|path
|Path to RacksDB database schema




*Default:* `/usr/share/racksdb/schemas/drawings.yml`

|-

|infrastructure
|str
|Name of the infrastructure for the cluster in RacksDB. By default, the
cluster name is used.



*Example:* `atlas`


_No default value_

|-

|tags
|list[str]
|List of tags applied to compute nodes in RacksDB database




*Default:*


* `compute`


|-


|===



== `cache`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|enabled
|bool
|Determine if caching is enabled




*Default:* `False`

|-

|host
|str
|Hostname of Redis cache server




*Default:* `localhost`

|-

|port
|int
|TCP port of Redis cache server




*Default:* `6379`

|-

|password
|password
|Password to connect to protected Redis server. When this parameter is
not defined, Redis server is accessed without password.



*Example:* `SECR3T`


_No default value_

|-

|version
|int
|Expiration delay in seconds for Slurm version in cache




*Default:* `1800`

|-

|jobs
|int
|Expiration delay in seconds for jobs in cache




*Default:* `30`

|-

|job
|int
|Expiration delay in seconds for invidual jobs in cache




*Default:* `10`

|-

|nodes
|int
|Expiration delay in seconds for nodes in cache




*Default:* `30`

|-

|node
|int
|Expiration delay in seconds for node in cache




*Default:* `10`

|-

|partitions
|int
|Expiration delay in seconds for partitions in cache




*Default:* `60`

|-

|qos
|int
|Expiration delay in seconds for QOS in cache




*Default:* `60`

|-

|reservations
|int
|Expiration delay in seconds for reservations in cache




*Default:* `60`

|-

|accounts
|int
|Expiration delay in seconds for accounts in cache




*Default:* `60`

|-

|associations
|int
|Expiration delay in seconds for associations in cache




*Default:* `120`

|-

|jobs_past
|int
|Expiration delay in seconds for past jobs list from slurmdbd in cache




*Default:* `60`

|-


|===



== `slurmdbd`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|jobs_max_hours
|int
|Maximum allowed hours query parameter for past jobs.

This parameter is used to configure the maximum past jobs time range in
hours offered to users in the web interface and accepted by the past jobs
API (`hours` query parameter on `/jobs/past`).

This limit is enforced by the agent to protect SlurmDBD accounting
service from overly large queries.





*Default:* `168`

|-


|===



== `metrics`

[cols="2l,1,5a,^1"]
|===
|Parameter|Type|Description|Required


|enabled
|bool
|Determine if metrics feature and integration with Prometheus (or
compatible) is enabled.





*Default:* `False`

|-

|restrict
|list[network]
|Restricted list of IP networks permitted to request metrics.





*Default:*


* `127.0.0.0/24`

* `::1/128`


|-

|host
|uri
|URL of Prometheus server (or compatible) to requests metrics with PromQL.





*Default:* `http://localhost:9090`

|-

|job
|str
|Name of Prometheus job which scrapes Slurm-web metrics.




*Default:* `slurm`

|-


|===
