howler-api 3.1.0.dev391__tar.gz → 3.1.0.dev393__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-3.1.0.dev391 → howler_api-3.1.0.dev393}/PKG-INFO +1 -1
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/store.py +14 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/config.py +3 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/pyproject.toml +1 -1
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/README.md +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/add_label.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/add_to_bundle.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/change_field.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/demote.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/example_plugin.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/prioritization.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/promote.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/remove_from_bundle.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/remove_label.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/actions/transition.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/base.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/socket.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/action.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/analytic.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/auth.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/clue.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/configs.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/dossier.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/help.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/hit.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/notebook.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/overview.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/search.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/template.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/tool.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/user.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/utils/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/utils/etag.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/api/v1/view.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/app.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/README.md +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/classification.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/classification.yml +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/exceptions.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/loader.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/logging/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/logging/audit.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/logging/format.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/net.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/net_static.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/random_user.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/common/swagger.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/config.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/cronjobs/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/cronjobs/retention.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/cronjobs/rules.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/cronjobs/view_cleanup.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/README.md +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/bulk.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/collection.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/constants.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/exceptions.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/howler_store.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/migrations/fix_process.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/operations.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/schemas.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/support/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/support/build.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/support/schemas.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/datastore/types.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/error.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/generate_mitre.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/generate_sigma_rules.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/generate_tlds.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/reindex_data.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/external/wipe_databases.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/gunicorn_config.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/healthz.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/azure.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/discover.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/hit.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/oauth.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/search.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/workflow.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/helper/ws.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/README.md +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/base.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/charter.txt +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/helper.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/howler_enum.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/action.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/analytic.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/assemblyline.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/aws.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/azure.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/cbs.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/dossier.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/agent.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/autonomous_system.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/client.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/cloud.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/code_signature.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/container.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/dns.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/egress.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/elf.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/email.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/error.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/event.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/faas.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/file.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/geo.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/group.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/hash.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/host.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/http.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/ingress.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/interface.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/network.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/observer.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/organization.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/os.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/pe.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/process.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/registry.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/related.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/rule.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/server.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/threat.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/tls.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/url.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/user.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/user_agent.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/vulnerability.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/gcp.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/hit.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/howler_data.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/lead.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/localized_label.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/overview.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/pivot.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/template.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/user.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/view.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/random_data.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/randomizer.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/patched.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/plugins/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/plugins/config.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/README.md +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/counters.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/events.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/hash.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/lock.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/comms.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/multi.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/named.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/priority.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/set.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/user_quota_tracker.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/security/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/security/socket.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/security/utils.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/action_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/analytic_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/auth_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/config_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/dossier_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/event_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/hit_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/jwt_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/lucene_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/notebook_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/overview_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/template_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/services/user_service.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/__init__.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/annotations.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/chunk.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/dict_utils.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/isotime.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/list_utils.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/lucene.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/path.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/socket_utils.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/str_utils.py +0 -0
- {howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/utils/uid.py +0 -0
|
@@ -69,6 +69,7 @@ class ESStore(object):
|
|
|
69
69
|
self._password: Optional[str] = None
|
|
70
70
|
self._hosts = []
|
|
71
71
|
self._cert: str | None = None
|
|
72
|
+
self._fingerprint: str | None = None
|
|
72
73
|
|
|
73
74
|
for host in config.datastore.hosts:
|
|
74
75
|
self._hosts.append(str(host))
|
|
@@ -77,6 +78,7 @@ class ESStore(object):
|
|
|
77
78
|
if cert.exists():
|
|
78
79
|
if self._cert is None:
|
|
79
80
|
self._cert = str(cert)
|
|
81
|
+
logger.info("Using certificate %s for elasticsearch network traffic", self._cert)
|
|
80
82
|
else:
|
|
81
83
|
logger.error("Only a single certificate path is supported - ignoring additional paths.")
|
|
82
84
|
logger.error(
|
|
@@ -84,6 +86,15 @@ class ESStore(object):
|
|
|
84
86
|
"it for the first host."
|
|
85
87
|
)
|
|
86
88
|
|
|
89
|
+
if host.fingerprint:
|
|
90
|
+
if self._fingerprint is None:
|
|
91
|
+
self._fingerprint = host.fingerprint
|
|
92
|
+
logger.info("Using certificate fingerprint %s for elasticsearch network traffic", self._fingerprint)
|
|
93
|
+
else:
|
|
94
|
+
logger.error(
|
|
95
|
+
"Only a single certificate fingerprint is supported - ignoring additional fingerprints."
|
|
96
|
+
)
|
|
97
|
+
|
|
87
98
|
if os.getenv(f"{host.name.upper()}_HOST_APIKEY_ID", None) is not None:
|
|
88
99
|
self._apikey = (
|
|
89
100
|
os.environ[f"{host.name.upper()}_HOST_APIKEY_ID"],
|
|
@@ -105,6 +116,7 @@ class ESStore(object):
|
|
|
105
116
|
self.client = elasticsearch.Elasticsearch(
|
|
106
117
|
hosts=self._hosts, # type: ignore
|
|
107
118
|
ca_certs=self._cert, # type: ignore
|
|
119
|
+
ssl_assert_fingerprint=self._fingerprint, # type: ignore
|
|
108
120
|
api_key=self._apikey,
|
|
109
121
|
max_retries=0,
|
|
110
122
|
request_timeout=TRANSPORT_TIMEOUT,
|
|
@@ -113,6 +125,7 @@ class ESStore(object):
|
|
|
113
125
|
self.client = elasticsearch.Elasticsearch(
|
|
114
126
|
hosts=self._hosts, # type: ignore
|
|
115
127
|
ca_certs=self._cert, # type: ignore
|
|
128
|
+
ssl_assert_fingerprint=self._fingerprint, # type: ignore
|
|
116
129
|
basic_auth=(self._username, self._password),
|
|
117
130
|
max_retries=0,
|
|
118
131
|
request_timeout=TRANSPORT_TIMEOUT,
|
|
@@ -121,6 +134,7 @@ class ESStore(object):
|
|
|
121
134
|
self.client = elasticsearch.Elasticsearch(
|
|
122
135
|
hosts=self._hosts, # type: ignore
|
|
123
136
|
ca_certs=self._cert, # type: ignore
|
|
137
|
+
ssl_assert_fingerprint=self._fingerprint, # type: ignore
|
|
124
138
|
max_retries=0,
|
|
125
139
|
request_timeout=TRANSPORT_TIMEOUT,
|
|
126
140
|
)
|
|
@@ -63,6 +63,9 @@ class Host(BaseModel):
|
|
|
63
63
|
apikey_secret: Optional[str] = Field(description="Secret data of the API Key to use when connecting", default=None)
|
|
64
64
|
scheme: Optional[str] = Field(description="Scheme to use when connecting", default="http")
|
|
65
65
|
host: str = Field(description="URL to connect to")
|
|
66
|
+
fingerprint: str | None = Field(
|
|
67
|
+
description="Optional certificate fingerprint to validate against when connecting to datastore", default=None
|
|
68
|
+
)
|
|
66
69
|
|
|
67
70
|
def __repr__(self):
|
|
68
71
|
result = ""
|
|
@@ -148,7 +148,7 @@ suppress-none-returning = true
|
|
|
148
148
|
[tool.poetry]
|
|
149
149
|
package-mode = true
|
|
150
150
|
name = "howler-api"
|
|
151
|
-
version = "3.1.0.
|
|
151
|
+
version = "3.1.0.dev393"
|
|
152
152
|
description = "Howler - API server"
|
|
153
153
|
authors = [
|
|
154
154
|
"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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/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
|
|
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-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/odm/models/ecs/autonomous_system.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
|
|
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-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/howler/remote/datatypes/queues/priority.py
RENAMED
|
File without changes
|
|
File without changes
|
{howler_api-3.1.0.dev391 → howler_api-3.1.0.dev393}/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
|
|
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
|