Remove legacy audit event streaming destination APIs
What does this MR do and why?
Remove legacy audit event streaming destination APIs related code
- Unused backend graphql rails endpoints and supporting code
- Unused graphql files
- Deleted deprecated helpers that helped maintain sync between legacy and streaming tables
- Deleted deprecated strategy classes (replaced by streamer/destination classes)
- Minor updates to frontend to adjust for new behavior / mock data
The legacy tables have been out of use since 18.1, and only the APIs remained, which are being removed here.
Majority of the merge request is deletion of dead code, any additions were commented on.
The modified files fall into these categories:
- Rubocop TODO cleanup (14): Removing references to deleted files from linting exclusion lists.
- GraphQL schema/docs updates: Removing legacy types, mutations, fields, and interfaces from the API surface and documentation.
- Sync logic removal: Mutations and services no longer call helpers that kept legacy and new streaming destinations in sync (e.g., - create_legacy_destination, sync_legacy_namespace_filter).
- Model simplification: The legacy_destination lookup method removed since paired legacy models no longer exist.
- Streamer consolidation: The external destination streamer now only uses new unified streamers, removing the legacy strategy classes.
- Frontend updates: Mock data and Apollo client updated to use new destination type structure (config object instead of flat fields), plus a bug fix for namespace filter handling (unselect all -> save).
- Test/config cleanup: Specs updated to remove legacy sync behavior tests; CI mapping and RSpec config files updated to remove references to deleted specs.
Modified files (58):
.rubocop_todo/gitlab/json_safe_parse.yml .rubocop_todo/graphql/graphql_name.yml .rubocop_todo/layout/empty_line_after_magic_comment.yml .rubocop_todo/layout/line_continuation_spacing.yml .rubocop_todo/layout/line_end_string_concatenation_indentation.yml .rubocop_todo/layout/line_length.yml .rubocop_todo/rspec/be_eq.yml .rubocop_todo/rspec/before_all_role_assignment.yml .rubocop_todo/rspec/context_wording.yml .rubocop_todo/rspec/example_without_description.yml .rubocop_todo/rspec/feature_category.yml .rubocop_todo/rspec/named_subject.yml .rubocop_todo/rspec/receive_messages.yml .rubocop_todo/style/super_arguments.yml app/assets/javascripts/graphql_shared/possible_types.json doc/api/graphql/reference/_index.md ee/app/assets/javascripts/audit_events/graphql/apollo.js ee/app/graphql/ee/types/group_type.rb ee/app/graphql/ee/types/mutation_type.rb ee/app/graphql/ee/types/query_type.rb ee/app/graphql/mutations/audit_events/group/audit_event_streaming_destinations/create.rb ee/app/graphql/mutations/audit_events/group/audit_event_streaming_destinations/delete.rb ee/app/graphql/mutations/audit_events/group/audit_event_streaming_destinations/update.rb ee/app/graphql/mutations/audit_events/group/namespace_filters/base.rb ee/app/graphql/mutations/audit_events/group/namespace_filters/create.rb ee/app/graphql/mutations/audit_events/group/namespace_filters/delete.rb ee/app/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/create.rb ee/app/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/delete.rb ee/app/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/update.rb ee/app/graphql/mutations/audit_events/instance/namespace_filters/base.rb ee/app/graphql/mutations/audit_events/instance/namespace_filters/create.rb ee/app/graphql/mutations/audit_events/instance/namespace_filters/delete.rb ee/app/models/concerns/audit_events/legacy_destination_mappable.rb ee/app/services/audit_events/streaming/event_type_filters/base_service.rb ee/app/services/audit_events/streaming/event_type_filters/create_service.rb ee/app/services/audit_events/streaming/event_type_filters/destroy_service.rb ee/lib/audit_events/external_destination_streamer.rb ee/spec/frontend/audit_events/mock_data.js ee/spec/graphql/ee/types/group_type_spec.rb ee/spec/graphql/types/query_type_spec.rb ee/spec/lib/audit_events/external_destination_streamer_spec.rb ee/spec/models/audit_events/group/external_streaming_destination_spec.rb ee/spec/models/audit_events/instance/external_streaming_destination_spec.rb ee/spec/requests/api/graphql/audit_events/group/namespace_filters/create_spec.rb ee/spec/requests/api/graphql/audit_events/group/namespace_filters/delete_spec.rb ee/spec/requests/api/graphql/audit_events/instance/namespace_filters/create_spec.rb ee/spec/requests/api/graphql/audit_events/instance/namespace_filters/delete_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/group/audit_event_streaming_destinations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/group/audit_event_streaming_destinations/delete_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/group/audit_event_streaming_destinations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/delete_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/audit_event_streaming_destinations/update_spec.rb ee/spec/services/audit_events/streaming/event_type_filters/create_service_spec.rb ee/spec/services/audit_events/streaming/event_type_filters/destroy_service_spec.rb ee/spec/workers/audit_events/audit_event_streaming_worker_spec.rb scripts/verify-tff-mapping spec/support/rspec_order_todo.yml
Deleted Files (190)
ee/app/assets/javascripts/audit_events/graphql/fragments/audit_event_streaming_header.fragment.graphql ee/app/assets/javascripts/audit_events/graphql/fragments/audit_event_streaming_instance_header.fragment.graphql ee/app/assets/javascripts/audit_events/graphql/fragments/external_audit_event_destination.fragment.graphql ee/app/assets/javascripts/audit_events/graphql/fragments/instance_external_audit_event_destination.fragment.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/add_external_destination_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/add_external_destination_namespace_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/add_instance_external_destination_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_instance_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_instance_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_instance_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/create_instance_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_external_destination_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_external_destination_namespace_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_instance_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_instance_external_destination_filters.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_instance_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_instance_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/delete_instance_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_instance_amazon_s3_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_instance_external_destination_header.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_instance_external_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/mutations/update_instance_gcp_logging_destination.mutation.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_amazon_s3_destinations.query.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_external_destinations.query.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_google_cloud_logging_destinations.query.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_instance_amazon_s3_destinations.query.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_instance_external_destinations.query.graphql ee/app/assets/javascripts/audit_events/graphql/queries/get_instance_google_cloud_logging_destinations.query.graphql ee/app/graphql/mutations/audit_events/amazon_s3_configurations/base.rb ee/app/graphql/mutations/audit_events/amazon_s3_configurations/create.rb ee/app/graphql/mutations/audit_events/amazon_s3_configurations/delete.rb ee/app/graphql/mutations/audit_events/amazon_s3_configurations/update.rb ee/app/graphql/mutations/audit_events/external_audit_event_destinations/base.rb ee/app/graphql/mutations/audit_events/external_audit_event_destinations/create.rb ee/app/graphql/mutations/audit_events/external_audit_event_destinations/destroy.rb ee/app/graphql/mutations/audit_events/external_audit_event_destinations/update.rb ee/app/graphql/mutations/audit_events/google_cloud_logging_configurations/base.rb ee/app/graphql/mutations/audit_events/google_cloud_logging_configurations/common_update.rb ee/app/graphql/mutations/audit_events/google_cloud_logging_configurations/create.rb ee/app/graphql/mutations/audit_events/google_cloud_logging_configurations/destroy.rb ee/app/graphql/mutations/audit_events/google_cloud_logging_configurations/update.rb ee/app/graphql/mutations/audit_events/instance_external_audit_event_destinations/base.rb ee/app/graphql/mutations/audit_events/instance_external_audit_event_destinations/create.rb ee/app/graphql/mutations/audit_events/instance_external_audit_event_destinations/destroy.rb ee/app/graphql/mutations/audit_events/instance_external_audit_event_destinations/update.rb ee/app/graphql/mutations/audit_events/instance/amazon_s3_configurations/base.rb ee/app/graphql/mutations/audit_events/instance/amazon_s3_configurations/create.rb ee/app/graphql/mutations/audit_events/instance/amazon_s3_configurations/delete.rb ee/app/graphql/mutations/audit_events/instance/amazon_s3_configurations/update.rb ee/app/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/base.rb ee/app/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/create.rb ee/app/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/destroy.rb ee/app/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/update.rb ee/app/graphql/mutations/audit_events/streaming/event_type_filters/create.rb ee/app/graphql/mutations/audit_events/streaming/event_type_filters/destroy.rb ee/app/graphql/mutations/audit_events/streaming/headers/create.rb ee/app/graphql/mutations/audit_events/streaming/headers/destroy.rb ee/app/graphql/mutations/audit_events/streaming/headers/update.rb ee/app/graphql/mutations/audit_events/streaming/http/namespace_filters/base.rb ee/app/graphql/mutations/audit_events/streaming/http/namespace_filters/create.rb ee/app/graphql/mutations/audit_events/streaming/http/namespace_filters/delete.rb ee/app/graphql/mutations/audit_events/streaming/instance_event_type_filters/create.rb ee/app/graphql/mutations/audit_events/streaming/instance_event_type_filters/destroy.rb ee/app/graphql/mutations/audit_events/streaming/instance_headers/base.rb ee/app/graphql/mutations/audit_events/streaming/instance_headers/create.rb ee/app/graphql/mutations/audit_events/streaming/instance_headers/destroy.rb ee/app/graphql/mutations/audit_events/streaming/instance_headers/update.rb ee/app/graphql/resolvers/audit_events/instance_external_audit_event_destinations_resolver.rb ee/app/graphql/resolvers/audit_events/instance/amazon_s3_configurations_resolver.rb ee/app/graphql/resolvers/audit_events/instance/google_cloud_logging_configurations_resolver.rb ee/app/graphql/types/audit_events/amazon_s3_configuration_interface.rb ee/app/graphql/types/audit_events/amazon_s3_configuration_type.rb ee/app/graphql/types/audit_events/external_audit_event_destination_interface.rb ee/app/graphql/types/audit_events/external_audit_event_destination_type.rb ee/app/graphql/types/audit_events/google_cloud_logging_configuration_interface.rb ee/app/graphql/types/audit_events/google_cloud_logging_configuration_type.rb ee/app/graphql/types/audit_events/instance_external_audit_event_destination_type.rb ee/app/graphql/types/audit_events/instance/amazon_s3_configuration_type.rb ee/app/graphql/types/audit_events/instance/google_cloud_logging_configuration_type.rb ee/app/graphql/types/audit_events/streaming/base_header_interface.rb ee/app/graphql/types/audit_events/streaming/header_type.rb ee/app/graphql/types/audit_events/streaming/http/namespace_filter_type.rb ee/app/graphql/types/audit_events/streaming/instance_header_type.rb ee/app/services/audit_events/streaming/headers_operations.rb ee/app/services/audit_events/streaming/headers/base.rb ee/app/services/audit_events/streaming/headers/create_service.rb ee/app/services/audit_events/streaming/headers/destroy_service.rb ee/app/services/audit_events/streaming/headers/update_service.rb ee/app/services/audit_events/streaming/instance_headers/base_service.rb ee/app/services/audit_events/streaming/instance_headers/create_service.rb ee/app/services/audit_events/streaming/instance_headers/destroy_service.rb ee/app/services/audit_events/streaming/instance_headers/update_service.rb ee/app/services/concerns/audit_events/destination_sync_validator.rb ee/app/services/concerns/audit_events/event_filter_sync_helper.rb ee/app/services/concerns/audit_events/headers_sync_helper.rb ee/app/services/concerns/audit_events/legacy_destination_sync_helper.rb ee/app/services/concerns/audit_events/namespace_filter_sync_helper.rb ee/app/services/concerns/audit_events/stream_destination_sync_helper.rb ee/lib/audit_events/strategies/amazon_s3_destination_strategy.rb ee/lib/audit_events/strategies/base_amazon_s3_destination_strategy.rb ee/lib/audit_events/strategies/base_google_cloud_logging_destination_strategy.rb ee/lib/audit_events/strategies/external_destination_strategy.rb ee/lib/audit_events/strategies/google_cloud_logging_destination_strategy.rb ee/lib/audit_events/strategies/group_external_destination_strategy.rb ee/lib/audit_events/strategies/instance_external_destination_strategy.rb ee/lib/audit_events/strategies/instance/amazon_s3_destination_strategy.rb ee/lib/audit_events/strategies/instance/google_cloud_logging_destination_strategy.rb ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/create_spec.rb ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/destroy_spec.rb ee/spec/graphql/mutations/audit_events/streaming/headers/create_spec.rb ee/spec/graphql/mutations/audit_events/streaming/headers/destroy_spec.rb ee/spec/graphql/types/audit_events/exterrnal_audit_event_destination_type_spec.rb ee/spec/graphql/types/audit_events/google_cloud_logging_configuration_type_spec.rb ee/spec/graphql/types/audit_events/instance_external_audit_event_destination_type_spec.rb ee/spec/graphql/types/audit_events/streaming/header_type_spec.rb ee/spec/graphql/types/audit_events/streaming/http/namespace_filter_type_spec.rb ee/spec/graphql/types/audit_events/streaming/instance_header_type_spec.rb ee/spec/lib/audit_events/strategies/amazon_s3_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/external_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/google_cloud_logging_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/group_external_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/instance_external_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/instance/amazon_s3_destination_strategy_spec.rb ee/spec/lib/audit_events/strategies/instance/google_cloud_logging_destination_strategy_spec.rb ee/spec/requests/api/graphql/audit_events/instance_external_audit_event_destination_spec.rb ee/spec/requests/api/graphql/audit_events/instance/amazon_s3_configuration_spec.rb ee/spec/requests/api/graphql/audit_events/instance/google_cloud_logging_configuration_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/event_type_filters/create_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/event_type_filters/delete_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/headers/create_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/headers/destroy_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/headers/update_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/http/namespace_filters/create_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/http/namespace_filters/delete_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_event_type_filters/create_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_event_type_filters/destroy_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/create_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/destroy_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/amazon_s3_configurations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/amazon_s3_configurations/delete_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/amazon_s3_configurations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/destroy_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/destroy_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/destroy_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/amazon_s3_configurations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/amazon_s3_configurations/delete_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/amazon_s3_configurations/update_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/create_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/destroy_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/update_spec.rb ee/spec/services/audit_events/streaming/headers/base_spec.rb ee/spec/services/audit_events/streaming/headers/create_service_spec.rb ee/spec/services/audit_events/streaming/headers/destroy_service_spec.rb ee/spec/services/audit_events/streaming/headers/update_service_spec.rb ee/spec/services/audit_events/streaming/instance_headers/create_service_spec.rb ee/spec/services/audit_events/streaming/instance_headers/destroy_service_spec.rb ee/spec/services/audit_events/streaming/instance_headers/update_service_spec.rb ee/spec/services/concerns/audit_events/destination_sync_validator_spec.rb ee/spec/services/concerns/audit_events/event_filter_sync_helper_spec.rb ee/spec/services/concerns/audit_events/headers_sync_helper_spec.rb ee/spec/services/concerns/audit_events/legacy_destination_sync_helper_spec.rb ee/spec/services/concerns/audit_events/namespace_filter_sync_helper_spec.rb ee/spec/services/concerns/audit_events/stream_destination_sync_helper_spec.rb ee/spec/support/shared_examples/audit_events/strategies/external_destination_shared_examples.rb ee/spec/support/shared_examples/lib/audit_events/strategies/amazon_s3_destination_strategy_shared_examples.rb ee/spec/support/shared_examples/lib/audit_events/strategies/google_cloud_logging_destination_strategy_shared_examples.rb ee/spec/support/shared_examples/models/concerns/legacy_destination_mappable_shared_examples.rb ee/spec/support/shared_examples/requests/api/graphql/mutations/audit_events/delete_pair_external_destination_shared_examples.rb ee/spec/support/shared_examples/requests/api/graphql/mutations/audit_events/legacy_destination_helper_shared_examples.rb ee/spec/support/shared_examples/requests/api/graphql/mutations/audit_events/stream_destination_helper_shared_examples.rb ee/spec/support/shared_examples/services/audit_events/streaming/headers_operations_shared_examples.rb
References
Screenshots or screen recordings
How to set up and validate locally
- GitLab Ultimate/EE license
- CRUD using Group / Instance level audit event streaming feature
- Use different namespace filters, event type filters; when using namespace filters use "unselect all" then save, this is broken on
master. - Use categories HTTP (e.g., webhook.site), AWS / GCP (cloud sandbox)
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.


