@sylix/coworker 2.0.10 → 2.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +23 -5
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/commands/slash/todo.js +1 -1
  5. package/dist/commands/slash/todo.js.map +1 -1
  6. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  7. package/dist/core/CoWorkerAgent.js +6 -3
  8. package/dist/core/CoWorkerAgent.js.map +1 -1
  9. package/dist/permissions/PermissionInterceptor.js +1 -1
  10. package/dist/permissions/PermissionInterceptor.js.map +1 -1
  11. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  12. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  13. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  14. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  15. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  16. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  17. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  18. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  19. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  20. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  21. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  22. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  23. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  24. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  25. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  26. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  27. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  28. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  29. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  30. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  31. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  32. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  33. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  34. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  35. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  36. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  37. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  38. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  39. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  40. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  41. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  42. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  43. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  44. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  45. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  46. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  47. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  48. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  49. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  50. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  51. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  52. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  53. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  54. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  55. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  56. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  57. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  58. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  59. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  60. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  61. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  62. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  63. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  64. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  65. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  66. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  67. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  68. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  69. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  70. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  71. package/dist/skills/defaults/database/postgresql.md +202 -0
  72. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  73. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  74. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  75. package/dist/skills/defaults/devops/cicd.md +314 -0
  76. package/dist/skills/defaults/devops/cloud.md +263 -0
  77. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  78. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  79. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  80. package/dist/skills/defaults/devops/docker.md +281 -0
  81. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  82. package/dist/skills/defaults/devops/github-actions.md +311 -0
  83. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  84. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  85. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  86. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  87. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  88. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  89. package/dist/skills/defaults/devops/observability.md +243 -0
  90. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  91. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  92. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  93. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  94. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  95. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  96. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  97. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  98. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  99. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  100. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  101. package/dist/skills/defaults/frontend/javascript.md +311 -0
  102. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  103. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  104. package/dist/skills/defaults/frontend/react.md +345 -0
  105. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  106. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  107. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  108. package/dist/skills/defaults/frontend/typescript.md +334 -0
  109. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  110. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  111. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  112. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  113. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  114. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  115. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  116. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  117. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  118. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  119. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  120. package/dist/skills/defaults/kubernetes/security.md +337 -0
  121. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  122. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  123. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  124. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  125. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  126. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  127. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  128. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  129. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  130. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  131. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  132. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  133. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  134. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  135. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  136. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  137. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  138. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  139. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  140. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  141. package/dist/skills/defaults/security/auditor.md +168 -0
  142. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  143. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  144. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  145. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  146. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  147. package/dist/skills/defaults/security/security.md +313 -0
  148. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  149. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  150. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  151. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  152. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  153. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  154. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  155. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  156. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  157. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  158. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  159. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  160. package/dist/skills/defaults/testing/testing.md +332 -0
  161. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  162. package/dist/skills/defaults/workflows/track-management.md +592 -0
  163. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  164. package/dist/skills/index.d.ts +11 -0
  165. package/dist/skills/index.d.ts.map +1 -0
  166. package/dist/skills/index.js +129 -0
  167. package/dist/skills/index.js.map +1 -0
  168. package/dist/utils/character.js +6 -9
  169. package/dist/utils/character.js.map +1 -1
  170. package/dist/utils/contextManager.js +3 -7
  171. package/dist/utils/contextManager.js.map +1 -1
  172. package/dist/utils/inputbar.d.ts.map +1 -1
  173. package/dist/utils/inputbar.js +8 -1
  174. package/dist/utils/inputbar.js.map +1 -1
  175. package/dist/utils/output.d.ts.map +1 -1
  176. package/dist/utils/output.js +3 -35
  177. package/dist/utils/output.js.map +1 -1
  178. package/package.json +1 -1
@@ -0,0 +1,370 @@
1
+ ---
2
+ name: grafana-dashboards
3
+ description: Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
4
+ ---
5
+
6
+ # Grafana Dashboards
7
+
8
+ Create and manage production-ready Grafana dashboards for comprehensive system observability.
9
+
10
+ ## Purpose
11
+
12
+ Design effective Grafana dashboards for monitoring applications, infrastructure, and business metrics.
13
+
14
+ ## When to Use
15
+
16
+ - Visualize Prometheus metrics
17
+ - Create custom dashboards
18
+ - Implement SLO dashboards
19
+ - Monitor infrastructure
20
+ - Track business KPIs
21
+
22
+ ## Dashboard Design Principles
23
+
24
+ ### 1. Hierarchy of Information
25
+
26
+ ```
27
+ ┌─────────────────────────────────────┐
28
+ │ Critical Metrics (Big Numbers) │
29
+ ├─────────────────────────────────────┤
30
+ │ Key Trends (Time Series) │
31
+ ├─────────────────────────────────────┤
32
+ │ Detailed Metrics (Tables/Heatmaps) │
33
+ └─────────────────────────────────────┘
34
+ ```
35
+
36
+ ### 2. RED Method (Services)
37
+
38
+ - **Rate** - Requests per second
39
+ - **Errors** - Error rate
40
+ - **Duration** - Latency/response time
41
+
42
+ ### 3. USE Method (Resources)
43
+
44
+ - **Utilization** - % time resource is busy
45
+ - **Saturation** - Queue length/wait time
46
+ - **Errors** - Error count
47
+
48
+ ## Dashboard Structure
49
+
50
+ ### API Monitoring Dashboard
51
+
52
+ ```json
53
+ {
54
+ "dashboard": {
55
+ "title": "API Monitoring",
56
+ "tags": ["api", "production"],
57
+ "timezone": "browser",
58
+ "refresh": "30s",
59
+ "panels": [
60
+ {
61
+ "title": "Request Rate",
62
+ "type": "graph",
63
+ "targets": [
64
+ {
65
+ "expr": "sum(rate(http_requests_total[5m])) by (service)",
66
+ "legendFormat": "{{service}}"
67
+ }
68
+ ],
69
+ "gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 }
70
+ },
71
+ {
72
+ "title": "Error Rate %",
73
+ "type": "graph",
74
+ "targets": [
75
+ {
76
+ "expr": "(sum(rate(http_requests_total{status=~\"5..\"}[5m])) / sum(rate(http_requests_total[5m]))) * 100",
77
+ "legendFormat": "Error Rate"
78
+ }
79
+ ],
80
+ "alert": {
81
+ "conditions": [
82
+ {
83
+ "evaluator": { "params": [5], "type": "gt" },
84
+ "operator": { "type": "and" },
85
+ "query": { "params": ["A", "5m", "now"] },
86
+ "type": "query"
87
+ }
88
+ ]
89
+ },
90
+ "gridPos": { "x": 12, "y": 0, "w": 12, "h": 8 }
91
+ },
92
+ {
93
+ "title": "P95 Latency",
94
+ "type": "graph",
95
+ "targets": [
96
+ {
97
+ "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))",
98
+ "legendFormat": "{{service}}"
99
+ }
100
+ ],
101
+ "gridPos": { "x": 0, "y": 8, "w": 24, "h": 8 }
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ ```
107
+
108
+ ## Panel Types
109
+
110
+ ### 1. Stat Panel (Single Value)
111
+
112
+ ```json
113
+ {
114
+ "type": "stat",
115
+ "title": "Total Requests",
116
+ "targets": [
117
+ {
118
+ "expr": "sum(http_requests_total)"
119
+ }
120
+ ],
121
+ "options": {
122
+ "reduceOptions": {
123
+ "values": false,
124
+ "calcs": ["lastNotNull"]
125
+ },
126
+ "orientation": "auto",
127
+ "textMode": "auto",
128
+ "colorMode": "value"
129
+ },
130
+ "fieldConfig": {
131
+ "defaults": {
132
+ "thresholds": {
133
+ "mode": "absolute",
134
+ "steps": [
135
+ { "value": 0, "color": "green" },
136
+ { "value": 80, "color": "yellow" },
137
+ { "value": 90, "color": "red" }
138
+ ]
139
+ }
140
+ }
141
+ }
142
+ }
143
+ ```
144
+
145
+ ### 2. Time Series Graph
146
+
147
+ ```json
148
+ {
149
+ "type": "graph",
150
+ "title": "CPU Usage",
151
+ "targets": [
152
+ {
153
+ "expr": "100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)"
154
+ }
155
+ ],
156
+ "yaxes": [
157
+ { "format": "percent", "max": 100, "min": 0 },
158
+ { "format": "short" }
159
+ ]
160
+ }
161
+ ```
162
+
163
+ ### 3. Table Panel
164
+
165
+ ```json
166
+ {
167
+ "type": "table",
168
+ "title": "Service Status",
169
+ "targets": [
170
+ {
171
+ "expr": "up",
172
+ "format": "table",
173
+ "instant": true
174
+ }
175
+ ],
176
+ "transformations": [
177
+ {
178
+ "id": "organize",
179
+ "options": {
180
+ "excludeByName": { "Time": true },
181
+ "indexByName": {},
182
+ "renameByName": {
183
+ "instance": "Instance",
184
+ "job": "Service",
185
+ "Value": "Status"
186
+ }
187
+ }
188
+ }
189
+ ]
190
+ }
191
+ ```
192
+
193
+ ### 4. Heatmap
194
+
195
+ ```json
196
+ {
197
+ "type": "heatmap",
198
+ "title": "Latency Heatmap",
199
+ "targets": [
200
+ {
201
+ "expr": "sum(rate(http_request_duration_seconds_bucket[5m])) by (le)",
202
+ "format": "heatmap"
203
+ }
204
+ ],
205
+ "dataFormat": "tsbuckets",
206
+ "yAxis": {
207
+ "format": "s"
208
+ }
209
+ }
210
+ ```
211
+
212
+ ## Variables
213
+
214
+ ### Query Variables
215
+
216
+ ```json
217
+ {
218
+ "templating": {
219
+ "list": [
220
+ {
221
+ "name": "namespace",
222
+ "type": "query",
223
+ "datasource": "Prometheus",
224
+ "query": "label_values(kube_pod_info, namespace)",
225
+ "refresh": 1,
226
+ "multi": false
227
+ },
228
+ {
229
+ "name": "service",
230
+ "type": "query",
231
+ "datasource": "Prometheus",
232
+ "query": "label_values(kube_service_info{namespace=\"$namespace\"}, service)",
233
+ "refresh": 1,
234
+ "multi": true
235
+ }
236
+ ]
237
+ }
238
+ }
239
+ ```
240
+
241
+ ### Use Variables in Queries
242
+
243
+ ```
244
+ sum(rate(http_requests_total{namespace="$namespace", service=~"$service"}[5m]))
245
+ ```
246
+
247
+ ## Alerts in Dashboards
248
+
249
+ ```json
250
+ {
251
+ "alert": {
252
+ "name": "High Error Rate",
253
+ "conditions": [
254
+ {
255
+ "evaluator": {
256
+ "params": [5],
257
+ "type": "gt"
258
+ },
259
+ "operator": { "type": "and" },
260
+ "query": {
261
+ "params": ["A", "5m", "now"]
262
+ },
263
+ "reducer": { "type": "avg" },
264
+ "type": "query"
265
+ }
266
+ ],
267
+ "executionErrorState": "alerting",
268
+ "for": "5m",
269
+ "frequency": "1m",
270
+ "message": "Error rate is above 5%",
271
+ "noDataState": "no_data",
272
+ "notifications": [{ "uid": "slack-channel" }]
273
+ }
274
+ }
275
+ ```
276
+
277
+ ## Dashboard Provisioning
278
+
279
+ **dashboards.yml:**
280
+
281
+ ```yaml
282
+ apiVersion: 1
283
+
284
+ providers:
285
+ - name: "default"
286
+ orgId: 1
287
+ folder: "General"
288
+ type: file
289
+ disableDeletion: false
290
+ updateIntervalSeconds: 10
291
+ allowUiUpdates: true
292
+ options:
293
+ path: /etc/grafana/dashboards
294
+ ```
295
+
296
+ ## Common Dashboard Patterns
297
+
298
+ ### Infrastructure Dashboard
299
+
300
+ **Key Panels:**
301
+
302
+ - CPU utilization per node
303
+ - Memory usage per node
304
+ - Disk I/O
305
+ - Network traffic
306
+ - Pod count by namespace
307
+ - Node status
308
+
309
+ ### Database Dashboard
310
+
311
+ **Key Panels:**
312
+
313
+ - Queries per second
314
+ - Connection pool usage
315
+ - Query latency (P50, P95, P99)
316
+ - Active connections
317
+ - Database size
318
+ - Replication lag
319
+ - Slow queries
320
+
321
+ ### Application Dashboard
322
+
323
+ **Key Panels:**
324
+
325
+ - Request rate
326
+ - Error rate
327
+ - Response time (percentiles)
328
+ - Active users/sessions
329
+ - Cache hit rate
330
+ - Queue length
331
+
332
+ ## Best Practices
333
+
334
+ 1. **Start with templates** (Grafana community dashboards)
335
+ 2. **Use consistent naming** for panels and variables
336
+ 3. **Group related metrics** in rows
337
+ 4. **Set appropriate time ranges** (default: Last 6 hours)
338
+ 5. **Use variables** for flexibility
339
+ 6. **Add panel descriptions** for context
340
+ 7. **Configure units** correctly
341
+ 8. **Set meaningful thresholds** for colors
342
+ 9. **Use consistent colors** across dashboards
343
+ 10. **Test with different time ranges**
344
+
345
+ ## Dashboard as Code
346
+
347
+ ### Terraform Provisioning
348
+
349
+ ```hcl
350
+ resource "grafana_dashboard" "api_monitoring" {
351
+ config_json = file("${path.module}/dashboards/api-monitoring.json")
352
+ folder = grafana_folder.monitoring.id
353
+ }
354
+
355
+ resource "grafana_folder" "monitoring" {
356
+ title = "Production Monitoring"
357
+ }
358
+ ```
359
+
360
+ ### Ansible Provisioning
361
+
362
+ ```yaml
363
+ - name: Deploy Grafana dashboards
364
+ copy:
365
+ src: "{{ item }}"
366
+ dest: /etc/grafana/dashboards/
367
+ with_fileglob:
368
+ - "dashboards/*.json"
369
+ notify: restart grafana
370
+ ```