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

image image image

How to set up and validate locally

  1. GitLab Ultimate/EE license
  2. CRUD using Group / Instance level audit event streaming feature
  3. Use different namespace filters, event type filters; when using namespace filters use "unselect all" then save, this is broken on master.
  4. 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.

Edited by Andrew Jung

Merge request reports

Loading