Skip to content

release: v1.0.0-preview.3 - #2

Merged
MateusjsSilva merged 23 commits into
mainfrom
feat/preview-3
May 12, 2026
Merged

MateusjsSilva merged 23 commits into
mainfrom
feat/preview-3

Conversation

@MateusjsSilva

@MateusjsSilva MateusjsSilva commented May 12, 2026 •

Copy link
Copy Markdown
Owner

Description

This pull request introduces the 1.0.0-preview.3 release of SensitiveFlow, focused on production-grade durability for audit records, improved operational diagnostics, and developer experience hardening.

The main motivation is to make SensitiveFlow safer to adopt in real applications by improving durable audit delivery, adding health checks, clarifying production guidance, and reducing the risk of silent misconfiguration.

Highlights

Durable Audit Outbox and Reliability

  • Added a durable audit outbox framework with:
    • IDurableAuditOutbox
    • AuditOutboxEntry
    • IAuditOutboxPublisher
    • AuditOutboxDispatcher
  • Added support for reliable, at-least-once delivery of audit records.
  • Added retry and dead-lettering support for failed audit outbox entries.
  • Added pluggable downstream delivery abstractions for integrations such as SIEM, webhooks, or custom audit pipelines.
  • Added SensitiveFlow.Audit.EFCore.Outbox for EF Core-backed durable outbox storage.
  • Improved production safety by supporting transactional audit/outbox writes in EF Core scenarios.

Health Checks and Diagnostics

  • Added new configuration diagnostic codes:
    • SF-CONFIG-013
    • SF-CONFIG-014
  • Added SensitiveFlowAuditDiagnostics for audit record lifecycle metrics.
  • Added audit infrastructure health checks.
  • Added AuditOutboxHealthCheck to detect unsafe in-memory outbox usage in production and validate audit outbox health.

Documentation and Developer Experience

  • Expanded the README with improved quick start, production setup guidance, package descriptions, and durable storage recommendations.
  • Updated installation instructions and package references.
  • Updated the documentation index with database provider, policies, discovery, and health check topics.
  • Improved RELEASE.md with clearer versioning, changelog, and release steps.

Security and Messaging

  • Updated legal and security disclaimers to clarify that SensitiveFlow helps reduce accidental exposure of sensitive data, but does not guarantee complete data protection or legal compliance by itself.
  • Improved production guidance around durable audit storage, safe defaults, and operational responsibility.

Versioning and Dependencies

  • Bumped package version to 1.0.0-preview.3.
  • Added Microsoft dependency versions for health checks and logging-related packages.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactor

Related regulatory/privacy requirement (if applicable)

Not applicable.

This release is focused on technical privacy engineering and operational safety. It is not tied to a specific regulation.

Checklist

  • Unit tests added or updated
  • Coverage >= 90% maintained
  • XML documentation updated
  • CHANGELOG.md updated
  • No unintended breaking changes

MateusjsSilva and others added 19 commits May 10, 2026 23:49
- Introduced `SensitiveFlowValidationOptions` to manage validation expectations.
- Implemented `AuditStoreHealthCheck` and `TokenStoreHealthCheck` for health monitoring.
- Added extension methods for registering health checks in `SensitiveFlowHealthCheckBuilderExtensions`.
- Created a new project for health checks with necessary dependencies.
- Updated retention services to utilize a customizable `TimeProvider`.
- Added contract tests for anonymizers, maskers, pseudonymizers, and retention expiration handlers.
- Implemented a command-line tool for generating sensitive data reports.
- Enhanced test assertions for sensitive data handling.
- Added validation tests for sensitive flow configurations.
- Updated logging documentation to clarify sensitive value redaction.
- Introduced `SensitiveLoggingOptions` for customizable logging behavior.
- Enhanced `RedactingLogger` to support contextual redaction based on attributes.
- Implemented masking for structured object properties based on defined policies.
- Added support for contextual export redaction in `DataSubjectExporter`.
- Improved validation diagnostics for sensitive flow configurations.
- Added tests for structured logging redaction and policy enforcement.
- Updated default redaction markers to use `SensitiveFlowDefaults`.
- Added support for audit redaction context in `SensitiveDataAuditInterceptor` to handle sensitive fields with contextual redaction attributes.
- Implemented `OutboxAuditStore` to append audit records to a primary store and enqueue them for asynchronous processing.
- Created `InMemoryAuditOutbox` for testing and local development, along with a JSON serializer for outbox payloads.
- Enhanced `SensitiveFlow.Tool` to build projects before scanning and updated usage instructions.
- Added diagnostics for ASP.NET Core middleware registration and audit configuration validation.
- Introduced tests for audit outbox functionality and contextual redaction behavior.
- Added `SensitiveFlow.Audit.EFCore.Outbox` project with necessary dependencies.
- Created `EfCoreAuditOutbox` class for managing durable audit outbox entries.
- Updated `AuditDbContext` to conditionally apply outbox entity configurations.
- Enhanced `EfCoreAuditStore` to support transaction execution for batch operations.
- Introduced `OutboxAuditStore` decorator to integrate outbox functionality into existing audit stores.
- Added hosted service `AuditOutboxDispatcher` for processing outbox entries.
- Implemented `AuditOutboxDispatcherOptions` and `BackoffStrategy` for configurable dispatch behavior.
- Created health checks for audit outbox configuration.
- Added metrics for monitoring audit outbox operations.
- Developed unit tests for `EfCoreAuditOutbox` functionality.
- Updated existing tests to accommodate new outbox features.
- Added `sensitiveflow-audit-outbox` health check to documentation.
- Updated CLI scan input options to include project/solution files.
- Implemented warning for `AddInMemoryAuditOutbox()` usage outside of debug mode.
- Improved `EfCoreAuditOutbox` to correctly apply pagination in `GetDeadLetteredAsync`.
- Enhanced `SensitiveFlowExceptionSanitizer` to include regex for long digit masking.
- Added validation warnings for in-memory audit outbox and durable outbox configurations.
- Introduced new tests for data subject export masking and exception sanitization.
- Updated `SensitiveFlowToolRunner` to emit warnings for in-memory outbox usage.
- Added structured logging tests to ensure sensitive data is handled correctly.
…EF Core integration

- Added SensitiveFlowWebOptions for configuring SensitiveFlow features.
- Implemented SensitiveFlowWebServiceCollectionExtensions for DI registration.
- Created SensitiveFlowDatabaseInitializer for automatic database initialization.
- Introduced Outbox pattern for audit store with EF Core.
- Updated solution and project files to include new components.
- Added tests for new features and configurations.
…samples

- Created README.md files for both MinimalApi.Sample and WebApi.Sample to document SQLite schema and manual database initialization.
- Added SQL scripts for creating necessary tables and indexes in both samples:
  - MinimalApi.Sample:
    - Customers table with relevant fields and indexes.
    - Audit records and outbox entries for audit functionality.
    - Token mappings for sensitive data handling.
  - WebApi.Sample:
    - Similar structure as MinimalApi with Customers, AuditRecords, and TokenMappings tables.
- Updated QuickStart.Sample to include a new HTML interface for customer management and ensure database initialization on startup.
- Refactored QuickStart.Sample's Program.cs to remove OpenApi references and streamline the application setup.
- Enhanced CustomersController in WebApi.Sample to support listing customers and improved error handling.
- Modified SensitiveFlowAuditMiddleware to accept IPseudonymizer as a parameter for better dependency management.
- Improved AuditOutboxDispatcher to handle infrastructure failures gracefully and added options for retry delays and suspension behavior.
- Updated tests to reflect changes in middleware and dispatcher behavior, ensuring robust coverage for new functionalities.
- Added SchemaErrorTranslator to translate provider-specific exceptions into a user-friendly SensitiveFlowSchemaNotInitializedException.
- Updated EfCoreAuditStore and EfCoreTokenStore to utilize SchemaErrorTranslator for better exception handling during SaveChangesAsync and data retrieval.
- Improved AuditSnapshotEntityTypeConfiguration and TokenMappingEntityTypeConfiguration to support optional schema specification.
- Enhanced SensitiveFlowValidationServiceCollectionExtensions to throw exceptions on validation errors when FailOnError is enabled.
- Updated validation logic in SensitiveFlowConfigurationValidator to report errors instead of warnings for missing required services.
- Added comprehensive SQL migration scripts for PostgreSQL, SQL Server, and SQLite to create necessary tables for audit records, outbox entries, token mappings, and snapshots.
- Created README documentation for migration scripts to guide users on applying schemas across different database providers.
- Updated unit tests to reflect changes in validation behavior and ensure proper error reporting.
- Lead with 'Why SensitiveFlow?' using real pain points (data exposed everywhere with no visibility)
- Show concrete benefits: audit trail, log redaction, JSON masking, pseudonymization, retention, export, erasure
- Simplify Quick Start: 1. Install & annotate, 2. Register, 3. See the magic, 4. Verify
- Add 'What You Get' feature table showing examples and actual value
- Add 'Going Deeper' for advanced features with doc links
- Add 'Samples' section showing how to run examples with simple 'dotnet run'
- Remove dated setup details (now in docs/getting-started.md)
- Focus on communicating what makes this library valuable vs. doing it manually

Co-Authored-By: Claude Opus 4.7 <[email protected]>
…nsitive data categories, and enhance documentation
…s up-to-date by deleting and recreating databases
@MateusjsSilva MateusjsSilva self-assigned this May 12, 2026
@MateusjsSilva MateusjsSilva added documentation Improvements or additions to documentation enhancement New feature or request labels May 12, 2026
Comment thread samples/WebApi.Sample/Controllers/CustomersController.cs Dismissed
Comment thread samples/WebApi.Sample/Controllers/CustomersController.cs Dismissed
Comment thread samples/WebApi.Sample/Controllers/CustomersController.cs Dismissed
Comment thread samples/WebApi.Sample/Controllers/CustomersController.cs Dismissed
Comment thread samples/WebApi.Sample/Controllers/CustomersController.cs Dismissed
Comment thread src/SensitiveFlow.Logging/Loggers/RedactingLogger.cs Dismissed
Comment thread src/SensitiveFlow.Logging/Loggers/RedactingLogger.cs Dismissed
@MateusjsSilva
MateusjsSilva merged commit 45f8a20 into main May 12, 2026
3 checks passed
@MateusjsSilva
MateusjsSilva deleted the feat/preview-3 branch May 12, 2026 17:34

This branch had an error being deployed

1 failed deployment
production — 8401bcd1 Deployed May 12, 2026 by MateusjsSilva via Pack & Publish to NuGet #3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants