robusta-api 0.45.0__tar.gz → 0.46.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {robusta_api-0.45.0 → robusta_api-0.46.0}/PKG-INFO +9 -6
- {robusta_api-0.45.0 → robusta_api-0.46.0}/pyproject.toml +24 -9
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/_version.py +1 -1
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/env_vars.py +4 -0
- robusta_api-0.46.0/src/robusta/runner/log_init.py +44 -0
- robusta_api-0.45.0/src/robusta/runner/log_init.py +0 -21
- {robusta_api-0.45.0 → robusta_api-0.46.0}/LICENSE +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/api/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/clients/robusta_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/discovery.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/resource_names.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/top_service_resolver.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/exceptions.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/base_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/cluster_status.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/events.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/helm_release.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/jobs.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/k8s_operation_type.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/namespaces.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/nodes.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/openshift_group.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/pods.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/runner_config.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/model/services.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/persistency/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/persistency/in_memory.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/persistency/scheduled_jobs_states_dal.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/actions_registry.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/base_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/common.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/container_playbook_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/crash_reporter.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/generation.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/CRD_API_DOCUMENTATION.md +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/ai_integration.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/crds.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/discovery_events.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/job_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/node_enrichment_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/node_playbook_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/oom_killer_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/playbook_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/playbooks_event_handler.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/playbooks_event_handler_impl.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/crashloop_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/imagepull_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/pending_pod_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/prometheus_enrichment_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/pubsub/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/pubsub/event_emitter.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/pubsub/event_subscriber.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/pubsub/events_pubsub.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/action_requests.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/base.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/blocks.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/callbacks.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/consts.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/custom_rendering.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/finding_subjects.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/holmes.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/url_helpers.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/reporting/utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/schedule/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/schedule/model.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/schedule/scheduler.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/common/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/common/channel_transformer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/common/html_tools.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/datadog/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/datadog/datadog_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/datadog/datadog_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/discord/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/discord/discord_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/discord/discord_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/file/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/file/file_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/file/file_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/file/object_traverser.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/google_chat/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/google_chat/google_chat.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/google_chat/google_chat_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_api.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/jira/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/jira/jira_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/jira/jira_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/kafka/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/kafka/kafka_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/kafka/kafka_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mail/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mail/mail_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mail/mail_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mattermost/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mattermost/mattermost_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mattermost/mattermost_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/msteams/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/msteams/msteams_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/msteams/msteams_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/msteams/msteams_webhook_tranformer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/opsgenie/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/opsgenie/opsgenie_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/opsgenie/opsgenie_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pagerduty/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/pushover_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/pushover_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/pushover_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/dal/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/dal/model_conversion.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/dal/supabase_dal.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/discovery_metrics.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/prometheus_discovery_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/robusta_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/robusta_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/account_resource_fetcher.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/base_resource_manager.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/prometheus_alert_resource_manager.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/rrm.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/rrm/types.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/rocketchat/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/rocketchat/rocketchat_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/rocketchat/rocketchat_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/servicenow/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/servicenow/servicenow_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/servicenow/servicenow_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/sink_base.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/sink_base_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/sink_config.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/sink_factory.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/preview/slack_sink_preview.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/preview/slack_sink_preview_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/slack_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/slack_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/templates/header.j2 +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/templates/template_loader.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/telegram/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/telegram/telegram_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/telegram/telegram_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/telegram/telegram_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/timing.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/transformer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/victorops/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/victorops/victorops_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/victorops/victorops_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webex/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webex/webex_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webex/webex_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webhook/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webhook/webhook_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/webhook/webhook_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/yamessenger/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/yamessenger/yamessenger_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/yamessenger/yamessenger_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/yamessenger/yamessenger_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/zulip/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/zulip/zulip_sink.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/zulip/zulip_sink_params.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/stream/utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/container_oom_killed_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/custom_triggers.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/error_event_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/helm_releases_triggers.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/job_failed_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/multi_resources_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/oom_killed_trigger_base.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/pod_crash_loop_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/pod_evicted_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/pod_image_pull_backoff.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/triggers/pod_oom_killed_trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/argocd/argocd_client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/common/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/common/requests.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/discord/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/discord/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/git/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/git/git_repo.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/git/well_known_hosts.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/google_chat/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/google_chat/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/grafana.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/helper.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/jira/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/jira/client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/jira/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/api_client_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/events.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/models.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/triggers.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/v1/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/autogenerated/v1/models.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/base_event.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/base_triggers.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/custom_crds.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/custom_models.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/model_not_found_exception.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/process_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/kubernetes/templates.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/mail/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/mail/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/mattermost/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/mattermost/client.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/mattermost/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files_image.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files_text.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_action.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_base.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_card.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_column.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_container.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_images.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_table.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_elements/msteams_text_block.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_mark_down_fix_url.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/msteams_msg.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/msteams/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/openshift/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/openshift/token.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/prometheus/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/prometheus/models.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/prometheus/trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/prometheus/utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/receiver.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/resource_analysis/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/resource_analysis/cpu_analyzer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/resource_analysis/memory_analyzer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/resource_analysis/node_cpu_analyzer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/resource_analysis/prometheus_analyzer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/rocketchat/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/rocketchat/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/event.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/models.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/playbook_scheduler.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/playbook_scheduler_manager.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/playbook_scheduler_manager_impl.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/scheduled/trigger.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/servicenow/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/servicenow/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/slack/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/slack/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/webex/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/webex/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/zulip/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/integrations/zulip/sender.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/model/alert_relabel_config.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/model/config.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/model/playbook_action.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/model/playbook_definition.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/patch/patch.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/config_loader.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/main.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/not_found_exception.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/object_updater.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/process_setup.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/ssl_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/telemetry.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/telemetry_service.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/web.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/runner/web_api.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/__init__.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/auth_provider.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/base64_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/cluster_provider_discovery.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/common.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/decorators.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/docs.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/documented_pydantic.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/error_codes.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/file_system_watcher.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/function_hashes.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/json_schema.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/parsing.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/rate_limiter.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/scope.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/server_start.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/service_discovery.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/silence_utils.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/stack_tracer.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/task_queue.py +0 -0
- {robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/utils/time_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: robusta-api
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.46.0
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Arik Alon
|
|
6
6
|
Author-email: arikalon1@users.noreply.github.com
|
|
@@ -18,9 +18,10 @@ Requires-Dist: bitmath (>=1.3.3.1,<2.0.0.0)
|
|
|
18
18
|
Requires-Dist: boto3 (>=1.42.19,<2.0.0)
|
|
19
19
|
Requires-Dist: botocore (>=1.42.19,<2.0.0)
|
|
20
20
|
Requires-Dist: certifi (>=2026.4.22)
|
|
21
|
+
Requires-Dist: click (>=8.3.3)
|
|
21
22
|
Requires-Dist: colorlog (>=5.0.1,<6.0.0)
|
|
22
23
|
Requires-Dist: croniter (>=1.3.15,<2.0.0)
|
|
23
|
-
Requires-Dist: cryptography (>=
|
|
24
|
+
Requires-Dist: cryptography (>=48.0.1,<49.0.0)
|
|
24
25
|
Requires-Dist: datadog-api-client (>=1.2.0,<2.0.0) ; extra == "all"
|
|
25
26
|
Requires-Dist: docutils (==0.19)
|
|
26
27
|
Requires-Dist: dpath (>=2.0.5,<3.0.0)
|
|
@@ -31,23 +32,25 @@ Requires-Dist: h2 (>=4.3.0,<5.0.0)
|
|
|
31
32
|
Requires-Dist: hikaru-model-26 (>=1.1.1,<2.0.0)
|
|
32
33
|
Requires-Dist: httpx (==0.27.2)
|
|
33
34
|
Requires-Dist: humanize (>=3.13.1,<4.0.0)
|
|
34
|
-
Requires-Dist: idna (>=3.
|
|
35
|
+
Requires-Dist: idna (>=3.15)
|
|
35
36
|
Requires-Dist: jinja2 (>=3.1.5)
|
|
36
|
-
Requires-Dist: kafka-python (>=2.
|
|
37
|
+
Requires-Dist: kafka-python (>=2.3.2,<3.0.0) ; extra == "all"
|
|
37
38
|
Requires-Dist: kubernetes (>=26.1.0,<27.0.0)
|
|
38
39
|
Requires-Dist: markdown2 (==2.4.13)
|
|
39
40
|
Requires-Dist: opsgenie-sdk (>=2.1.5,<3.0.0)
|
|
41
|
+
Requires-Dist: pillow (>=12.3.0,<13.0.0)
|
|
40
42
|
Requires-Dist: poetry-core (==1.1.0a7) ; extra == "all"
|
|
41
43
|
Requires-Dist: postgrest (==0.16.8)
|
|
42
44
|
Requires-Dist: prometheus-api-client (==0.5.4) ; extra == "all"
|
|
43
45
|
Requires-Dist: prometheus-client (>=0.12.0,<0.13.0)
|
|
44
46
|
Requires-Dist: prometrix (==0.2.11)
|
|
45
|
-
Requires-Dist: pyasn1 (>=0.6.
|
|
47
|
+
Requires-Dist: pyasn1 (>=0.6.4)
|
|
46
48
|
Requires-Dist: pydantic (>=1.8.1,<2.0.0)
|
|
47
49
|
Requires-Dist: pydash (==8.0.0)
|
|
48
50
|
Requires-Dist: pygal (>=3.0.0,<4.0.0)
|
|
49
|
-
Requires-Dist: pyjwt (>=2.
|
|
51
|
+
Requires-Dist: pyjwt (>=2.13.0,<3.0.0)
|
|
50
52
|
Requires-Dist: pymsteams (>=0.1.16,<0.2.0)
|
|
53
|
+
Requires-Dist: python-json-logger (>=3.0.0,<4.0.0)
|
|
51
54
|
Requires-Dist: pytz (>=2021.3,<2022.0)
|
|
52
55
|
Requires-Dist: pyyaml (>=6.0,<7.0)
|
|
53
56
|
Requires-Dist: regex (==2024.5.15)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "robusta-api"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.46.0"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = ["Arik Alon <arikalon1@users.noreply.github.com>"]
|
|
6
6
|
packages = [
|
|
@@ -20,10 +20,13 @@ include_trailing_comma = true
|
|
|
20
20
|
python = ">=3.10, <3.12"
|
|
21
21
|
setuptools = "^80.9.0"
|
|
22
22
|
colorlog = "^5.0.1"
|
|
23
|
+
python-json-logger = "^3.0.0"
|
|
23
24
|
pydantic = "^1.8.1"
|
|
24
25
|
kubernetes = "^26.1.0"
|
|
25
26
|
pymsteams = "^0.1.16"
|
|
26
|
-
|
|
27
|
+
# Bump to fix CVE-2026-45409 / GHSA-65pc-fj4g-8rjx (Moderate, GHSA published
|
|
28
|
+
# 2026-05-19, older than 60 days): idna.encode() bypass of the CVE-2024-3651 fix
|
|
29
|
+
idna= { version = ">=3.15", optional = true }
|
|
27
30
|
supabase = "2.5.1"
|
|
28
31
|
tabulate = { version = "^0.8.10" }
|
|
29
32
|
slack-sdk = { version = "^3.23.0" }
|
|
@@ -34,7 +37,8 @@ grafana-api = { version = "^1.0.3", optional = true }
|
|
|
34
37
|
watchdog = { version = "^2.1.0", optional = true }
|
|
35
38
|
better-exceptions = { version = "^0.3.3", optional = true }
|
|
36
39
|
CairoSVG = { version = "^2.5.2", optional = true }
|
|
37
|
-
|
|
40
|
+
# Bump to fix CVE-2026-10142, CVE-2026-10143 (High): kafka-python protocol-parser DoS
|
|
41
|
+
kafka-python = { version = "^2.3.2", optional = true }
|
|
38
42
|
datadog-api-client = { version = "^1.2.0", optional = true }
|
|
39
43
|
dpath = "^2.0.5"
|
|
40
44
|
websocket-client = "1.3.3"
|
|
@@ -57,7 +61,8 @@ humanize = "^3.13.1"
|
|
|
57
61
|
# and therefore requires gcc to install which we'd like to avoid
|
|
58
62
|
# this is similar to the issue at https://github.com/dulwich/dulwich/issues/839
|
|
59
63
|
# Pin to fix CVE-2026-39892 (Critical): cryptography buffer overflow with non-contiguous buffers
|
|
60
|
-
|
|
64
|
+
# Pin to fix GHSA-537c-gmf6-5ccf (High): cryptography
|
|
65
|
+
cryptography = "^48.0.1"
|
|
61
66
|
fpdf2 = "^2.7.1"
|
|
62
67
|
attrs = "^23.1.0"
|
|
63
68
|
prometrix = "0.2.11"
|
|
@@ -73,24 +78,34 @@ requests = "^2.33.0"
|
|
|
73
78
|
# Bump to fix certifi CVE flagged by customer scan; date-versioned, so use >= rather than caret
|
|
74
79
|
certifi = ">=2026.4.22"
|
|
75
80
|
regex = "2024.5.15"
|
|
76
|
-
|
|
81
|
+
# Pin to fix CVE-2026-48526 (High) + CVE-2026-48522/48523/48525 (Medium): PyJWT
|
|
82
|
+
pyjwt = "^2.13.0"
|
|
77
83
|
urllib3 = "^2.7.0"
|
|
78
84
|
httpx = "0.27.2"
|
|
79
85
|
postgrest = "0.16.8"
|
|
80
86
|
# Pin to fix cve https://github.com/robusta-dev/robusta/security/dependabot/85
|
|
81
87
|
h2 = "^4.3.0"
|
|
82
88
|
# Pin to fix CVE-2026-30922 (transitive via google-auth)
|
|
83
|
-
|
|
89
|
+
# Bump to fix CVE-2026-59885, CVE-2026-59886 (High)
|
|
90
|
+
pyasn1 = ">=0.6.4"
|
|
84
91
|
# Pin to fix CVE-2026-22701 (transitive via virtualenv/pre-commit)
|
|
85
92
|
filelock = ">=3.20.3"
|
|
86
93
|
# Pin to fix CVE-2026-22702 (transitive via pre-commit)
|
|
87
94
|
virtualenv = "^20.36.1"
|
|
95
|
+
# Pillow is pulled in transitively (fpdf2, CairoSVG). Pin to fix CVE-2026-54058,
|
|
96
|
+
# CVE-2026-54059, CVE-2026-54060, CVE-2026-55379, CVE-2026-55380, CVE-2026-59197,
|
|
97
|
+
# CVE-2026-59199, CVE-2026-59200, CVE-2026-59204, CVE-2026-59205 (High)
|
|
98
|
+
pillow = "^12.3.0"
|
|
99
|
+
# click is pulled in transitively (flask, typer). Pin to fix CVE-2026-7246 (High):
|
|
100
|
+
# command injection via unsanitized filename in click.edit()
|
|
101
|
+
click = ">=8.3.3"
|
|
88
102
|
|
|
89
103
|
[tool.poetry.dev-dependencies]
|
|
90
104
|
pre-commit = "^2.13.0"
|
|
91
105
|
# Pin to fix CVE-2025-71176 (pytest < 9.0.3)
|
|
92
106
|
pytest = "^9.0.3"
|
|
93
|
-
|
|
107
|
+
# Bump to fix CVE-2026-28684 (Medium, published 2026-04-20)
|
|
108
|
+
python-dotenv = "^1.2.2"
|
|
94
109
|
Sphinx = "6.2.1"
|
|
95
110
|
#furo = "^2021.11.12"
|
|
96
111
|
sphinx-autobuild = "^2021.3.14"
|
|
@@ -100,7 +115,6 @@ witchhazel = "^2018.8.23"
|
|
|
100
115
|
sphinx-autodoc-typehints = "^1.12.0"
|
|
101
116
|
sphinxcontrib-images = "^0.9.4"
|
|
102
117
|
jsonref = "^0.2"
|
|
103
|
-
Pillow = "^12.2.0"
|
|
104
118
|
sphinxcontrib-mermaid = "^0.7.1"
|
|
105
119
|
cssselect = "^1.1.0"
|
|
106
120
|
tinycss = "^0.4"
|
|
@@ -130,7 +144,8 @@ all = ["Flask", "grafana-api", "watchdog", "better-exceptions", "CairoSVG", "tab
|
|
|
130
144
|
sphinx-jinja = { git = "https://github.com/robusta-dev/sphinx-jinja.git" }
|
|
131
145
|
sphinx-reredirects = "^0.1.1"
|
|
132
146
|
freezegun = "^1.4.0"
|
|
133
|
-
|
|
147
|
+
# Bump to fix CVE-2026-49853, CVE-2026-49855 (High) and GHSA-pw6j-qg29-8w7f (Medium)
|
|
148
|
+
tornado = "^6.5.7"
|
|
134
149
|
responses = "^0.25.7"
|
|
135
150
|
|
|
136
151
|
[build-system]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# this is updated by .github/workflows/release.yaml
|
|
2
|
-
__version__ = "0.
|
|
2
|
+
__version__ = "0.46.0"
|
|
@@ -104,6 +104,10 @@ DISABLE_FINDINGS_PERSISTENCE = load_bool("DISABLE_FINDINGS_PERSISTENCE", False)
|
|
|
104
104
|
DISABLE_DISCOVERY = load_bool("DISABLE_DISCOVERY", False)
|
|
105
105
|
DISABLE_RESOURCE_WATCH_PERSISTENCE = load_bool("DISABLE_RESOURCE_WATCH_PERSISTENCE", False)
|
|
106
106
|
|
|
107
|
+
# When true, logs are emitted as JSON (one object per line) instead of the default
|
|
108
|
+
# colored text format. Useful for log scrapers like Filebeat. Defaults to false.
|
|
109
|
+
ENABLE_JSON_LOGS_FORMAT = load_bool("ENABLE_JSON_LOGS_FORMAT", False)
|
|
110
|
+
|
|
107
111
|
PROMETHEUS_ERROR_LOG_PERIOD_SEC = int(os.environ.get("DISCOVERY_MAX_BATCHES", 14400))
|
|
108
112
|
|
|
109
113
|
RRM_PERIOD_SEC = int(os.environ.get("RRM_PERIOD_SEC", 90))
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
3
|
+
import os.path
|
|
4
|
+
import sys
|
|
5
|
+
|
|
6
|
+
import colorlog
|
|
7
|
+
from pythonjsonlogger.json import JsonFormatter
|
|
8
|
+
|
|
9
|
+
from robusta.core.model.env_vars import ENABLE_JSON_LOGS_FORMAT
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def init_logging():
|
|
13
|
+
logging_level = os.environ.get("LOG_LEVEL", "INFO")
|
|
14
|
+
logging_datefmt = "%Y-%m-%d %H:%M:%S"
|
|
15
|
+
|
|
16
|
+
if ENABLE_JSON_LOGS_FORMAT:
|
|
17
|
+
# JSON logs (one object per line) are easier for log scrapers like
|
|
18
|
+
# Filebeat to index, search, and filter. Rename levelname -> severity
|
|
19
|
+
# to match the convention used across Robusta services (relay, holmes).
|
|
20
|
+
# Avoid printing anything to stdout here so the JSON stream is not
|
|
21
|
+
# corrupted by a plain-text line.
|
|
22
|
+
handler = logging.StreamHandler(sys.stdout)
|
|
23
|
+
handler.setFormatter(
|
|
24
|
+
JsonFormatter(
|
|
25
|
+
fmt="%(asctime)s %(levelname)s %(name)s %(filename)s %(lineno)d %(funcName)s %(message)s",
|
|
26
|
+
datefmt="%Y-%m-%dT%H:%M:%S",
|
|
27
|
+
rename_fields={"levelname": "severity"},
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
logging.basicConfig(handlers=[handler], level=logging_level, force=True)
|
|
31
|
+
else:
|
|
32
|
+
logging_format = "%(log_color)s%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s"
|
|
33
|
+
# force=True so a prior configuration (e.g. a JSON handler from an
|
|
34
|
+
# earlier init_logging() call) is replaced, mirroring the JSON branch.
|
|
35
|
+
colorlog.basicConfig(
|
|
36
|
+
format=logging_format, level=logging_level, datefmt=logging_datefmt, force=True
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
logging.getLogger().setLevel(logging_level)
|
|
40
|
+
for logger_name in ["werkzeug", "telethon"]:
|
|
41
|
+
log = logging.getLogger(logger_name)
|
|
42
|
+
log.setLevel(logging.ERROR)
|
|
43
|
+
|
|
44
|
+
logging.info(f"logger initialized using {logging_level} log level")
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import os
|
|
3
|
-
import os.path
|
|
4
|
-
|
|
5
|
-
import colorlog
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def init_logging():
|
|
9
|
-
logging_level = os.environ.get("LOG_LEVEL", "INFO")
|
|
10
|
-
logging_format = "%(log_color)s%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s"
|
|
11
|
-
logging_datefmt = "%Y-%m-%d %H:%M:%S"
|
|
12
|
-
|
|
13
|
-
print("setting up colored logging")
|
|
14
|
-
colorlog.basicConfig(format=logging_format, level=logging_level, datefmt=logging_datefmt)
|
|
15
|
-
|
|
16
|
-
logging.getLogger().setLevel(logging_level)
|
|
17
|
-
for logger_name in ["werkzeug", "telethon"]:
|
|
18
|
-
log = logging.getLogger(logger_name)
|
|
19
|
-
log.setLevel(logging.ERROR)
|
|
20
|
-
|
|
21
|
-
logging.info(f"logger initialized using {logging_level} log level")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/discovery/top_service_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/persistency/scheduled_jobs_states_dal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/container_playbook_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/ai_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/internal/discovery_events.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/node_enrichment_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/playbooks_event_handler.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/playbooks_event_handler_impl.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/crashloop_utils.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/imagepull_utils.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/pod_utils/pending_pod_utils.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/playbooks/prometheus_enrichment_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/common/channel_transformer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/datadog/datadog_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/discord/discord_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/google_chat/google_chat_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_api.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_client.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/incidentio/incidentio_sink.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/mattermost/mattermost_sink.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/msteams/msteams_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/opsgenie/opsgenie_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/pushover_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/pushover/pushover_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/dal/model_conversion.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/dal/supabase_dal.py
RENAMED
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/discovery_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/robusta/robusta_sink_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/rocketchat/rocketchat_sink.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/servicenow/servicenow_sink.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robusta_api-0.45.0 → robusta_api-0.46.0}/src/robusta/core/sinks/slack/preview/slack_sink_preview.py
RENAMED
|
File without changes
|
|
File without changes
|