feat(refactor): PEP8, type annotations, docstrings and PyJWT security fix
This commit is contained in:
@@ -1,33 +1,52 @@
|
||||
"""Pydantic schemas for TestTemplate endpoints."""
|
||||
|
||||
# Import uuid
|
||||
import uuid
|
||||
|
||||
# Import datetime from datetime
|
||||
from datetime import datetime
|
||||
|
||||
# Import BaseModel, ConfigDict from pydantic
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
# ── Full output ─────────────────────────────────────────────────────
|
||||
|
||||
|
||||
class TestTemplateOut(BaseModel):
|
||||
"""Complete representation of a test template."""
|
||||
|
||||
# id: uuid.UUID
|
||||
id: uuid.UUID
|
||||
# mitre_technique_id: str
|
||||
mitre_technique_id: str
|
||||
# name: str
|
||||
name: str
|
||||
# Assign description = None
|
||||
description: str | None = None
|
||||
# source: str
|
||||
source: str
|
||||
# Assign source_url = None
|
||||
source_url: str | None = None
|
||||
# Assign attack_procedure = None
|
||||
attack_procedure: str | None = None
|
||||
# Assign expected_detection = None
|
||||
expected_detection: str | None = None
|
||||
# Assign platform = None
|
||||
platform: str | None = None
|
||||
# Assign tool_suggested = None
|
||||
tool_suggested: str | None = None
|
||||
# Assign severity = None
|
||||
severity: str | None = None
|
||||
# Assign atomic_test_id = None
|
||||
atomic_test_id: str | None = None
|
||||
# Assign suggested_remediation = None
|
||||
suggested_remediation: str | None = None
|
||||
# Assign is_active = True
|
||||
is_active: bool = True
|
||||
# Assign created_at = None
|
||||
created_at: datetime | None = None
|
||||
|
||||
# Assign model_config = ConfigDict(from_attributes=True)
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
@@ -37,17 +56,29 @@ class TestTemplateOut(BaseModel):
|
||||
class TestTemplateCreate(BaseModel):
|
||||
"""Payload for creating a custom test template."""
|
||||
|
||||
# mitre_technique_id: str
|
||||
mitre_technique_id: str
|
||||
# name: str
|
||||
name: str
|
||||
# Assign description = None
|
||||
description: str | None = None
|
||||
# Assign source = "custom"
|
||||
source: str = "custom"
|
||||
# Assign source_url = None
|
||||
source_url: str | None = None
|
||||
# Assign attack_procedure = None
|
||||
attack_procedure: str | None = None
|
||||
# Assign expected_detection = None
|
||||
expected_detection: str | None = None
|
||||
# Assign platform = None
|
||||
platform: str | None = None
|
||||
# Assign tool_suggested = None
|
||||
tool_suggested: str | None = None
|
||||
# Assign severity = None
|
||||
severity: str | None = None
|
||||
# Assign atomic_test_id = None
|
||||
atomic_test_id: str | None = None
|
||||
# Assign suggested_remediation = None
|
||||
suggested_remediation: str | None = None
|
||||
|
||||
|
||||
@@ -57,14 +88,22 @@ class TestTemplateCreate(BaseModel):
|
||||
class TestTemplateSummary(BaseModel):
|
||||
"""Lightweight representation for listing templates."""
|
||||
|
||||
# id: uuid.UUID
|
||||
id: uuid.UUID
|
||||
# mitre_technique_id: str
|
||||
mitre_technique_id: str
|
||||
# name: str
|
||||
name: str
|
||||
# source: str
|
||||
source: str
|
||||
# Assign platform = None
|
||||
platform: str | None = None
|
||||
# Assign severity = None
|
||||
severity: str | None = None
|
||||
# Assign is_active = True
|
||||
is_active: bool = True
|
||||
|
||||
# Assign model_config = ConfigDict(from_attributes=True)
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
@@ -77,7 +116,9 @@ class TestTemplateInstantiate(BaseModel):
|
||||
Optional override fields take precedence over the template values when provided.
|
||||
"""
|
||||
|
||||
# template_id: uuid.UUID
|
||||
template_id: uuid.UUID
|
||||
# technique_id: str # accepts both UUID and MITRE ID (e.g. "T1059.001")
|
||||
technique_id: str # accepts both UUID and MITRE ID (e.g. "T1059.001")
|
||||
|
||||
# User-editable overrides (if omitted the template value is used)
|
||||
|
||||
Reference in New Issue
Block a user