clue-api 1.6.0.dev337__tar.gz → 1.6.0.dev339__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.6.0.dev337 → clue_api-1.6.0.dev339}/PKG-INFO +1 -1
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/config.py +6 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/network.py +7 -1
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/pyproject.toml +1 -1
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/LICENSE +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/README.md +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/.gitignore +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/base.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/actions.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/auth.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/configs.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/fetchers.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/lookup.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/registration.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/static.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/api/v1/sync.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/app.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/cache/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/bytes_utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/classification.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/classification.yml +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/dict_utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/exceptions.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/forge.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/json_utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/list_utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/logging/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/logging/audit.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/logging/format.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/regex.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/str_utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/swagger.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/common/uid.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/config.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/constants/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/constants/env.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/constants/supported_types.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/cronjobs/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/cronjobs/plugins.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/error.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/extensions/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/extensions/config.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/gunicorn_config.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/healthz.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/helper/discover.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/helper/headers.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/helper/oauth.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/actions.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/fetchers.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/graph.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/model_list.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/base.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/file.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/graph.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/image.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/status.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/results/validation.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/schema.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/selector.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/sync.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/models/validators.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/patched.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/celery_app.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/helpers/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/helpers/central_server.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/helpers/email_render.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/helpers/token.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/helpers/trino.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/models.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/plugin/utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/py.typed +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/cache.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/events.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/hash.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/queues/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/queues/comms.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/set.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/remote/datatypes/user_quota_tracker.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/security/__init__.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/security/obo.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/security/utils.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/action_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/auth_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/config_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/fetcher_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/jwt_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/lookup_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/mongo_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/type_service.py +0 -0
- {clue_api-1.6.0.dev337 → clue_api-1.6.0.dev339}/clue/services/user_service.py +0 -0
|
@@ -222,6 +222,9 @@ class MongoDB(BaseModel):
|
|
|
222
222
|
user: str | None = Field(description="Username to use to connect to the MongoDB instance", default=None)
|
|
223
223
|
password: str | None = Field(description="Password to use to connect to the MongoDB instance", default=None)
|
|
224
224
|
database: str = Field(description="The database to use in the mongodb instance", default="clue")
|
|
225
|
+
auth_source: str | None = Field(
|
|
226
|
+
description="The database where your user credentials are stored and validated", default="admin"
|
|
227
|
+
)
|
|
225
228
|
max_retries: int = Field(
|
|
226
229
|
description="Controls the maximum number of retries to use when an initial connection fails", default=2
|
|
227
230
|
)
|
|
@@ -253,6 +256,9 @@ class MongoDB(BaseModel):
|
|
|
253
256
|
"serverSelectionTimeoutMS": self.server_selection_timeout,
|
|
254
257
|
}
|
|
255
258
|
|
|
259
|
+
if self.auth_source:
|
|
260
|
+
params["authSource"] = self.auth_source
|
|
261
|
+
|
|
256
262
|
if self.user and self.password:
|
|
257
263
|
params["username"] = self.user
|
|
258
264
|
params["password"] = self.password
|
|
@@ -388,7 +388,7 @@ class QueryEntry(BaseModel):
|
|
|
388
388
|
),
|
|
389
389
|
] = None
|
|
390
390
|
|
|
391
|
-
expiry:
|
|
391
|
+
expiry: Timestamp | None = Field(description="When should this record expire?", default_factory=generate_expiry)
|
|
392
392
|
|
|
393
393
|
model_config = ConfigDict(validate_assignment=True)
|
|
394
394
|
|
|
@@ -566,3 +566,9 @@ class QueryResult(ResultMetadata):
|
|
|
566
566
|
|
|
567
567
|
class PluginResponse(BaseModel):
|
|
568
568
|
pass
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
if __name__ == "__main__":
|
|
572
|
+
import json
|
|
573
|
+
|
|
574
|
+
print(json.dumps(QueryEntry.model_json_schema(), indent=2)) # noqa: T201
|
|
@@ -141,7 +141,7 @@ log_cli_level = "WARN"
|
|
|
141
141
|
[tool.poetry]
|
|
142
142
|
package-mode = true
|
|
143
143
|
name = "clue-api"
|
|
144
|
-
version = "1.6.0.
|
|
144
|
+
version = "1.6.0.dev339"
|
|
145
145
|
description = "Clue distributed enrichment service"
|
|
146
146
|
authors = ["Canadian Centre for Cyber Security <contact@cyber.gc.ca>"]
|
|
147
147
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|