Documentation
¶
Index ¶
- Constants
- func DeclaredIntentEvidenceProfiles() []string
- func MarshalJSONResult(result Result) ([]byte, error)
- func ParsePublishedPort(value string) (int, bool)
- func Reconcile(findings []Finding, declared []CapabilityIntent) ([]CapabilityIntent, []ReconciliationItem)
- func WriteRepositoryMetadata(root string, candidate WorkloadSourceCandidate) (string, error)
- type Artifact
- type CapabilityIntent
- type ComposeAnalysis
- type Confidence
- type DeclaredIntentEvidenceProfile
- type Detector
- type Direction
- type Engine
- type Evidence
- type EvidenceKind
- type Finding
- type PortEvidence
- type ReclaimableComposeVolume
- type ReconciliationItem
- type ReconciliationState
- type RepositoryMetadata
- type RepositoryWorkloadSourceMetadata
- type Result
- type RuntimeOperation
- type Snapshot
- type WorkloadComponent
- type WorkloadEvidence
- type WorkloadSourceAdapter
- type WorkloadSourceCandidate
- type WorkloadSourceKind
- type WorkloadSourceReference
- type WorkloadSourceResolution
- type WorkloadSourceResolutionReason
- type WorkloadSourceResolutionState
Constants ¶
const RepositoryMetadataName = "baseharbor.repository.yaml"
const WorkloadSourceAdapterVersion = "baseharbor.workload-source-adapter/v1"
Variables ¶
This section is empty.
Functions ¶
func DeclaredIntentEvidenceProfiles ¶ added in v0.4.19
func DeclaredIntentEvidenceProfiles() []string
DeclaredIntentEvidenceProfiles returns the capability IDs for which repository inspection can prove developer integration from standard bindings/dependencies. It is intentionally exported for development conformance tests.
func MarshalJSONResult ¶
func ParsePublishedPort ¶
ParsePublishedPort extracts the host-side numeric port from common Compose short syntax. It is intentionally conservative and returns false on ambiguity.
func Reconcile ¶ added in v0.4.8
func Reconcile(findings []Finding, declared []CapabilityIntent) ([]CapabilityIntent, []ReconciliationItem)
Reconcile compares read-only repository evidence with the explicit application contract. It never mutates the manifest. In particular, "stale" means only that current inspection did not rediscover evidence; it is never permission to remove a declared capability.
func WriteRepositoryMetadata ¶ added in v0.4.20
func WriteRepositoryMetadata(root string, candidate WorkloadSourceCandidate) (string, error)
Types ¶
type CapabilityIntent ¶ added in v0.4.8
type CapabilityIntent struct {
Capability string `json:"capability"`
Name string `json:"name,omitempty"`
Direction Direction `json:"direction,omitempty"`
}
func CapabilityIntentsFromManifest ¶ added in v0.4.19
func CapabilityIntentsFromManifest(manifest application.Manifest) ([]CapabilityIntent, error)
CapabilityIntentsFromManifest normalizes explicit Application Intent through the portable contract before repository evidence is reconciled. Repository inspection therefore consumes the same capability truth as plan/runtime/MCP and does not maintain a second manifest-specific capability catalog.
type ComposeAnalysis ¶
type ComposeAnalysis struct {
WorkloadServices []string `json:"workload_services,omitempty"`
WorkloadProtocols map[string]string `json:"workload_protocols,omitempty"`
InfrastructureServices []string `json:"infrastructure_services,omitempty"`
AmbiguousServices []string `json:"ambiguous_services,omitempty"`
SQLInstances []string `json:"sql_instances,omitempty"`
CacheInstances []string `json:"cache_instances,omitempty"`
DocumentDatabaseInstances []string `json:"document_database_instances,omitempty"`
MessagingServices []string `json:"messaging_services,omitempty"`
ObjectStorageServices []string `json:"object_storage_services,omitempty"`
Ports []PortEvidence `json:"ports,omitempty"`
HealthChecks []Evidence `json:"health_checks,omitempty"`
DatabaseBootstrapServices []string `json:"database_bootstrap_services,omitempty"`
}
func AnalyzeComposeFile ¶
func AnalyzeComposeFile(root, rel string) (ComposeAnalysis, error)
type Confidence ¶
type Confidence string
const ( ConfidenceDetected Confidence = "detected" ConfidenceSuggested Confidence = "suggested" ConfidencePossible Confidence = "possible" )
type DeclaredIntentEvidenceProfile ¶ added in v0.4.19
DeclaredIntentEvidenceProfile describes provider-neutral repository evidence that can satisfy an already explicit portable capability intent. The intent disambiguates service semantics; the evidence proves that the repository actually wires a compatible client/binding path.
type Engine ¶
type Engine struct {
Detectors []Detector
}
func DefaultEngine ¶
func DefaultEngine() Engine
type Evidence ¶
type Evidence struct {
Kind EvidenceKind `json:"kind"`
Path string `json:"path"`
Detail string `json:"detail"`
}
type EvidenceKind ¶
type EvidenceKind string
const ( EvidenceManifest EvidenceKind = "manifest" EvidenceCompose EvidenceKind = "compose" EvidenceDependency EvidenceKind = "dependency" EvidenceEnv EvidenceKind = "env" EvidenceImport EvidenceKind = "import" EvidencePort EvidenceKind = "port" EvidenceHealth EvidenceKind = "healthcheck" EvidenceConfig EvidenceKind = "config" EvidenceEndpoint EvidenceKind = "endpoint" EvidenceCall EvidenceKind = "call" )
type Finding ¶
type Finding struct {
Service string `json:"service,omitempty"`
Protocol string `json:"protocol,omitempty"`
Capability string `json:"capability"`
Name string `json:"name,omitempty"`
Direction Direction `json:"direction,omitempty"`
Operations []RuntimeOperation `json:"operations,omitempty"`
Confidence Confidence `json:"confidence"`
Evidence []Evidence `json:"evidence"`
}
type PortEvidence ¶
type ReclaimableComposeVolume ¶ added in v0.4.16
func ReclaimableReplacedInfrastructureVolumes ¶ added in v0.4.16
func ReclaimableReplacedInfrastructureVolumes(rendered []byte, selected []string, managedSQL, managedCache bool) ([]ReclaimableComposeVolume, error)
ReclaimableReplacedInfrastructureVolumes returns only named volumes whose rendered Compose ownership can be attributed exclusively to repository PostgreSQL/Redis services that BaseHarbor replaced with managed capabilities. Volumes shared with selected workload services, external volumes and unrecognized infrastructure are intentionally excluded.
type ReconciliationItem ¶ added in v0.4.8
type ReconciliationItem struct {
Capability string `json:"capability"`
Name string `json:"name,omitempty"`
Direction Direction `json:"direction,omitempty"`
State ReconciliationState `json:"state"`
Operations []RuntimeOperation `json:"operations,omitempty"`
Confidence Confidence `json:"confidence,omitempty"`
Evidence []Evidence `json:"evidence,omitempty"`
}
type ReconciliationState ¶ added in v0.4.8
type ReconciliationState string
const ( ReconciliationSatisfied ReconciliationState = "satisfied" ReconciliationNew ReconciliationState = "new" ReconciliationStale ReconciliationState = "stale" ReconciliationAmbiguous ReconciliationState = "ambiguous" )
type RepositoryMetadata ¶ added in v0.4.20
type RepositoryMetadata struct {
Version int `yaml:"version" json:"version"`
WorkloadSource RepositoryWorkloadSourceMetadata `yaml:"workload-source" json:"workload_source"`
}
func ParseRepositoryMetadata ¶ added in v0.4.20
func ParseRepositoryMetadata(data []byte) (RepositoryMetadata, error)
type RepositoryWorkloadSourceMetadata ¶ added in v0.4.20
type RepositoryWorkloadSourceMetadata struct {
Kind WorkloadSourceKind `yaml:"kind" json:"kind"`
Path string `yaml:"path" json:"path"`
}
type Result ¶
type Result struct {
ContractVersion string `json:"contract_version"`
Root string `json:"root"`
Application string `json:"application"`
ExistingManifest string `json:"existing_manifest,omitempty"`
Artifacts []Artifact `json:"artifacts,omitempty"`
WorkloadSourceCandidates []WorkloadSourceCandidate `json:"workload_source_candidates,omitempty"`
WorkloadSourceResolution WorkloadSourceResolution `json:"workload_source_resolution"`
SelectedWorkloadSource *WorkloadSourceCandidate `json:"selected_workload_source,omitempty"`
WorkloadEvidence *WorkloadEvidence `json:"workload_evidence,omitempty"`
ComposeCandidates []string `json:"-"`
SelectedCompose string `json:"-"`
WorkloadServices []string `json:"workload_services,omitempty"`
InfrastructureServices []string `json:"infrastructure_services,omitempty"`
AmbiguousServices []string `json:"ambiguous_services,omitempty"`
Findings []Finding `json:"findings,omitempty"`
RequiredSecrets []string `json:"required_secrets,omitempty"`
SecretCandidates []string `json:"secret_candidates,omitempty"`
SecretSources map[string]string `json:"secret_sources,omitempty"`
Ports []PortEvidence `json:"ports,omitempty"`
HealthChecks []Evidence `json:"health_checks,omitempty"`
DatabaseBootstrapServices []string `json:"database_bootstrap_services,omitempty"`
Declared []CapabilityIntent `json:"declared_capabilities,omitempty"`
Reconciliation []ReconciliationItem `json:"reconciliation,omitempty"`
}
type RuntimeOperation ¶ added in v0.4.8
type RuntimeOperation string
const ( RuntimeCreate RuntimeOperation = "runtime.create" RuntimeGet RuntimeOperation = "runtime.get" RuntimeDelete RuntimeOperation = "runtime.delete" RuntimeRotate RuntimeOperation = "runtime.rotate" )
type WorkloadComponent ¶ added in v0.4.20
type WorkloadComponent struct {
ID string `json:"id"`
Source []WorkloadSourceReference `json:"source"`
Image string `json:"image,omitempty"`
Build string `json:"build,omitempty"`
Ports []string `json:"ports,omitempty"`
Health bool `json:"health,omitempty"`
EnvironmentRefs []string `json:"environment_refs,omitempty"`
ConfigRefs []string `json:"config_refs,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
PersistentStorage []string `json:"persistent_storage,omitempty"`
Exposure []string `json:"exposure,omitempty"`
InfrastructureClass string `json:"infrastructure_class,omitempty"`
}
type WorkloadEvidence ¶ added in v0.4.20
type WorkloadEvidence struct {
SchemaVersion string `json:"schema_version"`
Source WorkloadSourceCandidate `json:"source"`
Components []WorkloadComponent `json:"components,omitempty"`
Opaque []WorkloadSourceReference `json:"opaque,omitempty"`
Fingerprint string `json:"fingerprint"`
}
func NormalizeRepositoryWorkloadSource ¶ added in v0.4.20
func NormalizeRepositoryWorkloadSource(root string, candidate WorkloadSourceCandidate) (WorkloadEvidence, error)
func NormalizeWorkloadSource ¶ added in v0.4.20
func NormalizeWorkloadSource(snapshot Snapshot, candidate WorkloadSourceCandidate) (WorkloadEvidence, error)
type WorkloadSourceAdapter ¶ added in v0.4.20
type WorkloadSourceAdapter interface {
Version() string
Kind() WorkloadSourceKind
Detect(Snapshot) ([]WorkloadSourceCandidate, error)
Resolve(Snapshot, WorkloadSourceCandidate) (WorkloadSourceCandidate, error)
Normalize(Snapshot, WorkloadSourceCandidate) ([]WorkloadComponent, []WorkloadSourceReference, error)
Fingerprint(Snapshot, WorkloadSourceCandidate) string
}
type WorkloadSourceCandidate ¶ added in v0.4.20
type WorkloadSourceCandidate struct {
Kind WorkloadSourceKind `json:"kind"`
Path string `json:"path"`
Confidence Confidence `json:"confidence"`
Evidence []string `json:"evidence,omitempty"`
Unresolved []string `json:"unresolved,omitempty"`
}
func InspectWorkloadSources ¶ added in v0.4.20
func InspectWorkloadSources(snapshot Snapshot) ([]WorkloadSourceCandidate, error)
type WorkloadSourceKind ¶ added in v0.4.20
type WorkloadSourceKind string
const ( WorkloadSourceCompose WorkloadSourceKind = "compose" WorkloadSourceQuadlet WorkloadSourceKind = "quadlet" WorkloadSourceKubernetes WorkloadSourceKind = "kubernetes" )
type WorkloadSourceReference ¶ added in v0.4.20
type WorkloadSourceReference struct {
Kind WorkloadSourceKind `json:"kind"`
Path string `json:"path"`
Resource string `json:"resource,omitempty"`
}
type WorkloadSourceResolution ¶ added in v0.4.20
type WorkloadSourceResolution struct {
SchemaVersion string `json:"schema_version"`
State WorkloadSourceResolutionState `json:"state"`
Reason WorkloadSourceResolutionReason `json:"reason"`
Selected *WorkloadSourceCandidate `json:"selected,omitempty"`
CandidateCount int `json:"candidate_count"`
Message string `json:"message,omitempty"`
}
func ResolveWorkloadSource ¶ added in v0.4.20
func ResolveWorkloadSource(candidates []WorkloadSourceCandidate, explicit *WorkloadSourceCandidate) WorkloadSourceResolution
type WorkloadSourceResolutionReason ¶ added in v0.4.20
type WorkloadSourceResolutionReason string
const ( WorkloadSourceReasonSingleCandidate WorkloadSourceResolutionReason = "single_candidate" WorkloadSourceReasonExplicitRepositorySelection WorkloadSourceResolutionReason = "explicit_repository_selection" WorkloadSourceReasonProductionCandidateDominates WorkloadSourceResolutionReason = "production_candidate_dominates" WorkloadSourceReasonMultipleViableCandidates WorkloadSourceResolutionReason = "multiple_viable_candidates" WorkloadSourceReasonCrossFamilyAmbiguity WorkloadSourceResolutionReason = "cross_family_ambiguity" WorkloadSourceReasonOnlyLowConfidenceCandidates WorkloadSourceResolutionReason = "only_low_confidence_candidates" WorkloadSourceReasonNoSupportedSource WorkloadSourceResolutionReason = "no_supported_source" WorkloadSourceReasonInvalidRepositoryMetadata WorkloadSourceResolutionReason = "invalid_repository_metadata" WorkloadSourceReasonUnsupportedRepositoryMetadata WorkloadSourceResolutionReason = "unsupported_repository_metadata" )
type WorkloadSourceResolutionState ¶ added in v0.4.20
type WorkloadSourceResolutionState string
const ( WorkloadSourceResolutionSelected WorkloadSourceResolutionState = "selected" WorkloadSourceResolutionAmbiguous WorkloadSourceResolutionState = "ambiguous" WorkloadSourceResolutionNotDetected WorkloadSourceResolutionState = "not_detected" WorkloadSourceResolutionInvalid WorkloadSourceResolutionState = "invalid" WorkloadSourceResolutionUnsupported WorkloadSourceResolutionState = "unsupported" )
Source Files
¶
- authoring_detectors.go
- capability_detection_runtime.go
- capability_detectors.go
- compose_analysis.go
- compose_detection.go
- declared_intent_evidence.go
- inspect.go
- manifest_intent.go
- model.go
- reconcile.go
- repository_metadata.go
- result_helpers.go
- workload_source.go
- workload_source_compose_quadlet.go
- workload_source_kubernetes.go