Claude-skill-registry dapr-config-validator
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.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/config-validator" ~/.claude/skills/majiayu000-claude-skill-registry-dapr-config-validator && rm -rf "$T"
manifest:
skills/data/config-validator/SKILL.mdsource content
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
directory is created or modifiedcomponents/ - A
file is created or modifieddapr.yaml - User asks to validate DAPR configuration
- Before deployment to catch issues early
Validation Rules
dapr.yaml Validation
# Required structure version: 1 common: resourcesPath: ./components apps: - appId: my-service # Required: unique identifier appDirPath: ./src # Required: path to app appPort: 8000 # Required: application port command: ["python", "main.py"]
Checks performed:
-
field present and validversion -
array is not emptyapps - Each app has required fields:
,appId
,appDirPathappPort -
values don't conflictappPort - Referenced paths exist
- Commands are valid
Component YAML Validation
# Required structure apiVersion: dapr.io/v1alpha1 # Must be exact kind: Component # Must be exact metadata: name: component-name # Required: valid name spec: type: state.redis # Required: valid type version: v1 # Required: valid version metadata: # Component-specific fields - name: redisHost value: localhost:6379
Checks performed:
-
isapiVersiondapr.io/v1alpha1 -
iskindComponent -
is valid (lowercase, alphanumeric, hyphens)metadata.name -
is a valid DAPR component typespec.type -
is specifiedspec.version - Required metadata fields for component type are present
- No secrets in plain text (warn if found)
- Secret references are properly formatted
Valid Component Types
State Stores:
state.redisstate.azure.cosmosdbstate.postgresqlstate.mongodbstate.azure.tablestorage
Pub/Sub:
pubsub.redispubsub.azure.servicebus.topicspubsub.kafkapubsub.rabbitmq
Secret Stores:
secretstores.azure.keyvaultsecretstores.local.filesecretstores.kubernetes
Bindings:
bindings.azure.blobstoragebindings.azure.eventgridbindings.cronbindings.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
# Bad spec: metadata: - name: host value: localhost # Good spec: type: state.redis version: v1 metadata: - name: redisHost value: localhost:6379
Secret in Plain Text
# Bad (security risk) - name: password value: mysecretpassword # Good (use secret reference) - name: password secretKeyRef: name: redis-secrets key: password
Invalid Component Name
# Bad metadata: name: My State Store # No spaces, uppercase # Good metadata: name: my-state-store # Lowercase, hyphens only
Wrong apiVersion
# Bad apiVersion: v1 # Good apiVersion: dapr.io/v1alpha1
Integration Points
This skill integrates with:
agent for deeper configuration helpconfig-specialist
agent when validation errors cause runtime issuesdapr-debugger
command to generate valid configs/dapr:component