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
Copy file name to clipboardExpand all lines: docs/docs/core-concepts/decorators.md
+67-51Lines changed: 67 additions & 51 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,14 +85,14 @@ This creates a composable schema inheritance chain where each layer owns its own
85
85
86
86
To illustrate how the base decorator schema can be extended, consider deployment decorators that track when and how architecture components are deployed, including status, timing, and observability links.
87
87
88
-
### Example: Deployment Decorator Standard
88
+
### Example: Deployment Decorator Schema
89
89
90
-
A deployment decorator standard constrains `type` to `"deployment"` and defines deployment-specific attributes in `data`:
90
+
A deployment decorator schema could constrain `type` to `"deployment"` and define deployment-specific attributes in `data`:
|`deployment-observability`| string (uri) | No | Link to logs, metrics, or observability dashboards |
152
139
153
140
The `data` object uses `additionalProperties: true` so that extension schemas can add domain-specific sub-objects.
154
141
155
142
## Example: Kubernetes Deployment Decorators
156
143
157
-
Taking the extension pattern further, a Kubernetes-specific decorator can add a `kubernetes` sub-object inside `data` with cluster-specific attributes. The Kubernetes properties are nested to avoid conflicts with the base deployment properties.
158
-
159
-
### Kubernetes-Specific Properties
144
+
Taking the extension pattern further, a Kubernetes-specific decorator could add a `kubernetes` sub-object inside `data` with cluster-specific attributes. The Kubernetes properties are nested to avoid conflicts with the base deployment properties and to allow each schema layer to lock down its own scope.
160
145
161
-
When deploying to Kubernetes, add platform-specific details in a `kubernetes` sub-object:
146
+
### Kubernetes Decorator Schema
162
147
163
-
| Property | Type | Description |
164
-
|---|---|---|
165
-
|`kubernetes.helm-chart`| string | Helm chart name and semver version (e.g. `my-app:1.2.3`) |
The deployment decorator standard allows `additionalProperties: true` in the `data` object, so platform-specific sub-objects like `kubernetes`, `aws-ecs`, or `azure` can be added without modifying the base standard.
185
+
| Property | Type | Required | Description |
186
+
|---|---|---|---|
187
+
|`kubernetes.helm-chart`| string (pattern) | Yes | Helm chart name and semver version (e.g. `my-app:1.2.3`) |
└── deployment decorator (type="deployment", deployment attributes in data)
198
+
└── kubernetes decorator (kubernetes sub-object in data)
180
199
```
181
200
182
-
The deployment standard constrains `type` to `"deployment"` and defines the structure of the `data` field with standard deployment properties (`start-time`, `status`, etc.). Organizations can add platform-specific sub-objects within`data` (like `kubernetes`, `aws-ecs`, or `azure`) to capture deployment details specific to their infrastructure.
201
+
Other deployment targets (e.g. AWS ECS, Azure Container Apps) could follow the same pattern — extend a deployment decorator schema and add their own sub-object inside`data`.
183
202
184
203
## Worked Example
185
204
@@ -204,18 +223,15 @@ A Kubernetes deployment decorator for this node could look like:
0 commit comments