chore(deps): bump Npgsql from 5.0.14 to 6.0.5#3
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps [Npgsql](https://github.com/npgsql/npgsql) from 5.0.14 to 6.0.5. - [Release notes](https://github.com/npgsql/npgsql/releases) - [Commits](npgsql/npgsql@v5.0.14...v6.0.5) --- updated-dependencies: - dependency-name: Npgsql dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
Superseded by #13. |
DevJonny
pushed a commit
that referenced
this pull request
Feb 17, 2026
* Add mutual TLS support for RabbitMQ (BrighterCommand#3902) Implements client certificate configuration for RabbitMQ connections to support mutual TLS authentication. Changes: - Add ClientCertificate, ClientCertificatePath, and ClientCertificatePassword properties to RmqMessagingGatewayConnection - Implement SSL configuration in RmqMessageGateway for both sync and async variants - Support X509Certificate2 objects and file paths (.pfx/PKCS#12 format) - Use X509CertificateLoader.LoadPkcs12FromFile (not obsolete constructors) - Certificate object takes precedence over file path - Maintain backwards compatibility (certificate configuration is optional) Testing: - Behavioral tests verify ConnectionFactory.Ssl configuration - Tests assert SSL enablement, certificate passing, and precedence - Error case tests (missing file, invalid certificate) - Self-signed certificates generated in test setup - Full test coverage for both sync and async variants - All 14 tests passing Compliance with Critical Guidelines: - Rule #1: Implemented identically for both sync AND async variants - Rule #3: Backwards compatible (certificate is optional, all nullable) - Rule #7: Used typed X509Certificate2 API consistently - Rule #9: Extracted LoadCertificate helper method - Rules #10-12: No changes to trace propagation (observability preserved) * Add RabbitMQ mutual TLS support with self-signed certificate option Implements mutual TLS (mTLS) authentication for RabbitMQ connections, enabling secure communication where both client and server authenticate using X.509 certificates. Changes: - Add ClientCertificate, ClientCertificatePath, and ClientCertificatePassword properties to RmqMessagingGatewayConnection (Sync & Async) - Add TrustServerSelfSignedCertificate property for test/dev environments - Configure SSL options with certificate chain validation - Fix GetSanitizedUri() to handle mTLS URIs without username/password - Use NET9_0_OR_GREATER conditional compilation for X509CertificateLoader (falls back to X509Certificate2 for .NET 8.0 and netstandard2.0) - Add acceptance tests with [Trait("Requires", "Docker-mTLS")] for CI filtering The implementation provides full parity between Sync (RMQ v6) and Async (RMQ v7) gateways. Certificate loading supports both runtime objects and file paths. Configuration is secure by default with opt-in flag for accepting self-signed certificates in test environments only. * Add observability tests for RabbitMQ mutual TLS Verifies that W3C Trace Context (TraceParent, TraceState, Baggage) and CloudEvents trace context survive mTLS connections, ensuring compliance with Critical Review Guidelines Rules #10-12. Tests verify: - TraceParent header preservation over mTLS - TraceState and Baggage propagation - BrighterTracer.WriteProducerEvent instrumentation - CloudEvents trace context serialization - Parity between Sync and Async gateways Tagged with [Trait("Category", "Observability")] for selective test execution. * Add simple mTLS test harness for RabbitMQ Creates a minimal Web API that demonstrates publishing and consuming messages over RabbitMQ with mutual TLS authentication. Features: - Single application acts as both producer and consumer - TodoCreated event with TodoCreatedHandler - REST endpoints: POST /todos and GET /health - RabbitMQ connection configured with client certificate - Comprehensive README with setup and troubleshooting - Built for .NET 8.0 compatibility The test harness verifies end-to-end mTLS functionality including certificate loading, SSL connection establishment, message publishing with publisher confirms, and message consumption over secure connection. * Exclude mTLS tests from regular CI The mTLS tests require: - Generated certificates (tests/certs/) - RabbitMQ with mTLS configuration - Docker compose setup with special config These tests are tagged with [Trait("Requires", "Docker-mTLS")] and should only run when explicitly requested with --filter "Requires=Docker-mTLS", not in the regular rabbitmq-ci workflow. * Add Requires=Docker-mTLS trait to observability tests The observability test classes were missing the [Trait("Requires", "Docker-mTLS")] attribute, causing them to run in regular CI despite needing mTLS infrastructure. This trait ensures these tests are only executed when explicitly requested with --filter "Requires=Docker-mTLS", matching the acceptance tests. * Fix sync mTLS test failures by enforcing sequential execution Add Collection attributes to sync mTLS test classes to prevent parallel execution race conditions during TLS handshake. Changes: - Add [Collection("RabbitMQ mTLS")] to mTLS test classes - Add RabbitMQMtlsTestCollection with DisableParallelization - Add quorum queue test coverage for both sync and async All 18 mTLS tests (9 sync + 9 async) now pass consistently. * deleted local certs for testing * Fix missing NOT operator in RMQ sync requeue logic The AddUserDefinedHeaders method in the SYNC version (RmqMessagePublisher.cs) was missing the negation operator that exists in the ASYNC version. This caused only system headers to be copied during message requeuing instead of user-defined headers, resulting in message body loss. Changed: if (_headersToReset.Contains(header.Key)) To: if (!_headersToReset.Contains(header.Key)) This brings the SYNC implementation in line with the ASYNC version from commit 76aeced. * Fix mTLS certificate validation and race condition in sync consumer This commit includes fixes to complete the mTLS implementation for RabbitMQ messaging gateways, resolving test failures and a race condition. ## mTLS Implementation - Added RmqTlsConfigurator helper classes (Async and Sync variants) to centralize TLS/SSL configuration logic - Extracts certificate loading and SslOption configuration into reusable internal static class - Supports both X509Certificate2 objects and file paths with optional passwords - Integrates with RmqMessagingGatewayConnection configuration ## Bug Fixes 1. Certificate validation failures (18 tests) - Server certificate is issued for hostname rabbitmq-mtls but tests connect to localhost, causing SSL name mismatch errors - Updated RmqTlsConfigurator to accept both RemoteCertificateChainErrors AND RemoteCertificateNameMismatch when TrustServerSelfSignedCertificate is enabled - This is appropriate for test/development environments with self-signed certificates 2. Race condition in sync consumer (intermittent failures) - RmqMessageConsumer.CreateConsumer() was manually calling HandleBasicConsumeOk after BasicConsume - RabbitMQ client already calls this method automatically as a callback, causing concurrent modifications to non-thread-safe collections in DefaultBasicConsumer - Removed the redundant manual call and added explanatory comment All 32 mTLS tests now pass consistently (16 async + 16 sync). Files added: - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqTlsConfigurator.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqTlsConfigurator.cs Files modified: - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGateway.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagingGatewayConnection.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGateway.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagingGatewayConnection.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageConsumer.cs Fixes BrighterCommand#3902 * Address PR review comments - Update copyright attribution to Darren Schwarz - Remove excessive XML documentation from internal methods - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate folders - Add PowerShell certificate generation script for Windows - Revert race condition fix (will be addressed separately) - Update documentation with boolean logic bug fix explanation * Address PR review comments - Update copyright attribution to Darren Schwarz per CLA - Remove ALL XML documentation from internal RmqTlsConfigurator classes - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate Acceptance/ folders - Add PowerShell certificate generation script for Windows developers - Revert race condition fix (will be addressed in separate issue) - Update namespaces for moved test files All review comments from @iancooper addressed. Unit tests: 14/14 passed Acceptance tests: 18/18 passed Total: 32/32 mTLS tests passing * Address PR review comments - Update copyright attribution to Darren Schwarz per CLA - Remove ALL XML documentation from internal RmqTlsConfigurator classes - Remove license headers from test files per project convention - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate Acceptance/ folders - Add PowerShell certificate generation script for Windows developers - Revert race condition fix (will be addressed in separate issue) - Update namespaces for moved test files All review comments from @iancooper addressed. Unit tests: 14/14 passed Acceptance tests: 18/18 passed Total: 32/32 mTLS tests passing --------- Co-authored-by: Ian Cooper <ian_hammond_cooper@yahoo.co.uk>
DevJonny
pushed a commit
that referenced
this pull request
Feb 28, 2026
* Add mutual TLS support for RabbitMQ (BrighterCommand#3902) Implements client certificate configuration for RabbitMQ connections to support mutual TLS authentication. Changes: - Add ClientCertificate, ClientCertificatePath, and ClientCertificatePassword properties to RmqMessagingGatewayConnection - Implement SSL configuration in RmqMessageGateway for both sync and async variants - Support X509Certificate2 objects and file paths (.pfx/PKCS#12 format) - Use X509CertificateLoader.LoadPkcs12FromFile (not obsolete constructors) - Certificate object takes precedence over file path - Maintain backwards compatibility (certificate configuration is optional) Testing: - Behavioral tests verify ConnectionFactory.Ssl configuration - Tests assert SSL enablement, certificate passing, and precedence - Error case tests (missing file, invalid certificate) - Self-signed certificates generated in test setup - Full test coverage for both sync and async variants - All 14 tests passing Compliance with Critical Guidelines: - Rule #1: Implemented identically for both sync AND async variants - Rule #3: Backwards compatible (certificate is optional, all nullable) - Rule #7: Used typed X509Certificate2 API consistently - Rule #9: Extracted LoadCertificate helper method - Rules #10-12: No changes to trace propagation (observability preserved) * Add RabbitMQ mutual TLS support with self-signed certificate option Implements mutual TLS (mTLS) authentication for RabbitMQ connections, enabling secure communication where both client and server authenticate using X.509 certificates. Changes: - Add ClientCertificate, ClientCertificatePath, and ClientCertificatePassword properties to RmqMessagingGatewayConnection (Sync & Async) - Add TrustServerSelfSignedCertificate property for test/dev environments - Configure SSL options with certificate chain validation - Fix GetSanitizedUri() to handle mTLS URIs without username/password - Use NET9_0_OR_GREATER conditional compilation for X509CertificateLoader (falls back to X509Certificate2 for .NET 8.0 and netstandard2.0) - Add acceptance tests with [Trait("Requires", "Docker-mTLS")] for CI filtering The implementation provides full parity between Sync (RMQ v6) and Async (RMQ v7) gateways. Certificate loading supports both runtime objects and file paths. Configuration is secure by default with opt-in flag for accepting self-signed certificates in test environments only. * Add observability tests for RabbitMQ mutual TLS Verifies that W3C Trace Context (TraceParent, TraceState, Baggage) and CloudEvents trace context survive mTLS connections, ensuring compliance with Critical Review Guidelines Rules #10-12. Tests verify: - TraceParent header preservation over mTLS - TraceState and Baggage propagation - BrighterTracer.WriteProducerEvent instrumentation - CloudEvents trace context serialization - Parity between Sync and Async gateways Tagged with [Trait("Category", "Observability")] for selective test execution. * Add simple mTLS test harness for RabbitMQ Creates a minimal Web API that demonstrates publishing and consuming messages over RabbitMQ with mutual TLS authentication. Features: - Single application acts as both producer and consumer - TodoCreated event with TodoCreatedHandler - REST endpoints: POST /todos and GET /health - RabbitMQ connection configured with client certificate - Comprehensive README with setup and troubleshooting - Built for .NET 8.0 compatibility The test harness verifies end-to-end mTLS functionality including certificate loading, SSL connection establishment, message publishing with publisher confirms, and message consumption over secure connection. * Exclude mTLS tests from regular CI The mTLS tests require: - Generated certificates (tests/certs/) - RabbitMQ with mTLS configuration - Docker compose setup with special config These tests are tagged with [Trait("Requires", "Docker-mTLS")] and should only run when explicitly requested with --filter "Requires=Docker-mTLS", not in the regular rabbitmq-ci workflow. * Add Requires=Docker-mTLS trait to observability tests The observability test classes were missing the [Trait("Requires", "Docker-mTLS")] attribute, causing them to run in regular CI despite needing mTLS infrastructure. This trait ensures these tests are only executed when explicitly requested with --filter "Requires=Docker-mTLS", matching the acceptance tests. * Fix sync mTLS test failures by enforcing sequential execution Add Collection attributes to sync mTLS test classes to prevent parallel execution race conditions during TLS handshake. Changes: - Add [Collection("RabbitMQ mTLS")] to mTLS test classes - Add RabbitMQMtlsTestCollection with DisableParallelization - Add quorum queue test coverage for both sync and async All 18 mTLS tests (9 sync + 9 async) now pass consistently. * deleted local certs for testing * Fix missing NOT operator in RMQ sync requeue logic The AddUserDefinedHeaders method in the SYNC version (RmqMessagePublisher.cs) was missing the negation operator that exists in the ASYNC version. This caused only system headers to be copied during message requeuing instead of user-defined headers, resulting in message body loss. Changed: if (_headersToReset.Contains(header.Key)) To: if (!_headersToReset.Contains(header.Key)) This brings the SYNC implementation in line with the ASYNC version from commit 76aeced. * Fix mTLS certificate validation and race condition in sync consumer This commit includes fixes to complete the mTLS implementation for RabbitMQ messaging gateways, resolving test failures and a race condition. ## mTLS Implementation - Added RmqTlsConfigurator helper classes (Async and Sync variants) to centralize TLS/SSL configuration logic - Extracts certificate loading and SslOption configuration into reusable internal static class - Supports both X509Certificate2 objects and file paths with optional passwords - Integrates with RmqMessagingGatewayConnection configuration ## Bug Fixes 1. Certificate validation failures (18 tests) - Server certificate is issued for hostname rabbitmq-mtls but tests connect to localhost, causing SSL name mismatch errors - Updated RmqTlsConfigurator to accept both RemoteCertificateChainErrors AND RemoteCertificateNameMismatch when TrustServerSelfSignedCertificate is enabled - This is appropriate for test/development environments with self-signed certificates 2. Race condition in sync consumer (intermittent failures) - RmqMessageConsumer.CreateConsumer() was manually calling HandleBasicConsumeOk after BasicConsume - RabbitMQ client already calls this method automatically as a callback, causing concurrent modifications to non-thread-safe collections in DefaultBasicConsumer - Removed the redundant manual call and added explanatory comment All 32 mTLS tests now pass consistently (16 async + 16 sync). Files added: - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqTlsConfigurator.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqTlsConfigurator.cs Files modified: - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGateway.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagingGatewayConnection.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGateway.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagingGatewayConnection.cs - src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageConsumer.cs Fixes BrighterCommand#3902 * Address PR review comments - Update copyright attribution to Darren Schwarz - Remove excessive XML documentation from internal methods - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate folders - Add PowerShell certificate generation script for Windows - Revert race condition fix (will be addressed separately) - Update documentation with boolean logic bug fix explanation * Address PR review comments - Update copyright attribution to Darren Schwarz per CLA - Remove ALL XML documentation from internal RmqTlsConfigurator classes - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate Acceptance/ folders - Add PowerShell certificate generation script for Windows developers - Revert race condition fix (will be addressed in separate issue) - Update namespaces for moved test files All review comments from @iancooper addressed. Unit tests: 14/14 passed Acceptance tests: 18/18 passed Total: 32/32 mTLS tests passing * Address PR review comments - Update copyright attribution to Darren Schwarz per CLA - Remove ALL XML documentation from internal RmqTlsConfigurator classes - Remove license headers from test files per project convention - Replace Guid.NewGuid().ToString() with Id.Random() (V10 pattern) - Reorganize acceptance tests into separate Acceptance/ folders - Add PowerShell certificate generation script for Windows developers - Revert race condition fix (will be addressed in separate issue) - Update namespaces for moved test files All review comments from @iancooper addressed. Unit tests: 14/14 passed Acceptance tests: 18/18 passed Total: 32/32 mTLS tests passing --------- Co-authored-by: Ian Cooper <ian_hammond_cooper@yahoo.co.uk>
DevJonny
pushed a commit
that referenced
this pull request
Jun 1, 2026
Break ADR 0060 into a tidy-first task list: one structural commit (S1) adding MigrationHistoryScope, the ResolveHistorySchema seam, and the nullable historySchema detection-helper param; then TDD behavioural slices (D3 guard, D4 placement, D5 seed, D6 logging) across MSSQL/PG with no-op characterization on MySQL/SQLite/Spanner. Incorporates the seven PR BrighterCommand#4155 reviewer refinements (#1 seed read-permission hardening + negative test, #2 explicit existence-probe queries, #3 structured seed log, #4 broadened AC1b, #5 enumerated structural call sites, #6 defensive-column note, #7 NF4 tagging). /spec:review tasks PASS (round 2). Round 1 raised three blockers, now fixed in tasks.md and reconciled in ADR 0060 via a D4 Errata: - MSSQL DoesHistoryExistAsync delegates its existence check to DoesTableExistAsync with a hardcoded dbo arg; that arg must carry the resolved historySchema or PerSchema detection short-circuits false. - DetectCurrentVersionAsync reads box-table columns, not history, so it takes no historySchema; IAmAVersionDetectingMigrationHelper is unchanged. - SupportsPerSchemaHistory override ownership assigned to T1 (MSSQL) and T2 (PG), consumed by T3/T4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
DevJonny
pushed a commit
that referenced
this pull request
Jun 1, 2026
…ured fields + activity tag (AC7/D6) ADR 0060 D6 / Spec 0029 NF5/AC7. Each migration run now records the resolved history schema + active MigrationHistoryScope at Information level on the base runner so every backend (MSSQL/PG/MySQL/SQLite) emits it. The D5 seed path on the two placement backends additionally emits a distinct Information log with structured fields RowCount / BoxTable / LegacySchema / TargetSchema (reviewer #3), and adds the row count as a tag on the existing legacy-history- seeded Activity event so a trace-store query can size the flip impact without parsing event names. - src/Paramore.Brighter/Observability/BrighterSemanticConventions.cs: new const BoxMigrationSeedRowCount = "brighter.box.migration.seed.rows". - src/Paramore.Brighter.BoxProvisioning/SqlBoxMigrationRunner.cs: emit the per-run Information log right after activity creation; placeholder values are tableName, ResolveHistorySchema() ?? "<backend default>", _scope. - src/Paramore.Brighter.BoxProvisioning.MsSql/MsSqlBoxMigrationRunner.cs: rewrite seed log template to the spec format; ActivityEvent now carries BoxMigrationSeedRowCount as a tag. - src/Paramore.Brighter.BoxProvisioning.PostgreSql/PostgreSqlBoxMigrationRunner.cs: SeedHistoryFromLegacyAsync signature gains bare-name perSchemaBare so the TargetSchema log field can carry the unquoted identifier (parallel to MSSQL's perSchema). Same template + tag treatment. Test (one file, two facts, captures structured fields via a file-scoped ILogger that records TState as IReadOnlyList<KeyValuePair<string,object?>> and captures Activity events via raw ActivityListener — no OTel package added to the MSSQL test csproj): - tests/Paramore.Brighter.MSSQL.Tests/BoxProvisioning/ When_provisioning_runs_mssql_runner_should_log_resolved_history_schema_and_scope.cs Regression-clean across all 5 backends: - BoxProvisioning.Tests: 65/65 net9 + 65/65 net10 - MSSQL BoxProvisioning: 84/84 net9 + 84/84 net10 (+2 new) - PG BoxProvisioning: 75/75 net9 + 75/75 net10 - MySQL BoxProvisioning: 78/78 net9 - SQLite BoxProvisioning: 55/55 net9 + 55/55 net10 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps Npgsql from 5.0.14 to 6.0.5.
Release notes
Sourced from Npgsql's releases.
... (truncated)
Commits
d50f836Fix race condition in SingleThreadSynchronizationContext (#4468)bccbec6Fix type resolution logic (#4382)871f31fAdd nuget package source mapping to help our CIcbea7f5Stop deserializing JSON through strings when reading POCOs (#4457)be21da1Advance the buffer position in ReadSpan/Memory (#4459)d3da538Fix arrays over ranges (#4444)822750eFix the handling of tstzrange when one or both ends are open (#4433)6b8a593Bump version to 6.0.5a74a4deFix double connector return while loading database info (#4426)401f034Fix NRE while attempting to write a nullable via COPY (#4418)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)