Skip to main content

Checkmarx Python SDK

Project description

Checkmarx Python SDK

This is wrapper using Python for CxSAST and CxOSA REST API, Portal SOAP API, CxSAST ODATA API, CxSCA REST API.

By using this SDK, Checkmarx users will be able to do automatic scanning with CxSAST, CxOSA, and CxSCA.

Downloads Supported Versions Contributors

Checkmarx API Official Documents

For more information about Checkmarx API, please refer to Checkmarx knowledge Center:

Notice

Please use Python3

Quick Start

Install the library

The easiest way to begin using the SDK is to install it using the pip command.

$ pip install CheckmarxPythonSDK

Alternatively, either download and unzip this repository, or clone it to your local drive, and install using the setup.py script.

$ git clone https://github.com/checkmarx-ts/checkmarx-python-sdk.git
$ python setup.py install

Even if you install the SDK using pip, you might still want to download or clone this repository for the sample scripts.

Set up configuration

Option 1, using config.ini file:

[CxSAST]
base_url = http://localhost:80
username = ******
password = ******
grant_type = password
scope = sast_rest_api
client_id = resource_owner_client
client_secret = 014DF517-39D1-4453-B7B3-9930C563627C


[CxSCA]
access_control_url = https://platform.checkmarx.net
server = https://api-sca.checkmarx.net
account = ***
username = ***
password = ***

[CxOne]
access_control_url = https://iam.checkmarx.net
server = https://ast.checkmarx.net
tenant_name  = ***
grant_type = refresh_token
client_id = ast-app
client_secret = ***
username = ***
password = ***
refresh_token = ***

[CxReporting]
base_url = http://localhost
reporting_client_url = http://localhost:5001
username = ***
password = ***
grant_type = password
scope = reporting_api
client_id = reporting_service_api
client_secret = 014DF517-39D1-4453-B7B3-9930C563627C

configuration file path:

By default, Checkmarx Python SDK looks for config.ini or config.json file in a .Checkmarx folder in your home directory.

  • For windows, it should be like C:\\Users\\<UserName>\\.Checkmarx\\config.ini
  • For linux and MacOS, it should be like /home/<UserName>/.Checkmarx/config.ini

You can also use checkmarx_config_path as environment variable or command line argument to set up configuration file path.

For CxOne configuration, if you are going to use refresh_token grant type, you must use client id "ast-app", refresh_token, ignore client_secret, username, password. If you are going to use client_credentials grant type, you must create a client with roles such as ast-scanner, manage-webhook, queries-editor, ast-viewer, manage-application, manage-project, then fill in your own client_id, client secret, username, password, ignore the refresh_token.

Option 2, using environment variables (Upper Case or Lower Case) or command line arguments

For CxSAST:

- cxsast_base_url
- cxsast_username
- cxsast_password
- cxsast_grant_type
- cxsast_scope
- cxsast_client_id
- cxsast_client_secret

For CxSCA:

- cxsca_access_control_url
- cxsca_server
- cxsca_account
- cxsca_username
- cxsca_password

For CxOne:

- cxone_access_control_url
- cxone_server
- cxone_tenant_name
- cxone_grant_type
- cxone_client_id
- cxone_client_secret
- cxone_username
- cxone_password
- cxone_refresh_token

For CxReporting

- cxreporting_base_url
- cxreporting_reporting_client_url
- cxreporting_username
- cxreporting_password
- cxreporting_grant_type
- cxreporting_scope
- cxreporting_client_id
- cxreporting_client_secret

Debug Mode

You can use command line option --cx_debug true to enable debug mode. In debug mode, it will print out how to load the configuration file and print every http request send out.

Configuration Override Sequence

When you run your program with --cx_debug command line, it will log the override sequence.

  1. Load default configuration, it will be a python dictionary
  2. Read from ~/.Checkmarx/config.ini, override value by same key
  3. Read from ~/.Checkmarx/config.json, override value by same key
  4. Read from environment variables, override value by same key
  5. Read from command line arguments, override value by same key
  6. You have the final configuration.

python-dotenv

If you are using python-dotenv, make sure your run load_dotenv("./<Your-File-Name>.env", override=True) before import any Checkmarx Python SDK function.

Connect to multiple systems at the same time

Now each API class has been refactored to accept an api_client(class ApiClient) with configuration (class Configuration). You can pass different api_client with different configuration for each API class.

CxSAST self-signed certificate

For CxSAST self-signed certificate, you can use the verify in configuration as a string, which is a path to the public key of your self-signed certificate. The public key of the self-signed certificate can be exported from browser. Please export it as a .cert or .pem file.

Examples

Please find example scripts from examples folder.

API List

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

checkmarxpythonsdk-1.5.2.tar.gz (272.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

checkmarxpythonsdk-1.5.2-py3-none-any.whl (455.3 kB view details)

Uploaded Python 3

File details

Details for the file checkmarxpythonsdk-1.5.2.tar.gz.

File metadata

  • Download URL: checkmarxpythonsdk-1.5.2.tar.gz
  • Upload date:
  • Size: 272.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for checkmarxpythonsdk-1.5.2.tar.gz
Algorithm Hash digest
SHA256 044848a7c7c22973eeb8b8ce629244ab25c4dd1ff69c8740208a8bc5aad81a55
MD5 418dff8cd872e0886d74dbf3c869f30d
BLAKE2b-256 e03de09d696581303c0ab2d6d5791c74bc4b98951a93646daed9d265d7a6b8ea

See more details on using hashes here.

File details

Details for the file checkmarxpythonsdk-1.5.2-py3-none-any.whl.

File metadata

File hashes

Hashes for checkmarxpythonsdk-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cf53d6916bbd395c42f55d6eceecf62e02dd2bd66965a8a9390fba53d655d9b4
MD5 360ada24a4567c9bff5cad8f5ff5baf2
BLAKE2b-256 ec3d5da03faa875d2ad44f8db62f39f9d65e9ad39d6e4ee5c610f8e39d4798af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page