saf package#
Subpackages#
- saf.collect package
- saf.forward package
- saf.process package
- Submodules
- saf.process.test module
- saf.process.regex_mask module
- saf.process.shannon_mask module
ShannonMaskProcessConfig
ShannonMaskProcessConfig.mask_str
ShannonMaskProcessConfig.mask_char
ShannonMaskProcessConfig.mask_prefix
ShannonMaskProcessConfig.mask_suffix
ShannonMaskProcessConfig.h_threshold
ShannonMaskProcessConfig.length_threshold
ShannonMaskProcessConfig.delimeter
ShannonMaskProcessConfig.alphabet
ShannonMaskProcessConfig.model_config
ShannonMaskProcessConfig.model_fields
get_config_schema()
process()
- saf.saltext package
- saf.utils package
Submodules#
saf.manager module#
Salt Analytics Framework Pipelines Manager.
- class saf.manager.Manager(config: AnalyticsConfig)[source]#
Bases:
object
Pipelines Manager.
saf.models module#
Salt Analytics Framework Models.
- class saf.models.NonMutableModel[source]#
Bases:
BaseModel
Base class for non mutable models.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.NonMutableConfig[source]#
Bases:
BaseModel
Base class for non-mutable configurations.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property parent: AnalyticsConfig#
Return the parent configuration schema.
- class saf.models.PluginConfigMixin(*, plugin: str)[source]#
Bases:
NonMutableConfig
Base class for plugin configuration schemas.
- property loaded_plugin: ModuleType#
Return the plugin instance(module) for which this configuration refers to.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.CollectConfigBase(*, plugin: str)[source]#
Bases:
PluginConfigMixin
Base config schema for collect plugins.
- property loaded_plugin: ModuleType#
Return the plugin instance(module) for which this configuration refers to.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.ProcessConfigBase(*, plugin: str)[source]#
Bases:
PluginConfigMixin
Base config schema for process plugins.
- property loaded_plugin: ModuleType#
Return the plugin instance(module) for which this configuration refers to.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.ForwardConfigBase(*, plugin: str)[source]#
Bases:
PluginConfigMixin
Base config schema for forward plugins.
- property loaded_plugin: ModuleType#
Return the plugin instance(module) for which this configuration refers to.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.PipelineConfig(*, collect: List[str], process: List[str] = None, forward: List[str], enabled: bool = True, restart: bool = True)[source]#
Bases:
NonMutableConfig
Base config schema for pipeline configuration.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'collect': FieldInfo(annotation=List[str], required=True), 'enabled': FieldInfo(annotation=bool, required=False, default=True), 'forward': FieldInfo(annotation=List[str], required=True), 'process': FieldInfo(annotation=List[str], required=False, default_factory=list), 'restart': FieldInfo(annotation=bool, required=False, default=True)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.AnalyticsConfig(*, collectors: Dict[str, CollectConfigBase[CollectConfigBase]], processors: Dict[str, ProcessConfigBase[ProcessConfigBase]] = None, forwarders: Dict[str, ForwardConfigBase[ForwardConfigBase]], pipelines: Dict[str, PipelineConfig], salt_config: Dict[str, Any])[source]#
Bases:
BaseModel
Salt Analytics Framework configuration.
- pipelines: Dict[str, PipelineConfig]#
- model_post_init(_AnalyticsConfig__context: Any) None [source]#
Set the _parent attribute on child schemas.
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'collectors': FieldInfo(annotation=Dict[str, Annotated[saf.models.CollectConfigBase, PlainValidator(func=<function _instantiate_collector>)]], required=True), 'forwarders': FieldInfo(annotation=Dict[str, Annotated[saf.models.ForwardConfigBase, PlainValidator(func=<function _instantiate_forwarder>)]], required=True), 'pipelines': FieldInfo(annotation=Dict[str, saf.models.PipelineConfig], required=True), 'processors': FieldInfo(annotation=Dict[str, Annotated[saf.models.ProcessConfigBase, PlainValidator(func=<function _instantiate_processor>)]], required=False, default_factory=dict), 'salt_config': FieldInfo(annotation=Dict[str, Any], required=True)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.CollectedEvent(*, data: Mapping[str, Any], timestamp: Optional[datetime] = None)[source]#
Bases:
BaseModel
Class representing each of the collected events.
- timestamp: Optional[datetime]#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'data': FieldInfo(annotation=Mapping[str, Any], required=True), 'timestamp': FieldInfo(annotation=Union[datetime, NoneType], required=False, default_factory=utcnow)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.SaltEvent(*, tag: str, stamp: datetime, data: Dict[str, Any], raw_data: Dict[str, Any])[source]#
Bases:
NonMutableModel
Class representing an event from Salt’s event bus.
- stamp: datetime#
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'data': FieldInfo(annotation=Dict[str, Any], required=True), 'raw_data': FieldInfo(annotation=Dict[str, Any], required=True), 'stamp': FieldInfo(annotation=datetime, required=True), 'tag': FieldInfo(annotation=str, required=True)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.RuntimeAnalyticsInfo(*, version: str)[source]#
Bases:
NonMutableModel
Salt analytics runtime information.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class saf.models.RuntimeSaltInfo(*, id: str, role: str, version: str, version_info: Tuple[int, ...])[source]#
Bases:
NonMutableModel
Salt runtime information.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=str, required=True), 'role': FieldInfo(annotation=str, required=True), 'version': FieldInfo(annotation=str, required=True), 'version_info': FieldInfo(annotation=Tuple[int, ...], required=True)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.RuntimeInfo(*, salt: RuntimeSaltInfo, analytics: RuntimeAnalyticsInfo)[source]#
Bases:
NonMutableModel
Salt analytics pipelines runtime information.
- salt: RuntimeSaltInfo#
- analytics: RuntimeAnalyticsInfo#
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'analytics': FieldInfo(annotation=RuntimeAnalyticsInfo, required=True), 'salt': FieldInfo(annotation=RuntimeSaltInfo, required=True)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class saf.models.PipelineRunContext(*, config: PipelineRunContextConfigType, cache: Dict[str, Any] = None, shared_cache: Dict[str, Any] = None)[source]#
Bases:
NonMutableModel
,Generic
[PipelineRunContextConfigType
]Class representing a pipeline run context.
- config: PipelineRunContextConfigType#
- property pipeline_config: AnalyticsConfig#
Return the analytics configuration.
- property info: RuntimeInfo#
Return the pipeline runtime information.
- model_config: ClassVar[ConfigDict] = {'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'cache': FieldInfo(annotation=Dict[str, Any], required=False, default_factory=dict), 'config': FieldInfo(annotation=~PipelineRunContextConfigType, required=True), 'shared_cache': FieldInfo(annotation=Dict[str, Any], required=False, default_factory=dict)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
saf.pipeline module#
Salt Analytics Framework Pipeline.
saf.plugins module#
Salt Analytics Framework Plugins Support.