mainframe.constants =================== .. py:module:: mainframe.constants Attributes ---------- .. autoapisummary:: mainframe.constants.GIT_SHA mainframe.constants.OPENGREP_API_ORIGINS mainframe.constants.mainframe_settings mainframe.constants.Sentry mainframe.constants.cf_access_settings Classes ------- .. autoapisummary:: mainframe.constants.EnvConfig mainframe.constants.Mainframe mainframe.constants._Sentry mainframe.constants.CFAccess Functions --------- .. autoapisummary:: mainframe.constants.validate_opengrep_shadow_environment Module Contents --------------- .. py:data:: GIT_SHA .. py:data:: OPENGREP_API_ORIGINS .. py:class:: EnvConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _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, Ellipsis] | None = None, _cli_settings_source: pydantic_settings.sources.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 | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None = None, **values: Any) Bases: :py:obj:`pydantic_settings.BaseSettings` Our default configuration for models that should load from .env files. .. py:attribute:: model_config Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict]. .. py:class:: Mainframe(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _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, Ellipsis] | None = None, _cli_settings_source: pydantic_settings.sources.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 | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None = None, **values: Any) Bases: :py:obj:`EnvConfig` Our default configuration for models that should load from .env files. .. py:attribute:: environment :type: str :value: 'production' .. py:attribute:: client_origin_url :type: str :value: '' .. py:attribute:: reporter_url :type: str :value: '' .. py:attribute:: db_url :type: str :value: 'postgresql+psycopg2://postgres:postgres@localhost:5432/dragonfly' .. py:attribute:: db_connection_pool_max_size :type: int :value: 15 The max number of concurrent connections. .. py:attribute:: db_connection_pool_persistent_size :type: int :value: 5 The number of concurrent connections to maintain in the connection pool. .. py:attribute:: dragonfly_github_token :type: str .. py:attribute:: job_timeout :type: int :value: 120 .. py:attribute:: max_job_attempts :type: pydantic.PositiveInt :value: 3 .. py:attribute:: queue_metrics_refresh_seconds :type: pydantic.PositiveInt :value: 60 .. py:attribute:: performance_metrics_refresh_seconds :type: pydantic.PositiveInt :value: 900 .. py:attribute:: scan_cache_enabled :type: bool :value: False .. py:attribute:: scan_cache_max_entries :type: pydantic.PositiveInt :value: 500000 .. py:attribute:: scan_cache_max_bytes :type: pydantic.PositiveInt :value: 67108864 .. py:attribute:: scan_cache_max_disk_bytes :type: pydantic.PositiveInt :value: 536870912 .. py:attribute:: scan_cache_ttl_seconds :type: pydantic.PositiveInt :value: 86400 .. py:attribute:: opengrep_shadow_enabled :type: bool :value: False .. py:attribute:: opengrep_shadow_api_origin :type: str :value: '' .. py:attribute:: opengrep_publication_timeout :type: pydantic.PositiveInt :value: 300 .. py:attribute:: log_config_file :type: str :value: 'logging/development.toml' .. py:method:: validate_opengrep_environment() -> Mainframe Require a supported environment for OpenGrep. .. py:data:: mainframe_settings .. py:class:: _Sentry(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _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, Ellipsis] | None = None, _cli_settings_source: pydantic_settings.sources.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 | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None = None, **values: Any) Bases: :py:obj:`EnvConfig` Our default configuration for models that should load from .env files. .. py:attribute:: dsn :type: str :value: '' .. py:attribute:: environment :type: str :value: 'production' .. py:attribute:: release_prefix :type: str :value: 'dragonfly-mainframe' .. py:data:: Sentry .. py:class:: CFAccess(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _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, Ellipsis] | None = None, _cli_settings_source: pydantic_settings.sources.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 | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None = None, **values: Any) Bases: :py:obj:`EnvConfig` Our default configuration for models that should load from .env files. .. py:attribute:: audience :type: str :value: '' .. py:attribute:: team_domain :type: str :value: 'https://vipyrsec.cloudflareaccess.com' .. py:data:: cf_access_settings .. py:function:: validate_opengrep_shadow_environment() -> None Bind OpenGrep to the API origin for its environment.