dcdc8d1ddd
全栈知识治理平台首次入库(P1-P10 + 发布链路模拟验证闭环): - 治理核心:源目录/变更集/人工审核/发布批次/发布执行(fail-closed 闸口) - 测试通道:WeKnora 测试 KB 上传/轮询/验收;poll 完成时写入 parser_generation/index_generation,修复 manual/seed 路径发布闸口永久拦截 - 发布适配器 v071(本地 source=测试角色 / 云端 target=生产角色 模拟验证通过): * ES 导出/导入 mapping 自适应(.keyword 子字段、可选 tenant_id) * OSS locator 支持嵌套 scheme;chunks.seq_id 由目标序列分配 * bundle 归档同身份重试原子替换;verifier 按 bundle chunk_type 计数 * 回滚 job payload 支持 prior_execution_id(strict 解码) - 三通道发布+回滚演练实测:publish 4/4 verified,检索命中, rollback 4/4 rolled_back,目标端 PG is_enabled=false、ES is_enabled=false - 前端 A·Data-console 风格全站统一,120 用例通过 - 门禁:go vet / go test 全包通过,gofmt 干净
64 lines
2.0 KiB
Go
64 lines
2.0 KiB
Go
package governance
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// TestPublication is the safe projection of a test publication for the API and web console.
|
|
// It deliberately omits knowledge_id, test_kb_id, source URL, SHA-256, spool path,
|
|
// raw summaries and any credential material.
|
|
type TestPublication struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
IngestState string `json:"ingest_state"`
|
|
ProcessingState string `json:"processing_state"`
|
|
RetrievalState string `json:"retrieval_state"`
|
|
TargetScope string `json:"target_scope"`
|
|
ChangeSetID string `json:"change_set_id"`
|
|
ChangeType string `json:"change_type"`
|
|
CanStart bool `json:"can_start"`
|
|
RetryCount int `json:"retry_count"`
|
|
LastError string `json:"last_error"`
|
|
CanRetry bool `json:"can_retry"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type TestPublicationFilter struct {
|
|
ProcessingState string
|
|
// TargetScope filters the test queue by KB routing target (P4).
|
|
TargetScope string
|
|
Limit int
|
|
Offset int
|
|
}
|
|
|
|
type TestPublicationPage struct {
|
|
Items []TestPublication `json:"items"`
|
|
Total int `json:"total"`
|
|
}
|
|
|
|
type StartTestPublicationsRequest struct {
|
|
PublicationIDs []string
|
|
OperatorRef string
|
|
Reason string
|
|
Now time.Time
|
|
}
|
|
|
|
type StartTestPublicationsResult struct {
|
|
Selected int `json:"selected"`
|
|
Started int `json:"started"`
|
|
AlreadyStarted int `json:"already_started"`
|
|
Unavailable int `json:"unavailable"`
|
|
}
|
|
|
|
// AcceptanceRecord is the safe projection of an acceptance result for the API.
|
|
// EvidenceSummary is returned as an object but only carries counts and booleans,
|
|
// never remote bodies, paths or credentials.
|
|
type AcceptanceRecord struct {
|
|
CheckType string `json:"check_type"`
|
|
State string `json:"state"`
|
|
PolicyVersion string `json:"policy_version"`
|
|
EvidenceSummary json.RawMessage `json:"evidence_summary"`
|
|
ObservedAt time.Time `json:"observed_at"`
|
|
}
|