Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CalmHub: Introduce Controls #713

Open
jpgough-ms opened this issue Dec 31, 2024 · 2 comments
Open

CalmHub: Introduce Controls #713

jpgough-ms opened this issue Dec 31, 2024 · 2 comments
Assignees
Labels
calm-hub The Calm Hub Product

Comments

@jpgough-ms
Copy link
Member

Feature Request

Description of Problem:

Calm Hub currently supports architectures, patterns, and schemas. #711 proposes introducing flows.

To support the use of controls, this feature will add controls to CalmHub. The functionality will be a little different to the other functionality, as this should store both control-requirement and control-configuration. There is still some work going on in this space, with issue #687. This issue will need to remain blocked until then.

Potential Solutions:

  • Share the proposed URL structure on this issue for agreement for the best way to store controls requirements and configurations
  • Implementation with unit tests
  • Addition of integration tests

Assigning to @jpgough-ms to keep track of dependencies

@jpgough-ms jpgough-ms added the calm-hub The Calm Hub Product label Dec 31, 2024
@jpgough-ms jpgough-ms self-assigned this Dec 31, 2024
@rocketstack-matt
Copy link
Member

CC: @LeighFinegold

@jpgough-ms
Copy link
Member Author

jpgough-ms commented Jan 3, 2025

Provisional Design

API Structure

Domains

GET     calm/controls/domains - List all the domains supported by the CALM Hub
POST    calm/controls/domains - Create a new Domain (body)

Common schemas used by this domain and potentially shared with other domains

GET     calm/controls/domains/{domain}/schemas - returns a list of SchemaResponse
GET     calm/controls/domains/{domain}/schemas/{id} - returns a JSON Schema
POST    calm/controls/domains/{domain}/schemas - create a Schema, return a 201 with id and SchemaResponse

Managing Controls

GET     calm/controls/domains/{domain}/controls - return a list of Control
GET     calm/controls/domains/{domain}/controls/{id} - return a Control JSON
GET     calm/controls/domains/{domain}/controls/{id}/requirements - return a list of ControlRequirement
GET     calm/controls/domains/{domain}/controls/{id}/requirements{id} - return a list of ControlRequirement JSON

POST    calm/controls/domains/{domain}/controls?name=&description= - create a new control, body json
POST    calm/controls/domains/{domain}/controls/{id}/requirements?name=&description= - create a new ControlRequirement

Model Objects

Domain - name, description, external links
Schema - id, name
Control - id, name, description
ControlRequirement - id, name, description

@jpgough-ms jpgough-ms mentioned this issue Jan 9, 2025
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
calm-hub The Calm Hub Product
Projects
None yet
Development

No branches or pull requests

2 participants