Config
psengine.config.config
¶
Config
¶
Singleton class to manage Config
instances.
Note
The config is read only. Once initialized, attributes cannot be changed unless you initialize the config with new values.
init
classmethod
¶
init(config_class=ConfigModel, **kwargs)
Initialize Config instance.
Call directly on class Config.init(config_path=<filepath>)
PARAMETER | DESCRIPTION |
---|---|
config_class
|
ConfigModel class.
TYPE:
|
config_path
|
Path to the config file.
TYPE:
|
platform_id
|
Name & version of the tool this integrates with, example: ES/8.0.0.
TYPE:
|
app_id
|
Name & version of the integration itself, example: get-alerts/1.0.0.
TYPE:
|
rf_token
|
Recorded Future API token.
TYPE:
|
http_proxy
|
HTTP proxy.
TYPE:
|
https_proxy
|
HTTPS proxy.
TYPE:
|
client_ssl_verify
|
SSL verification. Default is True.
TYPE:
|
client_basic_auth
|
Basic auth credentials.
TYPE:
|
client_cert
|
Client certificate.
TYPE:
|
client_timeout
|
Request timeout. Default is 120.
TYPE:
|
client_retries
|
Request retries. Default is 5.
TYPE:
|
client_backoff_factor
|
Request backoff factor. Default is 1.
TYPE:
|
client_status_forcelist
|
Request status forcelist. Default is
TYPE:
|
client_pool_max_size
|
Request pool max size. Default is 120.
TYPE:
|
kwargs
|
Additional arguments.
TYPE:
|
Source code in psengine/config/config.py
reset_instance
classmethod
¶
ConfigModel
¶
Bases: BaseSettings
Global configuration settings.
This class is used to store global configuration settings for the application.
Supports configuration files with .toml
, .json
, and .env
extensions.
Regular expression validation
app_id
must be<str>/<int>[.<int>][.<int>]
. Exampleget-alerts/1.0.0
platform_id
must be<str>/[<int>][.<int>][.<int>]
. ExampleSplunk/1.1.1
Example
Initialize the Config
with a file path:
Initialize the Config
from Python itself:
app_id
class-attribute
instance-attribute
¶
client_backoff_factor
class-attribute
instance-attribute
¶
client_backoff_factor: Optional[int] = BACKOFF_FACTOR
client_basic_auth
class-attribute
instance-attribute
¶
client_cert
class-attribute
instance-attribute
¶
client_pool_max_size
class-attribute
instance-attribute
¶
client_pool_max_size: Optional[int] = POOL_MAX_SIZE
client_ssl_verify
class-attribute
instance-attribute
¶
client_ssl_verify: Optional[bool] = SSL_VERIFY
client_status_forcelist
class-attribute
instance-attribute
¶
client_status_forcelist: Optional[list[int]] = (
STATUS_FORCELIST
)
model_config
class-attribute
instance-attribute
¶
platform_id
class-attribute
instance-attribute
¶
rf_token
class-attribute
instance-attribute
¶
rf_token: Optional[RFToken] = Field(
default=get(RF_TOKEN_ENV_VAR, '')
)
save_config
¶
save_config(
directory: Union[str, Path] = Path(ROOT_DIR) / 'config',
file: Union[str, Path] = 'config.json',
)
Write the current values in Config
to the specified file as JSON.
If the file already exists, its content will be overwritten.
The config will be saved to <project_directory>/config/config.json
.
PARAMETER | DESCRIPTION |
---|---|
directory
|
The directory to save the config file into.
TYPE:
|
file
|
The name of the config file.
TYPE:
|
Source code in psengine/config/config.py
settings_customise_sources
classmethod
¶
settings_customise_sources(
settings_cls: type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> tuple[PydanticBaseSettingsSource, ...]
Set config file sources correctly for Config
.
If a value is specified for the same settings field in multiple places, the selected value is determined by the following priority (from highest to lowest):
- Arguments passed to the
Config
class initializer (Config.init
) - Environment variables
- Config file specified in the
config_path
field - Variables loaded from the secrets directory
- Default values defined in the
Config
model
PARAMETER | DESCRIPTION |
---|---|
settings_cls
|
The settings class.
TYPE:
|
init_settings
|
Initial settings source.
TYPE:
|
env_settings
|
Environment variable settings source.
TYPE:
|
dotenv_settings
|
.env file settings source.
TYPE:
|
file_secret_settings
|
Secrets file settings source.
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
tuple[PydanticBaseSettingsSource, ...]
|
Tuple of settings sources in order of priority. |
Source code in psengine/config/config.py
validate_token
classmethod
¶
Validate a Recorded Future token.
PARAMETER | DESCRIPTION |
---|---|
rf_token
|
Recorded Future token.
TYPE:
|
RAISES | DESCRIPTION |
---|---|
ValueError
|
When the token is not 32 alphanumeric characters in the |
RETURNS | DESCRIPTION |
---|---|
str
|
Validated token. |
Source code in psengine/config/config.py
RFToken
¶
Bases: Secret[str]
Recorded Future token mask.
get_config
¶
Return an instance of Config
.
Use this instead of initializing Config directly, so that the same instance is used.