howler-api 4.0.0.dev1311__tar.gz → 4.0.0.dev1340__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.dev1311 → howler_api-4.0.0.dev1340}/PKG-INFO +2 -2
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/README.md +3 -4
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/README.md +5 -2
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/case.py +4 -4
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/README.md +26 -19
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/pyproject.toml +5 -5
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/README.md +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/add_label.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/add_to_bundle.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/add_to_case.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/change_field.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/demote.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/example_plugin.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/prioritization.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/promote.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/remove_from_bundle.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/remove_label.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/actions/transition.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/base.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/socket.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/action.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/analytic.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/auth.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/clue.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/configs.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/dossier.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/help.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/hit.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/notebook.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/overview.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/search.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/template.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/tool.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/user.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/utils/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/utils/etag.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/utils/params.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v1/view.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v2/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v2/case.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v2/fuzzy.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v2/ingest.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/api/v2/search.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/app.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/README.md +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/classification.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/classification.yml +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/exceptions.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/loader.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/logging/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/logging/audit.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/logging/format.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/net.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/net_static.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/random_user.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/common/swagger.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/config.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/cronjobs/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/cronjobs/action_queue_worker.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/cronjobs/correlation.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/cronjobs/retention.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/cronjobs/view_cleanup.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/bulk.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/collection.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/constants.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/exceptions.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/howler_store.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/migrations/fix_process.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/operations.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/schemas.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/store.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/support/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/support/build.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/support/schemas.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/datastore/types.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/error.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/README.md +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/generate_mitre.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/generate_sigma_rules.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/generate_tlds.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/reindex_data.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/external/wipe_databases.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/gunicorn_config.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/healthz.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/azure.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/discover.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/hit.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/oauth.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/search.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/workflow.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/helper/ws.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/base.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/charter.txt +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/constants.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/helper.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/howler_enum.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/mixins.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/action.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/analytic.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/assemblyline.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/aws.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/azure.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/cbs.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/clue.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/config.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/dossier.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/agent.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/autonomous_system.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/client.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/cloud.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/code_signature.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/container.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/dns.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/egress.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/elf.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/email.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/error.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/event.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/faas.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/file.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/geo.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/group.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/hash.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/host.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/http.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/ingress.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/interface.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/network.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/observer.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/organization.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/os.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/pe.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/process.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/registry.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/related.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/rule.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/server.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/threat.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/tls.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/url.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/user.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/user_agent.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/vulnerability.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/event.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/gcp.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/hit.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/howler_data.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/lead.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/localized_label.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/overview.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/pivot.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/record.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/template.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/user.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/view.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/random_data.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/randomizer.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/patched.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/plugins/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/plugins/config.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/counters.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/events.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/hash.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/lock.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/comms.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/multi.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/named.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/priority.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/set.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/user_quota_tracker.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/security/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/security/socket.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/security/utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/action_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/analytic_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/auth_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/bundle_compat_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/case_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/comms_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/config_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/correlation_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/docs_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/dossier_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/event_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/fuzzy_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/hit_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/jwt_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/lucene_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/notebook_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/overview_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/search_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/template_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/user_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/viewer_service.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/telemetry.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/__init__.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/annotations.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/chunk.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/compat.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/constants.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/dict_utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/indexes.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/isotime.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/list_utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/lucene.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/net_utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/path.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/socket_utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/str_utils.py +0 -0
- {howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/utils/uid.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: howler-api
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev1340
|
|
4
4
|
Summary: Howler - API server
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: howler,alerting,gc,canada,cse-cst,cse,cst,cyber,cccs
|
|
@@ -38,7 +38,7 @@ Requires-Dist: opentelemetry-instrumentation-flask (==0.61b0)
|
|
|
38
38
|
Requires-Dist: opentelemetry-sdk (==1.40.0)
|
|
39
39
|
Requires-Dist: packaging (<25.0)
|
|
40
40
|
Requires-Dist: passlib (==1.7.4)
|
|
41
|
-
Requires-Dist: prometheus-client (==0.
|
|
41
|
+
Requires-Dist: prometheus-client (==0.26.0)
|
|
42
42
|
Requires-Dist: pydantic (>=2.11.4,<3.0.0)
|
|
43
43
|
Requires-Dist: pydantic-settings[yaml] (>=2.9.1,<3.0.0)
|
|
44
44
|
Requires-Dist: pydash (>=8.0.5,<9.0.0)
|
|
@@ -37,10 +37,9 @@ from howler.common import loader
|
|
|
37
37
|
from myapp.models.mymodel import MyModel
|
|
38
38
|
|
|
39
39
|
ds = loader.get_esstore()
|
|
40
|
-
ds.register(
|
|
40
|
+
ds.register("mymodel", MyModel)
|
|
41
41
|
|
|
42
42
|
my_document = ds.mymodel.get(document_id)
|
|
43
|
-
|
|
44
43
|
```
|
|
45
44
|
|
|
46
45
|
### Creating your own datastore
|
|
@@ -59,10 +58,10 @@ from myapp.models.mycollection import MyCollection
|
|
|
59
58
|
|
|
60
59
|
|
|
61
60
|
class MyDatastore(object):
|
|
62
|
-
def __init__(self, esstore_object: ESStore = None
|
|
61
|
+
def __init__(self, esstore_object: ESStore = None):
|
|
63
62
|
|
|
64
63
|
self.ds = esstore_object or loader.get_esstore()
|
|
65
|
-
self.ds.register(
|
|
64
|
+
self.ds.register("mycollection", MyCollection)
|
|
66
65
|
# ... + all other collections
|
|
67
66
|
|
|
68
67
|
def __enter__(self):
|
|
@@ -11,15 +11,18 @@ Here's example of a user model with settings and stats:
|
|
|
11
11
|
```python
|
|
12
12
|
from howler import odm
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
@odm.model(index=True, store=False, description="Settings of user")
|
|
15
16
|
class Settings(odm.Model):
|
|
16
|
-
default_view: str = odm.Enum(value=[
|
|
17
|
+
default_view: str = odm.Enum(value=["detail", "simple"], default="simple", description="Some random setting")
|
|
18
|
+
|
|
17
19
|
|
|
18
20
|
@odm.model(index=True, store=False, description="Settings of user")
|
|
19
21
|
class Stats(odm.Model):
|
|
20
|
-
last_login: str = odm.Date(default=
|
|
22
|
+
last_login: str = odm.Date(default="NOW", description="Last time user logged in")
|
|
21
23
|
login_count: str = odm.Integer(default=0, description="Number of time the user logged in")
|
|
22
24
|
|
|
25
|
+
|
|
23
26
|
@odm.model(index=True, store=True, description="User example")
|
|
24
27
|
class User(odm.Model):
|
|
25
28
|
username: str = odm.Keyword(description="Username of the user")
|
|
@@ -153,17 +153,17 @@ class CaseTask(odm.Model):
|
|
|
153
153
|
item: str = odm.Keyword(description="Associated case item id.", optional=True)
|
|
154
154
|
|
|
155
155
|
|
|
156
|
-
@odm.model(index=True, store=True, description="Enrichment annotations associated with a case
|
|
156
|
+
@odm.model(index=True, store=True, description="Enrichment annotations associated with a case item id.")
|
|
157
157
|
class CaseEnrichment(odm.Model):
|
|
158
|
-
|
|
158
|
+
item: str = odm.Keyword(description="Case item id associated with these annotations.")
|
|
159
159
|
annotations: list[str] = odm.List(
|
|
160
160
|
odm.Keyword(),
|
|
161
161
|
default=[],
|
|
162
|
-
description="Annotation IDs associated with the
|
|
162
|
+
description="Annotation IDs associated with the case item id.",
|
|
163
163
|
)
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
@odm.model(index=True, store=True, description="Case model with
|
|
166
|
+
@odm.model(index=True, store=True, description="Case model with items, enrichments, rules, and tasks.")
|
|
167
167
|
class Case(DatastoreMixin["Case"], odm.Model):
|
|
168
168
|
case_id: str = odm.UUID(description="A unique identifier for this case.")
|
|
169
169
|
classification: str = odm.Classification(
|
|
@@ -25,9 +25,10 @@ Example:
|
|
|
25
25
|
|
|
26
26
|
```python
|
|
27
27
|
from howler.remote.datatypes.counters import Counters
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
with Counters("test-counter") as ct:
|
|
29
30
|
# Increment counter by 4
|
|
30
|
-
ct.inc(
|
|
31
|
+
ct.inc("value_1", 4)
|
|
31
32
|
|
|
32
33
|
# Get Counter values
|
|
33
34
|
ct.get_queues_sizes()
|
|
@@ -60,19 +61,20 @@ Example, A container register a watcher for a specific event:
|
|
|
60
61
|
import time
|
|
61
62
|
from howler.remote.datatypes.events import EventWatcher
|
|
62
63
|
|
|
64
|
+
|
|
63
65
|
def callback_func(data: dict[str, Any]):
|
|
64
66
|
print(data)
|
|
65
67
|
|
|
68
|
+
|
|
66
69
|
watcher = EventWatcher()
|
|
67
70
|
try:
|
|
68
71
|
# register for the test event in the event group
|
|
69
|
-
watcher.register(
|
|
72
|
+
watcher.register("event.test", callback_func)
|
|
70
73
|
watcher.start()
|
|
71
74
|
while True:
|
|
72
75
|
time.sleep(1)
|
|
73
76
|
finally:
|
|
74
77
|
watcher.stop()
|
|
75
|
-
|
|
76
78
|
```
|
|
77
79
|
|
|
78
80
|
Another container creates an event to wake up the first container:
|
|
@@ -82,10 +84,10 @@ import time
|
|
|
82
84
|
from howler.remote.datatypes.events import EventSender
|
|
83
85
|
|
|
84
86
|
# create a sender for the event group
|
|
85
|
-
sender = EventSender(
|
|
87
|
+
sender = EventSender("event.", redis_connection)
|
|
86
88
|
|
|
87
89
|
# send a test even
|
|
88
|
-
sender.send(
|
|
90
|
+
sender.send("test", {"payload": 100})
|
|
89
91
|
# After this call, the first container will have woken up and executed its callback function
|
|
90
92
|
# that would print: {'payload': 100}
|
|
91
93
|
```
|
|
@@ -114,7 +116,8 @@ Example:
|
|
|
114
116
|
|
|
115
117
|
```python
|
|
116
118
|
from howler.remote.datatypes.hash import Hash
|
|
117
|
-
|
|
119
|
+
|
|
120
|
+
with Hash("test-hashmap") as h:
|
|
118
121
|
h.add("key", "value")
|
|
119
122
|
print(h.exists("key"))
|
|
120
123
|
print(h.get("key"))
|
|
@@ -172,10 +175,11 @@ Example:
|
|
|
172
175
|
|
|
173
176
|
```python
|
|
174
177
|
from howler.remote.datatypes.set import Set
|
|
175
|
-
|
|
176
|
-
|
|
178
|
+
|
|
179
|
+
with Set("test-set") as s:
|
|
180
|
+
values = ["a", "b", 1, 2]
|
|
177
181
|
s.add(*values)
|
|
178
|
-
print(s.exist(
|
|
182
|
+
print(s.exist("b"))
|
|
179
183
|
print(s.pop())
|
|
180
184
|
print(s.length())
|
|
181
185
|
```
|
|
@@ -184,7 +188,7 @@ Output:
|
|
|
184
188
|
|
|
185
189
|
```python
|
|
186
190
|
True
|
|
187
|
-
|
|
191
|
+
"a" or "b" or 1 or 2
|
|
188
192
|
3
|
|
189
193
|
```
|
|
190
194
|
|
|
@@ -234,7 +238,7 @@ Example of message receiver:
|
|
|
234
238
|
```python
|
|
235
239
|
from howler.remote.datatypes.queues.comms import CommsQueue
|
|
236
240
|
|
|
237
|
-
with CommsQueue(
|
|
241
|
+
with CommsQueue("test-comms-queue") as cq:
|
|
238
242
|
for msg in cq.listen(blocking=True):
|
|
239
243
|
if msg == "stop":
|
|
240
244
|
break
|
|
@@ -247,7 +251,7 @@ Example of message sender:
|
|
|
247
251
|
```python
|
|
248
252
|
from howler.remote.datatypes.queues.comms import CommsQueue
|
|
249
253
|
|
|
250
|
-
with CommsQueue(
|
|
254
|
+
with CommsQueue("test-comms-queue") as cq:
|
|
251
255
|
# send a message to the receiver
|
|
252
256
|
cq.publish("This is my message!")
|
|
253
257
|
|
|
@@ -273,7 +277,8 @@ Example:
|
|
|
273
277
|
|
|
274
278
|
```python
|
|
275
279
|
from howler.remote.datatypes.queues.named import NamedQueue, select
|
|
276
|
-
|
|
280
|
+
|
|
281
|
+
with NamedQueue("test-named-queue") as nq:
|
|
277
282
|
for x in range(5):
|
|
278
283
|
nq.push(x)
|
|
279
284
|
|
|
@@ -307,12 +312,13 @@ Example:
|
|
|
307
312
|
|
|
308
313
|
```python
|
|
309
314
|
from howler.remote.datatypes.queues.priority import PriorityQueue, length, select
|
|
310
|
-
|
|
315
|
+
|
|
316
|
+
with PriorityQueue("test-priority-queue") as pq:
|
|
311
317
|
for x in range(10):
|
|
312
318
|
pq.push(100, x)
|
|
313
319
|
|
|
314
|
-
a_key = pq.push(101,
|
|
315
|
-
z_key = pq.push(99,
|
|
320
|
+
a_key = pq.push(101, "a")
|
|
321
|
+
z_key = pq.push(99, "z")
|
|
316
322
|
print(pq.rank(a_key))
|
|
317
323
|
print(pq.rank(z_key))
|
|
318
324
|
print(pq.pop())
|
|
@@ -323,7 +329,7 @@ Output:
|
|
|
323
329
|
```python
|
|
324
330
|
0
|
|
325
331
|
11
|
|
326
|
-
|
|
332
|
+
"a"
|
|
327
333
|
```
|
|
328
334
|
|
|
329
335
|
#### Unique Priority queues
|
|
@@ -334,7 +340,8 @@ Example:
|
|
|
334
340
|
|
|
335
341
|
```python
|
|
336
342
|
from howler.remote.datatypes.queues.priority import PriorityQueue, length, select
|
|
337
|
-
|
|
343
|
+
|
|
344
|
+
with PriorityQueue("test-priority-queue") as pq:
|
|
338
345
|
for x in range(10):
|
|
339
346
|
pq.push(100, x)
|
|
340
347
|
|
|
@@ -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.dev1340"
|
|
156
156
|
description = "Howler - API server"
|
|
157
157
|
authors = [
|
|
158
158
|
"Canadian Centre for Cyber Security <howler@cyber.gc.ca>",
|
|
@@ -206,7 +206,7 @@ gevent = "^25.9.1"
|
|
|
206
206
|
flask-caching = "2.4.1"
|
|
207
207
|
packaging = "<25.0"
|
|
208
208
|
passlib = "1.7.4"
|
|
209
|
-
prometheus-client = "0.
|
|
209
|
+
prometheus-client = "0.26.0"
|
|
210
210
|
pyjwt = "2.13.0"
|
|
211
211
|
python-baseconv = "1.2.2"
|
|
212
212
|
python-datemath = "3.0.3"
|
|
@@ -235,7 +235,7 @@ azure-monitor-opentelemetry = "^1.8.7"
|
|
|
235
235
|
|
|
236
236
|
[tool.poetry.group.dev.dependencies]
|
|
237
237
|
pre-commit = "^3.7.0"
|
|
238
|
-
ruff = ">=0.8,<0.
|
|
238
|
+
ruff = ">=0.8,<0.17"
|
|
239
239
|
pyright = { extras = ["nodejs"], version = "^1.1.408" }
|
|
240
240
|
mypy = "^1.6.1"
|
|
241
241
|
|
|
@@ -252,10 +252,10 @@ coverage = { extras = ["toml"], version = "^7.4.4" }
|
|
|
252
252
|
|
|
253
253
|
[tool.poetry.group.types.dependencies]
|
|
254
254
|
typing-extensions = "^4.12.2"
|
|
255
|
-
types-PyYAML = "6.0.12.
|
|
255
|
+
types-PyYAML = "6.0.12.20260724"
|
|
256
256
|
types-paramiko = "3.5.0.20250801"
|
|
257
257
|
types-pyOpenSSL = "23.3.0.20240106"
|
|
258
|
-
types-six = "1.17.0.
|
|
258
|
+
types-six = "1.17.0.20260724"
|
|
259
259
|
types-requests = "<2.33.0.20260713"
|
|
260
260
|
websocket-client = "1.9.0"
|
|
261
261
|
types-pytz = "^2024.1.0.20240417"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev1311 → howler_api-4.0.0.dev1340}/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
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/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.dev1311 → howler_api-4.0.0.dev1340}/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
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/odm/models/ecs/autonomous_system.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/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.dev1311 → howler_api-4.0.0.dev1340}/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
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/__init__.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/comms.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/multi.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/named.py
RENAMED
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/remote/datatypes/queues/priority.py
RENAMED
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/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.dev1311 → howler_api-4.0.0.dev1340}/howler/services/bundle_compat_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howler_api-4.0.0.dev1311 → howler_api-4.0.0.dev1340}/howler/services/correlation_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
|