Mavusi.ConfigGuard.CLI
1.0.0
dotnet tool install --global Mavusi.ConfigGuard.CLI --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local Mavusi.ConfigGuard.CLI --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Mavusi.ConfigGuard.CLI&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Mavusi.ConfigGuard.CLI --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ConfigGuard CLI
Command-line tool for ConfigGuard - configuration validation and environment comparison from your terminal.
Installation
As a .NET Global Tool
dotnet tool install --global Mavusi.ConfigGuard.CLI
From Source
cd Mavusi.ConfigGuard.CLI
dotnet pack
dotnet tool install --global --add-source ./bin/Release Mavusi.ConfigGuard.CLI
Verify Installation
configguard --version
configguard --help
Commands
validate - Validate Configuration Files
Validates configuration files for format errors and common issues.
Usage:
configguard validate --file <path> [options]
Options:
-f, --file <path>- Configuration file path to validate (required)-s, --schema <path>- Path to validation schema file (future feature)--strict- Enable strict validation mode
Examples:
# Basic validation
configguard validate -f appsettings.json
# Strict validation (fails on warnings)
configguard validate -f appsettings.Production.json --strict
# Validate with schema (planned feature)
configguard validate -f config.json -s config-schema.json
Exit Codes:
0- Success, no errors1- Validation failed11- File not found12- Invalid format99- General error
compare - Compare Configurations
Compares configurations between environments and generates detailed reports.
Usage:
configguard compare --source <path> --target <path> [options]
Options:
-s, --source <path>- Source configuration file path (required)-t, --target <path>- Target configuration file path (required)-se, --source-env <name>- Source environment name (default: "Source")-te, --target-env <name>- Target environment name (default: "Target")-sec, --section <name>- Configuration section to compare (optional)-f, --format <format>- Output format:console,json,markdown(default: console)-o, --output <path>- Output file path (optional, outputs to console if not specified)-fod, --fail-on-diff- Exit with error code if differences found (default: true)
Examples:
# Compare two configuration files
configguard compare -s appsettings.Development.json -t appsettings.Production.json
# Specify environment names
configguard compare \
-s dev-config.json -t prod-config.json \
-se "Development" -te "Production"
# Compare specific section
configguard compare \
-s appsettings.Development.json \
-t appsettings.Production.json \
--section "DatabaseConfig"
# Generate JSON report
configguard compare \
-s dev.json -t prod.json \
-f json -o comparison-report.json
# Generate Markdown report
configguard compare \
-s dev.json -t prod.json \
-f markdown -o comparison.md
# Don't fail on differences (useful for information only)
configguard compare \
-s dev.json -t staging.json \
--fail-on-diff false
Exit Codes:
0- Success (configurations identical or --fail-on-diff=false)2- Differences found (when --fail-on-diff=true)10- Invalid arguments11- File not found99- General error
Output Formats
Console (default)
Beautiful terminal-friendly output with colors and formatting:
╔══════════════════════════════════════════════════════════════╗
║ Configuration Comparison Report ║
╚══════════════════════════════════════════════════════════════╝
Configuration Type: DatabaseConfig
Source Environment: Development
Target Environment: Production
✗ DIFFERENCES FOUND: 3
JSON
Machine-readable format perfect for automation:
{
"configType": "DatabaseConfig",
"isIdentical": false,
"differenceCount": 3,
"differences": [...]
}
Markdown
Documentation-ready format for PRs and wikis:
# Configuration Comparison Report
**Configuration Type:** `DatabaseConfig`
## ⚠️ Status: DIFFERENCES FOUND (3)
CI/CD Integration
GitHub Actions
name: Config Validation
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.x'
- name: Install ConfigGuard
run: dotnet tool install --global Mavusi.ConfigGuard.CLI
- name: Validate Configurations
run: |
configguard validate -f appsettings.json
configguard validate -f appsettings.Production.json --strict
- name: Compare Environments
run: |
configguard compare \
-s appsettings.Development.json \
-t appsettings.Production.json \
-f markdown -o config-comparison.md
- name: Upload Report
uses: actions/upload-artifact@v3
with:
name: config-comparison
path: config-comparison.md
Azure DevOps
steps:
- task: UseDotNet@2
displayName: 'Use .NET 8'
inputs:
version: '8.0.x'
- script: dotnet tool install --global Mavusi.ConfigGuard.CLI
displayName: 'Install ConfigGuard'
- script: |
configguard validate -f appsettings.json
configguard compare \
-s appsettings.Development.json \
-t appsettings.Production.json \
-f json -o $(Build.ArtifactStagingDirectory)/config-comparison.json
displayName: 'Validate and Compare Configs'
- task: PublishBuildArtifacts@1
displayName: 'Publish Comparison Report'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'config-reports'
GitLab CI
config-validation:
stage: test
image: mcr.microsoft.com/dotnet/sdk:8.0
script:
- dotnet tool install --global Mavusi.ConfigGuard.CLI
- export PATH="$PATH:$HOME/.dotnet/tools"
- configguard validate -f appsettings.json
- configguard compare -s dev.json -t prod.json -f json -o report.json
artifacts:
paths:
- report.json
when: always
Pre-commit Hook
Add to .git/hooks/pre-commit:
#!/bin/bash
echo "Validating configuration files..."
# Find all appsettings files
for file in $(find . -name "appsettings*.json"); do
echo "Checking $file..."
configguard validate -f "$file"
if [ $? -ne 0 ]; then
echo "❌ Configuration validation failed"
exit 1
fi
done
echo "✅ All configurations valid"
Exit Code Reference
| Code | Meaning | Description |
|---|---|---|
| 0 | Success | Operation completed successfully |
| 1 | Validation Failed | Configuration validation errors found |
| 2 | Differences Found | Configuration comparison found differences |
| 10 | Invalid Arguments | Invalid command-line arguments provided |
| 11 | File Not Found | Specified file does not exist |
| 12 | Invalid Format | Configuration file format is invalid |
| 99 | General Error | Unexpected error occurred |
Global Options
-v, --verbose- Enable verbose output (future feature)--help- Show help information--version- Show version information
Examples
Basic Workflow
# 1. Validate your configuration
configguard validate -f appsettings.json
# 2. Compare with production
configguard compare \
-s appsettings.json \
-t appsettings.Production.json
# 3. Generate a report for the team
configguard compare \
-s appsettings.json \
-t appsettings.Production.json \
-f markdown -o config-changes.md
Deployment Script
#!/bin/bash
echo "Pre-deployment configuration check..."
# Validate target config
configguard validate -f config/production.json --strict
if [ $? -ne 0 ]; then
echo "❌ Production config validation failed"
exit 1
fi
# Compare with previous version
configguard compare \
-s config/production-previous.json \
-t config/production.json \
-f json -o deployment-config-diff.json
echo "✅ Configuration checks passed"
Multi-Environment Check
# Compare staging and production
configguard compare \
-s staging.json \
-t production.json \
-se "Staging" -te "Production" \
-f markdown -o staging-vs-prod.md
# Compare development and staging
configguard compare \
-s development.json \
-t staging.json \
-se "Development" -te "Staging" \
-f markdown -o dev-vs-staging.md
Troubleshooting
Command not found
If configguard command is not found after installation:
# Check if tools are in PATH
dotnet tool list --global
# Add to PATH (Linux/macOS)
export PATH="$PATH:$HOME/.dotnet/tools"
# Add to PATH (Windows PowerShell)
$env:Path += ";$HOME\.dotnet\tools"
Update Tool
dotnet tool update --global Mavusi.ConfigGuard.CLI
Uninstall Tool
dotnet tool uninstall --global Mavusi.ConfigGuard.CLI
See Also
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 99 | 4/17/2026 |