| name | dapr-config-validator |
| description | Automatically validate DAPR configuration files (dapr.yaml, component YAML files) when they are created or modified. Checks for schema compliance, missing required fields, invalid values, and common misconfigurations. Use when validating DAPR configs, reviewing component setup, or before deployment. |
| allowed-tools | Read, Grep, Glob |
DAPR Configuration Validator
This skill automatically validates DAPR configuration files to catch errors before runtime.
When to Use
Claude automatically uses this skill when:
- A YAML file in
components/ directory is created or modified
- A
dapr.yaml file is created or modified
- User asks to validate DAPR configuration
- Before deployment to catch issues early
Validation Rules
dapr.yaml Validation
version: 1
common:
resourcesPath: ./components
apps:
- appId: my-service
appDirPath: ./src
appPort: 8000
command: ["python", "main.py"]
Checks performed:
Component YAML Validation
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: component-name
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
Checks performed:
Valid Component Types
State Stores:
state.redis
state.azure.cosmosdb
state.postgresql
state.mongodb
state.azure.tablestorage
Pub/Sub:
pubsub.redis
pubsub.azure.servicebus.topics
pubsub.kafka
pubsub.rabbitmq
Secret Stores:
secretstores.azure.keyvault
secretstores.local.file
secretstores.kubernetes
Bindings:
bindings.azure.blobstorage
bindings.azure.eventgrid
bindings.cron
bindings.http
Validation Process
-
Find Configuration Files
Scan for:
- dapr.yaml in project root
- components/*.yaml
- components/**/*.yaml
-
Parse YAML
- Validate YAML syntax
- Check for duplicate keys
- Verify proper indentation
-
Schema Validation
- Check required fields
- Validate field types
- Verify enum values
-
Cross-Reference Checks
- Components referenced in dapr.yaml exist
- Secret stores exist if secrets are referenced
- No conflicting ports or app-ids
-
Security Checks
- No hardcoded secrets
- Secret references properly formatted
- Scopes defined for sensitive components
Output Format
DAPR Configuration Validation Report
=====================================
✓ dapr.yaml - Valid
- 2 applications defined
- Resources path: ./components
✓ components/statestore.yaml - Valid
- Type: state.redis
- Name: statestore
⚠ components/pubsub.yaml - Warnings
- Type: pubsub.azure.servicebus.topics
- Warning: connectionString appears to contain a secret value
- Recommendation: Use secretKeyRef instead
✗ components/secrets.yaml - Invalid
- Error: Missing required field 'spec.type'
- Error: 'metadata.name' contains invalid characters
Summary: 2 valid, 1 warning, 1 error
Common Issues and Fixes
Missing Required Field
spec:
metadata:
- name: host
value: localhost
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
Secret in Plain Text
- name: password
value: mysecretpassword
- name: password
secretKeyRef:
name: redis-secrets
key: password
Invalid Component Name
metadata:
name: My State Store
metadata:
name: my-state-store
Wrong apiVersion
apiVersion: v1
apiVersion: dapr.io/v1alpha1
Integration Points
This skill integrates with:
config-specialist agent for deeper configuration help
dapr-debugger agent when validation errors cause runtime issues
/dapr:component command to generate valid configs