Skip to content

Conversation

Matth3wW
Copy link

@Matth3wW Matth3wW commented Aug 1, 2025

Fix payload format in perform_action to send 'action' as a dictionary

  • Bug fixes

Unit test coverage

Name                                                                   Stmts   Miss  Cover
------------------------------------------------------------------------------------------
src\falconpy\__init__.py                                                 121      0   100%
src\falconpy\_api_request\__init__.py                                      7      0   100%
src\falconpy\_api_request\_request.py                                    112      4    96%
src\falconpy\_api_request\_request_behavior.py                            64      0   100%
src\falconpy\_api_request\_request_connection.py                           8      0   100%
src\falconpy\_api_request\_request_meta.py                                26      0   100%
src\falconpy\_api_request\_request_payloads.py                             8      0   100%
src\falconpy\_api_request\_request_validator.py                            6      0   100%
src\falconpy\_auth_object\__init__.py                                      6      0   100%
src\falconpy\_auth_object\_base_falcon_auth.py                            13      0   100%
src\falconpy\_auth_object\_bearer_token.py                                63      0   100%
src\falconpy\_auth_object\_falcon_interface.py                           257      8    97%
src\falconpy\_auth_object\_interface_config.py                            40      0   100%
src\falconpy\_auth_object\_uber_interface.py                              51      0   100%
src\falconpy\_constant\__init__.py                                        11      0   100%
src\falconpy\_endpoint\__init__.py                                       242      0   100%
src\falconpy\_endpoint\_alerts.py                                          1      0   100%
src\falconpy\_endpoint\_api_integrations.py                                1      0   100%
src\falconpy\_endpoint\_aspm.py                                            1      0   100%
src\falconpy\_endpoint\_cao_hunting.py                                     1      0   100%
src\falconpy\_endpoint\_certificate_based_exclusions.py                    1      0   100%
src\falconpy\_endpoint\_cloud_aws_registration.py                          1      0   100%
src\falconpy\_endpoint\_cloud_azure_registration.py                        1      0   100%
src\falconpy\_endpoint\_cloud_connect_aws.py                               1      0   100%
src\falconpy\_endpoint\_cloud_oci_registration.py                          1      0   100%
src\falconpy\_endpoint\_cloud_security_assets.py                           1      0   100%
src\falconpy\_endpoint\_cloud_snapshots.py                                 1      0   100%
src\falconpy\_endpoint\_configuration_assessment.py                        1      0   100%
src\falconpy\_endpoint\_configuration_assessment_evaluation_logic.py       1      0   100%
src\falconpy\_endpoint\_container_alerts.py                                1      0   100%
src\falconpy\_endpoint\_container_detections.py                            1      0   100%
src\falconpy\_endpoint\_container_image_compliance.py                      1      0   100%
src\falconpy\_endpoint\_container_images.py                                1      0   100%
src\falconpy\_endpoint\_container_packages.py                              1      0   100%
src\falconpy\_endpoint\_container_vulnerabilities.py                       1      0   100%
src\falconpy\_endpoint\_content_update_policies.py                         1      0   100%
src\falconpy\_endpoint\_correlation_rules.py                               1      0   100%
src\falconpy\_endpoint\_cspm_registration.py                               1      0   100%
src\falconpy\_endpoint\_custom_ioa.py                                      1      0   100%
src\falconpy\_endpoint\_custom_storage.py                                  1      0   100%
src\falconpy\_endpoint\_d4c_registration.py                                1      0   100%
src\falconpy\_endpoint\_delivery_settings.py                               1      0   100%
src\falconpy\_endpoint\_deployments.py                                     1      0   100%
src\falconpy\_endpoint\_detects.py                                         1      0   100%
src\falconpy\_endpoint\_device_content.py                                  1      0   100%
src\falconpy\_endpoint\_device_control_policies.py                         1      0   100%
src\falconpy\_endpoint\_discover.py                                        1      0   100%
src\falconpy\_endpoint\_downloads.py                                       1      0   100%
src\falconpy\_endpoint\_drift_indicators.py                                1      0   100%
src\falconpy\_endpoint\_event_streams.py                                   1      0   100%
src\falconpy\_endpoint\_exposure_management.py                             1      0   100%
src\falconpy\_endpoint\_faas_execution.py                                  1      0   100%
src\falconpy\_endpoint\_falcon_complete_dashboard.py                       1      0   100%
src\falconpy\_endpoint\_falcon_container.py                                1      0   100%
src\falconpy\_endpoint\_falconx_sandbox.py                                 1      0   100%
src\falconpy\_endpoint\_fdr.py                                             1      0   100%
src\falconpy\_endpoint\_filevantage.py                                     1      0   100%
src\falconpy\_endpoint\_firewall_management.py                             1      0   100%
src\falconpy\_endpoint\_firewall_policies.py                               1      0   100%
src\falconpy\_endpoint\_foundry_logscale.py                                1      0   100%
src\falconpy\_endpoint\_host_group.py                                      1      0   100%
src\falconpy\_endpoint\_host_migration.py                                  1      0   100%
src\falconpy\_endpoint\_hosts.py                                           1      0   100%
src\falconpy\_endpoint\_identity_protection.py                             1      0   100%
src\falconpy\_endpoint\_image_assessment_policies.py                       1      0   100%
src\falconpy\_endpoint\_incidents.py                                       1      0   100%
src\falconpy\_endpoint\_installation_tokens.py                             1      0   100%
src\falconpy\_endpoint\_intel.py                                           1      0   100%
src\falconpy\_endpoint\_intelligence_feeds.py                              1      0   100%
src\falconpy\_endpoint\_intelligence_indicator_graph.py                    1      0   100%
src\falconpy\_endpoint\_ioa_exclusions.py                                  1      0   100%
src\falconpy\_endpoint\_ioc.py                                             1      0   100%
src\falconpy\_endpoint\_iocs.py                                            1      0   100%
src\falconpy\_endpoint\_it_automation.py                                   1      0   100%
src\falconpy\_endpoint\_kubernetes_container_compliance.py                 1      0   100%
src\falconpy\_endpoint\_kubernetes_protection.py                           1      0   100%
src\falconpy\_endpoint\_malquery.py                                        1      0   100%
src\falconpy\_endpoint\_message_center.py                                  1      0   100%
src\falconpy\_endpoint\_ml_exclusions.py                                   1      0   100%
src\falconpy\_endpoint\_mobile_enrollment.py                               1      0   100%
src\falconpy\_endpoint\_mssp.py                                            1      0   100%
src\falconpy\_endpoint\_ngsiem.py                                          1      0   100%
src\falconpy\_endpoint\_oauth2.py                                          1      0   100%
src\falconpy\_endpoint\_ods.py                                             1      0   100%
src\falconpy\_endpoint\_overwatch_dashboard.py                             1      0   100%
src\falconpy\_endpoint\_prevention_policies.py                             1      0   100%
src\falconpy\_endpoint\_quarantine.py                                      1      0   100%
src\falconpy\_endpoint\_quick_scan.py                                      1      0   100%
src\falconpy\_endpoint\_quick_scan_pro.py                                  1      0   100%
src\falconpy\_endpoint\_real_time_response.py                              1      0   100%
src\falconpy\_endpoint\_real_time_response_admin.py                        1      0   100%
src\falconpy\_endpoint\_real_time_response_audit.py                        1      0   100%
src\falconpy\_endpoint\_recon.py                                           1      0   100%
src\falconpy\_endpoint\_report_executions.py                               1      0   100%
src\falconpy\_endpoint\_response_policies.py                               1      0   100%
src\falconpy\_endpoint\_sample_uploads.py                                  1      0   100%
src\falconpy\_endpoint\_scheduled_reports.py                               1      0   100%
src\falconpy\_endpoint\_sensor_download.py                                 1      0   100%
src\falconpy\_endpoint\_sensor_update_policies.py                          1      0   100%
src\falconpy\_endpoint\_sensor_usage.py                                    1      0   100%
src\falconpy\_endpoint\_sensor_visibility_exclusions.py                    1      0   100%
src\falconpy\_endpoint\_serverless_vulnerabilities.py                      1      0   100%
src\falconpy\_endpoint\_spotlight_evaluation_logic.py                      1      0   100%
src\falconpy\_endpoint\_spotlight_vulnerabilities.py                       1      0   100%
src\falconpy\_endpoint\_tailored_intelligence.py                           1      0   100%
src\falconpy\_endpoint\_threatgraph.py                                     1      0   100%
src\falconpy\_endpoint\_unidentified_containers.py                         1      0   100%
src\falconpy\_endpoint\_user_management.py                                 1      0   100%
src\falconpy\_endpoint\_workflows.py                                       1      0   100%
src\falconpy\_endpoint\_zero_trust_assessment.py                           1      0   100%
src\falconpy\_endpoint\deprecated\__init__.py                             53      0   100%
src\falconpy\_endpoint\deprecated\_certificate_based_exclusions.py         1      0   100%
src\falconpy\_endpoint\deprecated\_cloud_aws_registration.py               1      0   100%
src\falconpy\_endpoint\deprecated\_cloud_azure_registration.py             1      0   100%
src\falconpy\_endpoint\deprecated\_cloud_oci_registration.py               1      0   100%
src\falconpy\_endpoint\deprecated\_cloud_security_assets.py                1      0   100%
src\falconpy\_endpoint\deprecated\_correlation_rules.py                    1      0   100%
src\falconpy\_endpoint\deprecated\_custom_ioa.py                           1      0   100%
src\falconpy\_endpoint\deprecated\_d4c_registration.py                     1      0   100%
src\falconpy\_endpoint\deprecated\_datascanner.py                          1      0   100%
src\falconpy\_endpoint\deprecated\_device_content.py                       1      0   100%
src\falconpy\_endpoint\deprecated\_discover.py                             1      0   100%
src\falconpy\_endpoint\deprecated\_exposure_management.py                  1      0   100%
src\falconpy\_endpoint\deprecated\_fdr.py                                  1      0   100%
src\falconpy\_endpoint\deprecated\_firewall_management.py                  1      0   100%
src\falconpy\_endpoint\deprecated\_hosts.py                                1      0   100%
src\falconpy\_endpoint\deprecated\_identity_protection.py                  1      0   100%
src\falconpy\_endpoint\deprecated\_installation_tokens.py                  1      0   100%
src\falconpy\_endpoint\deprecated\_ioc.py                                  1      0   100%
src\falconpy\_endpoint\deprecated\_iocs.py                                 1      0   100%
src\falconpy\_endpoint\deprecated\_mapping.py                              2      0   100%
src\falconpy\_endpoint\deprecated\_ods.py                                  1      0   100%
src\falconpy\_endpoint\deprecated\_real_time_response.py                   1      0   100%
src\falconpy\_endpoint\deprecated\_real_time_response_admin.py             1      0   100%
src\falconpy\_endpoint\deprecated\_report_executions.py                    1      0   100%
src\falconpy\_endpoint\deprecated\_scheduled_reports.py                    1      0   100%
src\falconpy\_endpoint\deprecated\_zero_trust_assessment.py                1      0   100%
src\falconpy\_enum\__init__.py                                             7      0   100%
src\falconpy\_enum\_base_url.py                                            8      0   100%
src\falconpy\_enum\_container_base_url.py                                  7      0   100%
src\falconpy\_enum\_ingest_base_url.py                                     6      0   100%
src\falconpy\_enum\_ingest_format.py                                       6      0   100%
src\falconpy\_enum\_timeunit.py                                            5      0   100%
src\falconpy\_enum\_token_fail_reason.py                                   4      0   100%
src\falconpy\_error\__init__.py                                            3      0   100%
src\falconpy\_error\_exceptions.py                                        77      0   100%
src\falconpy\_error\_warnings.py                                          76      4    95%
src\falconpy\_helper\__init__.py                                          15      0   100%
src\falconpy\_helper\_find_operation.py                                   38      0   100%
src\falconpy\_helper\_indicator.py                                        36      0   100%
src\falconpy\_helper\_text_colors.py                                      16      0   100%
src\falconpy\_log\__init__.py                                              2      0   100%
src\falconpy\_log\_facility.py                                            41      0   100%
src\falconpy\_ngsiem\__init__.py                                           3      0   100%
src\falconpy\_ngsiem\_hec.py                                             301     16    95%
src\falconpy\_ngsiem\_ingest_config.py                                    72      0   100%
src\falconpy\_ngsiem\_ingest_payload.py                                  127      0   100%
src\falconpy\_ngsiem\_session_manager.py                                  49      0   100%
src\falconpy\_payload\__init__.py                                         44      0   100%
src\falconpy\_payload\_alerts.py                                          19      0   100%
src\falconpy\_payload\_api_integrations.py                                25      0   100%
src\falconpy\_payload\_aspm.py                                           113      0   100%
src\falconpy\_payload\_certificate_based_exclusions.py                    24      0   100%
src\falconpy\_payload\_cloud_aws_registration.py                          13      0   100%
src\falconpy\_payload\_cloud_azure_registration.py                        20      0   100%
src\falconpy\_payload\_cloud_oci_registration.py                          35      0   100%
src\falconpy\_payload\_cloud_snapshots.py                                 22      0   100%
src\falconpy\_payload\_container.py                                       90      0   100%
src\falconpy\_payload\_content_update_policy.py                           23      0   100%
src\falconpy\_payload\_correlation_rules.py                               24      0   100%
src\falconpy\_payload\_cspm_registration.py                               71      0   100%
src\falconpy\_payload\_d4c_registration.py                                38      0   100%
src\falconpy\_payload\_delivery_settings.py                               10      0   100%
src\falconpy\_payload\_device_control_policy.py                           64      0   100%
src\falconpy\_payload\_exposure_management.py                             31      0   100%
src\falconpy\_payload\_falconx.py                                         25      0   100%
src\falconpy\_payload\_filevantage.py                                     46      0   100%
src\falconpy\_payload\_firewall.py                                       122      0   100%
src\falconpy\_payload\_foundry.py                                         16      0   100%
src\falconpy\_payload\_generic.py                                         71      1    99%
src\falconpy\_payload\_host_group.py                                      31      0   100%
src\falconpy\_payload\_identity_protection.py                             11      0   100%
src\falconpy\_payload\_incidents.py                                       15      0   100%
src\falconpy\_payload\_intelligence_indicator_graph.py                     0      0   100%
src\falconpy\_payload\_ioa.py                                             35      0   100%
src\falconpy\_payload\_ioc.py                                             52      0   100%
src\falconpy\_payload\_it_automation.py                                   80      0   100%
src\falconpy\_payload\_malquery.py                                        56      0   100%
src\falconpy\_payload\_message_center.py                                  22      0   100%
src\falconpy\_payload\_mobile_enrollment.py                               12      0   100%
src\falconpy\_payload\_mssp.py                                            15      0   100%
src\falconpy\_payload\_ngsiem.py                                          14      0   100%
src\falconpy\_payload\_ods.py                                             13      0   100%
src\falconpy\_payload\_prevention_policy.py                               19      0   100%
src\falconpy\_payload\_real_time_response.py                              27      1    96%
src\falconpy\_payload\_recon.py                                           84      0   100%
src\falconpy\_payload\_reports.py                                         19      0   100%
src\falconpy\_payload\_response_policy.py                                 19      0   100%
src\falconpy\_payload\_sample_uploads.py                                   9      0   100%
src\falconpy\_payload\_sensor_update_policy.py                            30      0   100%
src\falconpy\_payload\_workflows.py                                       43      0   100%
src\falconpy\_result\__base_resource.py                                   28      1    96%
src\falconpy\_result\__init__.py                                           9      0   100%
src\falconpy\_result\_base_dictionary.py                                  31      0   100%
src\falconpy\_result\_errors.py                                            2      0   100%
src\falconpy\_result\_expanded_result.py                                   7      0   100%
src\falconpy\_result\_headers.py                                          24      7    71%
src\falconpy\_result\_meta.py                                             30      9    70%
src\falconpy\_result\_resources.py                                        14      6    57%
src\falconpy\_result\_response_component.py                               24     10    58%
src\falconpy\_result\_result.py                                          220     79    64%
src\falconpy\_service_class\__init__.py                                    3      0   100%
src\falconpy\_service_class\_base_service_class.py                       119      0   100%
src\falconpy\_service_class\_service_class.py                            113      1    99%
src\falconpy\_util\__init__.py                                             5      0   100%
src\falconpy\_util\_auth.py                                               47      0   100%
src\falconpy\_util\_functions.py                                         451     33    93%
src\falconpy\_util\_service.py                                             3      0   100%
src\falconpy\_util\_uber.py                                               51      0   100%
src\falconpy\_version.py                                                  38      0   100%
src\falconpy\alerts.py                                                    69      0   100%
src\falconpy\api_complete\__init__.py                                      3      0   100%
src\falconpy\api_complete\_advanced.py                                    62      4    94%
src\falconpy\api_complete\_legacy.py                                     202      9    96%
src\falconpy\api_integrations.py                                          23      0   100%
src\falconpy\aspm.py                                                     284      0   100%
src\falconpy\cao_hunting.py                                               25      0   100%
src\falconpy\certificate_based_exclusions.py                              35      0   100%
src\falconpy\cloud_aws_registration.py                                    34      0   100%
src\falconpy\cloud_azure_registration.py                                  37      0   100%
src\falconpy\cloud_oci_registration.py                                    45      0   100%
src\falconpy\cloud_security_assets.py                                     18      0   100%
src\falconpy\cloud_snapshots.py                                           36      0   100%
src\falconpy\configuration_assessment.py                                  14      0   100%
src\falconpy\configuration_assessment_evaluation_logic.py                 10      0   100%
src\falconpy\container_alerts.py                                          18      0   100%
src\falconpy\container_detections.py                                      34      0   100%
src\falconpy\container_image_compliance.py                                51      0   100%
src\falconpy\container_images.py                                          60      0   100%
src\falconpy\container_packages.py                                        34      0   100%
src\falconpy\container_vulnerabilities.py                                 47      0   100%
src\falconpy\content_update_policies.py                                   59      0   100%
src\falconpy\correlation_rules.py                                         79      0   100%
src\falconpy\cspm_registration.py                                        221      0   100%
src\falconpy\custom_ioa.py                                                92      0   100%
src\falconpy\custom_storage.py                                           194      0   100%
src\falconpy\d4c_registration.py                                         123      0   100%
src\falconpy\delivery_settings.py                                         16      0   100%
src\falconpy\deployments.py                                               38      0   100%
src\falconpy\device_content.py                                            14      0   100%
src\falconpy\device_control_policies.py                                  110      0   100%
src\falconpy\discover.py                                                  48     13    73%
src\falconpy\downloads.py                                                 14      0   100%
src\falconpy\drift_indicators.py                                          26      0   100%
src\falconpy\event_streams.py                                             21      1    95%
src\falconpy\exposure_management.py                                       64      0   100%
src\falconpy\faas_execution.py                                            10      0   100%
src\falconpy\falcon_complete_dashboard.py                                117      0   100%
src\falconpy\falcon_container.py                                          85      0   100%
src\falconpy\falconx_sandbox.py                                           98      0   100%
src\falconpy\fdr.py                                                       25      0   100%
src\falconpy\filevantage.py                                              160      0   100%
src\falconpy\firewall_management.py                                      140      0   100%
src\falconpy\firewall_policies.py                                         72      0   100%
src\falconpy\foundry_logscale.py                                         105      0   100%
src\falconpy\host_group.py                                                62      3    95%
src\falconpy\host_migration.py                                            89      0   100%
src\falconpy\hosts.py                                                    122     28    77%
src\falconpy\identity_protection.py                                       52      0   100%
src\falconpy\image_assessment_policies.py                                 64      0   100%
src\falconpy\incidents.py                                                 42      0   100%
src\falconpy\installation_tokens.py                                       44      0   100%
src\falconpy\intel.py                                                    116      0   100%
src\falconpy\intelligence_feeds.py                                        18      0   100%
src\falconpy\intelligence_indicator_graph.py                              24      0   100%
src\falconpy\ioa_exclusions.py                                            34      0   100%
src\falconpy\ioc.py                                                       95      0   100%
src\falconpy\iocs.py                                                      41      0   100%
src\falconpy\it_automation.py                                            188      0   100%
src\falconpy\kubernetes_container_compliance.py                           47      0   100%
src\falconpy\kubernetes_protection.py                                    267      0   100%
src\falconpy\malquery.py                                                  52      0   100%
src\falconpy\message_center.py                                            79      0   100%
src\falconpy\ml_exclusions.py                                             36      0   100%
src\falconpy\mobile_enrollment.py                                         20      0   100%
src\falconpy\mssp.py                                                     175      0   100%
src\falconpy\ngsiem.py                                                   102      9    91%
src\falconpy\oauth2.py                                                    32      1    97%
src\falconpy\ods.py                                                       75      0   100%
src\falconpy\overwatch_dashboard.py                                       32      0   100%
src\falconpy\prevention_policy.py                                         63      0   100%
src\falconpy\quarantine.py                                                47      0   100%
src\falconpy\quick_scan.py                                                28      0   100%
src\falconpy\quick_scan_pro.py                                            46      0   100%
src\falconpy\real_time_response.py                                       129      0   100%
src\falconpy\real_time_response_admin.py                                  88     23    74%
src\falconpy\real_time_response_audit.py                                  11      0   100%
src\falconpy\recon.py                                                    130      0   100%
src\falconpy\report_executions.py                                         25      0   100%
src\falconpy\response_policies.py                                         62      0   100%
src\falconpy\sample_uploads.py                                            94      0   100%
src\falconpy\scheduled_reports.py                                         21      0   100%
src\falconpy\sensor_download.py                                           57     16    72%
src\falconpy\sensor_update_policy.py                                     111      2    98%
src\falconpy\sensor_usage.py                                              10      0   100%
src\falconpy\sensor_visibility_exclusions.py                              32      0   100%
src\falconpy\serverless_vulnerabilities.py                                10      0   100%
src\falconpy\spotlight_evaluation_logic.py                                24      0   100%
src\falconpy\spotlight_vulnerabilities.py                                 32      0   100%
src\falconpy\tailored_intelligence.py                                     42      0   100%
src\falconpy\threatgraph.py                                               30      0   100%
src\falconpy\unidentified_containers.py                                   18      0   100%
src\falconpy\user_management.py                                          148      0   100%
src\falconpy\workflows.py                                                114      0   100%
src\falconpy\zero_trust_assessment.py                                     24      0   100%
------------------------------------------------------------------------------------------
TOTAL                                                                  11255    289    97%

Bandit analysis

Run started:2025-08-01 19:52:37.746663

Test results:
        No issues identified.

Code scanned:
        Total lines of code: 98336
        Total lines skipped (#nosec): 0

Run metrics:
        Total issues (by severity):
                Undefined: 0
                Low: 0
                Medium: 0
                High: 0
        Total issues (by confidence):
                Undefined: 0
                Low: 0
                Medium: 0
                High: 0
Files skipped (0):

Issues resolved

  • Fixes the incorrect formatting of the action field in the perform_action method which caused 400 errors.

Other

  • Updated perform_action to assign the action value as a dictionary instead of a single-item list containing a dictionary.

@jshcodes jshcodes changed the base branch from main to dev August 2, 2025 00:41
Copy link
Member

@jshcodes jshcodes left a comment

Choose a reason for hiding this comment

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

Thank you for your contribution! 🙇

@jshcodes
Copy link
Member

jshcodes commented Aug 2, 2025

Merging for testing within the dev branch.

@jshcodes jshcodes merged commit ef7c1c8 into CrowdStrike:dev Aug 2, 2025
7 of 15 checks passed
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