howler-api 4.0.0.dev1281__tar.gz → 4.0.0.dev1283__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.
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/PKG-INFO +1 -1
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v2/ingest.py +2 -2
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/config.py +1 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/correlation_service.py +3 -2
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/pyproject.toml +1 -1
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/add_label.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/add_to_bundle.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/add_to_case.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/change_field.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/demote.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/example_plugin.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/prioritization.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/promote.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/remove_from_bundle.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/remove_label.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/actions/transition.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/base.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/socket.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/action.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/analytic.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/auth.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/clue.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/configs.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/dossier.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/help.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/hit.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/notebook.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/overview.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/search.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/template.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/tool.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/user.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/utils/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/utils/etag.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/utils/params.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v1/view.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v2/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v2/case.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v2/fuzzy.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/api/v2/search.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/app.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/classification.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/classification.yml +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/exceptions.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/loader.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/logging/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/logging/audit.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/logging/format.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/net.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/net_static.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/random_user.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/common/swagger.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/action_queue_worker.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/correlation.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/retention.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/view_cleanup.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/bulk.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/collection.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/constants.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/exceptions.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/howler_store.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/migrations/fix_process.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/operations.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/schemas.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/store.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/support/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/support/build.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/support/schemas.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/types.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/error.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/generate_mitre.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/generate_sigma_rules.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/generate_tlds.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/reindex_data.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/wipe_databases.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/gunicorn_config.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/healthz.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/azure.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/discover.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/hit.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/oauth.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/search.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/workflow.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/helper/ws.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/base.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/charter.txt +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/constants.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/helper.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/howler_enum.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/mixins.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/action.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/analytic.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/assemblyline.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/aws.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/azure.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/case.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/cbs.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/clue.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/config.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/dossier.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/agent.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/autonomous_system.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/client.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/cloud.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/code_signature.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/container.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/dns.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/egress.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/elf.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/email.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/error.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/event.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/faas.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/file.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/geo.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/group.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/hash.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/host.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/http.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/ingress.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/interface.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/network.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/observer.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/organization.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/os.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/pe.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/process.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/registry.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/related.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/rule.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/server.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/threat.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/tls.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/url.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/user.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/user_agent.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/vulnerability.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/event.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/gcp.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/hit.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/howler_data.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/lead.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/localized_label.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/overview.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/pivot.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/record.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/template.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/user.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/view.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/random_data.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/randomizer.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/patched.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/plugins/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/plugins/config.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/README.md +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/counters.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/events.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/hash.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/lock.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/comms.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/multi.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/named.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/priority.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/set.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/user_quota_tracker.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/security/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/security/socket.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/security/utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/action_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/analytic_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/auth_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/bundle_compat_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/case_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/comms_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/config_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/docs_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/dossier_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/event_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/fuzzy_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/hit_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/jwt_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/lucene_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/notebook_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/overview_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/search_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/template_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/user_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/viewer_service.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/telemetry.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/__init__.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/annotations.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/chunk.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/compat.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/constants.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/dict_utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/isotime.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/list_utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/lucene.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/net_utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/path.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/socket_utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/str_utils.py +0 -0
- {howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/utils/uid.py +0 -0
|
@@ -11,7 +11,7 @@ from howler.common.exceptions import HowlerException, HowlerValueError
|
|
|
11
11
|
from howler.common.loader import datastore
|
|
12
12
|
from howler.common.logging import get_logger
|
|
13
13
|
from howler.common.swagger import generate_swagger_docs
|
|
14
|
-
from howler.config import config
|
|
14
|
+
from howler.config import CORRELATION_QUEUE_NAME, config
|
|
15
15
|
from howler.datastore.collection import ESCollection
|
|
16
16
|
from howler.datastore.exceptions import DataStoreException
|
|
17
17
|
from howler.datastore.howler_store import INDEXES
|
|
@@ -46,7 +46,7 @@ def _get_ingestion_queue() -> NamedQueue[str]:
|
|
|
46
46
|
|
|
47
47
|
if _ingestion_queue is None:
|
|
48
48
|
_ingestion_queue = NamedQueue(
|
|
49
|
-
|
|
49
|
+
CORRELATION_QUEUE_NAME,
|
|
50
50
|
host=config.core.redis.persistent.host,
|
|
51
51
|
port=config.core.redis.persistent.port,
|
|
52
52
|
private=False,
|
|
@@ -24,6 +24,7 @@ HWL_USE_WEBSOCKET_API = os.environ.get("HWL_USE_WEBSOCKET_API", "false").lower()
|
|
|
24
24
|
HWL_USE_JOB_SYSTEM = os.environ.get("HWL_USE_JOB_SYSTEM", "false").lower() == "true"
|
|
25
25
|
HWL_ENABLE_COVERAGE = os.environ.get("HWL_ENABLE_COVERAGE", "false").lower() == "true"
|
|
26
26
|
HWL_PLUGIN_DIRECTORY = os.environ.get("HWL_PLUGIN_DIRECTORY", "/etc/howler/plugins")
|
|
27
|
+
CORRELATION_QUEUE_NAME = os.environ.get("HWL_CORRELATION_QUEUE_NAME", "howler.ingestion_queue")
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
def get_version() -> str:
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/correlation_service.py
RENAMED
|
@@ -16,6 +16,7 @@ from opentelemetry import trace
|
|
|
16
16
|
from howler.common.exceptions import InvalidDataException, NotFoundException
|
|
17
17
|
from howler.common.loader import datastore
|
|
18
18
|
from howler.common.logging import get_logger
|
|
19
|
+
from howler.config import CORRELATION_QUEUE_NAME
|
|
19
20
|
from howler.odm.models.case import CaseRule, RuleIndexTypes
|
|
20
21
|
from howler.odm.models.config import config
|
|
21
22
|
from howler.remote.datatypes.queues.named import NamedQueue
|
|
@@ -181,7 +182,7 @@ def process_batch(record_ids: list[str]) -> int: # noqa: C901
|
|
|
181
182
|
def _build_queue() -> NamedQueue[str]:
|
|
182
183
|
"""Create the NamedQueue backed by persistent Redis."""
|
|
183
184
|
return NamedQueue(
|
|
184
|
-
|
|
185
|
+
CORRELATION_QUEUE_NAME,
|
|
185
186
|
host=config.core.redis.persistent.host,
|
|
186
187
|
port=config.core.redis.persistent.port,
|
|
187
188
|
private=False,
|
|
@@ -210,7 +211,7 @@ def run_worker() -> None: # pragma: no cover – long-running loop, tested via
|
|
|
210
211
|
logger.debug("Processing correlation batch of %d hit(s)", len(batch))
|
|
211
212
|
try:
|
|
212
213
|
added = process_batch(batch)
|
|
213
|
-
logger.info("Correlation batch complete: %d
|
|
214
|
+
logger.info("Correlation batch complete: %d case item(s) added for %d record(s)", added, len(batch))
|
|
214
215
|
except Exception:
|
|
215
216
|
logger.exception("Error processing correlation batch")
|
|
216
217
|
finally:
|
|
@@ -152,7 +152,7 @@ suppress-none-returning = true
|
|
|
152
152
|
[tool.poetry]
|
|
153
153
|
package-mode = true
|
|
154
154
|
name = "howler-api"
|
|
155
|
-
version = "4.0.0.
|
|
155
|
+
version = "4.0.0.dev1283"
|
|
156
156
|
description = "Howler - API server"
|
|
157
157
|
authors = [
|
|
158
158
|
"Canadian Centre for Cyber Security <howler@cyber.gc.ca>",
|
|
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
|
|
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
|
|
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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/cronjobs/action_queue_worker.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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/datastore/migrations/fix_process.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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/external/generate_sigma_rules.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
|
|
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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/autonomous_system.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/code_signature.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
|
|
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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/odm/models/ecs/vulnerability.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/__init__.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/comms.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/multi.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/named.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/queues/priority.py
RENAMED
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/remote/datatypes/user_quota_tracker.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
|
{howler_api-4.0.0.dev1281 → howler_api-4.0.0.dev1283}/howler/services/bundle_compat_service.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
|
|
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
|