@rashidazarang/airtable-mcp 1.5.0 → 2.1.0

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 (119) hide show
  1. package/.github/ISSUE_TEMPLATE/bug-report.yml +173 -0
  2. package/.github/ISSUE_TEMPLATE/feature-request.yml +209 -0
  3. package/.github/ISSUE_TEMPLATE/security-report.yml +216 -0
  4. package/.github/pull_request_template.md +245 -0
  5. package/.github/workflows/ci-cd.yml +408 -0
  6. package/.github/workflows/security-audit.yml +316 -0
  7. package/API_DOCUMENTATION.md +897 -0
  8. package/CODE_OF_CONDUCT.md +181 -0
  9. package/Dockerfile.production +127 -0
  10. package/README.md +55 -10
  11. package/RELEASE_NOTES_v1.6.0.md +248 -0
  12. package/airtable-clipper/CHANGELOG.md +198 -0
  13. package/airtable-clipper/CHROME_STORE_SUBMISSION.md +343 -0
  14. package/airtable-clipper/LAUNCH_STRATEGY.md +495 -0
  15. package/airtable-clipper/LICENSE +21 -0
  16. package/airtable-clipper/OAUTH_SETUP.md +51 -0
  17. package/airtable-clipper/PRIVACY_POLICY.md +187 -0
  18. package/airtable-clipper/README.md +575 -0
  19. package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +273 -0
  20. package/airtable-clipper/build.sh +85 -0
  21. package/airtable-clipper/docs/QUICK_START.md +99 -0
  22. package/airtable-clipper/docs/SETUP.md +291 -0
  23. package/airtable-clipper/extension/background.js +337 -0
  24. package/airtable-clipper/extension/base-setup.html +324 -0
  25. package/airtable-clipper/extension/base-setup.js +471 -0
  26. package/airtable-clipper/extension/content.js +771 -0
  27. package/airtable-clipper/extension/icons/README.md +69 -0
  28. package/airtable-clipper/extension/icons/icon-16.png +3 -0
  29. package/airtable-clipper/extension/manifest.json +73 -0
  30. package/airtable-clipper/extension/popup.html +144 -0
  31. package/airtable-clipper/extension/popup.js +475 -0
  32. package/airtable-clipper/extension/styles/content.css +229 -0
  33. package/airtable-clipper/extension/styles/popup.css +477 -0
  34. package/airtable-clipper/privacy-policy.md +63 -0
  35. package/airtable-clipper/releases/v1.0.0/background.js +337 -0
  36. package/airtable-clipper/releases/v1.0.0/base-setup.html +324 -0
  37. package/airtable-clipper/releases/v1.0.0/base-setup.js +471 -0
  38. package/airtable-clipper/releases/v1.0.0/content.js +771 -0
  39. package/airtable-clipper/releases/v1.0.0/icons/README.md +69 -0
  40. package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +2 -0
  41. package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +3 -0
  42. package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +2 -0
  43. package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +2 -0
  44. package/airtable-clipper/releases/v1.0.0/manifest.json +73 -0
  45. package/airtable-clipper/releases/v1.0.0/popup.html +144 -0
  46. package/airtable-clipper/releases/v1.0.0/popup.js +475 -0
  47. package/airtable-clipper/releases/v1.0.0/sidepanel.html +25 -0
  48. package/airtable-clipper/releases/v1.0.0/styles/content.css +229 -0
  49. package/airtable-clipper/releases/v1.0.0/styles/popup.css +477 -0
  50. package/airtable-clipper/releases/v1.0.1/background.js +337 -0
  51. package/airtable-clipper/releases/v1.0.1/base-setup.html +324 -0
  52. package/airtable-clipper/releases/v1.0.1/base-setup.js +471 -0
  53. package/airtable-clipper/releases/v1.0.1/content.js +771 -0
  54. package/airtable-clipper/releases/v1.0.1/icons/README.md +69 -0
  55. package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +2 -0
  56. package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +3 -0
  57. package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +2 -0
  58. package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +2 -0
  59. package/airtable-clipper/releases/v1.0.1/manifest.json +70 -0
  60. package/airtable-clipper/releases/v1.0.1/popup.html +157 -0
  61. package/airtable-clipper/releases/v1.0.1/popup.js +562 -0
  62. package/airtable-clipper/releases/v1.0.1/sidepanel.html +25 -0
  63. package/airtable-clipper/releases/v1.0.1/styles/content.css +229 -0
  64. package/airtable-clipper/releases/v1.0.1/styles/popup.css +647 -0
  65. package/airtable-clipper/releases/v1.0.2/background.js +337 -0
  66. package/airtable-clipper/releases/v1.0.2/base-setup.html +324 -0
  67. package/airtable-clipper/releases/v1.0.2/base-setup.js +471 -0
  68. package/airtable-clipper/releases/v1.0.2/content.js +771 -0
  69. package/airtable-clipper/releases/v1.0.2/icons/README.md +69 -0
  70. package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +2 -0
  71. package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +3 -0
  72. package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +2 -0
  73. package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +2 -0
  74. package/airtable-clipper/releases/v1.0.2/manifest.json +62 -0
  75. package/airtable-clipper/releases/v1.0.2/popup.html +157 -0
  76. package/airtable-clipper/releases/v1.0.2/popup.js +567 -0
  77. package/airtable-clipper/releases/v1.0.2/sidepanel.html +25 -0
  78. package/airtable-clipper/releases/v1.0.2/styles/content.css +229 -0
  79. package/airtable-clipper/releases/v1.0.2/styles/popup.css +647 -0
  80. package/airtable-clipper/terms-of-service.md +124 -0
  81. package/airtable-clipper/test-credentials.md +61 -0
  82. package/airtable-clipper/test-extension/background.js +337 -0
  83. package/airtable-clipper/test-extension/base-setup.html +324 -0
  84. package/airtable-clipper/test-extension/base-setup.js +471 -0
  85. package/airtable-clipper/test-extension/content.js +873 -0
  86. package/airtable-clipper/test-extension/icons/README.md +69 -0
  87. package/airtable-clipper/test-extension/icons/icon-128.png +2 -0
  88. package/airtable-clipper/test-extension/icons/icon-16.png +3 -0
  89. package/airtable-clipper/test-extension/icons/icon-32.png +2 -0
  90. package/airtable-clipper/test-extension/icons/icon-48.png +2 -0
  91. package/airtable-clipper/test-extension/manifest.json +72 -0
  92. package/airtable-clipper/test-extension/popup.html +274 -0
  93. package/airtable-clipper/test-extension/popup.js +729 -0
  94. package/airtable-clipper/test-extension/sidepanel.html +25 -0
  95. package/airtable-clipper/test-extension/styles/content.css +229 -0
  96. package/airtable-clipper/test-extension/styles/popup.css +794 -0
  97. package/airtable_mcp_v2.js +1505 -0
  98. package/airtable_mcp_v2_oauth.js +1048 -0
  99. package/airtable_mcp_v3_advanced.js +1161 -0
  100. package/airtable_simple.js +447 -1
  101. package/airtable_simple_production.js +532 -0
  102. package/docker-compose.production.yml +366 -0
  103. package/helm/airtable-mcp/Chart.yaml +122 -0
  104. package/helm/airtable-mcp/values.yaml +538 -0
  105. package/k8s/deployment.yaml +402 -0
  106. package/k8s/namespace.yaml +108 -0
  107. package/k8s/service.yaml +194 -0
  108. package/monitoring/alerts.yml +289 -0
  109. package/monitoring/prometheus.yml +224 -0
  110. package/package.json +6 -6
  111. package/test_v1.6.0_comprehensive.sh +187 -0
  112. package/.claude/settings.local.json +0 -12
  113. package/airtable-mcp-1.1.0.tgz +0 -0
  114. package/airtable_enhanced.js +0 -499
  115. package/airtable_simple_v1.2.4_backup.js +0 -277
  116. package/airtable_v1.4.0.js +0 -654
  117. package/rashidazarang-airtable-mcp-1.1.0.tgz +0 -0
  118. package/rashidazarang-airtable-mcp-1.2.0.tgz +0 -0
  119. package/rashidazarang-airtable-mcp-1.2.1.tgz +0 -0
@@ -0,0 +1,538 @@
1
+ # Default values for Airtable MCP Server Helm Chart
2
+ # Production-ready configuration for Trust Score 100/100
3
+
4
+ # ============================================================================
5
+ # GLOBAL CONFIGURATION
6
+ # ============================================================================
7
+ global:
8
+ # Image registry and repository
9
+ imageRegistry: ""
10
+ imagePullSecrets: []
11
+
12
+ # Trust Score configuration
13
+ trustScore:
14
+ target: 100
15
+ features:
16
+ - oauth2
17
+ - security
18
+ - monitoring
19
+ - high-availability
20
+ - production-ready
21
+
22
+ # Security configuration
23
+ security:
24
+ podSecurityStandards: restricted
25
+ networkPolicies: true
26
+ secretManagement: external
27
+
28
+ # ============================================================================
29
+ # APPLICATION CONFIGURATION
30
+ # ============================================================================
31
+ image:
32
+ registry: docker.io
33
+ repository: rashidazarang/airtable-mcp
34
+ tag: "2.1.0-production"
35
+ digest: ""
36
+ pullPolicy: IfNotPresent
37
+
38
+ # Service account configuration
39
+ serviceAccount:
40
+ create: true
41
+ automount: false
42
+ annotations: {}
43
+ name: ""
44
+ labels: {}
45
+
46
+ # Pod security context
47
+ podSecurityContext:
48
+ runAsNonRoot: true
49
+ runAsUser: 1001
50
+ runAsGroup: 1001
51
+ fsGroup: 1001
52
+ seccompProfile:
53
+ type: RuntimeDefault
54
+
55
+ # Container security context
56
+ securityContext:
57
+ allowPrivilegeEscalation: false
58
+ readOnlyRootFilesystem: true
59
+ runAsNonRoot: true
60
+ runAsUser: 1001
61
+ runAsGroup: 1001
62
+ capabilities:
63
+ drop:
64
+ - ALL
65
+ add:
66
+ - NET_BIND_SERVICE
67
+
68
+ # ============================================================================
69
+ # DEPLOYMENT CONFIGURATION
70
+ # ============================================================================
71
+ replicaCount: 3
72
+
73
+ # Deployment strategy
74
+ strategy:
75
+ type: RollingUpdate
76
+ rollingUpdate:
77
+ maxSurge: 1
78
+ maxUnavailable: 0
79
+
80
+ # Pod disruption budget
81
+ podDisruptionBudget:
82
+ enabled: true
83
+ minAvailable: 2
84
+ # maxUnavailable: 1
85
+
86
+ # Node selection
87
+ nodeSelector: {}
88
+
89
+ # Tolerations
90
+ tolerations: []
91
+
92
+ # Affinity rules
93
+ affinity:
94
+ podAntiAffinity:
95
+ preferredDuringSchedulingIgnoredDuringExecution:
96
+ - weight: 100
97
+ podAffinityTerm:
98
+ labelSelector:
99
+ matchExpressions:
100
+ - key: app.kubernetes.io/name
101
+ operator: In
102
+ values:
103
+ - airtable-mcp
104
+ topologyKey: kubernetes.io/hostname
105
+
106
+ # Topology spread constraints
107
+ topologySpreadConstraints:
108
+ - maxSkew: 1
109
+ topologyKey: topology.kubernetes.io/zone
110
+ whenUnsatisfiable: DoNotSchedule
111
+ labelSelector:
112
+ matchLabels:
113
+ app.kubernetes.io/name: airtable-mcp
114
+
115
+ # ============================================================================
116
+ # SERVICE CONFIGURATION
117
+ # ============================================================================
118
+ service:
119
+ type: ClusterIP
120
+ port: 8010
121
+ targetPort: http
122
+ protocol: TCP
123
+ annotations: {}
124
+ labels: {}
125
+
126
+ # Session affinity
127
+ sessionAffinity: ClientIP
128
+ sessionAffinityConfig:
129
+ clientIP:
130
+ timeoutSeconds: 300
131
+
132
+ # Load balancer service
133
+ loadBalancer:
134
+ enabled: false
135
+ type: LoadBalancer
136
+ port: 80
137
+ httpsPort: 443
138
+ annotations: {}
139
+ # Cloud-specific annotations
140
+ aws:
141
+ annotations:
142
+ service.beta.kubernetes.io/aws-load-balancer-type: "external"
143
+ service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
144
+ gcp:
145
+ annotations:
146
+ cloud.google.com/neg: '{"ingress": true}'
147
+ azure:
148
+ annotations:
149
+ service.beta.kubernetes.io/azure-load-balancer-internal: "false"
150
+
151
+ # ============================================================================
152
+ # INGRESS CONFIGURATION
153
+ # ============================================================================
154
+ ingress:
155
+ enabled: true
156
+ className: nginx
157
+ annotations:
158
+ nginx.ingress.kubernetes.io/rewrite-target: /
159
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
160
+ nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
161
+ nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
162
+ nginx.ingress.kubernetes.io/rate-limit: "100"
163
+ nginx.ingress.kubernetes.io/rate-limit-window: "1m"
164
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
165
+ hosts:
166
+ - host: mcp.example.com
167
+ paths:
168
+ - path: /
169
+ pathType: Prefix
170
+ tls:
171
+ - secretName: airtable-mcp-tls
172
+ hosts:
173
+ - mcp.example.com
174
+
175
+ # ============================================================================
176
+ # ENVIRONMENT VARIABLES
177
+ # ============================================================================
178
+ env:
179
+ # Application configuration
180
+ NODE_ENV: production
181
+ PORT: "8010"
182
+ HOST: "0.0.0.0"
183
+ LOG_LEVEL: "INFO"
184
+ LOG_FORMAT: "json"
185
+
186
+ # Performance configuration
187
+ CACHE_TTL: "60"
188
+ MAX_REQUESTS_PER_MINUTE: "60"
189
+ CONNECTION_TIMEOUT: "30000"
190
+ REQUEST_TIMEOUT: "10000"
191
+
192
+ # Security configuration
193
+ ALLOWED_ORIGINS: "*"
194
+
195
+ # Monitoring
196
+ ENABLE_METRICS: "true"
197
+ METRICS_PORT: "9090"
198
+
199
+ # Environment variables from secrets
200
+ envFromSecret:
201
+ enabled: true
202
+ secretName: airtable-mcp-secrets
203
+ keys:
204
+ - AIRTABLE_TOKEN
205
+ - AIRTABLE_BASE_ID
206
+ - AIRTABLE_CLIENT_ID
207
+ - AIRTABLE_CLIENT_SECRET
208
+ - SESSION_SECRET
209
+ - REDIS_PASSWORD
210
+
211
+ # Environment variables from config maps
212
+ envFromConfigMap:
213
+ enabled: true
214
+ configMapName: airtable-mcp-config
215
+
216
+ # ============================================================================
217
+ # SECRETS CONFIGURATION
218
+ # ============================================================================
219
+ secrets:
220
+ create: true
221
+ name: airtable-mcp-secrets
222
+ annotations: {}
223
+ labels: {}
224
+ stringData: {}
225
+ # External secret management
226
+ external:
227
+ enabled: false
228
+ provider: "" # vault, aws-secrets-manager, azure-key-vault, etc.
229
+
230
+ # ============================================================================
231
+ # CONFIG MAP CONFIGURATION
232
+ # ============================================================================
233
+ configMap:
234
+ create: true
235
+ name: airtable-mcp-config
236
+ annotations: {}
237
+ labels: {}
238
+ data:
239
+ LOG_LEVEL: "INFO"
240
+ MAX_REQUESTS_PER_MINUTE: "60"
241
+ CACHE_TTL: "60"
242
+ CONNECTION_TIMEOUT: "30000"
243
+ REQUEST_TIMEOUT: "10000"
244
+
245
+ # ============================================================================
246
+ # PERSISTENCE CONFIGURATION
247
+ # ============================================================================
248
+ persistence:
249
+ enabled: true
250
+ storageClass: ""
251
+ accessModes:
252
+ - ReadWriteOnce
253
+ size: 8Gi
254
+ annotations: {}
255
+
256
+ # Separate volumes
257
+ logs:
258
+ enabled: true
259
+ size: 2Gi
260
+ mountPath: /app/logs
261
+ tmp:
262
+ enabled: true
263
+ size: 1Gi
264
+ mountPath: /tmp
265
+
266
+ # ============================================================================
267
+ # RESOURCE CONFIGURATION
268
+ # ============================================================================
269
+ resources:
270
+ limits:
271
+ cpu: 1000m
272
+ memory: 512Mi
273
+ requests:
274
+ cpu: 100m
275
+ memory: 128Mi
276
+
277
+ # ============================================================================
278
+ # HEALTH CHECKS
279
+ # ============================================================================
280
+ livenessProbe:
281
+ enabled: true
282
+ httpGet:
283
+ path: /health
284
+ port: http
285
+ scheme: HTTP
286
+ initialDelaySeconds: 30
287
+ periodSeconds: 30
288
+ timeoutSeconds: 10
289
+ successThreshold: 1
290
+ failureThreshold: 3
291
+
292
+ readinessProbe:
293
+ enabled: true
294
+ httpGet:
295
+ path: /health
296
+ port: http
297
+ scheme: HTTP
298
+ initialDelaySeconds: 5
299
+ periodSeconds: 10
300
+ timeoutSeconds: 5
301
+ successThreshold: 1
302
+ failureThreshold: 3
303
+
304
+ startupProbe:
305
+ enabled: true
306
+ httpGet:
307
+ path: /health
308
+ port: http
309
+ scheme: HTTP
310
+ initialDelaySeconds: 10
311
+ periodSeconds: 5
312
+ timeoutSeconds: 3
313
+ successThreshold: 1
314
+ failureThreshold: 6
315
+
316
+ # ============================================================================
317
+ # AUTOSCALING CONFIGURATION
318
+ # ============================================================================
319
+ autoscaling:
320
+ enabled: true
321
+ minReplicas: 3
322
+ maxReplicas: 10
323
+ targetCPUUtilizationPercentage: 70
324
+ targetMemoryUtilizationPercentage: 80
325
+
326
+ # Behavior configuration
327
+ behavior:
328
+ scaleDown:
329
+ stabilizationWindowSeconds: 300
330
+ policies:
331
+ - type: Percent
332
+ value: 10
333
+ periodSeconds: 60
334
+ scaleUp:
335
+ stabilizationWindowSeconds: 60
336
+ policies:
337
+ - type: Percent
338
+ value: 50
339
+ periodSeconds: 60
340
+ - type: Pods
341
+ value: 2
342
+ periodSeconds: 60
343
+ selectPolicy: Max
344
+
345
+ # Custom metrics
346
+ customMetrics:
347
+ - type: Pods
348
+ pods:
349
+ metric:
350
+ name: http_requests_per_second
351
+ target:
352
+ type: AverageValue
353
+ averageValue: "30"
354
+
355
+ # ============================================================================
356
+ # REDIS CONFIGURATION
357
+ # ============================================================================
358
+ redis:
359
+ enabled: true
360
+ architecture: standalone
361
+ auth:
362
+ enabled: true
363
+ password: "defaultpass"
364
+ master:
365
+ resources:
366
+ limits:
367
+ memory: 256Mi
368
+ cpu: 250m
369
+ requests:
370
+ memory: 128Mi
371
+ cpu: 100m
372
+ persistence:
373
+ enabled: true
374
+ size: 8Gi
375
+ metrics:
376
+ enabled: true
377
+
378
+ # External Redis configuration
379
+ externalRedis:
380
+ enabled: false
381
+ host: ""
382
+ port: 6379
383
+ password: ""
384
+ database: 0
385
+
386
+ # ============================================================================
387
+ # MONITORING CONFIGURATION
388
+ # ============================================================================
389
+ monitoring:
390
+ # Service monitor for Prometheus
391
+ serviceMonitor:
392
+ enabled: true
393
+ interval: 30s
394
+ scrapeTimeout: 10s
395
+ path: /metrics
396
+ labels: {}
397
+ annotations: {}
398
+
399
+ # Prometheus configuration
400
+ prometheus:
401
+ enabled: true
402
+ retention: 15d
403
+ storageSize: 50Gi
404
+ resources:
405
+ limits:
406
+ cpu: 2000m
407
+ memory: 4Gi
408
+ requests:
409
+ cpu: 500m
410
+ memory: 1Gi
411
+
412
+ # Grafana configuration
413
+ grafana:
414
+ enabled: true
415
+ adminPassword: "admin123"
416
+ persistence:
417
+ enabled: true
418
+ size: 10Gi
419
+ resources:
420
+ limits:
421
+ cpu: 500m
422
+ memory: 512Mi
423
+ requests:
424
+ cpu: 100m
425
+ memory: 256Mi
426
+
427
+ # Alerting configuration
428
+ alerting:
429
+ enabled: true
430
+ rules:
431
+ critical: true
432
+ warning: true
433
+ security: true
434
+ business: true
435
+
436
+ # Alertmanager configuration
437
+ alertmanager:
438
+ enabled: true
439
+ config:
440
+ global:
441
+ smtp_smarthost: 'localhost:587'
442
+ smtp_from: 'alerts@example.com'
443
+ route:
444
+ group_by: ['alertname', 'cluster', 'service']
445
+ group_wait: 10s
446
+ group_interval: 10s
447
+ repeat_interval: 1h
448
+ receiver: 'web.hook'
449
+ receivers:
450
+ - name: 'web.hook'
451
+ webhook_configs:
452
+ - url: 'http://localhost:5001/'
453
+
454
+ # ============================================================================
455
+ # NETWORK POLICIES
456
+ # ============================================================================
457
+ networkPolicy:
458
+ enabled: true
459
+ policyTypes:
460
+ - Ingress
461
+ - Egress
462
+
463
+ # Ingress rules
464
+ ingress:
465
+ - from:
466
+ - namespaceSelector:
467
+ matchLabels:
468
+ name: ingress-nginx
469
+ - namespaceSelector:
470
+ matchLabels:
471
+ name: monitoring
472
+ ports:
473
+ - protocol: TCP
474
+ port: 8010
475
+ - protocol: TCP
476
+ port: 9090
477
+
478
+ # Egress rules
479
+ egress:
480
+ - to: []
481
+ ports:
482
+ - protocol: TCP
483
+ port: 443 # HTTPS
484
+ - protocol: TCP
485
+ port: 53 # DNS
486
+ - protocol: UDP
487
+ port: 53 # DNS
488
+
489
+ # ============================================================================
490
+ # TESTING CONFIGURATION
491
+ # ============================================================================
492
+ tests:
493
+ enabled: true
494
+ image:
495
+ registry: docker.io
496
+ repository: curlimages/curl
497
+ tag: latest
498
+
499
+ # Test scenarios
500
+ scenarios:
501
+ - name: health-check
502
+ command: "curl -f http://airtable-mcp-service:8010/health"
503
+ - name: metrics-check
504
+ command: "curl -f http://airtable-mcp-service:9090/metrics"
505
+ - name: api-check
506
+ command: "curl -f -X POST http://airtable-mcp-service:8010/mcp -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\"}'"
507
+
508
+ # ============================================================================
509
+ # EXTRA RESOURCES
510
+ # ============================================================================
511
+ extraObjects: []
512
+ # - apiVersion: v1
513
+ # kind: Secret
514
+ # metadata:
515
+ # name: extra-secret
516
+ # data:
517
+ # key: value
518
+
519
+ # Pod annotations
520
+ podAnnotations:
521
+ prometheus.io/scrape: "true"
522
+ prometheus.io/port: "9090"
523
+ prometheus.io/path: "/metrics"
524
+
525
+ # Pod labels
526
+ podLabels:
527
+ trust.score: "100"
528
+ security.tier: "restricted"
529
+
530
+ # Common labels applied to all resources
531
+ commonLabels:
532
+ app.kubernetes.io/part-of: mcp-platform
533
+ trust.score: "100"
534
+
535
+ # Common annotations applied to all resources
536
+ commonAnnotations:
537
+ trust.score/target: "100"
538
+ security.policy/tier: "restricted"