Skip to content

[Do Not Merge] Change default of external event publishing - #6006

Draft
rbev wants to merge 4 commits into
masterfrom
change-integration-events-default
Draft

rbev wants to merge 4 commits into
masterfrom
change-integration-events-default

Conversation

@rbev

@rbev rbev commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Important

Targeted for 7.0, should not be merged to master until it is time to mark that branch for the major update

This pull request updates the configuration for external integrations publishing to use a new positive EnableExternalIntegrationsPublishing setting instead of the previous negative DisableExternalIntegrationsPublishing flag. It also ensures backward compatibility with the legacy setting, adds comprehensive unit tests for the new logic, and updates documentation and acceptance tests accordingly.

Configuration and Feature Flag Changes:

  • Replaces the DisableExternalIntegrationsPublishing flag with EnableExternalIntegrationsPublishing throughout the codebase, updating all conditionals and configuration checks to use the new positive flag. [1] [2] [3] [4]
  • Updates documentation to reflect the new ServiceControl/EnableExternalIntegrationsPublishing setting, while still supporting the legacy ServiceControl/DisableExternalIntegrationsPublishing as an inverted alternative.

Testing and Backward Compatibility:

  • Adds a new unit test class ExternalIntegrationsPublishingSettingsTests to verify the correct behavior of the new and legacy settings, including error handling when both are set.
  • Updates all relevant acceptance tests to explicitly enable external integrations publishing using the new setting for consistent test behavior.

@rbev rbev added this to the NextMajor milestone Oct 15, 2026
@rbev rbev self-assigned this Oct 15, 2026

@warwickschroeder warwickschroeder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have we added this to the upgrade guide in the docs PR?

I pushed a couple of commits:

  1. Test When_edited_message_fails_to_process was missing the new setting, so it timed out 616f128
  2. Added the new setting to the startup banner 435d288
  3. Added additional test for the setting flip to the usage report tests e9a08e5

Comment thread docs/usage-report.md
| `Features.IntegratedServicePulse` | `Enabled`, `Disabled` | `ServiceControl/EnableIntegratedServicePulse` | 6.13.0 |
| `Features.MessageEditing` | `Enabled`, `Disabled` | `ServiceControl/AllowMessageEditing` | 6.20.0 |
| `Features.ExternalIntegrationsPublishing` | `Enabled`, `Disabled` | `ServiceControl/DisableExternalIntegrationsPublishing`, inverted | 6.20.0 |
| `Features.ExternalIntegrationsPublishing` | `Enabled`, `Disabled` | `ServiceControl/EnableExternalIntegrationsPublishing`, or the legacy `ServiceControl/DisableExternalIntegrationsPublishing` inverted | 6.20.0 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has this change been made to the docs PR?


if (legacyConfigured && configured)
{
const string message = "EnableExternalIntegrationsPublishing and the legacy DisableExternalIntegrationsPublishing settings cannot both be configured, please remove DisableExternalIntegrationsPublishing";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be better to rather check if they disagree, and then throw? Is it really a critical if they are both added but agree?

services.AddEventLogMapping<ExternalIntegrationEventFailedToBePublishedDefinition>();

if (!settings.DisableExternalIntegrationsPublishing)
if (settings.EnableExternalIntegrationsPublishing)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MessageFailed is written by whichever process ingests, and an --error-ingestion-only worker reads this flag itself.

With the default now false, enabling publishing on the primary instance only means MessageFailed is never published while every other event is. Could a worker log a warning when it ingests with publishing disabled? The docs should also say the key must be set on every worker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants