finos / finos/architecture-as-code
Controls to Interfaces
- Dominant language
- TypeScript
- Stars
- 399
- Forks
- 138
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 37
Description
## Feature Proposal
Currenlty Controls are supported to all nodes with in CALM. Interfaces to CALM nodes will need to also have an ability to define controls for fine grained control definition to every interafce.
### Target Project:
CALM Schema
In future we need to add capability to define controls at interface level in our VS Code Plugin, Calm Studio & Calm Hub
### Description of Feature:
Controls at interface node level as well
### User Stories:
As an end user i should be able to define controls at interface level
### Current Limitations:
Unable to define controls to interfaces
### Proposed Implementation:
calm/calm/draft/2025-03/meta/interface.json
Example usage in a CALM document:
{
"unique-id": "host-port-01",
"host": "api.example.com",
"port": 443,
"controls": {
"security": {
"description": "TLS required on this interface",
"requirements": [
{
"control-requirement-url": "https://example.com/controls/tls-1.3"
}
]
}
}
}
### Alternatives Considered:
NA
### Testing Strategy:
Validate JSON Schema is Valid
### Documentation Requirements:
Add Controls capability in CALM Documentation
### Implementation Checklist:
- [ ] Design reviewed and approved
- [ ] Implementation completed
- [ ] Tests written and passing
- [ ] Documentation updated
- [ ] Relevant workflows updated (if needed)
- [ ] Performance impact assessed
### Additional Context:
Discussed as part of https://github.com/finos/architecture-as-code/issues/2851
Contributor guide
Research direction
Start with calm/calm/draft/2025-03/meta/interface.json and review the related discussion in issue 2851. Validate that the JSON Schema supports controls at interface level, then check the CALM documentation requirements. Done means the design is approved, schema validation passes, tests are written and passing, and the documentation is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- documentation, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100