feat: implement permission-aware search baseline
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class SearchExternalReferenceResponse(BaseModel):
|
||||
system: str
|
||||
object_type: str
|
||||
object_id: str
|
||||
maturity: str
|
||||
connector_id: str | None = None
|
||||
canonical_url: str | None = None
|
||||
version: str | None = None
|
||||
etag: str | None = None
|
||||
observed_at: str | None = None
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SearchResultResponse(BaseModel):
|
||||
provider_id: str
|
||||
module_id: str
|
||||
resource_type: str
|
||||
resource_id: str
|
||||
title: str
|
||||
summary: str | None = None
|
||||
url: str
|
||||
score: float = 0.0
|
||||
highlights: list[str] = Field(default_factory=list)
|
||||
breadcrumbs: list[str] = Field(default_factory=list)
|
||||
external_reference: SearchExternalReferenceResponse | None = None
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SearchProviderDiagnosticResponse(BaseModel):
|
||||
provider_id: str
|
||||
status: Literal["unavailable"]
|
||||
message: str
|
||||
|
||||
|
||||
class SearchResponse(BaseModel):
|
||||
query: str
|
||||
results: list[SearchResultResponse]
|
||||
diagnostics: list[SearchProviderDiagnosticResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class SearchProviderResponse(BaseModel):
|
||||
id: str
|
||||
module_id: str
|
||||
resource_types: list[str]
|
||||
order: int
|
||||
|
||||
|
||||
class SearchProviderListResponse(BaseModel):
|
||||
providers: list[SearchProviderResponse]
|
||||
|
||||
|
||||
__all__ = [
|
||||
"SearchProviderDiagnosticResponse",
|
||||
"SearchProviderListResponse",
|
||||
"SearchProviderResponse",
|
||||
"SearchResponse",
|
||||
"SearchResultResponse",
|
||||
]
|
||||
Reference in New Issue
Block a user