feat(plugin): add future runtime distribution controls
Some checks failed
Go / build (.exe, 386, windows, windows-386) (push) Has been cancelled
Go / build (.exe, amd64, windows, windows-amd64) (push) Has been cancelled
Go / build (.exe, arm64, windows, windows-arm64) (push) Has been cancelled
Go / build (386, freebsd, freebsd-386) (push) Has been cancelled
Go / build (386, linux, linux-386) (push) Has been cancelled
Go / build (386, netbsd, netbsd-386) (push) Has been cancelled
Go / build (386, openbsd, openbsd-386) (push) Has been cancelled
Go / build (386, plan9, plan9-386) (push) Has been cancelled
Go / build (amd64, darwin, darwin-amd64) (push) Has been cancelled
Go / build (amd64, dragonfly, dragonfly-amd64) (push) Has been cancelled
Go / build (amd64, freebsd, freebsd-amd64) (push) Has been cancelled
Go / build (amd64, illumos, illumos-amd64) (push) Has been cancelled
Go / build (amd64, linux, linux-amd64) (push) Has been cancelled
Go / build (amd64, netbsd, netbsd-amd64) (push) Has been cancelled
Go / build (amd64, openbsd, openbsd-amd64) (push) Has been cancelled
Go / build (amd64, plan9, plan9-amd64) (push) Has been cancelled
Go / build (amd64, solaris, solaris-amd64) (push) Has been cancelled
Go / build (arm, 6, linux, linux-armv6) (push) Has been cancelled
Go / build (arm, 7, linux, linux-armv7) (push) Has been cancelled
Go / build (arm, freebsd, freebsd-arm) (push) Has been cancelled
Go / build (arm, netbsd, netbsd-arm) (push) Has been cancelled
Go / build (arm, openbsd, openbsd-arm) (push) Has been cancelled
Go / build (arm, plan9, plan9-arm) (push) Has been cancelled
Go / build (arm64, darwin, darwin-arm64) (push) Has been cancelled
Go / build (arm64, freebsd, freebsd-arm64) (push) Has been cancelled
Go / build (arm64, linux, linux-arm64) (push) Has been cancelled
Go / build (arm64, netbsd, netbsd-arm64) (push) Has been cancelled
Go / build (arm64, openbsd, openbsd-arm64) (push) Has been cancelled
Go / build (loong64, linux, linux-loong64) (push) Has been cancelled
Go / build (mips, linux, linux-mips) (push) Has been cancelled
Go / build (mips64, linux, linux-mips64) (push) Has been cancelled
Go / build (mips64le, linux, linux-mips64le) (push) Has been cancelled
Go / build (mipsle, linux, linux-mipsle) (push) Has been cancelled
Go / build (ppc64, aix, aix-ppc64) (push) Has been cancelled
Go / build (ppc64, linux, linux-ppc64) (push) Has been cancelled
Go / build (ppc64, openbsd, openbsd-ppc64) (push) Has been cancelled
Go / build (ppc64le, linux, linux-ppc64le) (push) Has been cancelled
Go / build (riscv64, freebsd, freebsd-riscv64) (push) Has been cancelled
Go / build (riscv64, linux, linux-riscv64) (push) Has been cancelled
Go / build (riscv64, openbsd, openbsd-riscv64) (push) Has been cancelled
Go / build (s390x, linux, linux-s390x) (push) Has been cancelled
Go / merge-artifacts (push) Has been cancelled
Docker Image / docker (push) Has been cancelled

This commit is contained in:
2026-06-26 13:31:24 +08:00
parent f3fb924a3a
commit 54f5c322e9
18 changed files with 1710 additions and 63 deletions

View File

@@ -19,12 +19,17 @@ const (
ArtifactTypeSource = "source"
RuntimeGoPlugin = "go-plugin"
RuntimeBuiltin = "builtin"
RuntimeSandbox = "sandbox-process"
RuntimeWASM = "wasm"
RuntimeEntry = "plugin.so"
RuntimeWASMEntry = "plugin.wasm"
SourceBuildEntry = "."
ExtensionUpstreamConnect = "upstream.connect/v1"
ExtensionRouteResolve = "route.resolve/v1"
ExtensionRouteResolver = "route.resolver/v1"
ExtensionRuleEvaluate = "rule.evaluate/v1"
ExtensionConfigValidate = "config.validate/v1"
ExtensionStatusPing = "status.ping/v1"
ExtensionConnectionFilter = "connection.filter/v1"
ExtensionHandshakeFilter = "handshake.filter/v1"
@@ -64,6 +69,26 @@ const (
RuntimeDisabled = "disabled"
RuntimeDraining = "draining"
PluginServiceModeInProcess = "in-process"
PluginServiceModeGoPluginProcess = "go-plugin-process"
PluginServiceModeSandboxProcess = "sandbox-process"
PluginMigrationDrainOnly = "drain-only"
PluginMigrationFDLive = "fd-live"
PluginMigrationFDLiveSHM = "fd-live-shm"
RepositoryTypeOfficial = "official"
RepositoryTypeInternal = "internal"
RepositoryTypeFile = "file"
RepositoryTypeURL = "url"
SupplyChainStatusAllowed = "allowed"
SupplyChainStatusBlocked = "blocked"
SupplyChainStatusWarning = "warning"
InstrumentationStatusAvailable = "available"
InstrumentationStatusBlocked = "blocked"
PolicyProfileDev = "dev"
PolicyProfileStaging = "staging"
PolicyProfileProd = "prod"
@@ -173,6 +198,7 @@ type ExtensionPoint struct {
type RuntimeLimits struct {
HandlerTimeoutMS int `json:"handler_timeout_ms"`
InitialWriteTimeoutMS int `json:"initial_write_timeout_ms"`
MemoryBytes int `json:"memory_bytes,omitempty"`
}
type SecretSpec struct {
@@ -254,9 +280,15 @@ type CapabilitySummary struct {
ExternalDeps []ExternalSpec `json:"external_dependencies,omitempty"`
DataStores []DataStoreSpec `json:"data_stores,omitempty"`
FileStores []FileStoreSpec `json:"file_stores,omitempty"`
Runtime RuntimeCapability `json:"runtime,omitempty"`
Raw json.RawMessage `json:"raw,omitempty"`
}
type RuntimeCapability struct {
RequiredCapabilities []string `json:"required_capabilities,omitempty"`
RequiredFeatures []string `json:"required_features,omitempty"`
}
type UpstreamConnectCapability struct {
Mode string `json:"mode,omitempty"`
}
@@ -670,6 +702,105 @@ type BuildRequest struct {
VendorRequired bool `json:"vendor_required"`
}
type PluginServiceState struct {
DesiredMode string `json:"desired_mode"`
ActiveMode string `json:"active_mode"`
AppliedAt int64 `json:"applied_at"`
RestartRequired bool `json:"restart_required"`
LiveMigration string `json:"live_migration"`
LastError string `json:"last_error"`
UpdatedBy string `json:"updated_by"`
UpdatedAt int64 `json:"updated_at"`
}
type PluginServiceStatus struct {
Service PluginServiceState `json:"service"`
Hosts []PluginHostRuntimeSummary `json:"hosts"`
}
type PluginHostRuntimeSummary struct {
PluginID string `json:"plugin_id"`
ArtifactID string `json:"artifact_id"`
State string `json:"state"`
DrainMode string `json:"drain_mode"`
CrashLoop bool `json:"crash_loop"`
CrashCount int `json:"crash_count"`
LastError string `json:"last_error"`
StartedAt int64 `json:"started_at"`
DrainingAt int64 `json:"draining_at"`
ExitedAt int64 `json:"exited_at"`
LastCrashAt int64 `json:"last_crash_at"`
}
type RepositoryImportRequest struct {
RepositoryType string `json:"repository_type"`
IndexPath string `json:"index_path"`
ArtifactID string `json:"artifact_id"`
PluginID string `json:"plugin_id"`
Version string `json:"version"`
TrustPolicy string `json:"trust_policy"`
}
type RepositoryImportRecord struct {
ID int64 `json:"id"`
RepositoryType string `json:"repository_type"`
IndexPath string `json:"index_path"`
RepositoryName string `json:"repository_name"`
CandidateID string `json:"candidate_id"`
PluginID string `json:"plugin_id"`
Version string `json:"version"`
ArtifactID string `json:"artifact_id"`
PackageSHA256 string `json:"package_sha256"`
TrustPolicy string `json:"trust_policy"`
AdmissionJSON string `json:"admission_json"`
ImportedBy string `json:"imported_by"`
CreatedAt int64 `json:"created_at"`
}
type SupplyChainAssessment struct {
ID int64 `json:"id"`
PluginID string `json:"plugin_id"`
ArtifactID string `json:"artifact_id"`
Status string `json:"status"`
Issues []GovernanceIssue `json:"issues"`
Signature map[string]any `json:"signature,omitempty"`
SBOM map[string]any `json:"sbom,omitempty"`
License map[string]any `json:"license,omitempty"`
Advisory map[string]any `json:"advisory,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
CreatedBy string `json:"created_by"`
CreatedAt int64 `json:"created_at"`
}
type InstrumentationRecord struct {
ID int64 `json:"id"`
Name string `json:"name"`
Version string `json:"version"`
Profile string `json:"profile"`
GeneratedDiffHash string `json:"generated_diff_hash"`
ProvenanceJSON string `json:"provenance_json"`
ConformanceJSON string `json:"conformance_json"`
BenchmarkJSON string `json:"benchmark_json"`
SmokeJSON string `json:"smoke_json"`
RunbookRollback string `json:"runbook_rollback"`
Status string `json:"status"`
CreatedBy string `json:"created_by"`
CreatedAt int64 `json:"created_at"`
}
type InstrumentationRequest struct {
Name string `json:"name"`
Version string `json:"version"`
Profile string `json:"profile"`
GeneratedDiffHash string `json:"generated_diff_hash"`
Provenance map[string]any `json:"provenance"`
Conformance map[string]any `json:"conformance"`
Benchmark map[string]any `json:"benchmark"`
Smoke map[string]any `json:"smoke"`
RunbookRollback string `json:"runbook_rollback"`
Status string `json:"status"`
}
type GCCandidate struct {
Kind string `json:"kind"`
ID string `json:"id"`