feat: add governed knowledge lifecycle
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
from datetime import datetime
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from ninja import Schema
|
||||
|
||||
@@ -29,12 +31,24 @@ class KnowledgeDocumentIn(Schema):
|
||||
|
||||
class KnowledgeDocumentOut(Schema):
|
||||
id: int
|
||||
public_id: UUID
|
||||
knowledge_base_id: int
|
||||
file_name: str
|
||||
file_type: str
|
||||
extension: str
|
||||
mime_type: str
|
||||
file_size: int
|
||||
sha256: str
|
||||
scan_status: str
|
||||
scan_result: dict[str, Any]
|
||||
parse_status: str
|
||||
parse_error: str
|
||||
processing_attempts: int
|
||||
task_id: str
|
||||
has_original: bool
|
||||
indexed_at: datetime | None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class KnowledgeItemIn(Schema):
|
||||
@@ -42,6 +56,9 @@ class KnowledgeItemIn(Schema):
|
||||
title: str
|
||||
problem: str
|
||||
applicable_scope: str = ""
|
||||
category_code: str = ""
|
||||
related_system: str = ""
|
||||
environment_scope: str = ""
|
||||
error_code: str = ""
|
||||
root_cause: str = ""
|
||||
troubleshooting_steps: str = ""
|
||||
@@ -56,6 +73,9 @@ class KnowledgeItemOut(Schema):
|
||||
title: str
|
||||
problem: str
|
||||
applicable_scope: str
|
||||
category_code: str
|
||||
related_system: str
|
||||
environment_scope: str
|
||||
error_code: str
|
||||
root_cause: str
|
||||
troubleshooting_steps: str
|
||||
@@ -81,3 +101,95 @@ class KnowledgeSearchResultOut(Schema):
|
||||
content: str
|
||||
score: float
|
||||
metadata: dict
|
||||
|
||||
|
||||
class TroubleshootingPlanIn(Schema):
|
||||
knowledge_base_id: int
|
||||
title: str
|
||||
problem_pattern: str
|
||||
applicable_scope: str = ""
|
||||
category_code: str = ""
|
||||
related_system: str = ""
|
||||
environment_scope: str = ""
|
||||
decision_rules: str = ""
|
||||
troubleshooting_steps: str
|
||||
risk_note: str = ""
|
||||
source_ticket_id: int | None = None
|
||||
|
||||
|
||||
class TroubleshootingPlanOut(Schema):
|
||||
id: int
|
||||
knowledge_base_id: int
|
||||
title: str
|
||||
problem_pattern: str
|
||||
applicable_scope: str
|
||||
category_code: str
|
||||
related_system: str
|
||||
environment_scope: str
|
||||
decision_rules: str
|
||||
troubleshooting_steps: str
|
||||
risk_note: str
|
||||
status: str
|
||||
source_ticket_id: int | None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class AssetVersionUpdateIn(Schema):
|
||||
content: dict[str, Any]
|
||||
change_summary: str | None = None
|
||||
|
||||
|
||||
class AssetRevisionIn(Schema):
|
||||
change_summary: str = ""
|
||||
|
||||
|
||||
class AssetReviewIn(Schema):
|
||||
comment: str = ""
|
||||
|
||||
|
||||
class AssetRollbackIn(Schema):
|
||||
source_version: int
|
||||
change_summary: str = ""
|
||||
|
||||
|
||||
class GovernedAssetVersionOut(Schema):
|
||||
id: int
|
||||
version: int
|
||||
status: str
|
||||
content: dict[str, Any]
|
||||
change_summary: str
|
||||
source_version: int | None
|
||||
created_by_id: int | None
|
||||
submitted_by_id: int | None
|
||||
reviewed_by_id: int | None
|
||||
review_comment: str
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
submitted_at: datetime | None
|
||||
reviewed_at: datetime | None
|
||||
published_at: datetime | None
|
||||
offline_at: datetime | None
|
||||
|
||||
|
||||
class GovernedAssetOut(Schema):
|
||||
public_id: UUID
|
||||
asset_type: str
|
||||
object_id: int
|
||||
current_published_version: int | None
|
||||
versions: list[GovernedAssetVersionOut]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class AssetVersionComparisonOut(Schema):
|
||||
left_version: int
|
||||
right_version: int
|
||||
changes: list[dict[str, Any]]
|
||||
|
||||
|
||||
class AssetImpactOut(Schema):
|
||||
ticket_reference_count: int
|
||||
ticket_adoption_count: int
|
||||
support_analysis_count: int
|
||||
agent_run_ids: list[str]
|
||||
|
||||
Reference in New Issue
Block a user