SDS-039: CALM CLI Service

Addresses Requirements

MVP Status

MVP


Component Description

The CALM CLI Service provides command-line utilities for defining, validating, and visualizing the system architecture based on the FINOS CALM specification. It ensures architectural compliance and transparency across the SEA™.


Technical Details

Interfaces

Direction Description Format
Input CALM architecture definition files .arch.json
Output Validation reports JSON/Text
Output Compliance status JSON
Output Architectural diagrams PNG/SVG

Protocols


Data Model

Refer to SDS-001: Data Model Schemas for:

Also see CALM DSL Specification for complete language reference.


CLI Commands

Validate Architecture

1
calm validate <path/to/arch.json>

Description: Validates architecture against CALM schema and defined controls.

Output:

1
2
3
4
5
6
7
Validating architecture: order-service.arch.json
✓ Schema validation passed
✓ 12 nodes validated
✓ 18 relationships validated
⚠ 2 controls non-compliant:
  - data-encryption-at-rest (node: customer-db)
  - api-rate-limiting (relationship: order-to-payment)

Visualize Architecture

1
calm visualize <path/to/arch.json> --format <png|svg>

Description: Generates visual diagrams from CALM definitions.

Options:

Check Compliance

1
calm compliance <path/to/arch.json>

Description: Reports compliance status against architectural controls.

Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "compliant": 15,
  "nonCompliant": 2,
  "waived": 1,
  "controls": [
    { "id": "data-encryption", "status": "compliant" },
    {
      "id": "api-rate-limiting",
      "status": "non-compliant",
      "node": "order-service"
    }
  ]
}

Dependencies


Error Handling


Performance Considerations


Security Considerations


CI/CD Integration

1
2
3
4
5
# GitHub Actions example
- name: Validate Architecture
  run: |
    calm validate architecture/*.arch.json
    calm compliance architecture/*.arch.json --fail-on-non-compliant

Testing Strategy