finos / finos/architecture-as-code

feat(calm-hub-ui): add architecture deployment visualisations

Open
#2,232 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
399
Forks
138
Avg merge
2d 14h
Merged PRs (30d)
37

Description

## Feature Proposal

### Target Project:
CALM Hub UI

### Description of Feature:
The CALM Hub backend can now retrieve decorators by ID and filter them by target and type. This proposal describes a new Deployments tab added to the Architecture detail view in the CALM Hub UI, which uses the decorator API to surface deployment history directly alongside the architecture diagram and JSON views.

### User Stories:
- As an **architect**, I want to see the deployment history of an architecture so that I can understand when and how it has been deployed to production.
- As a **platform engineer**, I want to view the current deployment status of an architecture at a glance so that I can quickly identify in-progress or failed deployments.
- As an **operations engineer**, I want to click through to observability dashboards directly from an architecture's deployment history so that I can correlate architectural changes with runtime behaviour.
- As a **developer**, I want to see which nodes and relationships are covered by a deployment decorator so that I understand the scope of each deployment.

### Current Limitations:
- No current way of viewing architecture deployments without interacting directly with the API.

### Proposed Implementation:

#### Frontend changes
- Add new tab which navigates to architectures/{architcture-id}/{architecture-version}/deployments

#### Data model
Deployment decorator fields follow the `deployment.decorator.standard.json` schema:

| Field | Required | Description |
|---|---|---|
| `start-time` | Yes | ISO 8601 timestamp of when the deployment started |
| `status` | Yes | One of: `pending`, `in-progress`, `completed`, `failed`, `rolled-back` |
| `end-time` | No | ISO 8601 timestamp of when the deployment ended |
| `deployment-details` | No | URI linking to logs, metrics, or observability dashboards |
| `notes` | No | Free-form notes about the deployment |

Additional properties are permitted and displayed in the metadata table.

### Testing Strategy
- **Frontend**: Manual testing via the CALM Hub UI with real decorator data. Component-level tests for `DeploymentSection` can be added using Vitest and React Testing Library.

### Documentation Requirements:
- The existing `decorators.md` concept documentation already covers the deployment decorator schema and examples.
- API documentation for the new `GET /calm/namespaces/{namespace}/decorators/{id}` endpoint is provided via the OpenAPI `@Operation` annotations on `DecoratorResource`.

### Implementation Checklist:
- [ ] Design reviewed and approved
- [ ] Implementation completed
- [ ] Tests written and passing
- [ ] Documentation updated
- [ ] Relevant workflows updated (if needed)
- [ ] Performance impact assessed

### Wireframes / Initial Mockups

Image

Image

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.