diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index f40ad3c..2a4d20a 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -104,7 +104,12 @@ jobs: with: app_path: build/package included_tags: ${{ matrix.tags }} - + - name: upload-manual-check-appinspect + uses: actions/upload-artifact@v4 + if: always() + with: + name: appinspect-api-html-report-${{ matrix.tags }} + path: appinspect_result.json psa-test: runs-on: ubuntu-22.04 needs: diff --git a/additional_packaging.py b/additional_packaging.py index 6daf140..30a7696 100644 --- a/additional_packaging.py +++ b/additional_packaging.py @@ -1,5 +1,6 @@ import os from os import path +import shutil def additional_packaging(addon_name: str) -> None: @@ -16,3 +17,8 @@ def additional_packaging(addon_name: str) -> None: return_code = os.system(build_ui_script) if return_code != 0: os._exit(os.WEXITSTATUS(return_code)) + + lib_dir = f"output/{addon_name}/appserver/static/js/lib" + print(f"Removing {lib_dir}", path.exists(lib_dir), path.isdir(lib_dir)) + if path.exists(lib_dir) and path.isdir(lib_dir): + shutil.rmtree(lib_dir) diff --git a/appinspect_result.json b/appinspect_result.json new file mode 100644 index 0000000..8148d76 --- /dev/null +++ b/appinspect_result.json @@ -0,0 +1 @@ +{"request_id": null, "reports": [{"app_author": "Splunk Inc.", "app_description": "Splunk Add-on for Example", "app_hash": "a8052f278efb7f848a9b19bb3ebde197", "app_name": "Splunk Add-on for Example", "app_version": "0.0.1+f8c77e2", "app_package_id": "Splunk_TA_Example", "metrics": {"start_time": "2025-05-20T12:00:06.889137", "end_time": "2025-05-20T12:01:56.501628", "execution_time": 109.612491}, "run_parameters": {"included_tags": ["cloud"], "excluded_tags": [], "appinspect_version": "2.37.0"}, "groups": [{"checks": [{"description": "Check that the extracted Splunk App contains a default/app.conf\n file.", "messages": [], "name": "check_that_extracted_splunk_app_contains_default_app_conf_file", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the extracted Splunk App does not contain any files\n with incorrect permissions. Files must have the owner's\n permissions include read and write (600).", "messages": [], "name": "check_that_extracted_splunk_app_does_not_contain_files_with_invalid_permissions", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the extracted Splunk App does not contain any directories\n with incorrect permissions. Directories and sub directories\n must have the owner's permissions set to r/w/x (700).", "messages": [], "name": "check_that_extracted_splunk_app_does_not_contain_invalid_directories", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the extracted Splunk App does not contain any directories or\n files that start with a ., or directories that start with __MACOSX.", "messages": [], "name": "check_that_extracted_splunk_app_does_not_contain_prohibited_directories_or_files", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk App package does not contain any non-app files.\n Files within a valid app folder or valid dependencies within a .dependencies\n folder are permitted, all other files are not.", "messages": [], "name": "check_that_splunk_app_package_does_not_contain_files_outside_of_app", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the compressed artifact extracts to a directory that does not\n start with a . character.", "messages": [], "name": "check_that_splunk_app_package_extracts_to_visible_directory", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk app provided does not contain incorrect permissions.\n Packages must have have the owner's read permission set to r (400).", "messages": [], "name": "check_that_splunk_app_package_has_read_permission", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk App package contains only valid dependencies.\n Dependencies are valid if a .dependencies directory contains only valid\n app packages inside.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_packaging_standards.py", "line": 318, "message": "No ../.dependencies folder found. Please check that the Splunk App package contains only valid dependencies.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_that_splunk_app_package_has_valid_static_dependencies", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the Splunk app provided does not start with a .\n character.", "messages": [], "name": "check_that_splunk_app_package_name_does_not_start_with_period", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk app provided a valid compressed file.", "messages": [], "name": "check_that_splunk_app_package_valid_compressed_file", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk App package with a .dependencies directory also\n contains exactly one valid app folder.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_packaging_standards.py", "line": 226, "message": "No ../.dependencies folder found. Please add a .dependencies directory with an valid app folder.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_that_splunk_app_package_with_static_dependencies_has_exactly_one_app_folder", "tags": ["splunk_appinspect", "appapproval", "cloud", "packaging_standards", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the extracted Splunk App contains a default/app.conf file that contains an [id] or [launcher] stanza with a version property that is formatted as Major.Minor.Revision.", "messages": [], "name": "check_valid_version_number", "tags": ["splunk_appinspect", "appapproval", "cloud", "self-service", "private_app", "private_victoria", "migration_victoria"], "result": "success"}, {"description": "Check that the app does not use Adobe Flash files.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_packaging_standards.py", "line": 664, "message": "Didn't find any flash files.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_requires_adobe_flash", "tags": ["splunk_appinspect", "cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "not_applicable"}, {"description": "Check that the extracted Splunk App does not contains only app.conf", "messages": [], "name": "check_that_extracted_splunk_app_does_not_contains_only_app_conf_file", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the Splunk App package with a .dependencies directory also\n contains an app folder with an app.manifest.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_packaging_standards.py", "line": 275, "message": "No ../.dependencies folder found. Please add a .dependencies directory that contains an app folder with an app.manifest.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_that_splunk_app_package_with_static_dependencies_has_app_manifest", "tags": ["splunk_appinspect", "appapproval", "cloud", "self-service", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}], "description": "Splunk app packaging standards\nThese checks validate that a Splunk app has been correctly packaged, and can be provided safely for package validation.", "name": "check_packaging_standards"}, {"checks": [{"description": "Check that saml-* stanzas in authentication.conf do not turn off signedAssertion property.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authentication.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_saml_auth_should_not_turn_off_signed_assertion", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that all the scripted authentications defined in authentication.conf are explicitly set the python.version to python3.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authentication.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_scripted_authentication_has_valid_python_version_property", "tags": ["splunk_appinspect", "cloud", "python3_version", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}], "description": "Authentication.conf file standards\nEnsure that bindDNpassword is not specified. For more, see authentication.conf.", "name": "check_authentication_configuration_file"}, {"checks": [{"description": "Check that authorize.conf does not contain any modified capabilities.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authorize.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_authorize_conf_capability_not_modified", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}], "description": "Authorize.conf file standards\nEnsure that the authorize configuration file located in the /default folder is well formed and valid. For more, see authorize.conf.", "name": "check_authorize_configuration_file"}, {"checks": [{"description": "Checks that binaries that are distributed to the IDX tier of a distributed Splunk platform deployment are compatible with aarch64.", "messages": [], "name": "check_idx_binary_compatibility", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}], "description": "Binary file standards", "name": "check_binary_files"}, {"checks": [{"description": "Check that commands referenced in the alert.execute.cmd property of all alert actions are checked for compliance with Splunk Cloud security policy. Prevent alert_actions.conf from being used to execute malicious commands.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "alert_actions.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_alert_actions_conf_for_alert_execute_cmd_properties", "tags": ["cloud", "manual"], "result": "not_applicable"}, {"description": "Check that authorize.conf does not grant excessive administrative permissions to the user. Prevent roles from gaining unauthorized permissions.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authorize.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_authorize_conf_admin_all_objects_privileges", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that directories under data/ui contain only allowed files. Ensure unnecessary, unwanted files are not bundled in the app inappropriately.", "messages": [], "name": "check_default_data_ui_file_allow_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that directories under data/ui contain only allowed files. Identify for manual review items that might cause passwords to be stored in plaintext.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "data/ui/manager does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_default_data_ui_manager_for_plain_text_credentials", "tags": ["cloud", "manual"], "result": "not_applicable"}, {"description": "Check if concerningReplicatedFileSize in distsearch.conf is larger than 50 MB.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "distsearch.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_distsearch_conf_for_concerning_replicated_file_size", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that indexes defined in indexes.conf use relative paths starting with $SPLUNK_DB", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "indexes.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_indexes_conf_only_uses_splunk_db_variable", "tags": ["cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "not_applicable"}, {"description": "Check that batch input has required attributes.\n The following key/value pairs are required for batch inputs:\n move_policy = sinkhole", "messages": [], "name": "check_inputs_conf_batch_has_required_attributes", "tags": ["cloud", "splunk_appinspect", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "success"}, {"description": "Check that batch input accesses files in a permitted way.\nTo be permissible, the batch input must meet the following criteria:\n 1) The file path needs to match a file in the directory \"$SPLUNK_HOME/var/spool/splunk/\"\n 2) The file name needs to be application specific \"$SPLUNK_HOME/etc/apps/\"\n 3) The file name should not end with \"stash\" or \"stash_new\"", "messages": [], "name": "check_inputs_conf_for_batch", "tags": ["cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "success"}, {"description": "Check that lookups/ contains only approved file types (.csv, .csv.default, .csv.gz, .csv.tgz, .kmz) or files formatted as valid csv. Ensure malicious files are not passed off as lookup files.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "The `lookups` directory does not exist.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_lookups_allow_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the metadata/ directory does not contains any subdirectoriesand only contains .meta files. Ensure malicious files are not passed off as metadata files.", "messages": [], "name": "check_metadata_allow_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that python version is python3 for scripted inputs defined in inputs.conf.", "messages": [], "name": "check_scripted_inputs_python_version", "tags": ["cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "success"}, {"description": "Check that setup.xml does not exist in the app default or local folders.", "messages": [], "name": "check_setup_xml", "tags": ["cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "success"}, {"description": "Check that only role-mapping stanza is allowed in authenticaiton.conf as long as it doesn't map users to a cloud-internal role.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authentication.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_stanza_of_authentication_conf", "tags": ["cloud", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "not_applicable"}, {"description": "Check that the static/ directory does not contains any subdirectoriesand contains only known file types.Ensure malicious files are not passed off as metadata files.", "messages": [], "name": "check_static_directory_file_allow_list", "tags": ["cloud", "manual"], "result": "success"}, {"description": "Check that the app does not create audit.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "audit.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_audit_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that authorize.conf does not contain a [tokens_auth] stanza", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "authorize.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_for_disallowed_tokens_auth_in_authorize_conf", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create bookmarks.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "bookmarks.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_bookmarks_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that custom search commands have an executable or script per\n stanza.", "messages": [{"code": "reporter.not_applicable(\"No `commands.conf` file exists.\")", "filename": "check_cloud_simple_app.py", "line": 451, "message": "No `commands.conf` file exists.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_command_scripts_exist_for_cloud", "tags": ["cloud", "manual"], "result": "not_applicable"}, {"description": "Check that the app does not create datatypesbnf.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "datatypesbnf.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_datatypesbnf_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create default-mode.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "default-mode.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_default_mode_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create deploymentclient.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "deploymentclient.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_deploymentclient_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create deployment.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "deployment.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_deployment_conf_deny_list", "tags": ["splunk_appinspect", "splunk_5_0", "removed_feature", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that all executable binary files have matching source code. For any binary files, there\n should be a source code provided with the same name. Or, there should be a decalaration of what the\n binary file is all about in the app's REAMDE. Details for passing this check will be returned if you fail\n it.", "messages": [{"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check VERSION (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: VERSION", "result": "manual_check", "message_filename": "VERSION", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check app.manifest (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: app.manifest", "result": "manual_check", "message_filename": "app.manifest", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check README.txt (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: README.txt", "result": "manual_check", "message_filename": "README.txt", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check LICENSE.txt (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: LICENSE.txt", "result": "manual_check", "message_filename": "LICENSE.txt", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/splunk_ta_example_settings.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/splunk_ta_example_settings.conf", "result": "manual_check", "message_filename": "default/splunk_ta_example_settings.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/eventtypes.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/eventtypes.conf", "result": "manual_check", "message_filename": "default/eventtypes.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/server.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/server.conf", "result": "manual_check", "message_filename": "default/server.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/app.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/app.conf", "result": "manual_check", "message_filename": "default/app.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/collections.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/collections.conf", "result": "manual_check", "message_filename": "default/collections.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/restmap.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/restmap.conf", "result": "manual_check", "message_filename": "default/restmap.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/tags.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/tags.conf", "result": "manual_check", "message_filename": "default/tags.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/props.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/props.conf", "result": "manual_check", "message_filename": "default/props.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/inputs.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/inputs.conf", "result": "manual_check", "message_filename": "default/inputs.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/transforms.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/transforms.conf", "result": "manual_check", "message_filename": "default/transforms.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/web.conf (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/web.conf", "result": "manual_check", "message_filename": "default/web.conf", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/data/ui/nav/default.xml (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/data/ui/nav/default.xml", "result": "manual_check", "message_filename": "default/data/ui/nav/default.xml", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/data/ui/views/dashboard.xml (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/data/ui/views/dashboard.xml", "result": "manual_check", "message_filename": "default/data/ui/views/dashboard.xml", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/data/ui/views/inputs.xml (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/data/ui/views/inputs.xml", "result": "manual_check", "message_filename": "default/data/ui/views/inputs.xml", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check default/data/ui/views/configuration.xml (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: default/data/ui/views/configuration.xml", "result": "manual_check", "message_filename": "default/data/ui/views/configuration.xml", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check README/splunk_ta_example_account.conf.spec (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: README/splunk_ta_example_account.conf.spec", "result": "manual_check", "message_filename": "README/splunk_ta_example_account.conf.spec", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check README/splunk_ta_example_settings.conf.spec (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: README/splunk_ta_example_settings.conf.spec", "result": "manual_check", "message_filename": "README/splunk_ta_example_settings.conf.spec", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check README/inputs.conf.spec (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: README/inputs.conf.spec", "result": "manual_check", "message_filename": "README/inputs.conf.spec", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check static/appIcon.png (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: static/appIcon.png", "result": "manual_check", "message_filename": "static/appIcon.png", "message_line": null}, {"code": "current_file_relative_path,", "filename": "check_cloud_simple_app.py", "line": 1848, "message": "Please manually check static/appIcon_2x.png (N/A N/A N/A) Note if you are using macOS, you might need to \"brew install libmagic\". File: static/appIcon_2x.png", "result": "manual_check", "message_filename": "static/appIcon_2x.png", "message_line": null}, {"code": "for report_record in reporter.report_records(max_records=max_messages)", "filename": "validation_report_json_formatter.py", "line": 76, "message": "Suppressed 84 manual_check messages", "result": "warning", "message_filename": null, "message_line": null}], "name": "check_for_binary_files_without_source_code", "tags": ["splunk_appinspect", "manual", "cloud"], "result": "manual_check"}, {"description": "Check that indexes.conf does not declare volumes.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "indexes.conf.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_for_index_volume_usage", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that default/inputs.conf or local/inputs.conf does not contain any fifo:// stanzas.", "messages": [], "name": "check_for_inputs_fifo_usage", "tags": ["cloud", "inputs_conf", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check whether the app contains java files. Java files will be inspected\n for compliance with Splunk Cloud security policy.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_cloud_simple_app.py", "line": 2046, "message": "No java files found in app.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_for_java", "tags": ["cloud", "manual", "java"], "result": "not_applicable"}, {"description": "Check if the app contains Perl scripts. Perl scripts will be inspected\n for compliance with Splunk Cloud security policy.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_cloud_simple_app.py", "line": 2029, "message": "No Perl scripts found in app.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_for_perl", "tags": ["cloud", "manual"], "result": "not_applicable"}, {"description": "Check whether the app contains shell files. Shell files will be manually inspected\n for compliance with Splunk Cloud security policy.", "messages": [{"code": "self.fun(*args)", "filename": "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/splunk_appinspect/checks.py", "line": 770, "message": "module 'magic' has no attribute 'from_file'", "result": "error", "message_filename": null, "message_line": null}], "name": "check_for_shell", "tags": ["cloud", "future"], "result": "error"}, {"description": "Check that the app does not create health.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "health.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_health_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that default/inputs.conf or local/inputs.conf does not contain any fschange:// stanzas.", "messages": [], "name": "check_inputs_conf_for_fschange", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that inputs.conf does not contain a [http] stanza", "messages": [], "name": "check_inputs_conf_for_http_global_usage", "tags": ["cloud", "inputs_conf", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Apps cannot ship a configured HEC token in inputs.conf. HEC tokens must be created by stack admins via ACS. Refer: https://docs.splunk.com/Documentation/Splunk/9.1.0/Data/UsetheHTTPEventCollectorRemove [http://] stanza from inputs.conf.", "messages": [], "name": "check_inputs_conf_for_http_inputs", "tags": ["cloud", "inputs_conf", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that inputs.conf does not have any remote_queue inputs.", "messages": [], "name": "check_inputs_conf_for_remote_queue_monitor", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that default/inputs.conf or local/inputs.conf does not contain any splunktcp:// stanzas.", "messages": [], "name": "check_inputs_conf_for_splunk_tcp", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that inputs.conf does not contain a splunktcptoken stanza.", "messages": [], "name": "check_inputs_conf_for_splunktcptoken", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that inputs.conf does not have any SSL inputs.", "messages": [], "name": "check_inputs_conf_for_ssl", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that default/inputs.conf or local/inputs.conf does not contain any tcp:// stanzas.", "messages": [], "name": "check_inputs_conf_for_tcp", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that inputs.conf does not have any UDP inputs.", "messages": [], "name": "check_inputs_conf_for_udp", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the app does not create instance.cfg.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "instance.cfg.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_instance_cfg_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create crawl.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "crawl.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_introspection_of_cloud_filesystem", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that Splunk SDK for Java is up-to-date.", "messages": [], "name": "check_java_sdk_version", "tags": ["cloud", "private_app", "future", "java", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the app does not create literals.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "literals.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_literals_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create messages.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "messages.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_messages_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that there is a script file in bin/ for each modular input\n defined in README/inputs.conf.spec.", "messages": [], "name": "check_modular_inputs_scripts_exist_for_cloud", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that the app does not create passwords.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "passwords.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_passwords_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create pubsub.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "pubsub.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_pubsub_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check the cmd path pattern of scripted input defined in inputs.conf.", "messages": [{"code": "reporter.not_applicable(reporter_output)", "filename": "check_cloud_simple_app.py", "line": 970, "message": "The scripted input does not exist in inputs.conf.", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_scripted_inputs_cmd_path_pattern", "tags": ["cloud", "manual"], "result": "not_applicable"}, {"description": "Check that app does not contain segmenters.conf with Splunk-defined stanza.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "segmenters.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_segmenters_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create serverclass.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "serverclass.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_serverclass_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create serverclass.seed.xml.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "serverclass.seed.xml.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_serverclass_seed_xml_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create source-classifier.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "source-classifier.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_source_classifier_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create sourcetypes.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "sourcetypes.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_sourcetypes_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create splunk-launch.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "splunk-launch.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_splunk_launch_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create telemetry.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "telemetry.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_telemetry_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "telemetry", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app contains MS Windows specific components, which will not\n function correctly in Splunk Cloud whose OS should be Linux x64.", "messages": [], "name": "check_that_app_contains_any_windows_specific_components", "tags": ["cloud", "manual"], "result": "success"}, {"description": "Check that the app does not contain configurations of default source type in props.conf, which will overwrite the configurations in system/default/props.conf and may affect other apps.", "messages": [], "name": "check_that_no_configurations_of_default_source_type_in_props_conf", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that transforms.conf does not contain any transforms with malicious\n command scripts specified by external_cmd= attribute, or does not contain\n a scripted lookup with python2 only script.", "messages": [], "name": "check_transforms_conf_for_external_cmd", "tags": ["cloud", "python_version", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "success"}, {"description": "Check that transforms.conf does not contain any transforms with non-python malicious\n command scripts specified by external_cmd= attribute.", "messages": [], "name": "check_transforms_conf_for_external_cmd_cloud", "tags": ["cloud", "manual", "python_version"], "result": "success"}, {"description": "Check that the app does not create user-seed.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "user-seed.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_user_seed_conf_deny_list", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create wmi.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "wmi.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_wmi_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create workload_pools.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "workload_pools.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_workload_pools_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}, {"description": "Check that the app does not create workload_rules.", "messages": [{"code": "self.result = \"not_applicable\"", "filename": "check_messages.py", "line": 91, "message": "workload_rules.conf does not exist", "result": "not_applicable", "message_filename": null, "message_line": null}], "name": "check_workload_rules_conf_deny_list", "tags": ["cloud", "private_app", "private_victoria", "migration_victoria", "private_classic"], "result": "not_applicable"}], "description": "Cloud operations simple application check\nThis group serves to help validate simple applications in an effort to try and automate the validation process for cloud operations.", "name": "check_cloud_simple_app"}, {"checks": [{"description": "Check that @splunk/dashboard-core is being used.", "messages": [{"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 190, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize the Unified Dashboard Framework (UDF). Please ignore this warning as it has no impact to your Splunk app. Match: @splunk/dashboard-layouts File: appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js Line Number: 3699", "result": "warning", "message_filename": "appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js", "message_line": 3699}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 190, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize the Unified Dashboard Framework (UDF). Please ignore this warning as it has no impact to your Splunk app. Match: @splunk/dashboard-layouts File: appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js Line Number: 4379", "result": "warning", "message_filename": "appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js", "message_line": 4379}], "name": "check_for_splunkdashboardcore", "tags": ["splunk_appinspect", "cloud", "self-service", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "warning"}, {"description": "check_for_splunkfrontendutilitycomponents", "messages": [{"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 124, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize Splunk UI utility components. Please ignore this warning as it has no impact to your Splunk app. Match: @splunk/moment File: appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js Line Number: 574", "result": "warning", "message_filename": "appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js", "message_line": 574}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 124, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize Splunk UI utility components. Please ignore this warning as it has no impact to your Splunk app. Match: @splunk/moment File: appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js Line Number: 5067", "result": "warning", "message_filename": "appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js", "message_line": 5067}], "name": "check_for_splunkfrontendutilitycomponents", "tags": ["splunk_appinspect", "cloud", "self-service", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "warning"}, {"description": "Check that SplunkJS is being used.", "messages": [{"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 60, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize SplunkJS. Please ignore this warning as it has no impact to your Splunk app. Match: splunkjs/mvc File: appserver/static/js/build/entry_page.js Line Number: 220", "result": "warning", "message_filename": "appserver/static/js/build/entry_page.js", "message_line": 220}], "name": "check_for_splunkjs", "tags": ["splunk_appinspect", "cloud", "self-service", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "warning"}, {"description": "Check that SUI is being used.", "messages": [{"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_frontend_libraries.py", "line": 92, "message": "Splunk has begun gathering telemetry on apps submitted to appinspect, that utilize Splunk UI. Please ignore this warning as it has no impact to your Splunk app. Match: @splunk/react-icons File: appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js Line Number: 6766", "result": "warning", "message_filename": "appserver/static/js/build/DashboardPage-DV6J4jot-9Wx7oFQZ.js", "message_line": 6766}], "name": "check_for_splunksui", "tags": ["splunk_appinspect", "cloud", "self-service", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "warning"}, {"description": "Check that @splunk/visualizations is being used.", "messages": [], "name": "check_for_splunkvisualizations", "tags": ["splunk_appinspect", "cloud", "self-service", "private_app", "private_classic", "private_victoria", "migration_victoria"], "result": "success"}], "description": "Checking for Front-end Libraries\nThis check looks for various front-end libraries inside of apps. \nAs of 03/23/2022, we are looking at Splunk UI and it's predecessor, SplunkJS. \nThis is currently an INFORMATIONAL Check. \nUpdated on 04/17/2023\nThis check now is expanded to look for several other critical front-end libraries. \n1. We have expanded the regex matching to be more inline with all of the UDF Packages https://splunkui.splunk.com/Packages/dashboard-docs/?path=%2FFAQ\n2. We have added a few other critical packages (@splunk/react-search, @splunk/react-time-range, @splunk/search-job, @splunk/ui-utils, @splunk/splunk-utils, @splunk/moment)\n3. We have expanded the regex matching to be more inline with more of the Visualizations packages. ", "name": "check_frontend_libraries"}, {"checks": [{"description": "Check no git merge conflict is present", "messages": [{"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/urllib3-1.26.20.dist-info/METADATA Line Number: 158", "result": "warning", "message_filename": "lib/urllib3-1.26.20.dist-info/METADATA", "message_line": 158}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 30", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 30}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 32", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 32}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 65", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 65}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 98", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 98}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 233", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 233}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 297", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 297}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 423", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 423}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 506", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 506}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 527", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 527}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 678", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 678}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 690", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 690}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 774", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 774}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 784", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 784}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 813", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 813}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/defusedxml-0.7.1.dist-info/METADATA Line Number: 840", "result": "warning", "message_filename": "lib/defusedxml-0.7.1.dist-info/METADATA", "message_line": 840}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/PySocks-1.7.1.dist-info/METADATA Line Number: 21", "result": "warning", "message_filename": "lib/PySocks-1.7.1.dist-info/METADATA", "message_line": 21}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/PySocks-1.7.1.dist-info/METADATA Line Number: 30", "result": "warning", "message_filename": "lib/PySocks-1.7.1.dist-info/METADATA", "message_line": 30}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/PySocks-1.7.1.dist-info/METADATA Line Number: 39", "result": "warning", "message_filename": "lib/PySocks-1.7.1.dist-info/METADATA", "message_line": 39}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/sortedcontainers-2.4.0.dist-info/METADATA Line Number: 28", "result": "warning", "message_filename": "lib/sortedcontainers-2.4.0.dist-info/METADATA", "message_line": 28}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/packaging-25.0.dist-info/METADATA Line Number: 31", "result": "warning", "message_filename": "lib/packaging-25.0.dist-info/METADATA", "message_line": 31}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/deprecation-2.1.0.dist-info/METADATA Line Number: 31", "result": "warning", "message_filename": "lib/deprecation-2.1.0.dist-info/METADATA", "message_line": 31}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/deprecation-2.1.0.dist-info/METADATA Line Number: 62", "result": "warning", "message_filename": "lib/deprecation-2.1.0.dist-info/METADATA", "message_line": 62}, {"code": "reporter.warn(reporter_output, file_path, lineno)", "filename": "check_git_conflict_file.py", "line": 36, "message": "The following line will be inspected during code review. A possible git merge conflict found. Match: ======= File: lib/deprecation-2.1.0.dist-info/METADATA Line Number: 83", "result": "warning", "message_filename": "lib/deprecation-2.1.0.dist-info/METADATA", "message_line": 83}], "name": "check_for_git_merge_conflict_in_app", "tags": ["splunk_appinspect", "cloud", "private_app", "private_victoria", "private_classic", "migration_victoria"], "result": "warning"}], "description": "Check for git conflict releated issue", "name": "check_git_conflict_file"}, {"checks": [{"description": "Check if any sensitive data leakage in console log", "messages": [], "name": "check_for_console_log_injection_in_javascript", "tags": ["splunk_appinspect", "cloud", "manual"], "result": "success"}, {"description": "Check if the app contains possible iframe in JavaScript files, templates or html pages.", "messages": [{"code": "reporter.manual_check(reporter_output, file_path, lineno)", "filename": "check_javascript_files.py", "line": 84, "message": "The following line will be inspected during code review. Match: