SaltSecurity.CollectorExtension 1.0.15

There is a newer version of this package available.
See the version list below for details.
dotnet add package SaltSecurity.CollectorExtension --version 1.0.15
                    
NuGet\Install-Package SaltSecurity.CollectorExtension -Version 1.0.15
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SaltSecurity.CollectorExtension" Version="1.0.15" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SaltSecurity.CollectorExtension" Version="1.0.15" />
                    
Directory.Packages.props
<PackageReference Include="SaltSecurity.CollectorExtension" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SaltSecurity.CollectorExtension --version 1.0.15
                    
#r "nuget: SaltSecurity.CollectorExtension, 1.0.15"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SaltSecurity.CollectorExtension@1.0.15
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SaltSecurity.CollectorExtension&version=1.0.15
                    
Install as a Cake Addin
#tool nuget:?package=SaltSecurity.CollectorExtension&version=1.0.15
                    
Install as a Cake Tool

Salt Security Traffic Collector for Azure App Services

NuGet License

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

  1. Middleware intercepts HTTP requests/responses with minimal overhead
  2. Fire-and-forget enqueue to high-performance async queue (<0.1ms)
  3. Background workers process queue and send to Salt Security API
  4. Circuit breaker protects against API failures (graceful degradation)
  5. 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

  1. Verify SaltSecurity section exists in appsettings.json
  2. Check required fields: Uuid, BaseUrl, Username, Password
  3. Review application logs for configuration errors
  4. Ensure extension is installed in Azure Site Extensions

High Memory Usage

  1. Reduce MaxQueueSize (10000 → 5000)
  2. Reduce MaxRequestBodySize and MaxResponseBodySize
  3. Increase MaxConcurrentWorkers to drain queue faster

Circuit Breaker Opening

  1. Check network connectivity to Salt Security API
  2. Verify API credentials are correct
  3. Review Salt API logs for authentication errors
  4. Increase TimeoutSeconds if 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

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.

There are no supported framework assets in this package.

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.