Source code for supervisor_pydantic.config.unix_http_server

from pathlib import Path
from typing import Optional

from pydantic import Field, SecretStr, field_serializer

from .base import Octal, UnixUserName, UnixUserNameOrGroup, _BaseCfgModel

__all__ = ("UnixHttpServerConfiguration",)


[docs] class UnixHttpServerConfiguration(_BaseCfgModel): file: Optional[Path] = Field( default=None, description="A path to a UNIX domain socket on which supervisor will listen for HTTP/XML-RPC requests. supervisorctl uses XML-RPC to communicate with supervisord over this port. This option can include the value %(here)s, which expands to the directory in which the supervisord configuration file was found.", ) chmod: Optional[Octal] = Field( default=None, description="Change the UNIX permission mode bits of the UNIX domain socket to this value at startup.", ) chown: Optional[UnixUserNameOrGroup] = Field( default=None, description="Change the user and group of the socket file to this value. May be a UNIX username (e.g. chrism) or a UNIX username and group separated by a colon (e.g. chrism:wheel).", ) username: Optional[UnixUserName] = Field(default=None, description="The username required for authentication to this HTTP server.") password: Optional[SecretStr] = Field( default=None, description="The password required for authentication to this HTTP server. This can be a cleartext password, or can be specified as a SHA-1 hash if prefixed by the string {SHA}. For example, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d is the SHA-stored version of the password “thepassword”. Note that hashed password must be in hex format.", ) @field_serializer("password", when_used="json") def _dump_password(self, v): return v.get_secret_value() if v else None