Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RAM] System action in bulk enable api #170476

Merged
merged 9 commits into from
Nov 14, 2023

Conversation

guskovaue
Copy link
Contributor

@guskovaue guskovaue commented Nov 2, 2023

Fix: #170097
Meta: #160367

Summary

This PR enables system actions for the Bulk Enable Rule API.

Checklist

@guskovaue guskovaue self-assigned this Nov 2, 2023
@guskovaue guskovaue added the Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) label Nov 2, 2023
@guskovaue guskovaue changed the title Sa bulk enable api [RAM] System action in bulk enable api Nov 2, 2023
@guskovaue guskovaue added Feature:Alerting/RulesFramework Issues related to the Alerting Rules Framework release_note:skip Skip the PR/issue when compiling release notes labels Nov 6, 2023
@guskovaue guskovaue marked this pull request as ready for review November 6, 2023 12:47
@guskovaue guskovaue requested a review from a team as a code owner November 6, 2023 12:47
@elasticmachine
Copy link
Contributor

Pinging @elastic/response-ops (Team:ResponseOps)

@cnasikas cnasikas mentioned this pull request Nov 8, 2023
15 tasks
@kibana-ci
Copy link
Collaborator

kibana-ci commented Nov 10, 2023

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #75 / Actions and Triggers app Rule Details Header renders the rule details
  • [job] [logs] FTR Configs #75 / Actions and Triggers app Rule Details Header renders the rule details
  • [job] [logs] FTR Configs #18 / Actions API @serverless @ess add_actions adding actions should be able to create a new webhook action and attach it to a rule
  • [job] [logs] FTR Configs #76 / Actions API @serverless @ess add_actions adding actions should be able to create a new webhook action and attach it to a rule
  • [job] [logs] FTR Configs #18 / Actions API @serverless @ess add_actions adding actions should be able to create a new webhook action and attach it to a rule
  • [job] [logs] FTR Configs #76 / Actions API @serverless @ess add_actions adding actions should be able to create a new webhook action and attach it to a rule
  • [job] [logs] FTR Configs #79 / Agents fleet_list_agent should return metrics if available and called with withMetrics
  • [job] [logs] FTR Configs #79 / Agents fleet_list_agent should return metrics if available and called with withMetrics
  • [job] [logs] x-pack/test/alerting_api_integration/security_and_spaces/group2/config_non_dedicated_task_runner.ts / alerting api integration security and spaces enabled - Group 2 Alerts legacy alerts alerts superuser at space1 should schedule actions on legacy alerts
  • [job] [logs] x-pack/test/alerting_api_integration/security_and_spaces/group2/config.ts / alerting api integration security and spaces enabled - Group 2 Alerts legacy alerts alerts superuser at space1 should schedule actions on legacy alerts
  • [job] [logs] x-pack/test/alerting_api_integration/security_and_spaces/group2/config.ts / alerting api integration security and spaces enabled - Group 2 Alerts legacy alerts alerts superuser at space1 should schedule actions on legacy alerts
  • [job] [logs] x-pack/test/alerting_api_integration/security_and_spaces/group2/config_non_dedicated_task_runner.ts / alerting api integration security and spaces enabled - Group 2 Alerts legacy alerts alerts superuser at space1 should schedule actions on legacy alerts
  • [job] [logs] FTR Configs #30 / alerting api integration security and spaces enabled - Group 3 Alerts - Group 3 alerts bulkEnableRules superuser at space1 should handle bulk enable of one rule appropriately based on id
  • [job] [logs] FTR Configs #30 / alerting api integration security and spaces enabled - Group 3 Alerts - Group 3 alerts bulkEnableRules superuser at space1 should handle bulk enable of one rule appropriately based on id
  • [job] [logs] FTR Configs #50 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #58 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #59 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #58 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #59 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #50 / Alerting APIs Alerting rules should pass updated rule params to executor
  • [job] [logs] FTR Configs #15 / Alerting create legacy should handle create alert request appropriately
  • [job] [logs] FTR Configs #15 / Alerting create legacy should handle create alert request appropriately
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Add index patterns to custom rules with configured data view when data view checkbox is checked: rules are updated Add index patterns to custom rules with configured data view when data view checkbox is checked: rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Add index patterns to custom rules with configured data view when data view checkbox is checked: rules are updated Add index patterns to custom rules with configured data view when data view checkbox is checked: rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Add index patterns to custom rules with configured data view: all rules are skipped Add index patterns to custom rules with configured data view: all rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Add index patterns to custom rules with configured data view: all rules are skipped Add index patterns to custom rules with configured data view: all rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Delete index patterns in custom rules with configured data view: rules are skipped Delete index patterns in custom rules with configured data view: rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Delete index patterns in custom rules with configured data view: rules are skipped Delete index patterns in custom rules with configured data view: rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is checked: rules are updated Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is checked: rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is checked: rules are updated Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is checked: rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is NOT checked:: rules are skipped Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is NOT checked:: rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with a data view only Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is NOT checked:: rules are skipped Overwrite index patterns in custom rules with configured data view when overwrite data view checkbox is NOT checked:: rules are skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with index patterns and rules with a data view Add index patterns to custom rules when overwrite data view checkbox is checked: all rules are updated Add index patterns to custom rules when overwrite data view checkbox is checked: all rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with index patterns and rules with a data view Add index patterns to custom rules when overwrite data view checkbox is checked: all rules are updated Add index patterns to custom rules when overwrite data view checkbox is checked: all rules are updated
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with index patterns and rules with a data view Add index patterns to custom rules: one rule is updated, one rule is skipped Add index patterns to custom rules: one rule is updated, one rule is skipped
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Bulk editing index patterns of rules with index patterns and rules with a data view Add index patterns to custom rules: one rule is updated, one rule is skipped Add index patterns to custom rules: one rule is updated, one rule is skipped
  • [job] [logs] FTR Configs #20 / detection engine api security and spaces enabled - Group 1 create_rules_bulk creating rules in bulk per-action frequencies actions without frequencies it sets each action's frequency attribute to default value when 'throttle' is undefined
  • [job] [logs] FTR Configs #20 / detection engine api security and spaces enabled - Group 1 create_rules_bulk creating rules in bulk per-action frequencies actions without frequencies it sets each action's frequency attribute to default value when 'throttle' is undefined
  • [job] [logs] FTR Configs #16 / detection engine api security and spaces enabled - Group 10 import_rules importing rules with an index should migrate legacy actions in existing rule if overwrite is set to true
  • [job] [logs] FTR Configs #16 / detection engine api security and spaces enabled - Group 10 import_rules importing rules with an index should migrate legacy actions in existing rule if overwrite is set to true
  • [job] [logs] FTR Configs #18 / detection engine api security and spaces enabled - Group 4 Detection rule type telemetry Detection rule telemetry "kql" rule type should show "notifications_disabled" to be "1" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"
  • [job] [logs] FTR Configs #18 / detection engine api security and spaces enabled - Group 4 Detection rule type telemetry Detection rule telemetry "kql" rule type should show "notifications_disabled" to be "1" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"
  • [job] [logs] FTR Configs #30 / detection engine api security and spaces enabled - rule execution logic Query type rules with suppression enabled with a suppression time window should update an alert using real rule executions
  • [job] [logs] FTR Configs #30 / detection engine api security and spaces enabled - rule execution logic Query type rules with suppression enabled with a suppression time window should update an alert using real rule executions
  • [job] [logs] x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/exceptions/operators_data_types/date_numeric_types/configs/serverless.config.ts / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type date "is" operator should filter 1 single date if it is set as an exception
  • [job] [logs] FTR Configs #6 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type date "is" operator should filter 1 single date if it is set as an exception
  • [job] [logs] x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/exceptions/operators_data_types/date_numeric_types/configs/serverless.config.ts / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type date "is" operator should filter 1 single date if it is set as an exception
  • [job] [logs] FTR Configs #6 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type date "is" operator should filter 1 single date if it is set as an exception
  • [job] [logs] x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/exceptions/operators_data_types/keyword_text_long/configs/serverless.config.ts / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type keyword "is" operator should filter 1 single keyword if it is set as an exception
  • [job] [logs] FTR Configs #18 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type keyword "is" operator should filter 1 single keyword if it is set as an exception
  • [job] [logs] x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/exceptions/operators_data_types/keyword_text_long/configs/serverless.config.ts / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type keyword "is" operator should filter 1 single keyword if it is set as an exception
  • [job] [logs] FTR Configs #18 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type keyword "is" operator should filter 1 single keyword if it is set as an exception
  • [job] [logs] FTR Configs #20 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type text "is" operator should filter 1 single text if it is set as an exception
  • [job] [logs] FTR Configs #64 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type text "is" operator should filter 1 single text if it is set as an exception
  • [job] [logs] FTR Configs #20 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type text "is" operator should filter 1 single text if it is set as an exception
  • [job] [logs] FTR Configs #64 / Detection exceptions data types and operators @serverless @ess Rule exception operators for data type text "is" operator should filter 1 single text if it is set as an exception
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Add index patterns to custom rules Add index patterns to custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Add index patterns to custom rules Add index patterns to custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Delete all index patterns from custom rules Delete all index patterns from custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Delete all index patterns from custom rules Delete all index patterns from custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Delete index patterns from custom rules Delete index patterns from custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Delete index patterns from custom rules Delete index patterns from custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Display success toast after editing the index pattern Display success toast after editing the index pattern
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Display success toast after editing the index pattern Display success toast after editing the index pattern
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Index pattern action applied to custom rules, including machine learning: user proceeds with edit of custom non machine learning rule Index pattern action applied to custom rules, including machine learning: user proceeds with edit of custom non machine learning rule
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Index pattern action applied to custom rules, including machine learning: user proceeds with edit of custom non machine learning rule Index pattern action applied to custom rules, including machine learning: user proceeds with edit of custom non machine learning rule
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Overwrite index patterns in custom rules Overwrite index patterns in custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Index patterns Overwrite index patterns in custom rules Overwrite index patterns in custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #3 / Detection rules, bulk edit of rule actions All actions privileges "before each" hook for "Add a rule action to rules (existing connector)" "before each" hook for "Add a rule action to rules (existing connector)"
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #3 / Detection rules, bulk edit of rule actions All actions privileges "before each" hook for "Add a rule action to rules (existing connector)" "before each" hook for "Add a rule action to rules (existing connector)"
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #3 / Detection rules, bulk edit of rule actions Restricted action privileges User with no privileges can't add rule actions User with no privileges can't add rule actions
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #3 / Detection rules, bulk edit of rule actions Restricted action privileges User with no privileges can't add rule actions User with no privileges can't add rule actions
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Timeline templates Apply timeline template to custom rules Apply timeline template to custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Timeline templates Apply timeline template to custom rules Apply timeline template to custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Timeline templates Reset timeline template to None for custom rules Reset timeline template to None for custom rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #2 / Detection rules, bulk edit Timeline templates Reset timeline template to None for custom rules Reset timeline template to None for custom rules
  • [job] [logs] FTR Configs #51 / Discover alerting Search source Alert should navigate to alert results via view in app link
  • [job] [logs] FTR Configs #51 / Discover alerting Search source Alert should navigate to alert results via view in app link
  • [job] [logs] FTR Configs #9 / Exceptions API @serverless @ess role_based_rule_exceptions_workflows creating rules with exceptions tests with auditbeat data should be able to execute against an exception list that does include valid entries and get back 0 alerts
  • [job] [logs] FTR Configs #40 / Exceptions API @serverless @ess role_based_rule_exceptions_workflows creating rules with exceptions tests with auditbeat data should be able to execute against an exception list that does include valid entries and get back 0 alerts
  • [job] [logs] FTR Configs #9 / Exceptions API @serverless @ess role_based_rule_exceptions_workflows creating rules with exceptions tests with auditbeat data should be able to execute against an exception list that does include valid entries and get back 0 alerts
  • [job] [logs] FTR Configs #40 / Exceptions API @serverless @ess role_based_rule_exceptions_workflows creating rules with exceptions tests with auditbeat data should be able to execute against an exception list that does include valid entries and get back 0 alerts
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #1 / Exceptions match_any Creates exception item Creates exception item
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #1 / Exceptions match_any Creates exception item Creates exception item
  • [job] [logs] FTR Configs #34 / management index management index templates get all should list all the index templates with the expected parameters
  • [job] [logs] FTR Configs #34 / management index management index templates get all should list all the index templates with the expected parameters
  • [job] [logs] FTR Configs #14 / Monitoring app Cluster listing Alerts should show a toast when alerts are created successfully
  • [job] [logs] FTR Configs #14 / Monitoring app Cluster listing Alerts should show a toast when alerts are created successfully
  • [job] [logs] FTR Configs #66 / Observability Rules Synthetics SyntheticsRules creates rule when settings are configured
  • [job] [logs] FTR Configs #66 / Observability Rules Synthetics SyntheticsRules creates rule when settings are configured
  • [job] [logs] Jest Tests #5 / resolve() authorization ensures user is authorised to resolve this type of rule under the consumer
  • [job] [logs] Jest Tests #5 / resolve() calls saved objects client with given params
  • [job] [logs] Jest Tests #5 / resolve() calls saved objects client with id and includeSnoozeData params
  • [job] [logs] Jest Tests #5 / resolve() legacy actions migration for SIEM should call formatLegacyActions if consumer is SIEM
  • [job] [logs] Jest Tests #5 / resolve() legacy actions migration for SIEM should not call formatLegacyActions if consumer is not SIEM
  • [job] [logs] Jest Tests #5 / resolve() should call useSavedObjectReferences.injectReferences if defined for rule type
  • [job] [logs] Jest Tests #5 / resolve() throws an error if useSavedObjectReferences.injectReferences throws an error
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Rule actions during detection rule creation Indexes a new document after the index action is triggered Indexes a new document after the index action is triggered
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / Rule actions during detection rule creation Indexes a new document after the index action is triggered Indexes a new document after the index action is triggered
  • [job] [logs] FTR Configs #45 / Rule creation API @serverless @ess create_rules @brokenInServerless per-action frequencies actions without frequencies it sets each action's frequency attribute to default value when 'throttle' is undefined
  • [job] [logs] FTR Configs #45 / Rule creation API @serverless @ess create_rules @brokenInServerless per-action frequencies actions without frequencies it sets each action's frequency attribute to default value when 'throttle' is undefined
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / rule snoozing Rule editing page / actions tab adds an action to a snoozed rule adds an action to a snoozed rule
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / rule snoozing Rule editing page / actions tab adds an action to a snoozed rule adds an action to a snoozed rule
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / rule snoozing Rules management table snoozes a rule with actions for 2 days snoozes a rule with actions for 2 days
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #4 / rule snoozing Rules management table snoozes a rule with actions for 2 days snoozes a rule with actions for 2 days
  • [job] [logs] FTR Configs #9 / serverless search UI Rule details Edit rule with deleted connector should show and update deleted connectors when there are existing connectors of the same type
  • [job] [logs] FTR Configs #9 / serverless search UI Rule details Edit rule with deleted connector should show and update deleted connectors when there are existing connectors of the same type
  • [job] [logs] Jest Tests #5 / update() calls the authentication API key function if the user is authenticated using an api key
  • [job] [logs] Jest Tests #5 / update() calls the createApiKey function
  • [job] [logs] Jest Tests #5 / update() doesn't call the createAPIKey function when alert is disabled
  • [job] [logs] Jest Tests #5 / update() should call useSavedObjectReferences.extractReferences and useSavedObjectReferences.injectReferences if defined for rule type
  • [job] [logs] Jest Tests #5 / update() should update a rule even if action is missing secret when allowMissingConnectorSecrets is true
  • [job] [logs] Jest Tests #5 / update() should update a rule with some preconfigured actions
  • [job] [logs] Jest Tests #5 / update() should update a rule with some system actions
  • [job] [logs] Jest Tests #5 / update() updates an action with uuid and adds uuid to an action without it
  • [job] [logs] Jest Tests #5 / update() updates given parameters

Metrics [docs]

‼️ ERROR: no builds found for mergeBase sha [c0b2feb]

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @guskovaue

@guskovaue guskovaue merged commit aadd675 into elastic:system_actions_mvp Nov 14, 2023
22 of 56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Alerting/RulesFramework Issues related to the Alerting Rules Framework release_note:skip Skip the PR/issue when compiling release notes Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams)
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

5 participants