finos / finos/architecture-as-code
VS Code Plugin :: Add CalmHub connection with OIDC auth, CURIE resolution, and controls overlay
- Dominant language
- TypeScript
- Stars
- 399
- Forks
- 138
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 38
Description
## Feature Proposal
### Target Project:
- calm-plugins/vscode
- shared
- cli
- calm-models
### Description of Feature:
Add CalmHub connectivity to the VSCode extension with OIDC authentication, CURIE resolution chain for Hub-optional validation, and canvas editor controls overlay.
### User Stories:
- As a CALM author, I want to connect my VSCode extension to a CalmHub instance so that I can browse and drop Hub resources directly into my architecture canvas.
- As a CALM author, I want the CLI to resolve control CURIEs from local assets (via --assets-path) so that I can validate offline without a Hub.
- As an enterprise, we are required to store architecture artifacts in a source code management system. This change will allow an enterprise if it chooses to back CALMHub via an OIDC based SCM.
### Current Limitations:
The VSCode extension has no Hub integration — resources must be authored manually. The CLI cannot resolve CURIE references in controls, requiring fully-qualified URLs or skipping validation.
### Proposed Implementation:
- VSCode: Hub client (hub-client.ts), OIDC auth service delegating login to Hub, SHA-based asset cache (~/.calm/cache), status bar indicator, and Node Palette with Hub resource drops.
- Shared: CURIE parser (hub/curie.ts), chain reference resolver (ShaCacheResolver → LocalCurieResolver → CurieResolver → HttpResolver), controls merge utility.
- CLI: --assets-path option for local CURIE resolution, wired into the resolver chain.
- calm-models: definition-id support on nodes.
### Alternatives Considered:
...what other approaches were considered and why were they rejected?
### Testing Strategy:
...how will this feature be tested? Include unit, integration, and any other testing considerations...
### Documentation Requirements:
...what documentation will need to be created or updated?
### Implementation Checklist:
- [ ] Design reviewed and approved
- [ ] Implementation completed
- [ ] Tests written and passing
- [ ] Documentation updated
- [ ] Relevant workflows updated (if needed)
- [ ] Performance impact assessed
### Additional Context:
...add any other context, diagrams, mockups, or screenshots about the feature request here...
Contributor guide
Assessment
This issue has not been assessed yet.