You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document security, performance, and compliance requirements using CALM's controls feature to capture non-functional requirements (NFRs).
14
+
15
+
## Learning Objectives
16
+
17
+
By the end of this tutorial, you will:
18
+
- Understand the structure of CALM controls
19
+
- Add architecture-level and node-level controls
20
+
- Distinguish between inline `config` and external `config-url` implementations
21
+
- Know which control domains are available (security, compliance, performance, operational)
22
+
23
+
## Prerequisites
24
+
25
+
Complete the [Beginner Tutorials](../beginner/07-complete-architecture) section first. You will need your `architectures/ecommerce-platform.json` from the [Build a Complete Architecture](../beginner/07-complete-architecture) lesson.
-**Requirements:** Array of requirement specifications with:
35
+
-`requirement-url`: Link to the requirement definition
36
+
- Plus ONE of:
37
+
-`config-url`: Link to external configuration, OR
38
+
-`config`: Inline configuration object
39
+
40
+
> **Important:** Each requirement MUST specify how it's implemented — either via `config-url` or inline `config`. This enforces that controls are not just declared but actually configured.
41
+
42
+
Controls can be applied at multiple levels:
43
+
-**Architecture level:** Apply to the entire system
44
+
-**Node level:** Apply to specific components
45
+
-**Relationship level:** Apply to specific connections between components
46
+
-**Flow level:** Apply to business processes and data flows
47
+
48
+
### 2. Add an Architecture-Level Security Control
49
+
50
+
Open your `architectures/ecommerce-platform.json` from the [Build a Complete Architecture](../beginner/07-complete-architecture) lesson.
51
+
52
+
**Prompt:**
53
+
```text
54
+
Add a controls section at the top level of architectures/ecommerce-platform.json
55
+
56
+
Add a "security" control with:
57
+
- description: "Data encryption and secure communication requirements"
Use **inline `config`** for simple, self-contained settings. Use **`config-url`** when configuration is managed externally or is too complex to inline.
0 commit comments