Documentation
¶
Overview ¶
Package discovery extracts conservative, inspectable static contract candidates. Candidates never replace or automatically update authoritative manifests.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Candidate ¶
type Candidate struct {
ID string `json:"id"`
Producer string `json:"producer"`
Consumer string `json:"consumer,omitempty"`
Contract string `json:"contract"`
SchemaPath string `json:"schema_path,omitempty"`
Pointer string `json:"pointer,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
Method string `json:"method,omitempty"`
Fields []string `json:"fields"`
Evidence model.Evidence `json:"evidence"`
Locations []model.Provenance `json:"locations"`
Ambiguities []string `json:"ambiguities,omitempty"`
}
func MatchAcross ¶
MatchAcross proposes relationships between separately discovered repositories. Only equal literal paths and known HTTP methods match. Source type names and field overlap cannot establish a relationship. Reports and manifests are not mutated, and every returned relationship remains proposed evidence.
type Comparison ¶
type ConsumerUse ¶
type ConsumerUse struct {
Path string `json:"path"`
Endpoint string `json:"endpoint"`
Method string `json:"method"`
Type string `json:"type"`
Fields []string `json:"fields"`
Locations []model.Provenance `json:"locations"`
}
ConsumerUse records a literal typed request with no resolved local producer. Type identifies a statically resolved type, not a runtime contract.
type Report ¶
type Report struct {
Status model.Status `json:"status"`
Revision string `json:"revision"`
Schemas []Schema `json:"schemas"`
Candidates []Candidate `json:"candidates"`
Consumers []ConsumerUse `json:"consumers,omitempty"`
ProposedManifest contracts.Manifest `json:"proposed_manifest"`
Diagnostics []model.Diagnostic `json:"diagnostics"`
Limitations []string `json:"limitations"`
}
Click to show internal directories.
Click to hide internal directories.