diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 6f15b22..131c639 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,7 +1,7 @@ name: Linting on: [push, pull_request] jobs: - lint: + lint: # Run per push for internal contributers. This isn't possible for forked pull requests, # so we'll need to run on PR events for external contributers. # String comparison below is case insensitive. diff --git a/.github/workflows/semgrep.yml b/.github/workflows/semgrep.yml index 23d31c5..712cc1b 100644 --- a/.github/workflows/semgrep.yml +++ b/.github/workflows/semgrep.yml @@ -1,5 +1,5 @@ name: Semgrep -on: +on: pull_request_target: branches: - next @@ -21,8 +21,8 @@ jobs: echo "REPOSITORY=${{ github.event.pull_request.head.repo.full_name }}" >> $GITHUB_ENV echo "REF=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV - uses: 'phantomcyber/dev-cicd-tools/github-actions/semgrep@main' - with: + with: SEMGREP_DEPLOYMENT_ID: ${{ secrets.SEMGREP_DEPLOYMENT_ID }} SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} - REPOSITORY: ${{ github.repository }} + REPOSITORY: ${{ github.repository }} REF: ${{ github.ref }} diff --git a/.github/workflows/start-release.yml b/.github/workflows/start-release.yml index d5fb354..7bbce79 100644 --- a/.github/workflows/start-release.yml +++ b/.github/workflows/start-release.yml @@ -1,9 +1,13 @@ name: Start Release -on: workflow_dispatch +on: + workflow_dispatch: + push: + tags: + - '*-beta*' jobs: start-release: runs-on: ubuntu-latest steps: - uses: 'phantomcyber/dev-cicd-tools/github-actions/start-release@main' with: - GITHUB_TOKEN: ${{ secrets.SOAR_APPS_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.SOAR_APPS_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1d556d4..a5c9061 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/phantomcyber/dev-cicd-tools - rev: v1.4 + rev: v1.11 hooks: - id: org-hook - id: package-app-dependencies diff --git a/LICENSE b/LICENSE index f003b93..4e99011 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2021 Splunk Inc. + Copyright (c) 2020-2022 Splunk Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/NOTICE b/NOTICE index 2f90e3c..93b7c0e 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ Splunk SOAR Chronicle -Copyright (c) 2020-2021 Splunk Inc. +Copyright (c) 2020-2022 Splunk Inc. Third-party Software Attributions: diff --git a/readme.md b/README.md similarity index 99% rename from readme.md rename to README.md index b77caef..71824e9 100644 --- a/readme.md +++ b/README.md @@ -2,17 +2,17 @@ # Chronicle Publisher: Splunk -Connector Version: 2\.2\.5 +Connector Version: 2\.2\.6 Product Vendor: Google Cloud Product Name: Chronicle Product Version Supported (regex): "\.\*" -Minimum Product Version: 5\.0\.0 +Minimum Product Version: 5\.1\.0 This app enables the end\-user to search, analyze, and ingest the enterprise security data stored in the Chronicle using investigative, reputation, and ingestion actions -[comment]: # " File: readme.md" +[comment]: # " File: README.md" [comment]: # "" -[comment]: # " Copyright (c) 2020-2021 Splunk Inc., Google LLC." +[comment]: # " Copyright (c) 2020-2022 Splunk Inc." [comment]: # "" [comment]: # " Licensed under the Apache License, Version 2.0 (the 'License');" [comment]: # " you may not use this file except in compliance with the License." diff --git a/__init__.py b/__init__.py index f5f5ca2..d6ce21d 100644 --- a/__init__.py +++ b/__init__.py @@ -1,5 +1,5 @@ # File: __init__.py -# Copyright (c) 2020-2021 Splunk Inc., Google LLC. +# Copyright (c) 2020-2022 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/chronicle.json b/chronicle.json index 3106a40..01eaf4e 100644 --- a/chronicle.json +++ b/chronicle.json @@ -10,12 +10,12 @@ "python_version": "3", "product_version_regex": ".*", "publisher": "Splunk", - "license": "Copyright (c) 2020-2021 Splunk Inc.", - "app_version": "2.2.5", - "utctime_updated": "2021-12-27T14:26:35.000000Z", + "license": "Copyright (c) 2020-2022 Splunk Inc.", + "app_version": "2.2.6", + "utctime_updated": "2022-01-07T22:23:49.000000Z", "package_name": "phantom_chronicle", "main_module": "chronicle_connector.py", - "min_phantom_version": "5.0.0", + "min_phantom_version": "5.1.0", "fips_compliant": true, "latest_tested_versions": [ "v1.7.1" @@ -23,77 +23,113 @@ "app_wizard_version": "1.0.0", "pip_dependencies": { "wheel": [ + { + "module": "beautifulsoup4", + "input_file": "wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl" + }, + { + "module": "cachetools", + "input_file": "wheels/py3/cachetools-4.1.1-py3-none-any.whl" + }, { "module": "certifi", - "input_file": "wheels/certifi/certifi-2021.10.8-py2.py3-none-any.whl" + "input_file": "wheels/shared/certifi-2021.10.8-py2.py3-none-any.whl" }, { "module": "chardet", - "input_file": "wheels/chardet/chardet-3.0.4-py2.py3-none-any.whl" + "input_file": "wheels/shared/chardet-3.0.4-py2.py3-none-any.whl" }, { - "module": "idna", - "input_file": "wheels/idna/idna-2.10-py2.py3-none-any.whl" + "module": "google_api_core", + "input_file": "wheels/shared/google_api_core-1.21.0-py2.py3-none-any.whl" }, { - "module": "urllib3", - "input_file": "wheels/urllib3/urllib3-1.26.7-py2.py3-none-any.whl" + "module": "google_api_python_client", + "input_file": "wheels/py3/google_api_python_client-1.9.3-py3-none-any.whl" }, { - "module": "requests", - "input_file": "wheels/requests/requests-2.25.0-py2.py3-none-any.whl" + "module": "google_auth", + "input_file": "wheels/shared/google_auth-1.18.0-py2.py3-none-any.whl" }, { - "module": "soupsieve", - "input_file": "wheels/soupsieve/soupsieve-2.3.1-py3-none-any.whl" + "module": "google_auth_httplib2", + "input_file": "wheels/shared/google_auth_httplib2-0.0.3-py2.py3-none-any.whl" }, { - "module": "beautifulsoup4", - "input_file": "wheels/beautifulsoup4/beautifulsoup4-4.9.1-py3-none-any.whl" + "module": "google_auth_oauthlib", + "input_file": "wheels/shared/google_auth_oauthlib-0.4.1-py2.py3-none-any.whl" }, { - "module": "google-api-python-client", - "input_file": "wheels/google_api_python_client/google_api_python_client-1.9.3-py3-none-any.whl" + "module": "googleapis_common_protos", + "input_file": "wheels/shared/googleapis_common_protos-1.54.0-py2.py3-none-any.whl" }, { - "module": "cachetools", - "input_file": "wheels/cachetools/cachetools-4.1.1-py3-none-any.whl" + "module": "httplib2", + "input_file": "wheels/py3/httplib2-0.19.0-py3-none-any.whl" + }, + { + "module": "idna", + "input_file": "wheels/shared/idna-2.10-py2.py3-none-any.whl" + }, + { + "module": "oauth2client", + "input_file": "wheels/shared/oauth2client-4.1.3-py2.py3-none-any.whl" + }, + { + "module": "oauthlib", + "input_file": "wheels/py3/oauthlib-3.2.0-py3-none-any.whl" + }, + { + "module": "protobuf", + "input_file": "wheels/py36/protobuf-3.19.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "module": "pyasn1", - "input_file": "wheels/pyasn/pyasn1-0.4.6-py2.py3-none-any.whl" + "input_file": "wheels/shared/pyasn1-0.4.6-py2.py3-none-any.whl" }, { - "module": "pyasn1-modules", - "input_file": "wheels/pyasn_modules/pyasn1_modules-0.2.8-py2.py3-none-any.whl" + "module": "pyasn1_modules", + "input_file": "wheels/shared/pyasn1_modules-0.2.8-py2.py3-none-any.whl" }, { - "module": "rsa", - "input_file": "wheels/rsa_wheel/rsa-4.7-py3-none-any.whl" + "module": "pyparsing", + "input_file": "wheels/shared/pyparsing-2.4.7-py2.py3-none-any.whl" }, { - "module": "google-auth", - "input_file": "wheels/google_auth/google_auth-1.18.0-py2.py3-none-any.whl" + "module": "pytz", + "input_file": "wheels/shared/pytz-2021.3-py2.py3-none-any.whl" }, { - "module": "uritemplate", - "input_file": "wheels/uritemplate_wheel/uritemplate-3.0.1-py2.py3-none-any.whl" + "module": "requests", + "input_file": "wheels/shared/requests-2.25.0-py2.py3-none-any.whl" }, { - "module": "httplib2", - "input_file": "wheels/httplib2_wheel/httplib2-0.19.0-py3-none-any.whl" + "module": "requests_oauthlib", + "input_file": "wheels/shared/requests_oauthlib-1.3.1-py2.py3-none-any.whl" }, { - "module": "oauth2client", - "input_file": "wheels/oauthclient/oauth2client-4.1.3-py2.py3-none-any.whl" + "module": "rsa", + "input_file": "wheels/py3/rsa-4.7-py3-none-any.whl" + }, + { + "module": "setuptools", + "input_file": "wheels/py3/setuptools-59.6.0-py3-none-any.whl" + }, + { + "module": "six", + "input_file": "wheels/shared/six-1.16.0-py2.py3-none-any.whl" + }, + { + "module": "soupsieve", + "input_file": "wheels/py3/soupsieve-2.3.1-py3-none-any.whl" }, { - "module": "google-auth-httplib2", - "input_file": "wheels/google-auth-httplib2/google_auth_httplib2-0.0.3-py2.py3-none-any.whl" + "module": "uritemplate", + "input_file": "wheels/shared/uritemplate-3.0.1-py2.py3-none-any.whl" }, { - "module": "google-auth-oauthlib", - "input_file": "wheels/google-auth-oauthlib/google_auth_oauthlib-0.4.1-py2.py3-none-any.whl" + "module": "urllib3", + "input_file": "wheels/shared/urllib3-1.26.8-py2.py3-none-any.whl" } ] }, @@ -3023,5 +3059,117 @@ "output": [], "versions": "EQ(*)" } - ] -} \ No newline at end of file + ], + "pip39_dependencies": { + "wheel": [ + { + "module": "beautifulsoup4", + "input_file": "wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl" + }, + { + "module": "cachetools", + "input_file": "wheels/py3/cachetools-4.1.1-py3-none-any.whl" + }, + { + "module": "certifi", + "input_file": "wheels/shared/certifi-2021.10.8-py2.py3-none-any.whl" + }, + { + "module": "chardet", + "input_file": "wheels/shared/chardet-3.0.4-py2.py3-none-any.whl" + }, + { + "module": "google_api_core", + "input_file": "wheels/shared/google_api_core-1.21.0-py2.py3-none-any.whl" + }, + { + "module": "google_api_python_client", + "input_file": "wheels/py3/google_api_python_client-1.9.3-py3-none-any.whl" + }, + { + "module": "google_auth", + "input_file": "wheels/shared/google_auth-1.18.0-py2.py3-none-any.whl" + }, + { + "module": "google_auth_httplib2", + "input_file": "wheels/shared/google_auth_httplib2-0.0.3-py2.py3-none-any.whl" + }, + { + "module": "google_auth_oauthlib", + "input_file": "wheels/shared/google_auth_oauthlib-0.4.1-py2.py3-none-any.whl" + }, + { + "module": "googleapis_common_protos", + "input_file": "wheels/shared/googleapis_common_protos-1.54.0-py2.py3-none-any.whl" + }, + { + "module": "httplib2", + "input_file": "wheels/py3/httplib2-0.19.0-py3-none-any.whl" + }, + { + "module": "idna", + "input_file": "wheels/shared/idna-2.10-py2.py3-none-any.whl" + }, + { + "module": "oauth2client", + "input_file": "wheels/shared/oauth2client-4.1.3-py2.py3-none-any.whl" + }, + { + "module": "oauthlib", + "input_file": "wheels/py3/oauthlib-3.2.0-py3-none-any.whl" + }, + { + "module": "protobuf", + "input_file": "wheels/py39/protobuf-3.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "module": "pyasn1", + "input_file": "wheels/shared/pyasn1-0.4.6-py2.py3-none-any.whl" + }, + { + "module": "pyasn1_modules", + "input_file": "wheels/shared/pyasn1_modules-0.2.8-py2.py3-none-any.whl" + }, + { + "module": "pyparsing", + "input_file": "wheels/shared/pyparsing-2.4.7-py2.py3-none-any.whl" + }, + { + "module": "pytz", + "input_file": "wheels/shared/pytz-2021.3-py2.py3-none-any.whl" + }, + { + "module": "requests", + "input_file": "wheels/shared/requests-2.25.0-py2.py3-none-any.whl" + }, + { + "module": "requests_oauthlib", + "input_file": "wheels/shared/requests_oauthlib-1.3.1-py2.py3-none-any.whl" + }, + { + "module": "rsa", + "input_file": "wheels/py3/rsa-4.7-py3-none-any.whl" + }, + { + "module": "setuptools", + "input_file": "wheels/py3/setuptools-60.8.1-py3-none-any.whl" + }, + { + "module": "six", + "input_file": "wheels/shared/six-1.16.0-py2.py3-none-any.whl" + }, + { + "module": "soupsieve", + "input_file": "wheels/py3/soupsieve-2.3.1-py3-none-any.whl" + }, + { + "module": "uritemplate", + "input_file": "wheels/shared/uritemplate-3.0.1-py2.py3-none-any.whl" + }, + { + "module": "urllib3", + "input_file": "wheels/shared/urllib3-1.26.8-py2.py3-none-any.whl" + } + ] + } +} diff --git a/chronicle_connector.py b/chronicle_connector.py index bd61cbd..6a8ad30 100644 --- a/chronicle_connector.py +++ b/chronicle_connector.py @@ -1,5 +1,5 @@ # File: chronicle_connector.py -# Copyright (c) 2020-2021 Splunk Inc., Google LLC. +# Copyright (c) 2020-2022 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/chronicle_consts.py b/chronicle_consts.py index d79537d..fd0d202 100644 --- a/chronicle_consts.py +++ b/chronicle_consts.py @@ -1,5 +1,5 @@ # File: chronicle_consts.py -# Copyright (c) 2020-2021 Splunk Inc., Google LLC. +# Copyright (c) 2020-2022 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/chronicle_list_alerts.html b/chronicle_list_alerts.html index f9d4912..4c7b675 100644 --- a/chronicle_list_alerts.html +++ b/chronicle_list_alerts.html @@ -11,14 +11,14 @@