SaltSecurity.CollectorExtension
1.0.18
See the version list below for details.
dotnet add package SaltSecurity.CollectorExtension --version 1.0.18
NuGet\Install-Package SaltSecurity.CollectorExtension -Version 1.0.18
<PackageReference Include="SaltSecurity.CollectorExtension" Version="1.0.18" />
<PackageVersion Include="SaltSecurity.CollectorExtension" Version="1.0.18" />
<PackageReference Include="SaltSecurity.CollectorExtension" />
paket add SaltSecurity.CollectorExtension --version 1.0.18
#r "nuget: SaltSecurity.CollectorExtension, 1.0.18"
#:package SaltSecurity.CollectorExtension@1.0.18
#addin nuget:?package=SaltSecurity.CollectorExtension&version=1.0.18
#tool nuget:?package=SaltSecurity.CollectorExtension&version=1.0.18
Salt Security Traffic Collector for Azure App Services
An ASP.NET Core middleware extension that automatically captures HTTP request/response traffic from Azure App Services and transmits it to Salt Security API for real-time security analysis and threat detection.
Features
✅ Zero Latency Impact - Fire-and-forget async pattern with <1ms overhead ✅ Auto-Activation - Uses IHostingStartup, no code changes required ✅ Production Ready - Circuit breaker pattern with graceful degradation ✅ High Performance - Lock-free queue with concurrent background workers ✅ Multi-Framework - Supports .NET 6.0, 8.0, and 9.0
Quick Start
Installation
Install as Azure Site Extension or add to your ASP.NET Core project:
dotnet add package SaltSecurityCollectorExtension
Configuration
Add to your appsettings.json:
{
"SaltSecurity": {
"Uuid": "your-unique-identifier",
"ApiEndpoint": {
"BaseUrl": "https://your-salt-api.com",
"Username": "your-username",
"Password": "your-password"
},
"Labels": {
"env": "production",
"region": "us-east-1"
}
}
}
Environment Variables (Azure App Service)
Configure via Azure Portal Application Settings:
SaltSecurity__Uuid = "your-uuid"
SaltSecurity__ApiEndpoint__BaseUrl = "https://api.example.com"
SaltSecurity__ApiEndpoint__Username = "username"
SaltSecurity__ApiEndpoint__Password = "password"
Automatic Activation
The middleware activates automatically via IHostingStartup when the assembly is loaded. No code changes needed!
For Azure Site Extensions, the XDT transform automatically configures the hosting startup assembly.
How It Works
- Middleware intercepts HTTP requests/responses with minimal overhead
- Fire-and-forget enqueue to high-performance async queue (<0.1ms)
- Background workers process queue and send to Salt Security API
- Circuit breaker protects against API failures (graceful degradation)
- Zero impact on your application's response time or reliability
Architecture
HTTP Request → Middleware (capture) → Async Queue → Background Workers → Salt API
↓
Response (unaffected)
Configuration Options
| Option | Default | Description |
|---|---|---|
MaxRequestBodySize |
1 MB | Maximum request body to capture |
MaxResponseBodySize |
1 MB | Maximum response body to capture |
Queue.MaxQueueSize |
10,000 | Queue capacity (drop-oldest policy) |
Queue.MaxConcurrentWorkers |
5 | Number of background workers |
CircuitBreaker.FailureThreshold |
5 | Failures before circuit opens |
CircuitBreaker.DurationOfBreakSeconds |
30 | Circuit open duration |
Performance
- Latency: <1ms added to request/response pipeline
- Throughput: ~5,000 requests/second (with 5 workers)
- Memory: ~Queue size × Average payload size (configurable limits)
- CPU: Minimal impact from async background processing
Security
- Sensitive headers automatically redacted (Authorization, Cookie, API keys)
- Configurable body size limits prevent memory exhaustion
- Basic authentication over HTTPS
- Secure credential storage via Azure Key Vault recommended
Troubleshooting
Middleware Not Activating
- Verify
SaltSecuritysection exists inappsettings.json - Check required fields:
Uuid,BaseUrl,Username,Password - Review application logs for configuration errors
- Ensure extension is installed in Azure Site Extensions
High Memory Usage
- Reduce
MaxQueueSize(10000 → 5000) - Reduce
MaxRequestBodySizeandMaxResponseBodySize - Increase
MaxConcurrentWorkersto drain queue faster
Circuit Breaker Opening
- Check network connectivity to Salt Security API
- Verify API credentials are correct
- Review Salt API logs for authentication errors
- Increase
TimeoutSecondsif API is slow
Logging
Configure logging level in appsettings.json:
{
"Logging": {
"LogLevel": {
"SaltSecurityCollectorExtension": "Information"
}
}
}
Levels: Trace (dev), Debug (dev), Information (prod), Warning (prod), Error (always)
Requirements
- .NET 6.0, 8.0, or 9.0
- ASP.NET Core application
- Azure App Service (for site extension) or any hosting environment
Documentation
📖 Full Documentation 🔧 Configuration Reference 📊 Architecture Deep Dive
Support
- Issues: GitHub Issues
- Documentation: Salt Security Docs
- Email: support@saltsecurity.com
License
Copyright © 2025 Salt Security, Inc. All rights reserved.
This software is proprietary and confidential. Unauthorized copying, modification, distribution, or use of this software, via any medium, is strictly prohibited without express written permission from Salt Security, Inc.
See LICENSE file for details.
Version
Current version: 1.0.1
See Release Notes for version history.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.0.10 | 388 | 11/20/2025 |
| 5.0.8 | 381 | 11/20/2025 |
| 5.0.7 | 382 | 11/20/2025 |
| 5.0.6 | 384 | 11/20/2025 |
| 5.0.5 | 378 | 11/20/2025 |
| 5.0.4 | 379 | 11/20/2025 |
| 5.0.3 | 377 | 11/20/2025 |
| 5.0.2 | 371 | 11/20/2025 |
| 5.0.1 | 375 | 11/20/2025 |
| 5.0.0 | 382 | 11/20/2025 |
| 4.0.5 | 383 | 11/19/2025 |
| 4.0.4 | 384 | 11/19/2025 |
| 4.0.3 | 381 | 11/19/2025 |
| 4.0.2 | 375 | 11/19/2025 |
| 4.0.1 | 381 | 11/19/2025 |
| 4.0.0 | 389 | 11/18/2025 |
| 3.3.0 | 383 | 11/18/2025 |
| 3.2.0 | 384 | 11/18/2025 |
| 3.1.0 | 380 | 11/18/2025 |
| 3.0.1 | 376 | 11/18/2025 |
| 3.0.0 | 378 | 11/18/2025 |
| 2.7.0 | 377 | 11/17/2025 |
| 2.6.0 | 367 | 11/17/2025 |
| 2.5.0 | 371 | 11/17/2025 |
| 2.4.0 | 374 | 11/17/2025 |
| 2.3.0 | 319 | 11/17/2025 |
| 2.2.0 | 313 | 11/17/2025 |
| 2.1.0 | 315 | 11/17/2025 |
| 1.7.0 | 315 | 11/17/2025 |
| 1.6.0 | 317 | 11/17/2025 |
| 1.5.0 | 291 | 11/17/2025 |
| 1.4.0 | 289 | 11/17/2025 |
| 1.3.9 | 285 | 11/17/2025 |
| 1.3.8 | 284 | 11/17/2025 |
| 1.3.7 | 285 | 11/17/2025 |
| 1.3.5 | 285 | 11/17/2025 |
| 1.3.4 | 284 | 11/17/2025 |
| 1.3.3 | 287 | 11/17/2025 |
| 1.3.2 | 290 | 11/17/2025 |
| 1.3.1 | 294 | 11/17/2025 |
| 1.1.0 | 292 | 11/17/2025 |
| 1.0.23 | 291 | 11/17/2025 |
| 1.0.22 | 295 | 11/17/2025 |
| 1.0.21 | 271 | 11/12/2025 |
| 1.0.20 | 261 | 11/12/2025 |
| 1.0.19 | 270 | 11/12/2025 |
| 1.0.18 | 261 | 11/12/2025 |
| 1.0.17 | 263 | 11/12/2025 |
| 1.0.16 | 261 | 11/12/2025 |
| 1.0.15 | 264 | 11/12/2025 |
| 1.0.14 | 260 | 11/11/2025 |
| 1.0.13 | 259 | 11/11/2025 |
| 1.0.12 | 273 | 11/11/2025 |
| 1.0.11 | 263 | 11/11/2025 |
| 1.0.9 | 267 | 11/11/2025 |
| 1.0.8 | 263 | 11/11/2025 |
| 1.0.7 | 268 | 11/11/2025 |
| 1.0.6 | 271 | 11/11/2025 |
| 1.0.5 | 272 | 11/11/2025 |
| 1.0.4 | 270 | 11/11/2025 |
| 1.0.3 | 265 | 11/11/2025 |
| 1.0.2 | 264 | 11/11/2025 |
| 1.0.0 | 272 | 11/11/2025 |
v1.0.1 - Complete refactoring with fire-and-forget async pattern, circuit breaker using Polly, Channel-based queue, and zero-latency design. Multi-target support for .NET 6.0, 8.0, and 9.0.