clue-api 1.0.0.dev13__tar.gz → 1.0.0.dev32__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.0.0.dev13 → clue_api-1.0.0.dev32}/PKG-INFO +3 -4
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/interactive.py +0 -8
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/pyproject.toml +3 -5
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/LICENSE +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/README.md +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/.gitignore +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/base.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/actions.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/auth.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/configs.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/fetchers.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/lookup.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/registration.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/api/v1/static.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/app.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/cache/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/classification.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/classification.yml +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/dict_utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/exceptions.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/forge.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/json_utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/list_utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/logging/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/logging/audit.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/logging/format.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/regex.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/str_utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/swagger.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/common/uid.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/config.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/constants/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/constants/supported_types.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/cronjobs/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/cronjobs/plugins.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/error.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/gunicorn_config.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/healthz.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/helper/discover.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/helper/headers.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/helper/oauth.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/actions.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/config.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/fetchers.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/graph.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/model_list.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/network.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/base.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/graph.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/image.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/status.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/results/validation.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/selector.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/models/validators.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/patched.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/helpers/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/helpers/central_server.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/helpers/email_render.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/helpers/token.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/helpers/trino.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/models.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/plugin/utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/cache.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/events.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/hash.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/queues/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/queues/comms.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/set.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/remote/datatypes/user_quota_tracker.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/security/__init__.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/security/obo.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/security/utils.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/action_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/auth_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/config_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/fetcher_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/jwt_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/lookup_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/type_service.py +0 -0
- {clue_api-1.0.0.dev13 → clue_api-1.0.0.dev32}/clue/services/user_service.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: clue-api
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev32
|
|
4
4
|
Summary: Clue distributed enrichment service
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -31,9 +31,8 @@ Requires-Dist: flask-caching (>=2.1.0,<3.0.0)
|
|
|
31
31
|
Requires-Dist: flask-cors (>=4.0.1,<5.0.0) ; extra == "server"
|
|
32
32
|
Requires-Dist: gevent (>=24.2.1,<25.0.0)
|
|
33
33
|
Requires-Dist: geventhttpclient (>=2.3.1,<3.0.0)
|
|
34
|
-
Requires-Dist: gunicorn (>=22
|
|
34
|
+
Requires-Dist: gunicorn (>=22,<24)
|
|
35
35
|
Requires-Dist: imgkit (>=1.2.3,<2.0.0)
|
|
36
|
-
Requires-Dist: netifaces (>=0.11.0,<0.12.0) ; extra == "server"
|
|
37
36
|
Requires-Dist: passlib (>=1.7.4,<2.0.0) ; extra == "server"
|
|
38
37
|
Requires-Dist: pillow (>=11.1.0,<12.0.0)
|
|
39
38
|
Requires-Dist: prometheus-client (>=0.20.0,<0.21.0) ; extra == "server"
|
|
@@ -45,7 +44,7 @@ Requires-Dist: python-baseconv (>=1.2.2,<2.0.0) ; extra == "server"
|
|
|
45
44
|
Requires-Dist: pytz (>=2024.1,<2025.0) ; extra == "server"
|
|
46
45
|
Requires-Dist: redis (>=5.0.3,<6.0.0)
|
|
47
46
|
Requires-Dist: requests (>=2.32.5,<3.0.0)
|
|
48
|
-
Requires-Dist: setuptools (<
|
|
47
|
+
Requires-Dist: setuptools (<79.0.0)
|
|
49
48
|
Requires-Dist: trino (>=0.336.0,<0.337.0)
|
|
50
49
|
Project-URL: Documentation, https://github.com/CybercentreCanada/clue
|
|
51
50
|
Project-URL: Homepage, https://github.com/CybercentreCanada/clue
|
|
@@ -229,14 +229,6 @@ def main(): # noqa: C901
|
|
|
229
229
|
Environment variable CLUE_ACCESS_TOKEN not set!
|
|
230
230
|
|
|
231
231
|
It is highly likely your plugin will not work if it connects to an external service.
|
|
232
|
-
|
|
233
|
-
You'll need to generate a matching token. If on jupyhub, run:
|
|
234
|
-
|
|
235
|
-
export CLUE_ACCESS_TOKEN=$(python -c "from hogwarts.auth.vault.credentials import ClueTokenCredential; print(ClueTokenCredential().get_token().token)")
|
|
236
|
-
|
|
237
|
-
If you need a different token use the corresponding credential (i.e., trino -> TrinoTokenCredential, howler -> HowlerTokenCredential).
|
|
238
|
-
|
|
239
|
-
If you're developing on your local machine, talk to Matthew Rafuse <Matthew.Rafuse@cyber.gc.ca> on Teams.
|
|
240
232
|
""").strip() # noqa: E501
|
|
241
233
|
)
|
|
242
234
|
|
|
@@ -164,7 +164,7 @@ log_cli_level = "INFO"
|
|
|
164
164
|
[tool.poetry]
|
|
165
165
|
package-mode = true
|
|
166
166
|
name = "clue-api"
|
|
167
|
-
version = "1.0.0.
|
|
167
|
+
version = "1.0.0.dev32"
|
|
168
168
|
description = "Clue distributed enrichment service"
|
|
169
169
|
authors = ["Canadian Centre for Cyber Security <contact@cyber.gc.ca>"]
|
|
170
170
|
license = "MIT"
|
|
@@ -199,7 +199,7 @@ python = "^3.12"
|
|
|
199
199
|
elastic-apm = "^6.22.0"
|
|
200
200
|
flask = "<3.0.0"
|
|
201
201
|
flask-caching = "^2.1.0"
|
|
202
|
-
gunicorn = "
|
|
202
|
+
gunicorn = ">=22,<24"
|
|
203
203
|
gevent = "^24.2.1"
|
|
204
204
|
pydantic = "^2.7.1"
|
|
205
205
|
geventhttpclient = "^2.3.1"
|
|
@@ -209,7 +209,7 @@ beautifulsoup4 = "^4.13.3"
|
|
|
209
209
|
imgkit = "^1.2.3"
|
|
210
210
|
pillow = "^11.1.0"
|
|
211
211
|
cart = "^1.2.3"
|
|
212
|
-
setuptools = "<
|
|
212
|
+
setuptools = "<79.0.0"
|
|
213
213
|
requests = "^2.32.5"
|
|
214
214
|
|
|
215
215
|
# Dependencies required for the main server
|
|
@@ -217,7 +217,6 @@ Werkzeug = { version = "^3.0.2", optional = true }
|
|
|
217
217
|
bcrypt = { version = "^4.1.2", optional = true }
|
|
218
218
|
PyYAML = { version = "^6.0.1", optional = true }
|
|
219
219
|
python-baseconv = { version = "^1.2.2", optional = true }
|
|
220
|
-
netifaces = { version = "^0.11.0", optional = true }
|
|
221
220
|
pyroute2 = { version = "^0.7.12", optional = true }
|
|
222
221
|
pyjwt = { version = "^2.8.0", optional = true }
|
|
223
222
|
prometheus-client = { version = "^0.20.0", optional = true }
|
|
@@ -235,7 +234,6 @@ server = [
|
|
|
235
234
|
"bcrypt",
|
|
236
235
|
"PyYAML",
|
|
237
236
|
"python-baseconv",
|
|
238
|
-
"netifaces",
|
|
239
237
|
"pyroute2",
|
|
240
238
|
"pyjwt",
|
|
241
239
|
"prometheus-client",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|