Skip to content

codegen: gate serverless KB definitions by project type in requires #590

Description

@JoshMock

Opened from failing KB functional tests in test/functional/kb/definitions/. The serverless run targets a project tier whose route table omits the security/observability/apm/slo/streams solution APIs, so 159 definitions get a generic 404 Not Found and are currently blanket-skipped in codegen/functional/kb.ts. Most of the serverless input_error failures are downstream symptoms of a solution-API setup step 404ing.

Fix

Extend the requires block in codegen/functional/parser.ts with an optional serverless_project: security | observability | elasticsearch (array allowed). In codegen/functional/kb.ts, skip a definition when ELASTIC_ENVIRONMENT=serverless and the run's configured project type is not in the definition's list, then annotate the affected definitions. This replaces most of skippedFilesServerless with self-documenting gating and lets the suite pass on the matching project type. Add a codegen unit test per branch.

Failing test definitions (159, serverless generic 404)
  • agent_builder_get_plugins.yml
  • apm_agent_configuration_create_update_agent_configuration.yml
  • apm_agent_configuration_delete_agent_configuration.yml
  • apm_agent_configuration_get_agent_configurations.yml
  • apm_agent_configuration_get_agent_name_for_service.yml
  • apm_agent_configuration_get_environments_for_service.yml
  • apm_agent_configuration_get_single_agent_configuration.yml
  • apm_agent_configuration_search_single_configuration.yml
  • apm_agent_keys_create_agent_key.yml
  • apm_annotations_create_annotation.yml
  • apm_annotations_get_annotation.yml
  • apm_server_schema_save_apm_server_schema.yml
  • security_ai_assistant_api_create_knowledge_base.yml
  • security_ai_assistant_api_find_anonymization_fields.yml
  • security_ai_assistant_api_find_conversations.yml
  • security_ai_assistant_api_find_knowledge_base_entries.yml
  • security_ai_assistant_api_find_prompts.yml
  • security_ai_assistant_api_get_knowledge_base.yml
  • security_ai_assistant_api_perform_anonymization_fields_bulk_action.yml
  • security_ai_assistant_api_perform_knowledge_base_entry_bulk_action.yml
  • security_ai_assistant_api_perform_prompts_bulk_action.yml
  • security_ai_assistant_api_post_knowledge_base.yml
  • security_ai_assistant_api_read_knowledge_base.yml
  • security_attack_discovery_api_attack_discovery_find.yml
  • security_attack_discovery_api_find_attack_discovery_schedules.yml
  • security_attack_discovery_api_get_attack_discovery_generations.yml
  • security_attack_discovery_api_post_attack_discovery_bulk.yml
  • security_detections_api_create_rule.yml
  • security_detections_api_delete_rule.yml
  • security_detections_api_export_rules.yml
  • security_detections_api_find_rules.yml
  • security_detections_api_import_rules.yml
  • security_detections_api_patch_rule.yml
  • security_detections_api_perform_rules_bulk_action.yml
  • security_detections_api_read_privileges.yml
  • security_detections_api_read_rule.yml
  • security_detections_api_read_tags.yml
  • security_detections_api_rule_preview.yml
  • security_detections_api_search_alerts.yml
  • security_detections_api_set_alert_assignees.yml
  • security_detections_api_set_alert_tags.yml
  • security_detections_api_set_alerts_status.yml
  • security_detections_api_update_rule.yml
  • security_endpoint_exceptions_api_create_endpoint_list.yml
  • security_endpoint_exceptions_api_create_endpoint_list_item.yml
  • security_endpoint_exceptions_api_delete_endpoint_list_item.yml
  • security_endpoint_exceptions_api_find_endpoint_list_items.yml
  • security_endpoint_exceptions_api_read_endpoint_list_item.yml
  • security_endpoint_exceptions_api_update_endpoint_list_item.yml
  • security_endpoint_management_api_endpoint_get_actions_list.yml
  • security_endpoint_management_api_endpoint_get_actions_state.yml
  • security_endpoint_management_api_endpoint_get_actions_status.yml
  • security_endpoint_management_api_endpoint_script_library_list_scripts.yml
  • security_endpoint_management_api_get_endpoint_metadata_list.yml
  • security_entity_analytics_api_bulk_upsert_asset_criticality_records.yml
  • security_entity_analytics_api_clean_up_risk_engine.yml
  • security_entity_analytics_api_configure_risk_engine_saved_object.yml
  • security_entity_analytics_api_create_asset_criticality_record.yml
  • security_entity_analytics_api_create_priv_mon_user.yml
  • security_entity_analytics_api_create_watchlist.yml
  • security_entity_analytics_api_delete_asset_criticality_record.yml
  • security_entity_analytics_api_delete_monitoring_engine.yml
  • security_entity_analytics_api_delete_priv_mon_user.yml
  • security_entity_analytics_api_disable_monitoring_engine.yml
  • security_entity_analytics_api_find_asset_criticality_records.yml
  • security_entity_analytics_api_get_asset_criticality_record.yml
  • security_entity_analytics_api_get_privileged_access_detection_package_status.yml
  • security_entity_analytics_api_get_watchlist.yml
  • security_entity_analytics_api_init_monitoring_engine.yml
  • security_entity_analytics_api_install_privileged_access_detection_package.yml
  • security_entity_analytics_api_list_priv_mon_users.yml
  • security_entity_analytics_api_list_watchlists.yml
  • security_entity_analytics_api_priv_mon_health.yml
  • security_entity_analytics_api_priv_mon_privileges.yml
  • security_entity_analytics_api_privmon_bulk_upload_users_c_s_v.yml
  • security_entity_analytics_api_schedule_monitoring_engine.yml
  • security_entity_analytics_api_schedule_risk_engine_now.yml
  • security_entity_analytics_api_unassign_watchlist_entities.yml
  • security_entity_analytics_api_update_priv_mon_user.yml
  • security_entity_analytics_api_update_watchlist.yml
  • security_entity_analytics_api_upload_watchlist_csv.yml
  • security_exceptions_api_create_exception_list.yml
  • security_exceptions_api_create_exception_list_item.yml
  • security_exceptions_api_create_rule_exception_list_items.yml
  • security_exceptions_api_create_shared_exception_list.yml
  • security_exceptions_api_delete_exception_list.yml
  • security_exceptions_api_delete_exception_list_item.yml
  • security_exceptions_api_duplicate_exception_list.yml
  • security_exceptions_api_export_exception_list.yml
  • security_exceptions_api_find_exception_list_items.yml
  • security_exceptions_api_find_exception_lists.yml
  • security_exceptions_api_import_exception_list.yml
  • security_exceptions_api_read_exception_list.yml
  • security_exceptions_api_read_exception_list_item.yml
  • security_exceptions_api_read_exception_list_summary.yml
  • security_exceptions_api_update_exception_list.yml
  • security_exceptions_api_update_exception_list_item.yml
  • security_lists_api_create_list.yml
  • security_lists_api_create_list_index.yml
  • security_lists_api_create_list_item.yml
  • security_lists_api_delete_list.yml
  • security_lists_api_delete_list_index.yml
  • security_lists_api_delete_list_item.yml
  • security_lists_api_export_list_items.yml
  • security_lists_api_find_list_items.yml
  • security_lists_api_find_lists.yml
  • security_lists_api_import_list_items.yml
  • security_lists_api_patch_list.yml
  • security_lists_api_patch_list_item.yml
  • security_lists_api_read_list.yml
  • security_lists_api_read_list_index.yml
  • security_lists_api_read_list_item.yml
  • security_lists_api_read_list_privileges.yml
  • security_lists_api_update_list.yml
  • security_lists_api_update_list_item.yml
  • security_osquery_api_osquery_create_live_query.yml
  • security_osquery_api_osquery_export_live_query_results.yml
  • security_osquery_api_osquery_find_live_queries.yml
  • security_osquery_api_osquery_find_packs.yml
  • security_osquery_api_osquery_find_saved_queries.yml
  • security_osquery_api_osquery_get_live_query_details.yml
  • security_osquery_api_osquery_get_live_query_results.yml
  • security_osquery_api_osquery_get_unified_history.yml
  • security_timeline_api_clean_draft_timelines.yml
  • security_timeline_api_copy_timeline.yml
  • security_timeline_api_create_timelines.yml
  • security_timeline_api_delete_note.yml
  • security_timeline_api_delete_timelines.yml
  • security_timeline_api_export_timelines.yml
  • security_timeline_api_get_draft_timelines.yml
  • security_timeline_api_get_notes.yml
  • security_timeline_api_get_timeline.yml
  • security_timeline_api_get_timelines.yml
  • security_timeline_api_import_timelines.yml
  • security_timeline_api_install_prepacked_timelines.yml
  • security_timeline_api_patch_timeline.yml
  • security_timeline_api_persist_favorite_route.yml
  • security_timeline_api_persist_note_route.yml
  • security_timeline_api_persist_pinned_event_route.yml
  • security_timeline_api_resolve_timeline.yml
  • significantevents_delete_streams_name_queries_queryid.yml
  • significantevents_get_streams_name_queries.yml
  • significantevents_get_streams_name_significant_events.yml
  • significantevents_post_streams_name_queries_bulk.yml
  • significantevents_put_streams_name_queries_queryid.yml
  • slo_bulk_delete_op.yml
  • slo_bulk_snapshot_op.yml
  • slo_create_slo_op.yml
  • slo_delete_rollup_data_op.yml
  • slo_delete_slo_instances_op.yml
  • slo_delete_slo_op.yml
  • slo_disable_slo_op.yml
  • slo_enable_slo_op.yml
  • slo_find_slos_op.yml
  • slo_get_definitions_op.yml
  • slo_get_slo_op.yml
  • slo_get_snapshot_op.yml
  • slo_reset_slo_op.yml
  • slo_update_slo_op.yml

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions