waft.configuration.settings module

class waft.configuration.settings.Settings(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_file: DotenvType | None = PosixPath('.'), _env_file_encoding: str | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | None = None, _cli_shortcuts: Mapping[str, str | list[str]] | None = None, _secrets_dir: PathType | None = None, *, framework_home_dir: Path = PosixPath('/home/gitlab-runner/cloudflare/ztqa/waft/src/waft'), local_client_installer_directory: Path = PosixPath('/home/gitlab-runner/client_installers'), local_tmp_folder: Path = PosixPath('/tmp/waftx_t53npc'), target_key_file: Path = PosixPath('/home/gitlab-runner/.ssh/waft/waft'), proxy_key_file: Path = PosixPath('/home/gitlab-runner/.ssh/waft/proxy_key'), waft_email_address: str = 'waft@waft.clienttest.cfdata.org', system_name: str = '', config_file_path: str = '', waft_cli_enabled: bool = False, warp_api_staging: bool = False, download_warp_diag: bool = True, warp_api_staging_consumer: str = 'api-staging.cloudflareclient.com', warp_api_staging_zerotrust: str = 'staging.zero-trust-client.cloudflareclient.com', dynamic_org_trm_url: str = 'https://dynamic-org-trm.waft-admin.workers.dev', log_dir_name: str = 'logs', log_file_mode: str = 'a', log_format: str = '%(asctime)s - %(name)s:%(lineno)s - %(levelname)s - %(message)s', log_date_format: str = '%Y-%m-%dT%H:%M:%S', log_level: str = 'DEBUG', trace_logger: str = 'warp-cli-trace', LOG_TIMING: bool = False, timing_table: str = 'waft_actions_timing.csv', timing_report: str = 'waft_actions_timing_report.csv', secrets_manager: str = 'azure', azure_vault_name: str | None = 'waft-ci-kv', proxy_key_secret_name: str = 'proxy-ssh', CF_DASHBOARD_EMAIL: str | None = None, CF_DASHBOARD_API_KEY: str | None = None, WAFT_CONFIG_FILE: str | None = None, DEFAULT_CONFIG_LOCATION: str = '/home/gitlab-runner/.waft/config/waft_config.json', DEFAULT_ADMIN_USERNAME: str = 'waft-admin', AUTO_CREATE_CONFIG: bool = True, WARP_INSTALL_VERSION: str | None = None, WARP_UPGRADE_FROM_VERSION: str | None = None, WARP_INSTALL_REQUIRED: bool = True)

Bases: BaseSettings

Central settings class for the framework

target_key_file: Path to the ssh private key on the local system. The public key should be on the target system

already.

proxy_key_file: Path to the ssh private key for an ssh proxy system. The public key should be on the proxy.

AUTO_CREATE_CONFIG: bool
CF_DASHBOARD_API_KEY: str | None
CF_DASHBOARD_EMAIL: str | None
DEFAULT_ADMIN_USERNAME: str
DEFAULT_CONFIG_LOCATION: str
LOG_TIMING: bool
WAFT_CONFIG_FILE: str | None
WARP_INSTALL_REQUIRED: bool
WARP_INSTALL_VERSION: str | None
WARP_UPGRADE_FROM_VERSION: str | None
azure_vault_name: str | None
config_file_path: str
download_warp_diag: bool
dynamic_org_trm_url: str
framework_home_dir: Path
local_client_installer_directory: Path
local_tmp_folder: Path
log_date_format: str
log_dir_name: str
log_file_mode: str
log_format: str
log_level: str
model_config: ClassVar[SettingsConfigDict] = {'arbitrary_types_allowed': True, 'case_sensitive': False, 'cli_avoid_json': False, 'cli_enforce_required': False, 'cli_exit_on_error': True, 'cli_flag_prefix_char': '-', 'cli_hide_none_type': False, 'cli_ignore_unknown_args': False, 'cli_implicit_flags': False, 'cli_kebab_case': False, 'cli_parse_args': None, 'cli_parse_none_str': None, 'cli_prefix': '', 'cli_prog_name': None, 'cli_shortcuts': None, 'cli_use_class_docs_for_groups': False, 'enable_decoding': True, 'env_file': '', 'env_file_encoding': None, 'env_ignore_empty': False, 'env_nested_delimiter': None, 'env_nested_max_split': None, 'env_parse_enums': None, 'env_parse_none_str': None, 'env_prefix': '', 'extra': 'forbid', 'json_file': None, 'json_file_encoding': None, 'nested_model_default_partial_update': False, 'protected_namespaces': ('model_validate', 'model_dump', 'settings_customise_sources'), 'secrets_dir': None, 'toml_file': None, 'validate_default': True, 'yaml_config_section': None, 'yaml_file': None, 'yaml_file_encoding': None}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(context: Any, /) None

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self – The BaseModel instance.

  • context – The context.

proxy_key_file: Path
proxy_key_secret_name: str
secrets_manager: str
system_name: str
target_key_file: Path
timing_report: str
timing_table: str
trace_logger: str
waft_cli_enabled: bool
waft_email_address: str
warp_api_staging: bool
warp_api_staging_consumer: str
warp_api_staging_zerotrust: str