clue-api 1.4.0.dev168__tar.gz → 1.4.0.dev171__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.
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/PKG-INFO +1 -1
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/static.py +5 -6
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/pyproject.toml +1 -1
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/LICENSE +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/README.md +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/.gitignore +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/base.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/actions.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/auth.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/configs.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/fetchers.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/lookup.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/api/v1/registration.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/app.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/cache/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/bytes_utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/classification.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/classification.yml +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/dict_utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/exceptions.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/forge.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/json_utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/list_utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/logging/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/logging/audit.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/logging/format.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/regex.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/str_utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/swagger.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/common/uid.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/config.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/constants/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/constants/env.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/constants/supported_types.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/cronjobs/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/cronjobs/plugins.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/error.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/extensions/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/extensions/config.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/gunicorn_config.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/healthz.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/helper/discover.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/helper/headers.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/helper/oauth.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/actions.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/config.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/fetchers.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/graph.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/model_list.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/network.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/base.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/file.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/graph.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/image.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/status.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/results/validation.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/selector.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/models/validators.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/patched.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/celery_app.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/helpers/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/helpers/central_server.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/helpers/email_render.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/helpers/token.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/helpers/trino.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/models.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/plugin/utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/py.typed +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/cache.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/events.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/hash.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/queues/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/queues/comms.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/set.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/remote/datatypes/user_quota_tracker.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/security/__init__.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/security/obo.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/security/utils.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/action_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/auth_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/config_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/fetcher_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/jwt_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/lookup_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/type_service.py +0 -0
- {clue_api-1.4.0.dev168 → clue_api-1.4.0.dev171}/clue/services/user_service.py +0 -0
|
@@ -9,7 +9,6 @@ from clue.common.logging import get_logger
|
|
|
9
9
|
from clue.common.swagger import generate_swagger_docs
|
|
10
10
|
from clue.config import config
|
|
11
11
|
from clue.security import api_login
|
|
12
|
-
from clue.security.utils import is_path_traversal
|
|
13
12
|
|
|
14
13
|
SUB_API = "static"
|
|
15
14
|
static_api = make_subapi_blueprint(SUB_API, api_version=1)
|
|
@@ -83,12 +82,12 @@ def serve_documentation_file(filename: str, **kwargs) -> dict[str, str]:
|
|
|
83
82
|
"""
|
|
84
83
|
docs_path = (DOCUMENTATION_FOLDER / filename).resolve()
|
|
85
84
|
|
|
86
|
-
if not docs_path.suffix:
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
# if not docs_path.suffix:
|
|
86
|
+
# # Assume it's markdown
|
|
87
|
+
# filename = filename + ".md"
|
|
89
88
|
|
|
90
|
-
if is_path_traversal(DOCUMENTATION_FOLDER, docs_path):
|
|
91
|
-
|
|
89
|
+
# if is_path_traversal(DOCUMENTATION_FOLDER, docs_path):
|
|
90
|
+
# return not_found(err="The file does not exist or is typed incorrectly.")
|
|
92
91
|
|
|
93
92
|
if docs_path.exists():
|
|
94
93
|
content = docs_path.read_text(encoding="utf-8")
|
|
@@ -139,7 +139,7 @@ log_cli_level = "WARN"
|
|
|
139
139
|
[tool.poetry]
|
|
140
140
|
package-mode = true
|
|
141
141
|
name = "clue-api"
|
|
142
|
-
version = "1.4.0.
|
|
142
|
+
version = "1.4.0.dev171"
|
|
143
143
|
description = "Clue distributed enrichment service"
|
|
144
144
|
authors = ["Canadian Centre for Cyber Security <contact@cyber.gc.ca>"]
|
|
145
145
|
license = "MIT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|