Documentation
¶
Overview ¶
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-AIRBORNE-ASSURANCE-EXPORTER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
Code generated by cmd/sysmlmetamodel; DO NOT EDIT.
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER
Index ¶
- Constants
- Variables
- func EffectiveSchemaVersion(version int) (int, error)
- func HasSemanticErrors(diagnostics []SemanticDiagnostic) bool
- func IsCodeID(id string) bool
- func IsOpenEvidenceState(state string) bool
- func NAFV41ViewpointTitle(code string) (string, bool)
- func NormalizeDisclaimer(value string) string
- func ParseExactModuleVersion(modulePath, version string) (module.Version, error)
- func ParseQualifiedReference(ref string) (alias, id string, err error)
- func ProjectSemanticModel(bundle Bundle) (SemanticModel, []SemanticDiagnostic)
- func QualifyReference(alias, id string) (string, error)
- func ReadCUEModulePath(dir string) (string, error)
- type Actor
- type AirborneApproval
- type AirborneProfile
- type AirborneReview
- type AirborneTool
- type AirborneVerificationCase
- type Allocation
- type ArchitectureDocument
- type ArchitectureInput
- type ArchitectureInputDocument
- type AssuranceDocument
- type AssuranceModel
- type AttackVector
- type AuthoredArchitecture
- type AuthoringContract
- type AuthoringDocument
- type AviationDiagnostic
- type AviationDocument
- type AviationProfile
- type AviationValidationError
- type BehaviorDocument
- type BehaviorModel
- type Bundle
- type CanonicalBundle
- type CatalogDocument
- type CatalogEntry
- type CatalogGroups
- type CertificationLiaison
- type ComplianceDocument
- type ComplianceMapping
- type ComplianceModel
- type ComplianceProfile
- type CompositionModel
- type ConfigurationArtifact
- type ConfigurationBaseline
- type ConfigurationBuild
- type ContractEntry
- type ContractModel
- type Control
- type ControlEvidence
- type ControlVerification
- type ControlVerificationEvidence
- type DataObject
- type Decision
- type DecisionsDocument
- type DependencyGuide
- type DeploymentTarget
- type DesignDocument
- type DesignFunctionalGroup
- type DesignFunctionalUnit
- type DesignModel
- type DesignView
- type DocumentControl
- type DocumentDefinition
- type DocumentReferences
- type DocumentSection
- type Event
- type EvidenceReference
- type Expected
- type Flow
- type FlowStep
- type FunctionalGroup
- type FunctionalUnit
- type HardwareInterface
- type HardwareItem
- type IndependenceRecord
- type InferenceHints
- type InputComposition
- type InputSubsystem
- type Interface
- type LifecycleDataRecord
- type LintRun
- type LintWaiver
- type ManifestDependency
- type ManifestDocument
- type ManifestPublication
- type Mapping
- type MetamodelPropertyValue
- type MetamodelValue
- type ModelMeta
- type ModuleIdentity
- type Multiplicity
- type NAFConcern
- type NAFProduct
- type NAFProfile
- type NAFStakeholder
- type ObjectiveReference
- type OfficialSysMLMetaclass
- type OfficialSysMLProperty
- type OfficialSysMLRelationshipEnd
- type POAMArtifact
- type POAMItem
- type ProblemReport
- type ReferencedElement
- type Requirement
- type RequirementAssurance
- type RequirementsDocument
- type Risk
- type RiskEvidence
- type SQAAudit
- type Satisfaction
- type SemanticContent
- type SemanticDiagnostic
- type SemanticElement
- type SemanticElementKind
- type SemanticExpression
- type SemanticFeature
- type SemanticFeatureKind
- type SemanticImport
- type SemanticMetadata
- type SemanticModel
- type SemanticProjectionError
- type SemanticQuantity
- type SemanticRelationship
- type SemanticRelationshipKind
- type SemanticSeverity
- type SemanticValue
- type StableIdentifierGuide
- type State
- type StructuralCoverage
- type Subsystem
- type ThreatAssumption
- type ThreatAssumptionEvidence
- type ThreatMitigation
- type ThreatMitigationEvidence
- type ThreatOutOfScope
- type ThreatOutOfScopeEvidence
- type ThreatScenario
- type ThreatScenarioEvidence
- type ToolAssessment
- type TrustBoundary
- type UncoveredDisposition
- type VerificationExecution
- type VerificationProcedure
- type View
- type ViewsDocument
- type WorkspaceDocument
- type WorkspaceReplacement
Constants ¶
const AuthoringContractVersion = "engineering-model.authoring.v2"
const CurrentSchemaVersion = 2
const WorkspaceEnv = "ENGMOD_WORK"
WorkspaceEnv selects the model workspace: "off" ignores every engmod.work.yml, a file path uses that file only, unset searches parents.
const WorkspaceFileName = "engmod.work.yml"
const WorkspaceOff = "off"
WorkspaceOff is the workspace mode that disables workspace lookup.
Variables ¶
var NAFV41Viewpoints = map[string]string{
"C1": "Capability Taxonomy",
"C2": "Enterprise Vision",
"C3": "Capability Dependencies",
"C4": "Standard Processes",
"C5": "Effects",
"C7": "Performance Criteria",
"C8": "Planning Constraints",
"Cr": "Capability Roadmap",
"S1": "Service Taxonomy",
"S2": "Service Structure",
"S3": "Service Interfaces",
"S4": "Service Functions",
"S5": "Service States",
"S6": "Service Sequence",
"S7": "Service Interface Parameters",
"S8": "Service Constraints",
"Sr": "Service Roadmap",
"C1-S1": "Service to Capability Mapping",
"L1": "Logical Taxonomy",
"L2": "Logical Structure",
"L2-L3": "Logical Concept",
"L3": "Logical Interactions",
"L4": "Logical Activities",
"L5": "Logical States",
"L6": "Logical Sequence",
"L7": "Information Model",
"L8": "Logical Constraints",
"Lr": "Logical Roadmap",
"P1": "Resource Taxonomy",
"P2": "Resource Structure",
"P3": "Resource Interactions",
"P4": "Resource Functions",
"L4-P4": "Activity to Function Mapping",
"P5": "Resource States",
"P6": "Resource Sequence",
"P7": "Data Model",
"P8": "Resource Constraints",
"Pr": "Resource Roadmap",
"A1": "Metadata Definitions",
"A2": "Architecture Products",
"A3": "Architecture Correspondence",
"A4": "Architecture Methodology",
"A5": "Architecture Status",
"A6": "Architecture Versions",
"A7": "Architecture Metadata",
"A8": "Architecture Standards",
"Ar": "Architecture Roadmap",
}
NAFV41Viewpoints is the official NAF v4.1 architecture-product registry from the framework's viewpoint chapter.
TRLC-LINKS: REQ-EMG-041, REQ-EMG-043 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-VALIDATION-ENGINE, FU-NAF-EXPORTER, REF-NAF-V4-1-SPECIFICATION
var OfficialSysMLMetaclasses = map[string]OfficialSysMLMetaclass{}/* 175 elements not displayed */
var OfficialSysMLSemanticAliases = map[string]string{}/* 327 elements not displayed */
var SysMLSemanticAliasExceptions = map[string]string{
"engineering_extension": "typed Engineering Model extension outside the official metamodel",
"quantity_definition": "standard-library semantic concept, not an Ecore metaclass",
"stakeholder_definition": "standard-library semantic concept, not an Ecore metaclass",
"stakeholder_usage": "standard-library semantic concept, not an Ecore metaclass",
"unit_definition": "standard-library semantic concept, not an Ecore metaclass",
}
Functions ¶
func EffectiveSchemaVersion ¶
TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
func HasSemanticErrors ¶
func HasSemanticErrors(diagnostics []SemanticDiagnostic) bool
HasSemanticErrors reports whether canonical projection failed.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
func IsCodeID ¶
IsCodeID reports whether id is an inferred, path-derived CODE identifier. TRLC-LINKS: REQ-EMG-059 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-CODEMAP-INFERENCE
func NAFV41ViewpointTitle ¶
NAFV41ViewpointTitle resolves an official viewpoint code. TRLC-LINKS: REQ-EMG-041, REQ-EMG-043
func ParseExactModuleVersion ¶
ParseExactModuleVersion validates an explicit CUE module path and canonical semantic version. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
func ParseQualifiedReference ¶
ParseQualifiedReference splits alias::ID and rejects legacy slash-qualified and malformed references. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051
func ProjectSemanticModel ¶
func ProjectSemanticModel(bundle Bundle) (SemanticModel, []SemanticDiagnostic)
ProjectSemanticModel derives one deterministic semantic graph from the YAML-backed Bundle. It never mutates or replaces the authored model.
TRLC-LINKS: REQ-EMG-035 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-CANONICAL-SEMANTIC-MODEL, DO-ARCHITECTURE-MODEL
func QualifyReference ¶
QualifyReference creates the only supported cross-module identifier form. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051
func ReadCUEModulePath ¶
ReadCUEModulePath reads the canonical module identity from cue.mod/module.cue. TRLC-LINKS: REQ-EMG-047, REQ-EMG-048, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
Types ¶
type Actor ¶
type Actor struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type AirborneApproval ¶
type AirborneProfile ¶
type AirborneProfile struct {
ID string `yaml:"id" json:"id"`
Standard string `yaml:"standard" json:"standard"`
Edition string `yaml:"edition" json:"edition"`
SoftwareLevel string `yaml:"softwareLevel" json:"softwareLevel"`
SoftwareItem string `yaml:"softwareItem" json:"softwareItem"`
Applicant string `yaml:"applicant" json:"applicant"`
Authority string `yaml:"authority" json:"authority"`
CertificationBasis string `yaml:"certificationBasis" json:"certificationBasis"`
SafetyAllocationReference string `yaml:"safetyAllocationReference" json:"safetyAllocationReference"`
Supplements []string `yaml:"supplements" json:"supplements"`
ClaimsDisclaimer string `yaml:"claimsDisclaimer" json:"claimsDisclaimer"`
}
type AirborneReview ¶
type AirborneReview struct {
ID string `yaml:"id" json:"id"`
SubjectRefs []string `yaml:"subjectRefs" json:"subjectRefs"`
Reviewer string `yaml:"reviewer" json:"reviewer"`
Result string `yaml:"result" json:"result"`
Evidence []string `yaml:"evidence" json:"evidence"`
State string `yaml:"state" json:"state"`
}
type AirborneTool ¶
type AirborneTool struct {
ID string `yaml:"id" json:"id"`
Name string `yaml:"name" json:"name"`
Version string `yaml:"version" json:"version"`
IntendedUse string `yaml:"intendedUse" json:"intendedUse"`
CreditClaimed bool `yaml:"creditClaimed" json:"creditClaimed"`
Assessment ToolAssessment `yaml:"assessment" json:"assessment"`
Environment string `yaml:"environment" json:"environment"`
Baseline string `yaml:"baseline" json:"baseline"`
Status string `yaml:"status" json:"status"`
}
type AirborneVerificationCase ¶
type AirborneVerificationCase struct {
ID string `yaml:"id" json:"id"`
Method string `yaml:"method" json:"method"`
Intent string `yaml:"intent" json:"intent"`
RequirementRefs []string `yaml:"requirementRefs" json:"requirementRefs"`
ExpectedResult string `yaml:"expectedResult" json:"expectedResult"`
ProcedureRef string `yaml:"procedureRef" json:"procedureRef"`
IndependenceRequired bool `yaml:"independenceRequired" json:"independenceRequired"`
State string `yaml:"state" json:"state"`
}
type Allocation ¶
type Allocation struct {
Requirement string `yaml:"requirement"` // this system's requirement id
To string `yaml:"to"` // subsystem id or hardware item id
Target string `yaml:"target"` // alias::ID selected by the subsystem publication
Rationale string `yaml:"rationale"`
}
Allocation binds a parent requirement onto an alias-qualified identifier visible through the subsystem's selected publication. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ArchitectureDocument ¶
type ArchitectureDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Model ModelMeta `yaml:"model"`
Semantics SemanticContent `yaml:"semantics"`
Decisions []Decision `yaml:"-"`
AuthoredArchitecture AuthoredArchitecture `yaml:"authoredArchitecture"`
Compliance ComplianceModel `yaml:"compliance"`
Contract ContractModel `yaml:"contract"`
Composition CompositionModel `yaml:"composition"`
InferenceHints InferenceHints `yaml:"inferenceHints"`
NAF NAFProfile `yaml:"naf"`
Views []View `yaml:"views"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ArchitectureInput ¶
type ArchitectureInput struct {
FunctionalGroups []FunctionalGroup `yaml:"functionalGroups"`
FunctionalUnits []FunctionalUnit `yaml:"functionalUnits"`
Actors []Actor `yaml:"actors"`
ReferencedElements []ReferencedElement `yaml:"referencedElements"`
Interfaces []Interface `yaml:"interfaces"`
DataObjects []DataObject `yaml:"dataObjects"`
DeploymentTargets []DeploymentTarget `yaml:"deploymentTargets"`
HardwareItems []HardwareItem `yaml:"hardwareItems"`
HardwareInterfaces []HardwareInterface `yaml:"hardwareInterfaces"`
Contract ContractModel `yaml:"contract"`
Composition InputComposition `yaml:"composition"`
Semantics SemanticContent `yaml:"semantics"`
}
ArchitectureInput owns schema-v2 structural architecture declarations.
type ArchitectureInputDocument ¶
type ArchitectureInputDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Architecture ArchitectureInput `yaml:"architecture"`
}
ArchitectureInputDocument is the schema-v2 structural architecture document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type AssuranceDocument ¶
type AssuranceDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Assurance AssuranceModel `yaml:"assurance"`
}
AssuranceDocument is the schema-v2 assurance document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type AssuranceModel ¶
type AssuranceModel struct {
AttackVectors []AttackVector `yaml:"attackVectors"`
Controls []Control `yaml:"controls"`
Risks []Risk `yaml:"risks"`
POAMItems []POAMItem `yaml:"poamItems"`
TrustBoundaries []TrustBoundary `yaml:"trustBoundaries"`
ThreatScenarios []ThreatScenario `yaml:"threatScenarios"`
ThreatAssumptions []ThreatAssumption `yaml:"threatAssumptions"`
ThreatOutOfScope []ThreatOutOfScope `yaml:"threatOutOfScope"`
ThreatMitigations []ThreatMitigation `yaml:"threatMitigations"`
ControlVerifications []ControlVerification `yaml:"controlVerifications"`
}
AssuranceModel owns schema-v2 security and assurance declarations.
type AttackVector ¶
type AttackVector struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type AuthoredArchitecture ¶
type AuthoredArchitecture struct {
FunctionalGroups []FunctionalGroup `yaml:"functionalGroups"`
FunctionalUnits []FunctionalUnit `yaml:"functionalUnits"`
Actors []Actor `yaml:"actors"`
AttackVectors []AttackVector `yaml:"attackVectors"`
ReferencedElements []ReferencedElement `yaml:"referencedElements"`
Interfaces []Interface `yaml:"interfaces"`
DataObjects []DataObject `yaml:"dataObjects"`
DeploymentTargets []DeploymentTarget `yaml:"deploymentTargets"`
HardwareItems []HardwareItem `yaml:"hardwareItems"`
HardwareInterfaces []HardwareInterface `yaml:"hardwareInterfaces"`
Controls []Control `yaml:"controls"`
Risks []Risk `yaml:"risks"`
POAMItems []POAMItem `yaml:"poamItems"`
TrustBoundaries []TrustBoundary `yaml:"trustBoundaries"`
States []State `yaml:"states"`
Events []Event `yaml:"events"`
Flows []Flow `yaml:"flows"`
ThreatScenarios []ThreatScenario `yaml:"threatScenarios"`
ThreatAssumptions []ThreatAssumption `yaml:"threatAssumptions"`
ThreatOutOfScope []ThreatOutOfScope `yaml:"threatOutOfScope"`
ThreatMitigations []ThreatMitigation `yaml:"threatMitigations"`
ControlVerifications []ControlVerification `yaml:"controlVerifications"`
Mappings []Mapping `yaml:"mappings"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type AuthoringContract ¶
type AuthoringContract struct {
ContractVersion string `json:"contractVersion"`
CanonicalFormat string `json:"canonicalFormat"`
SchemaAuthority string `json:"schemaAuthority"`
Documents []AuthoringDocument `json:"documents"`
StableIdentifiers StableIdentifierGuide `json:"stableIdentifiers"`
Dependencies DependencyGuide `json:"dependencies"`
AuthoringOrder []string `json:"authoringOrder"`
Invariants []string `json:"invariants"`
Compatibility []string `json:"compatibility"`
}
AuthoringContract is compact machine context for editing the canonical YAML set.
func BuildAuthoringContract ¶
func BuildAuthoringContract(bundle Bundle) AuthoringContract
BuildAuthoringContract describes the loaded input model without copying its domain graph. TRLC-LINKS: REQ-EMG-044, REQ-EMG-045, REQ-EMG-047, REQ-EMG-048, REQ-EMG-049, REQ-EMG-053 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-MCP-SERVER, DO-MODEL-AUTHORING-CONTRACT
type AuthoringDocument ¶
type AviationDiagnostic ¶
type AviationDiagnostic struct {
Code string `json:"code"`
Path string `json:"path"`
Message string `json:"message"`
}
func ValidateAviation ¶
func ValidateAviation(doc AviationDocument, requirements RequirementsDocument, architectures ...ArchitectureInputDocument) []AviationDiagnostic
ValidateAviation performs cross-document and evidence-chain validation. TRLC-LINKS: REQ-EMG-054
type AviationDocument ¶
type AviationDocument struct {
SchemaVersion int `yaml:"schemaVersion" json:"schemaVersion"`
Aviation AviationProfile `yaml:"aviation" json:"aviation"`
}
TRLC-LINKS: REQ-EMG-053, REQ-EMG-054
type AviationProfile ¶
type AviationProfile struct {
Profile AirborneProfile `yaml:"profile" json:"profile"`
LifecycleData []LifecycleDataRecord `yaml:"lifecycleData" json:"lifecycleData"`
Objectives []ObjectiveReference `yaml:"objectives" json:"objectives"`
RequirementAssurance []RequirementAssurance `yaml:"requirementAssurance" json:"requirementAssurance"`
VerificationCases []AirborneVerificationCase `yaml:"verificationCases" json:"verificationCases"`
Procedures []VerificationProcedure `yaml:"procedures" json:"procedures"`
Executions []VerificationExecution `yaml:"executions" json:"executions"`
Baselines []ConfigurationBaseline `yaml:"baselines" json:"baselines"`
Builds []ConfigurationBuild `yaml:"builds" json:"builds"`
Coverage []StructuralCoverage `yaml:"coverage" json:"coverage"`
Tools []AirborneTool `yaml:"tools" json:"tools"`
Reviews []AirborneReview `yaml:"reviews" json:"reviews"`
Approvals []AirborneApproval `yaml:"approvals" json:"approvals"`
Independence []IndependenceRecord `yaml:"independence" json:"independence"`
ProblemReports []ProblemReport `yaml:"problemReports" json:"problemReports"`
SQAAudits []SQAAudit `yaml:"sqaAudits" json:"sqaAudits"`
Liaison []CertificationLiaison `yaml:"liaison" json:"liaison"`
}
type AviationValidationError ¶
type AviationValidationError struct{ Diagnostics []AviationDiagnostic }
func (*AviationValidationError) Error ¶
func (e *AviationValidationError) Error() string
TRLC-LINKS: REQ-EMG-054
type BehaviorDocument ¶
type BehaviorDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Behavior BehaviorModel `yaml:"behavior"`
}
BehaviorDocument is the schema-v2 behavioral document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type BehaviorModel ¶
type BehaviorModel struct {
States []State `yaml:"states"`
Events []Event `yaml:"events"`
Flows []Flow `yaml:"flows"`
Relationships []Mapping `yaml:"relationships"`
}
BehaviorModel owns authored behavior and typed relationships.
type Bundle ¶
type Bundle struct {
ManifestPath string
ArchitecturePath string
BehaviorPath string
AssurancePath string
CompliancePath string
ViewsPath string
CatalogPath string
DecisionsPath string
RequirementsPath string
DesignPath string
AviationPath string
Manifest ManifestDocument
Architecture ArchitectureDocument
Behavior BehaviorDocument
Assurance AssuranceDocument
Compliance ComplianceDocument
Views ViewsDocument
Catalog CatalogDocument
Decisions DecisionsDocument
Requirements RequirementsDocument
Design DesignDocument
Aviation *AviationDocument
// CodeIndex, when set, returns how many in-scope files or declarations produce each
// inferred CODE identifier. It is built lazily, so validation only scans code when the
// model references a CODE identifier.
CodeIndex func() map[string]int `yaml:"-" json:"-"`
// CodeScopeRoot, when set, is the directory the model owns for code instead of the
// one derived from the git working tree. Composition sets it for a resolved
// dependency to the dependency's own module directory.
CodeScopeRoot string `yaml:"-" json:"-"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
func LoadBundle ¶
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046, REQ-EMG-049, REQ-EMG-051, REQ-EMG-053, REQ-EMG-054
type CanonicalBundle ¶
type CanonicalBundle struct {
// contains filtered or unexported fields
}
CanonicalBundle is the single exporter-facing compatibility facade. Documents are retained as serialization DTOs for output fidelity; Semantic is the only normalized concept graph.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-CANONICAL-SEMANTIC-MODEL
func LoadCanonicalBundle ¶
func LoadCanonicalBundle(manifestPath string) (CanonicalBundle, error)
LoadCanonicalBundle validates YAML, decodes it, and constructs the canonical semantic projection before returning exporter input.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036, REQ-EMG-044, REQ-EMG-046
func NewCanonicalBundle ¶
func NewCanonicalBundle(bundle Bundle) (CanonicalBundle, error)
NewCanonicalBundle constructs the one normalized semantic graph used by compatibility exporters. Projection errors are never hidden by falling back to the decoded YAML DTOs.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
func NewCanonicalRequirements ¶
func NewCanonicalRequirements(requirements RequirementsDocument) (CanonicalBundle, error)
NewCanonicalRequirements constructs canonical requirement concepts for requirement-only projections such as TRLC. The synthetic package is an adapter namespace, not an independently maintained domain graph.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
func (CanonicalBundle) Diagnostics ¶
func (c CanonicalBundle) Diagnostics() []SemanticDiagnostic
Diagnostics returns projection warnings and errors.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
func (CanonicalBundle) Documents ¶
func (c CanonicalBundle) Documents() Bundle
Documents returns the validated serialization DTOs associated with the canonical graph. Callers must not treat them as another normalized graph.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
func (CanonicalBundle) Semantic ¶
func (c CanonicalBundle) Semantic() SemanticModel
Semantic returns the canonical semantic model.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
type CatalogDocument ¶
type CatalogDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Catalog CatalogGroups `yaml:"catalog"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type CatalogEntry ¶
type CatalogEntry struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Definition string `yaml:"definition"`
Aliases []string `yaml:"aliases"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001
type CatalogGroups ¶
type CatalogGroups struct {
Systems []CatalogEntry `yaml:"systems"`
FunctionalGroups []CatalogEntry `yaml:"functionalGroups"`
FunctionalUnits []CatalogEntry `yaml:"functionalUnits"`
ReferencedElements []CatalogEntry `yaml:"referencedElements"`
Actors []CatalogEntry `yaml:"actors"`
AttackVectors []CatalogEntry `yaml:"attackVectors"`
Events []CatalogEntry `yaml:"events"`
States []CatalogEntry `yaml:"states"`
Features []CatalogEntry `yaml:"features"`
Modes []CatalogEntry `yaml:"modes"`
Conditions []CatalogEntry `yaml:"conditions"`
DataTerms []CatalogEntry `yaml:"dataTerms"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type CertificationLiaison ¶
type CertificationLiaison struct {
ID string `yaml:"id" json:"id"`
Milestone string `yaml:"milestone" json:"milestone"`
SubmissionRefs []string `yaml:"submissionRefs" json:"submissionRefs"`
Findings []string `yaml:"findings" json:"findings"`
AuthorityState string `yaml:"authorityState" json:"authorityState"`
AuthorityRecord EvidenceReference `yaml:"authorityRecord" json:"authorityRecord"`
}
type ComplianceDocument ¶
type ComplianceDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Compliance ComplianceModel `yaml:"compliance"`
}
ComplianceDocument is the schema-v2 compliance document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type ComplianceMapping ¶
type ComplianceMapping struct {
ID string `yaml:"id"`
ProfileRef string `yaml:"profileRef"`
ControlIDs []string `yaml:"controlIds"`
ModelControlRef string `yaml:"modelControlRef"`
AppliesTo []string `yaml:"appliesTo"`
ImplementationType string `yaml:"implementationType"`
ImplementationStatus string `yaml:"implementationStatus"`
Status string `yaml:"status"`
Narrative string `yaml:"narrative"`
Rationale string `yaml:"rationale"`
Evidence []ControlEvidence `yaml:"evidence"`
InheritedFrom []string `yaml:"inheritedFrom"`
ResponsibleRoles []string `yaml:"responsibleRoles"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER
type ComplianceModel ¶
type ComplianceModel struct {
Profiles []ComplianceProfile `yaml:"profiles"`
Mappings []ComplianceMapping `yaml:"mappings"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER
type ComplianceProfile ¶
type ComplianceProfile struct {
ID string `yaml:"id"`
Href string `yaml:"href"`
CatalogHref string `yaml:"catalogHref"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER
type CompositionModel ¶
type CompositionModel struct {
Subsystems []Subsystem `yaml:"subsystems"`
Allocations []Allocation `yaml:"allocations"`
Satisfactions []Satisfaction `yaml:"satisfactions"`
}
CompositionModel holds parent-only composition data: referenced subsystems and the allocation of this system's requirements onto them. Absent in a leaf system. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ConfigurationArtifact ¶
type ConfigurationBaseline ¶
type ConfigurationBaseline struct {
ID string `yaml:"id" json:"id"`
Version string `yaml:"version" json:"version"`
Hash string `yaml:"hash" json:"hash"`
Artifacts []ConfigurationArtifact `yaml:"artifacts" json:"artifacts"`
State string `yaml:"state" json:"state"`
}
type ConfigurationBuild ¶
type ConfigurationBuild struct {
ID string `yaml:"id" json:"id"`
Baseline string `yaml:"baseline" json:"baseline"`
Hash string `yaml:"hash" json:"hash"`
Artifacts []ConfigurationArtifact `yaml:"artifacts" json:"artifacts"`
Compiler string `yaml:"compiler" json:"compiler"`
CompilerOptions []string `yaml:"compilerOptions" json:"compilerOptions"`
Target string `yaml:"target" json:"target"`
Environment string `yaml:"environment" json:"environment"`
Reproducibility string `yaml:"reproducibility" json:"reproducibility"`
Status string `yaml:"status" json:"status"`
}
type ContractEntry ¶
type ContractEntry struct {
ID string `yaml:"id"`
Kind string `yaml:"kind"` // interface|capability|assumption
Ref string `yaml:"ref"` // optional local id this contract entry exposes
Note string `yaml:"note"`
}
ContractEntry is a single provided or required interface/capability/assumption. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ContractModel ¶
type ContractModel struct {
Provides []ContractEntry `yaml:"provides"` // the public surface a parent may allocate onto
Requires []ContractEntry `yaml:"requires"` // what the system needs from its environment
}
ContractModel is a system's published, parent-agnostic boundary: what it provides and requires. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type Control ¶
type Control struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Category string `yaml:"category"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE
type ControlEvidence ¶
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE
type ControlVerification ¶
type ControlVerification struct {
ID string `yaml:"id"`
ControlRef string `yaml:"controlRef"`
ThreatScenarioRefs []string `yaml:"threatScenarioRefs"`
RiskRefs []string `yaml:"riskRefs"`
Method string `yaml:"method"`
Status string `yaml:"status"`
Owner string `yaml:"owner"`
LastTested string `yaml:"lastTested"`
Findings []string `yaml:"findings"`
Evidence []ControlVerificationEvidence `yaml:"evidence"`
// VerificationRefs names the tests that verify the control: inferred CODE
// identifiers of test declarations (CODE-<PATH>--<NAME>) or requirement IDs
// whose linked tests verify it.
VerificationRefs []string `yaml:"verificationRefs"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE
type ControlVerificationEvidence ¶
type ControlVerificationEvidence struct {
Path string `yaml:"path"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE
type DataObject ¶
type DataObject struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
TermRef string `yaml:"termRef"`
SchemaRef string `yaml:"schemaRef"`
Sensitivity string `yaml:"sensitivity"`
Classification string `yaml:"classification"`
RegulatoryTags []string `yaml:"regulatoryTags"`
Retention string `yaml:"retention"`
Confidentiality string `yaml:"confidentiality"`
Integrity string `yaml:"integrity"`
Availability string `yaml:"availability"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type Decision ¶
type Decision struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Status string `yaml:"status"`
Date string `yaml:"date"`
Context string `yaml:"context"`
Decision string `yaml:"decision"`
Consequences []string `yaml:"consequences"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type DecisionsDocument ¶
type DecisionsDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Decisions []Decision `yaml:"decisions"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type DependencyGuide ¶
type DependencyGuide struct {
PreferredSourceField string `json:"preferredSourceField"`
SourceKinds []string `json:"sourceKinds"`
WorkspaceFile string `json:"workspaceFile"`
WorkspaceSchemaPath string `json:"workspaceSchemaPath"`
RegistryEnvironment string `json:"registryEnvironment"`
CacheDirectory string `json:"cacheDirectory"`
Rules []string `json:"rules"`
}
type DeploymentTarget ¶
type DeploymentTarget struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Environment string `yaml:"environment"`
Region string `yaml:"region"`
Account string `yaml:"account"`
Cluster string `yaml:"cluster"`
Namespace string `yaml:"namespace"`
TrustZone string `yaml:"trustZone"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, DEP-LOCAL-WORKSPACE, DEP-CI-PIPELINE
type DesignDocument ¶
type DesignDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Design DesignModel `yaml:"design"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
func LoadDesign ¶
func LoadDesign(path string) (DesignDocument, error)
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046
type DesignFunctionalGroup ¶
type DesignFunctionalGroup struct {
ID string `yaml:"id"`
Views map[string]DesignView `yaml:"views"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type DesignFunctionalUnit ¶
type DesignFunctionalUnit struct {
ID string `yaml:"id"`
Group string `yaml:"group"`
Views map[string]DesignView `yaml:"views"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type DesignModel ¶
type DesignModel struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
FunctionalGroups []DesignFunctionalGroup `yaml:"functionalGroups"`
FunctionalUnits []DesignFunctionalUnit `yaml:"functionalUnits"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type DesignView ¶
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VIEW-PROJECTION
type DocumentControl ¶
type DocumentControl struct {
Identifier string `yaml:"identifier"`
Revision string `yaml:"revision"`
Status string `yaml:"status"`
IssuedBy string `yaml:"issuedBy"`
IssueDate string `yaml:"issueDate"`
Language string `yaml:"language"`
DocumentType string `yaml:"documentType"`
Confidentiality string `yaml:"confidentiality"`
SecurityClassification string `yaml:"securityClassification"`
ExportControlled bool `yaml:"exportControlled"`
CountryOfOrigin string `yaml:"countryOfOrigin"`
ConfidentialityStamp bool `yaml:"confidentialityStamp"`
}
DocumentControl captures format-neutral identity, lifecycle, and handling metadata. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type DocumentDefinition ¶
type DocumentDefinition struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Kind string `yaml:"kind"`
Purpose string `yaml:"purpose"`
Audience []string `yaml:"audience"`
StakeholderRefs []string `yaml:"stakeholderRefs"`
ReferenceRefs []string `yaml:"referenceRefs"`
ContentRefs []string `yaml:"contentRefs"`
Sections []DocumentSection `yaml:"sections"`
Control DocumentControl `yaml:"control"`
}
DocumentDefinition selects canonical model content for a formal document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type DocumentReferences ¶
type DocumentReferences struct {
Catalog string `yaml:"catalog"`
Requirements string `yaml:"requirements"`
Architecture string `yaml:"architecture"`
Behavior string `yaml:"behavior"`
Assurance string `yaml:"assurance"`
Compliance string `yaml:"compliance"`
Views string `yaml:"views"`
Decisions string `yaml:"decisions"`
Aviation string `yaml:"aviation,omitempty"`
}
DocumentReferences makes the complete schema-v2 domain document set explicit. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
func ResolveDocumentReferences ¶
func ResolveDocumentReferences(meta ModelMeta) (DocumentReferences, error)
ResolveDocumentReferences validates the explicit schema-v2 document map. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046, REQ-EMG-053
type DocumentSection ¶
type DocumentSection struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Narrative string `yaml:"narrative"`
IncludeRefs []string `yaml:"includeRefs"`
}
DocumentSection adds authored prose and optional model selections to a document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type Event ¶
type Event struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, EVT-MODEL-UPDATED, EVT-GENERATION-RUN-REQUESTED, EVT-VALIDATION-FAILED, EVT-ARTIFACT-GENERATED
type EvidenceReference ¶
type Flow ¶
type Flow struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Kind string `yaml:"kind"`
Methodology string `yaml:"methodology"`
Direction string `yaml:"direction"`
Frequency string `yaml:"frequency"`
SourceRef string `yaml:"sourceRef"`
DestinationRef string `yaml:"destinationRef"`
Protocol string `yaml:"protocol"`
Channel string `yaml:"channel"`
Authentication string `yaml:"authentication"`
EncryptionInTransit string `yaml:"encryptionInTransit"`
IntegrityProtection string `yaml:"integrityProtection"`
DataRefs []string `yaml:"dataRefs"`
Description string `yaml:"description"`
Criticality string `yaml:"criticality"`
Threats []string `yaml:"threats"`
Entry []string `yaml:"entry"`
Exits []string `yaml:"exits"`
Steps []FlowStep `yaml:"steps"`
Properties map[string]string `yaml:"properties"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type FlowStep ¶
type FlowStep struct {
ID string `yaml:"id"`
Ref string `yaml:"ref"`
Kind string `yaml:"kind"`
FlowType string `yaml:"flowType"`
Direction string `yaml:"direction"`
Frequency string `yaml:"frequency"`
SourceRef string `yaml:"sourceRef"`
DestinationRef string `yaml:"destinationRef"`
Action string `yaml:"action"`
Channel string `yaml:"channel"`
Protocol string `yaml:"protocol"`
DataIn []string `yaml:"dataIn"`
DataOut []string `yaml:"dataOut"`
DataRefs []string `yaml:"dataRefs"`
InterfaceRef string `yaml:"interfaceRef"`
TrustBoundaryRef string `yaml:"trustBoundaryRef"`
BoundaryCrossing bool `yaml:"boundaryCrossing"`
Authentication string `yaml:"authentication"`
EncryptionInTransit string `yaml:"encryptionInTransit"`
IntegrityProtection string `yaml:"integrityProtection"`
Next []string `yaml:"next"`
OnError []string `yaml:"onError"`
Async bool `yaml:"async"`
Optional bool `yaml:"optional"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type FunctionalGroup ¶
type FunctionalGroup struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
Prose string `yaml:"prose"`
Tags []string `yaml:"tags"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type FunctionalUnit ¶
type FunctionalUnit struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Group string `yaml:"group"`
Tags []string `yaml:"tags"`
Prose string `yaml:"prose"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type HardwareInterface ¶
type HardwareInterface struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
BusType string `yaml:"busType"` // ARINC429|CAN|SPI|I2C|ethernet|cellular|discrete|analog
From string `yaml:"from"` // hardware item id
To string `yaml:"to"` // hardware item id
Direction string `yaml:"direction"`
SoftwareInterfaceRef string `yaml:"softwareInterfaceRef"`
Description string `yaml:"description"`
}
HardwareInterface represents a physical connection between hardware items (ICD/IRS data). ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type HardwareItem ¶
type HardwareItem struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Kind string `yaml:"kind"` // processor|board|lru|sensor|actuator|bus|fpga|gateway|cloud
PartNumber string `yaml:"partNumber"`
Supplier string `yaml:"supplier"`
SafetyLevel string `yaml:"safetyLevel"` // DO-254 design assurance level (optional)
Description string `yaml:"description"`
Hosts []string `yaml:"hosts"` // functional unit or subsystem ids hosted on this item
}
HardwareItem represents a physical platform element (the DO-254 side of the HW/SW boundary). ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type IndependenceRecord ¶
type IndependenceRecord struct {
ID string `yaml:"id" json:"id"`
SubjectRef string `yaml:"subjectRef" json:"subjectRef"`
Producer string `yaml:"producer" json:"producer"`
Verifier string `yaml:"verifier" json:"verifier"`
ApprovalRef string `yaml:"approvalRef" json:"approvalRef"`
Evidence []string `yaml:"evidence" json:"evidence"`
State string `yaml:"state" json:"state"`
}
type InferenceHints ¶
type InferenceHints struct {
RuntimeSources []string `yaml:"runtimeSources"`
// CodeSources is no longer supported: the code scope is the module root minus Exclude.
// It is still decoded so validation can report it instead of failing to load.
CodeSources []string `yaml:"codeSources"`
Exclude []string `yaml:"exclude"`
ExpectedRuntimeKinds []string `yaml:"expectedRuntimeKinds"`
OwnershipResolutionOrder []string `yaml:"ownershipResolutionOrder"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-CODEMAP-INFERENCE, CTRL-TRACEABILITY-COVERAGE, DEP-LOCAL-WORKSPACE
type InputComposition ¶
type InputComposition struct {
Subsystems []InputSubsystem `yaml:"subsystems"`
Allocations []Allocation `yaml:"allocations"`
Satisfactions []Satisfaction `yaml:"satisfactions"`
}
InputComposition references manifest dependencies and their selected publications.
type InputSubsystem ¶
type InputSubsystem struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Dependency string `yaml:"dependency"`
Publication string `yaml:"publication"`
Description string `yaml:"description"`
}
InputSubsystem identifies a child solely through a manifest dependency publication.
type Interface ¶
type Interface struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Protocol string `yaml:"protocol"`
Endpoint string `yaml:"endpoint"`
SchemaRef string `yaml:"schemaRef"`
Owner string `yaml:"owner"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type LifecycleDataRecord ¶
type LifecycleDataRecord struct {
ID string `yaml:"id" json:"id"`
CategoryCode string `yaml:"categoryCode" json:"categoryCode"`
CategoryName string `yaml:"categoryName" json:"categoryName"`
Source EvidenceReference `yaml:"source" json:"source"`
Baseline string `yaml:"baseline" json:"baseline"`
Owner string `yaml:"owner" json:"owner"`
State string `yaml:"state" json:"state"`
Approvals []string `yaml:"approvals" json:"approvals"`
ObjectiveRefs []string `yaml:"objectiveRefs" json:"objectiveRefs"`
}
func RecognizedLifecycleDataFamilies ¶
func RecognizedLifecycleDataFamilies() []LifecycleDataRecord
TRLC-LINKS: REQ-EMG-053, REQ-EMG-055
type LintRun ¶
type LintRun struct {
ID string `yaml:"id"`
Mode string `yaml:"mode"`
CommaAsAnd bool `yaml:"commaAsAnd"`
CatalogRef string `yaml:"catalogRef"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VALIDATION-ENGINE, CTRL-TRACEABILITY-COVERAGE, STATE-MODEL-INVALID, EVT-VALIDATION-FAILED
type LintWaiver ¶
LintWaiver records an accepted EARS lint warning for one requirement, with the reason it does not apply. Errors are never waived. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ManifestDependency ¶
type ManifestDependency struct {
Alias string `yaml:"alias"`
Path string `yaml:"path"`
Version string `yaml:"version"`
Publications []string `yaml:"publications"`
}
ManifestDependency selects publications from an exact external module. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051
type ManifestDocument ¶
type ManifestDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Module ModuleIdentity `yaml:"module"`
Documents DocumentReferences `yaml:"documents"`
Dependencies []ManifestDependency `yaml:"dependencies"`
Publications []ManifestPublication `yaml:"publications"`
InferenceHints InferenceHints `yaml:"inferenceHints"`
}
ManifestDocument is the only schema-v2 model entry point. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046, REQ-EMG-047, REQ-EMG-049, REQ-EMG-051
type ManifestPublication ¶
type ManifestPublication struct {
ID string `yaml:"id"`
Architecture []string `yaml:"architecture"`
Behavior []string `yaml:"behavior"`
Assurance []string `yaml:"assurance"`
Compliance []string `yaml:"compliance"`
Requirements []string `yaml:"requirements"`
Views []string `yaml:"views"`
}
ManifestPublication exports typed stable identifiers from this module. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051
type Mapping ¶
type Mapping struct {
Type string `yaml:"type"`
From string `yaml:"from"`
To string `yaml:"to"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type MetamodelPropertyValue ¶
type MetamodelPropertyValue struct {
Values []MetamodelValue `json:"values" yaml:"values"`
Derived bool `json:"derived,omitempty" yaml:"derived,omitempty"`
Implied bool `json:"implied,omitempty" yaml:"implied,omitempty"`
}
MetamodelPropertyValue preserves ordered multiplicity and records values supplied by derivation or implication rather than authored assignment.
TRLC-LINKS: REQ-EMG-038, REQ-EMG-039
type MetamodelValue ¶
type MetamodelValue struct {
Kind string `json:"kind" yaml:"kind"`
String string `json:"string,omitempty" yaml:"string,omitempty"`
Integer *int64 `json:"integer,omitempty" yaml:"integer,omitempty"`
Real *float64 `json:"real,omitempty" yaml:"real,omitempty"`
Boolean *bool `json:"boolean,omitempty" yaml:"boolean,omitempty"`
Reference string `json:"reference,omitempty" yaml:"reference,omitempty"`
Object map[string]MetamodelValue `json:"object,omitempty" yaml:"object,omitempty"`
List []MetamodelValue `json:"list,omitempty" yaml:"list,omitempty"`
}
MetamodelValue is a lossless typed value used by official metamodel properties and Engineering Model extension properties.
TRLC-LINKS: REQ-EMG-038, REQ-EMG-039, REQ-EMG-040
func (*MetamodelValue) UnmarshalYAML ¶
func (v *MetamodelValue) UnmarshalYAML(node *yaml.Node) error
UnmarshalYAML accepts the typed canonical form and legacy scalar/list/object extension values at the input boundary.
TRLC-LINKS: REQ-EMG-040
type ModelMeta ¶
type ModelMeta struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Introduction string `yaml:"introduction"`
Documents DocumentReferences `yaml:"-"`
BaseCatalogRef string `yaml:"-"`
}
ModelMeta is the aggregate model identity retained for downstream consumers.
type ModuleIdentity ¶
type ModuleIdentity struct {
Path string `yaml:"path"`
Version string `yaml:"version"`
ModelID string `yaml:"modelId"`
Title string `yaml:"title"`
Introduction string `yaml:"introduction"`
Kind string `yaml:"kind"`
}
ModuleIdentity is the published identity and human-facing metadata of a model. TRLC-LINKS: REQ-EMG-044, REQ-EMG-047
type Multiplicity ¶
type Multiplicity struct {
Lower *int `json:"lower,omitempty" yaml:"lower,omitempty"`
Upper *int `json:"upper,omitempty" yaml:"upper,omitempty"`
}
Multiplicity is available to canonical features even though the current YAML schema only supplies multiplicity for a limited set of concepts.
type NAFConcern ¶
type NAFConcern struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
StakeholderRefs []string `yaml:"stakeholderRefs"`
}
NAFConcern identifies an architecture concern and its existing stakeholders. TRLC-LINKS: REQ-EMG-041
type NAFProduct ¶
type NAFProduct struct {
ID string `yaml:"id"`
Viewpoint string `yaml:"viewpoint"`
Title string `yaml:"title"`
ViewRef string `yaml:"viewRef"`
ConcernRefs []string `yaml:"concernRefs"`
}
NAFProduct applies an official NAF viewpoint to an existing Engmod view. TRLC-LINKS: REQ-EMG-041, REQ-EMG-042
type NAFProfile ¶
type NAFProfile struct {
Framework string `yaml:"framework"`
Version string `yaml:"version"`
ArchitectureDescription string `yaml:"architectureDescription"`
Stakeholders []NAFStakeholder `yaml:"stakeholders"`
Concerns []NAFConcern `yaml:"concerns"`
Products []NAFProduct `yaml:"products"`
}
NAFProfile adds NATO Architecture Framework metadata to canonical model views. It does not define another architecture element graph. TRLC-LINKS: REQ-EMG-041 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-NAF-EXPORTER, REF-NAF-V4-1-SPECIFICATION
func (NAFProfile) Enabled ¶
func (p NAFProfile) Enabled() bool
Enabled reports whether a NAF profile was authored. TRLC-LINKS: REQ-EMG-041
type NAFStakeholder ¶
NAFStakeholder binds a NAF stakeholder role to an existing canonical actor. TRLC-LINKS: REQ-EMG-041
type ObjectiveReference ¶
type ObjectiveReference struct {
ID string `yaml:"id" json:"id"`
SourceReference string `yaml:"sourceReference" json:"sourceReference"`
Applicability string `yaml:"applicability" json:"applicability"`
IndependenceRequired bool `yaml:"independenceRequired" json:"independenceRequired"`
Rationale string `yaml:"rationale" json:"rationale"`
EvidenceRefs []string `yaml:"evidenceRefs" json:"evidenceRefs"`
State string `yaml:"state" json:"state"`
}
type OfficialSysMLMetaclass ¶
type OfficialSysMLMetaclass struct {
Origin string
Abstract bool
Relationship bool
Supertypes []string
Properties map[string]OfficialSysMLProperty
RelationshipEnds []OfficialSysMLRelationshipEnd
}
type OfficialSysMLProperty ¶
type POAMArtifact ¶
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type POAMItem ¶
type POAMItem struct {
ID string `yaml:"id"`
RiskRef string `yaml:"riskRef"`
Milestone string `yaml:"milestone"`
DueDate string `yaml:"dueDate"`
Status string `yaml:"status"`
ResponsibleRole string `yaml:"responsibleRole"`
Artifacts []POAMArtifact `yaml:"artifacts"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ProblemReport ¶
type ProblemReport struct {
ID string `yaml:"id" json:"id"`
Summary string `yaml:"summary" json:"summary"`
AffectedRefs []string `yaml:"affectedRefs" json:"affectedRefs"`
Disposition string `yaml:"disposition" json:"disposition"`
CorrectiveAction string `yaml:"correctiveAction" json:"correctiveAction"`
Evidence []string `yaml:"evidence" json:"evidence"`
State string `yaml:"state" json:"state"`
}
type ReferencedElement ¶
type ReferencedElement struct {
ID string `yaml:"id"`
Kind string `yaml:"kind"`
Layer string `yaml:"layer"`
Name string `yaml:"name"`
Description string `yaml:"description"`
Version string `yaml:"version"`
Date string `yaml:"date"`
URI string `yaml:"uri"`
Publisher string `yaml:"publisher"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type Requirement ¶
type Requirement struct {
ID string `yaml:"id"`
Title string `yaml:"title,omitempty"`
Text string `yaml:"text"`
Notes string `yaml:"notes"`
Category string `yaml:"category,omitempty"`
Rationale string `yaml:"rationale,omitempty"`
SourceRefs []string `yaml:"sourceRefs,omitempty"`
VerificationMethods []string `yaml:"verificationMethods,omitempty"`
VerificationCriteria string `yaml:"verificationCriteria,omitempty"`
Priority string `yaml:"priority,omitempty"`
Criticality string `yaml:"criticality,omitempty"`
Status string `yaml:"status,omitempty"`
Derived bool `yaml:"derived,omitempty"`
DerivedRationale string `yaml:"derivedRationale,omitempty"`
Tags []string `yaml:"tags,omitempty"`
AppliesTo []string `yaml:"appliesTo"`
LintWaivers []LintWaiver `yaml:"lintWaivers,omitempty"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type RequirementAssurance ¶
type RequirementAssurance struct {
RequirementID string `yaml:"requirementId" json:"requirementId"`
Level string `yaml:"level" json:"level"`
Derived bool `yaml:"derived" json:"derived"`
DerivedRationale string `yaml:"derivedRationale" json:"derivedRationale"`
ParentRefs []string `yaml:"parentRefs" json:"parentRefs"`
ArchitectureRefs []string `yaml:"architectureRefs" json:"architectureRefs"`
CodeRefs []string `yaml:"codeRefs" json:"codeRefs"`
VerificationCriteria string `yaml:"verificationCriteria" json:"verificationCriteria"`
SafetyFeedbackRecipient string `yaml:"safetyFeedbackRecipient" json:"safetyFeedbackRecipient"`
SafetyFeedbackStatus string `yaml:"safetyFeedbackStatus" json:"safetyFeedbackStatus"`
SafetyFeedbackEvidence []string `yaml:"safetyFeedbackEvidence" json:"safetyFeedbackEvidence"`
Baseline string `yaml:"baseline" json:"baseline"`
State string `yaml:"state" json:"state"`
}
type RequirementsDocument ¶
type RequirementsDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
LintRun LintRun `yaml:"lintRun"`
Requirements []Requirement `yaml:"requirements"`
Expected []Expected `yaml:"expected"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
func LoadRequirements ¶
func LoadRequirements(path string) (RequirementsDocument, error)
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046
type Risk ¶
type Risk struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Statement string `yaml:"statement"`
Status string `yaml:"status"`
Likelihood string `yaml:"likelihood"`
Impact string `yaml:"impact"`
Response string `yaml:"response"`
Owner string `yaml:"owner"`
AppliesTo []string `yaml:"appliesTo"`
RelatedControls []string `yaml:"relatedControls"`
AttackVectors []string `yaml:"attackVectors"`
ThreatScenarios []string `yaml:"threatScenarios"`
Evidence []RiskEvidence `yaml:"evidence"`
ResidualRisk string `yaml:"residualRisk"`
Rationale string `yaml:"rationale"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type RiskEvidence ¶
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type SQAAudit ¶
type SQAAudit struct {
ID string `yaml:"id" json:"id"`
Scope string `yaml:"scope" json:"scope"`
Auditor string `yaml:"auditor" json:"auditor"`
Findings []string `yaml:"findings" json:"findings"`
CorrectiveActions []string `yaml:"correctiveActions" json:"correctiveActions"`
Evidence []string `yaml:"evidence" json:"evidence"`
State string `yaml:"state" json:"state"`
}
type Satisfaction ¶
type Satisfaction struct {
Need string `yaml:"need"` // alias::ID
By string `yaml:"by"` // alias::ID or local hardware item id
}
Satisfaction records how a published subsystem need is satisfied by a publication-qualified provider or a local hardware item. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type SemanticContent ¶
type SemanticContent struct {
Imports []SemanticImport `json:"imports,omitempty" yaml:"imports,omitempty"`
Elements []SemanticElement `json:"elements,omitempty" yaml:"elements,omitempty"`
Relationships []SemanticRelationship `json:"relationships,omitempty" yaml:"relationships,omitempty"`
}
SemanticContent is the canonical YAML surface for concepts that cannot be expressed by legacy architecture fields. Legacy fields remain migration aliases and are adapted into these same primitives.
type SemanticDiagnostic ¶
type SemanticDiagnostic struct {
Code string `json:"code"`
Severity SemanticSeverity `json:"severity"`
Message string `json:"message"`
Path string `json:"path,omitempty"`
}
SemanticDiagnostic records a projection limitation instead of silently dropping information.
func ValidateSemanticModel ¶
func ValidateSemanticModel(semantic SemanticModel) []SemanticDiagnostic
ValidateSemanticModel checks invariants of the canonical projection independently of the YAML structures from which it was derived.
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036, REQ-EMG-037 ENGMODEL-LINKS: DO-CANONICAL-SEMANTIC-MODEL, FU-VALIDATION-ENGINE
type SemanticElement ¶
type SemanticElement struct {
ID string `json:"id" yaml:"id"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Kind SemanticElementKind `json:"kind" yaml:"kind"`
Metaclass string `json:"metaclass,omitempty" yaml:"metaclass,omitempty"`
Properties map[string]MetamodelPropertyValue `json:"properties,omitempty" yaml:"properties,omitempty"`
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
TypeRef string `json:"typeRef,omitempty" yaml:"typeRef,omitempty"`
Multiplicity *Multiplicity `json:"multiplicity,omitempty" yaml:"multiplicity,omitempty"`
Ordered bool `json:"ordered,omitempty" yaml:"ordered,omitempty"`
Unique *bool `json:"unique,omitempty" yaml:"unique,omitempty"`
Conjugated bool `json:"conjugated,omitempty" yaml:"conjugated,omitempty"`
Specializes []string `json:"specializes,omitempty" yaml:"specializes,omitempty"`
Subsets []string `json:"subsets,omitempty" yaml:"subsets,omitempty"`
Redefines []string `json:"redefines,omitempty" yaml:"redefines,omitempty"`
ControlKind string `json:"controlKind,omitempty" yaml:"controlKind,omitempty"`
OccurrenceID string `json:"occurrenceId,omitempty" yaml:"occurrenceId,omitempty"`
PortionOf string `json:"portionOf,omitempty" yaml:"portionOf,omitempty"`
Variation bool `json:"variation,omitempty" yaml:"variation,omitempty"`
Variants []string `json:"variants,omitempty" yaml:"variants,omitempty"`
References []string `json:"references,omitempty" yaml:"references,omitempty"`
Features []SemanticFeature `json:"features,omitempty" yaml:"features,omitempty"`
Metadata []SemanticMetadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
ExtensionNamespace string `json:"extensionNamespace,omitempty" yaml:"extensionNamespace,omitempty"`
Extension string `json:"extension,omitempty" yaml:"extension,omitempty"`
Targets []string `json:"targets,omitempty" yaml:"targets,omitempty"`
Authored bool `json:"-" yaml:"-"`
}
SemanticElement is the single canonical representation of an authored concept.
type SemanticElementKind ¶
type SemanticElementKind string
SemanticElementKind identifies the SysML/KerML concept used by a canonical element.
const ( ElementPackageDefinition SemanticElementKind = "package_definition" ElementPartDefinition SemanticElementKind = "part_definition" ElementPartUsage SemanticElementKind = "part_usage" ElementItemDefinition SemanticElementKind = "item_definition" ElementItemUsage SemanticElementKind = "item_usage" ElementAttributeDefinition SemanticElementKind = "attribute_definition" ElementAttributeUsage SemanticElementKind = "attribute_usage" ElementPortDefinition SemanticElementKind = "port_definition" ElementPortUsage SemanticElementKind = "port_usage" ElementInterfaceDefinition SemanticElementKind = "interface_definition" ElementInterfaceUsage SemanticElementKind = "interface_usage" ElementConnectionDefinition SemanticElementKind = "connection_definition" ElementConnectionUsage SemanticElementKind = "connection_usage" ElementActionDefinition SemanticElementKind = "action_definition" ElementActionUsage SemanticElementKind = "action_usage" ElementControlNode SemanticElementKind = "control_node" ElementStateDefinition SemanticElementKind = "state_definition" ElementStateUsage SemanticElementKind = "state_usage" ElementEventDefinition SemanticElementKind = "event_definition" ElementEventUsage SemanticElementKind = "event_usage" ElementViewDefinition SemanticElementKind = "view_definition" ElementViewUsage SemanticElementKind = "view_usage" ElementViewpointDefinition SemanticElementKind = "viewpoint_definition" ElementViewpointUsage SemanticElementKind = "viewpoint_usage" ElementRequirementDefinition SemanticElementKind = "requirement_definition" ElementRequirementUsage SemanticElementKind = "requirement_usage" ElementConcernDefinition SemanticElementKind = "concern_definition" ElementConcernUsage SemanticElementKind = "concern_usage" ElementStakeholderDefinition SemanticElementKind = "stakeholder_definition" ElementStakeholderUsage SemanticElementKind = "stakeholder_usage" ElementConstraintDefinition SemanticElementKind = "constraint_definition" ElementConstraintUsage SemanticElementKind = "constraint_usage" ElementCalculationDefinition SemanticElementKind = "calculation_definition" ElementCalculationUsage SemanticElementKind = "calculation_usage" ElementCaseDefinition SemanticElementKind = "case_definition" ElementCaseUsage SemanticElementKind = "case_usage" ElementAnalysisCaseDefinition SemanticElementKind = "analysis_case_definition" ElementAnalysisCaseUsage SemanticElementKind = "analysis_case_usage" ElementVerificationCaseDefinition SemanticElementKind = "verification_case_definition" ElementVerificationCaseUsage SemanticElementKind = "verification_case_usage" ElementUseCaseDefinition SemanticElementKind = "use_case_definition" ElementUseCaseUsage SemanticElementKind = "use_case_usage" ElementQuantityDefinition SemanticElementKind = "quantity_definition" ElementUnitDefinition SemanticElementKind = "unit_definition" ElementOccurrenceDefinition SemanticElementKind = "occurrence_definition" ElementOccurrenceUsage SemanticElementKind = "occurrence_usage" ElementIndividualDefinition SemanticElementKind = "individual_definition" ElementIndividualUsage SemanticElementKind = "individual_usage" ElementSnapshot SemanticElementKind = "snapshot" ElementTimeSlice SemanticElementKind = "time_slice" ElementExtension SemanticElementKind = "engineering_extension" ElementRequirement SemanticElementKind = ElementRequirementDefinition )
type SemanticExpression ¶
type SemanticExpression struct {
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
Language string `json:"language,omitempty" yaml:"language,omitempty"`
Operator string `json:"operator,omitempty" yaml:"operator,omitempty"`
Value string `json:"value,omitempty" yaml:"value,omitempty"`
TypedValue *SemanticValue `json:"typedValue,omitempty" yaml:"typedValue,omitempty"`
Operands []SemanticExpression `json:"operands,omitempty" yaml:"operands,omitempty"`
}
SemanticExpression preserves an expression as a typed tree or source expression.
type SemanticFeature ¶
type SemanticFeature struct {
Name string `json:"name" yaml:"name"`
Kind SemanticFeatureKind `json:"kind,omitempty" yaml:"kind,omitempty"`
Type string `json:"type,omitempty" yaml:"type,omitempty"`
Direction string `json:"direction,omitempty" yaml:"direction,omitempty"`
Multiplicity *Multiplicity `json:"multiplicity,omitempty" yaml:"multiplicity,omitempty"`
Ordered bool `json:"ordered,omitempty" yaml:"ordered,omitempty"`
Unique *bool `json:"unique,omitempty" yaml:"unique,omitempty"`
Conjugated bool `json:"conjugated,omitempty" yaml:"conjugated,omitempty"`
Specializes []string `json:"specializes,omitempty" yaml:"specializes,omitempty"`
Subsets []string `json:"subsets,omitempty" yaml:"subsets,omitempty"`
Redefines []string `json:"redefines,omitempty" yaml:"redefines,omitempty"`
Value *SemanticExpression `json:"value,omitempty" yaml:"value,omitempty"`
References []string `json:"references,omitempty" yaml:"references,omitempty"`
}
SemanticFeature is the common typed-feature representation used by exporters.
type SemanticFeatureKind ¶
type SemanticFeatureKind string
const ( FeatureAttribute SemanticFeatureKind = "attribute" FeaturePort SemanticFeatureKind = "port" FeatureParameter SemanticFeatureKind = "parameter" )
type SemanticImport ¶
type SemanticMetadata ¶
type SemanticMetadata struct {
Namespace string `json:"namespace" yaml:"namespace"`
Type string `json:"type" yaml:"type"`
Target string `json:"target" yaml:"target"`
Properties map[string]MetamodelValue `json:"properties,omitempty" yaml:"properties,omitempty"`
}
SemanticMetadata is a typed extension payload. Values are copied from the YAML-backed source object, so exporters can preserve information they cannot express as standard SysML concepts.
type SemanticModel ¶
type SemanticModel struct {
ID string `json:"id"`
Title string `json:"title,omitempty"`
Imports []SemanticImport `json:"imports,omitempty"`
Elements []SemanticElement `json:"elements"`
Relationships []SemanticRelationship `json:"relationships"`
}
SemanticModel is the canonical exporter-facing projection. It is derived from Bundle and is not a second authored or persistent model.
type SemanticProjectionError ¶
type SemanticProjectionError struct {
Diagnostics []SemanticDiagnostic
}
SemanticProjectionError preserves all canonical projection diagnostics.
func (*SemanticProjectionError) Error ¶
func (e *SemanticProjectionError) Error() string
TRLC-LINKS: REQ-EMG-035, REQ-EMG-036
type SemanticQuantity ¶
type SemanticRelationship ¶
type SemanticRelationship struct {
ID string `json:"id" yaml:"id"`
Kind SemanticRelationshipKind `json:"kind" yaml:"kind"`
Metaclass string `json:"metaclass,omitempty" yaml:"metaclass,omitempty"`
Properties map[string]MetamodelPropertyValue `json:"properties,omitempty" yaml:"properties,omitempty"`
Source string `json:"source" yaml:"source"`
Target string `json:"target" yaml:"target"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
SourceType string `json:"sourceType,omitempty" yaml:"sourceType,omitempty"`
ItemRef string `json:"itemRef,omitempty" yaml:"itemRef,omitempty"`
Triggers []string `json:"triggers,omitempty" yaml:"triggers,omitempty"`
Guard *SemanticExpression `json:"guard,omitempty" yaml:"guard,omitempty"`
Effect *SemanticExpression `json:"effect,omitempty" yaml:"effect,omitempty"`
Metadata []SemanticMetadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}
SemanticRelationship preserves relationship identity, endpoints, and the original engineering relationship type.
type SemanticRelationshipKind ¶
type SemanticRelationshipKind string
SemanticRelationshipKind identifies a typed relationship without reducing it to a generic edge.
const ( RelationshipContainment SemanticRelationshipKind = "containment" RelationshipDependency SemanticRelationshipKind = "dependency" RelationshipTyping SemanticRelationshipKind = "typing" RelationshipSpecialization SemanticRelationshipKind = "specialization" RelationshipSubsetting SemanticRelationshipKind = "subsetting" RelationshipRedefinition SemanticRelationshipKind = "redefinition" RelationshipConnection SemanticRelationshipKind = "connection" RelationshipBinding SemanticRelationshipKind = "binding" RelationshipTransfer SemanticRelationshipKind = "transfer" RelationshipSuccession SemanticRelationshipKind = "succession" RelationshipTransition SemanticRelationshipKind = "transition" RelationshipEventTrigger SemanticRelationshipKind = "event_trigger" RelationshipGuard SemanticRelationshipKind = "guard" RelationshipEffect SemanticRelationshipKind = "effect" RelationshipAllocation SemanticRelationshipKind = "allocation" RelationshipSatisfaction SemanticRelationshipKind = "satisfaction" RelationshipVerification SemanticRelationshipKind = "verification" RelationshipVariant SemanticRelationshipKind = "variant_membership" RelationshipReference SemanticRelationshipKind = "reference" RelationshipExtension SemanticRelationshipKind = "engineering_extension" )
type SemanticSeverity ¶
type SemanticSeverity string
const ( SemanticSeverityError SemanticSeverity = "error" SemanticSeverityWarning SemanticSeverity = "warning" )
type SemanticValue ¶
type SemanticValue struct {
Kind string `json:"kind" yaml:"kind"`
String string `json:"string,omitempty" yaml:"string,omitempty"`
Integer *int64 `json:"integer,omitempty" yaml:"integer,omitempty"`
Real *float64 `json:"real,omitempty" yaml:"real,omitempty"`
Boolean *bool `json:"boolean,omitempty" yaml:"boolean,omitempty"`
Reference string `json:"reference,omitempty" yaml:"reference,omitempty"`
Quantity *SemanticQuantity `json:"quantity,omitempty" yaml:"quantity,omitempty"`
}
SemanticValue is the compact reusable representation for literals, references, quantities, and unit-bearing values.
type StableIdentifierGuide ¶
type State ¶
type State struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, STATE-MODEL-VALID, STATE-MODEL-INVALID, STATE-ARTIFACTS-FRESH
type StructuralCoverage ¶
type StructuralCoverage struct {
ID string `yaml:"id" json:"id"`
Metric string `yaml:"metric" json:"metric"`
Baseline string `yaml:"baseline" json:"baseline"`
Build string `yaml:"build" json:"build"`
ToolRefs []string `yaml:"toolRefs" json:"toolRefs"`
Total int `yaml:"total" json:"total"`
Covered int `yaml:"covered" json:"covered"`
Uncovered int `yaml:"uncovered" json:"uncovered"`
Dispositions []UncoveredDisposition `yaml:"dispositions" json:"dispositions"`
Evidence []string `yaml:"evidence" json:"evidence"`
Reviewer string `yaml:"reviewer" json:"reviewer"`
Status string `yaml:"status" json:"status"`
}
type Subsystem ¶
type Subsystem struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Dependency string `yaml:"dependency"`
Publication string `yaml:"publication"`
Description string `yaml:"description"`
}
Subsystem is a downward reference to one publication selected from a manifest dependency. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL
type ThreatAssumption ¶
type ThreatAssumption struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Statement string `yaml:"statement"`
Status string `yaml:"status"`
Owner string `yaml:"owner"`
AppliesTo []string `yaml:"appliesTo"`
Rationale string `yaml:"rationale"`
Evidence []ThreatAssumptionEvidence `yaml:"evidence"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatAssumptionEvidence ¶
type ThreatAssumptionEvidence struct {
Path string `yaml:"path"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatMitigation ¶
type ThreatMitigation struct {
ID string `yaml:"id"`
ThreatScenarioRef string `yaml:"threatScenarioRef"`
ControlRef string `yaml:"controlRef"`
Status string `yaml:"status"`
Effectiveness string `yaml:"effectiveness"`
Owner string `yaml:"owner"`
Notes string `yaml:"notes"`
VerificationRefs []string `yaml:"verificationRefs"`
Evidence []ThreatMitigationEvidence `yaml:"evidence"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER, CTRL-TRACEABILITY-COVERAGE
type ThreatMitigationEvidence ¶
type ThreatMitigationEvidence struct {
Path string `yaml:"path"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatOutOfScope ¶
type ThreatOutOfScope struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Reason string `yaml:"reason"`
Status string `yaml:"status"`
Owner string `yaml:"owner"`
AppliesTo []string `yaml:"appliesTo"`
ExpiresOn string `yaml:"expiresOn"`
Evidence []ThreatOutOfScopeEvidence `yaml:"evidence"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatOutOfScopeEvidence ¶
type ThreatOutOfScopeEvidence struct {
Path string `yaml:"path"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatScenario ¶
type ThreatScenario struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Summary string `yaml:"summary"`
Category string `yaml:"category"`
Stride string `yaml:"stride"`
CWE []string `yaml:"cwe"`
AttackVectorRef string `yaml:"attackVectorRef"`
AppliesTo []string `yaml:"appliesTo"`
FlowRefs []string `yaml:"flowRefs"`
EntryPoint string `yaml:"entryPoint"`
Preconditions []string `yaml:"preconditions"`
ExploitPath []string `yaml:"exploitPath"`
Likelihood string `yaml:"likelihood"`
Impact string `yaml:"impact"`
Severity string `yaml:"severity"`
Status string `yaml:"status"`
Owner string `yaml:"owner"`
RiskRef string `yaml:"riskRef"`
RelatedControls []string `yaml:"relatedControls"`
AssumptionRefs []string `yaml:"assumptionRefs"`
OutOfScopeRefs []string `yaml:"outOfScopeRefs"`
MitigationRefs []string `yaml:"mitigationRefs"`
VerificationRefs []string `yaml:"verificationRefs"`
Detection []string `yaml:"detection"`
Evidence []ThreatScenarioEvidence `yaml:"evidence"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ThreatScenarioEvidence ¶
type ThreatScenarioEvidence struct {
Path string `yaml:"path"`
Description string `yaml:"description"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER
type ToolAssessment ¶
type TrustBoundary ¶
type TrustBoundary struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
BoundaryType string `yaml:"boundaryType"`
ParentRef string `yaml:"parentRef"`
Members []string `yaml:"members"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, TB-REPO-WORKSPACE, TB-EXTERNAL-VALIDATION-TOOLS
type UncoveredDisposition ¶
type UncoveredDisposition struct {
ID string `yaml:"id" json:"id"`
Disposition string `yaml:"disposition" json:"disposition"`
Count int `yaml:"count" json:"count"`
Rationale string `yaml:"rationale" json:"rationale"`
Evidence []string `yaml:"evidence" json:"evidence"`
Reviewer string `yaml:"reviewer" json:"reviewer"`
Status string `yaml:"status" json:"status"`
}
type VerificationExecution ¶
type VerificationExecution struct {
ID string `yaml:"id" json:"id"`
ProcedureRef string `yaml:"procedureRef" json:"procedureRef"`
CaseRefs []string `yaml:"caseRefs" json:"caseRefs"`
Baseline string `yaml:"baseline" json:"baseline"`
Build string `yaml:"build" json:"build"`
Environment string `yaml:"environment" json:"environment"`
Target string `yaml:"target" json:"target"`
Producer string `yaml:"producer" json:"producer"`
Verifier string `yaml:"verifier" json:"verifier"`
Status string `yaml:"status" json:"status"`
Result string `yaml:"result" json:"result"`
Evidence []string `yaml:"evidence" json:"evidence"`
ApprovalRefs []string `yaml:"approvalRefs" json:"approvalRefs"`
}
type VerificationProcedure ¶
type VerificationProcedure struct {
ID string `yaml:"id" json:"id"`
CaseRefs []string `yaml:"caseRefs" json:"caseRefs"`
Steps []string `yaml:"steps" json:"steps"`
Environment string `yaml:"environment" json:"environment"`
Target string `yaml:"target" json:"target"`
Baseline string `yaml:"baseline" json:"baseline"`
State string `yaml:"state" json:"state"`
}
type View ¶
type View struct {
ID string `yaml:"id"`
Kind string `yaml:"kind"`
Roots []string `yaml:"roots"`
AuthoredStatus string `yaml:"authoredStatus"`
AuthoredStatusExplanation string `yaml:"authoredStatusExplanation"`
IncludeKinds []string `yaml:"includeKinds"`
ExcludeKinds []string `yaml:"excludeKinds"`
IncludeMappings []string `yaml:"includeMappings"`
ExcludeMappings []string `yaml:"excludeMappings"`
MaxDepth int `yaml:"maxDepth"`
Audience string `yaml:"audience"`
Abstraction string `yaml:"abstraction"`
}
ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VIEW-PROJECTION
type ViewsDocument ¶
type ViewsDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Views []View `yaml:"views"`
NAF NAFProfile `yaml:"naf"`
Design DesignModel `yaml:"design"`
Documents []DocumentDefinition `yaml:"documents"`
}
ViewsDocument owns projections, NAF metadata, and authored narratives. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046
type WorkspaceDocument ¶
type WorkspaceDocument struct {
SchemaVersion int `yaml:"schemaVersion"`
Replacements []WorkspaceReplacement `yaml:"replacements"`
}
WorkspaceDocument provides local development replacements for published CUE module identities. It is never included in a published module. ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
func FindWorkspace ¶
func FindWorkspace(start string) (WorkspaceDocument, string, error)
FindWorkspace finds the nearest engmod.work.yml at or above start. Like other workspace mechanisms, it may intentionally sit above multiple sibling Git repositories. TRLC-LINKS: REQ-EMG-048 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
func FindWorkspaceWith ¶
func FindWorkspaceWith(start, mode string) (WorkspaceDocument, string, error)
FindWorkspaceWith finds the model workspace for start under an explicit mode. An empty mode falls back to ENGMOD_WORK; "off" returns no workspace; any other value is a workspace file path (relative to the working directory) that is used without searching parent directories and must exist. TRLC-LINKS: REQ-EMG-048, REQ-EMG-063 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
func LoadWorkspace ¶
func LoadWorkspace(path string) (WorkspaceDocument, error)
LoadWorkspace loads and validates a local model workspace replacement file. TRLC-LINKS: REQ-EMG-048, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION
func (WorkspaceDocument) ReplacementPath ¶
func (w WorkspaceDocument) ReplacementPath(modulePath string) (string, bool)
ReplacementPath returns the authored local path for a CUE module identity. TRLC-LINKS: REQ-EMG-048
type WorkspaceReplacement ¶
WorkspaceReplacement maps one CUE module identity to a local repository. ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION