Multi-File Workspaces
For large enterprise architectures, maintaining a single monolithic .ea file is impractical. Scapius natively supports partitioning architecture models across multiple .ea files organized by domain, department, or architectural layer.
Workspace Structure
A multi-file architecture repository typically contains an index manifest or multiple .ea files in a directory hierarchy:
enterprise-model/
├── 01_business_layer/
│ ├── capabilities.ea
│ ├── processes.ea
│ └── value_streams.ea
├── 02_application_layer/
│ ├── core_banking_systems.ea
│ ├── digital_channels.ea
│ └── data_models.ea
├── 03_technology_layer/
│ ├── aws_environments.ea
│ └── onprem_infrastructure.ea
└── 04_security_layer/
├── compliance_policies.ea
└── threat_models.ea
Cross-File Entity References
Because entity identifiers are globally unique across the entire workspace, any .ea file can directly reference entities defined in another file.
Example: Referencing Across Files
File: 01_business_layer/capabilities.ea
capability cap_payment "Payment Processing" {
description "Core financial payment routing capability"
}
File: 02_application_layer/systems.ea
system sys_payment_gateway "Payment Gateway System" {
relationships {
# Seamlessly references cap_payment defined in capabilities.ea
this realizes cap_payment "Realizes payment processing"
}
}
Workspace Manifest (manifest.yaml)
A Scapius workspace may optionally include a manifest.yaml configuration file at its root alongside .ea models. manifest.yaml configures workspace-level settings, default currency, and custom enum definitions.
workspace:
currency: "USD"
enums:
# Fully replace the default 4-point risk classification with a 3-point scale
risk:
default: "Medium"
values:
- name: "High"
label: "High Risk"
score: 3
- name: "Medium"
label: "Medium Risk"
score: 2
- name: "Low"
label: "Low Risk"
score: 1
# Custom industry-specific data classification
data_classification:
default: "Internal"
values:
- name: "Public"
label: "Public"
score: 1
- name: "Internal"
label: "Internal"
score: 2
- name: "Confidential"
label: "Confidential"
score: 3
- name: "Restricted"
label: "Strictly Restricted"
score: 4
Config-Driven Enums & Global Platform Defaults (default.yaml)
Scapius enforces domain classification properties via a config-driven enum system rather than rigid grammar keywords. The platform provides global defaults in default.yaml for:
time_class(Tolerate,Invest,Migrate,Eliminate)lifecycle_phase(Plan,Build,Run,Retire)risk(High,Medium,Low)criticality(Mission-Critical,Business-Critical,Operational,Administrative,Standard)data_classification(Public,Internal,Confidential,Restricted)stride_category(Spoofing,Tampering,Repudiation,Info Disclosure,DoS,Privilege Escalation)likelihood,impact, andrating(Critical,High,Medium,Low,Very Low)mitigation_status(Open,Mitigated,Accepted)security_rating(Critical,High,Medium,Low)
When a workspace defines an enums.<key> block in its manifest.yaml, it fully replaces the platform default for that key, giving enterprises complete flexibility over taxonomy while preserving strict type validation.
Validating Multi-File Workspaces with the CLI
You can pass a directory path or wildcard pattern directly to the nexusea CLI to parse, load the manifest, and link all files in a single pass:
nexusea validate ./enterprise-model
The CLI compiler scans all .ea files in the target directory, aggregates all AST nodes, constructs the unified global symbol table, validates enums against the merged manifest configuration, and verifies cross-file relationships.