Skip to content

Commit 75bcc62

Browse files
Merge pull request #369 from Checkmarx/feature/ASCA_realtime
Asca, IaC and Temetry changes (AST-107859)
2 parents 8abd6ae + a334d7d commit 75bcc62

File tree

104 files changed

+4835
-2707
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+4835
-2707
lines changed

README.md

Lines changed: 61 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,32 @@
77
[![Stargazers][stars-shield]][stars-url]
88
[![Issues][issues-shield]][issues-url]
99
[![Install][install-shield]][install-url]
10-
[![APACHE License][license-shield]][license-url]
10+
[![License][license-shield]][license-url]
1111

1212
</div>
1313
<br />
14-
1514
<p align="center">
16-
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin">
17-
<img src="https://raw.githubusercontent.com/Checkmarx/ci-cd-integrations/main/.images/cx_x_icon.png" alt="Logo" width="80" height="80" />
18-
</a>
19-
15+
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin">
16+
<img src="https://raw.githubusercontent.com/Checkmarx/ci-cd-integrations/main/.images/cx_x_icon.png" alt="Logo" width="80" height="80" />
17+
</a>
2018
<h3 align="center">CHECKMARX-ONE-JETBRAINS-PLUGIN</h3>
21-
2219
<p align="center">
23-
The Checkmarx One JetBrains plugin enables you to import results from a Checkmarx One scan directly into your IDE and run new scans from the IDE.
24-
<br />
25-
<a href="https://docs.checkmarx.com/en/34965-68734-installing-and-setting-up-the-checkmarx-one-jetbrains-pluging.html"><strong>Explore the docs »</strong></a>
26-
<br />
27-
<a href="https://plugins.jetbrains.com/plugin/17672-checkmarx-ast"><strong>Marketplace »</strong></a>
28-
<br />
29-
<br />
30-
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin/issues/new">Report Bug</a>
31-
·
32-
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin/issues/new">Request Feature</a>
33-
</p>
34-
35-
20+
<a href="https://docs.checkmarx.com/en/34965-68734-installing-and-setting-up-the-checkmarx-one-jetbrains-pluging.html"><strong>Explore the docs »</strong></a>
21+
<br />
22+
<a href="https://plugins.jetbrains.com/plugin/17672-checkmarx-ast"><strong>Marketplace »</strong></a>
23+
</p>
24+
</p>
25+
26+
<p align="center">
27+
The Checkmarx One JetBrains plugin enables you to import results from a Checkmarx One scan directly into your IDE and run new scans from the IDE.
28+
</p>
29+
<br />
30+
<p align="center">
31+
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin/issues/new">Report Bug</a>
32+
·
33+
<a href="https://github.com/Checkmarx/ast-jetbrains-plugin/issues/new">Request Feature</a>
34+
</p>
35+
<br>
3636

3737
<!-- TABLE OF CONTENTS -->
3838
<details>
@@ -55,70 +55,67 @@
5555

5656
# Overview
5757

58-
Checkmarx continues to spearhead the shift-left approach to AppSec by bringing our powerful AppSec tools into your IDE. This empowers developers to identify vulnerabilities and remediate them **as they code**. The Checkmarx One (AST) JetBrains plugin integrates seamlessly into your IDE, enabling you to access the full functionality of your Checkmarx One account (SAST, SCA, IaC Security) directly from your IDE.
58+
Checkmarx continues to spearhead the shift-left approach to AppSec by bringing our powerful AppSec tools into your IDE. This empowers developers to identify vulnerabilities and remediate them **as they code**. The Checkmarx One (AST) JetBrains plugin integrates seamlessly into your IDE, enabling you to access the full functionality of your Checkmarx One account (SAST, SCA, IaC Security and Secret Detection) directly from your IDE.
5959

6060
You can run new scans, or import results from scans run in your Checkmarx One account. Checkmarx provides detailed info about each vulnerability, including remediation recommendations and examples of effective remediation. The plugin enables you to navigate from a vulnerability to the relevant source code, so that you can easily zero-in on the problematic code and start working on remediation.
6161

62-
This plugin provides easy integration with JetBrains and is compatible with all JetBrains IDE products (e.g., IntelliJ IDEA, PyCharm, WebStorm etc.).
63-
64-
## Key Features
65-
66-
- Access the full power of Checkmarx One (SAST, SCA, IaC Security, API Security, Container Security) directly from your IDE.
67-
68-
- Run a new scan from your IDE even before committing the code, or import scan results from your Checkmarx One account.
69-
70-
- Rescan an existing branch from your IDE or create a new branch in Checkmarx One for the local branch in your workspace.
62+
This extension also includes **​Checkmarx One Developer Assist**, an agentic AI tool that delivers real-time context-aware prevention, remediation, and guidance to developers inside the IDE.
7163

72-
- Provides actionable results including remediation recommendations. Navigate from results panel directly to the highlighted vulnerable code in the editor and get right down to work on the remediation.
64+
> This plugin provides easy integration with JetBrains IDEs. It is officially supported for IntelliJ IDEA. It may work effectively for other JetBrains IDEs such as Rider, WebStorm, RubyMine, PyCharm, MPS, etc. However, Checkmarx does not guarantee full functionality and stability for these IDEs.
7365
74-
- Group and filter results.
66+
**GIF - Triaging Results in the IDE**
67+
![Triaging Results in the IDE](https://raw.githubusercontent.com/Checkmarx/ci-cd-integrations/main/.images/JetBrains_Triaging_Results.gif "Triaging Results in the IDE")
7568

76-
- Triage results (by adjusting the severity and state and adding comments) directly from the JetBrains console (currently supported for SAST and IaC Security).
69+
**GIF - Running a Scan from the IDE**
70+
![Running a Scan from the IDE](https://raw.githubusercontent.com/Checkmarx/ci-cd-integrations/main/.images/JetBrains_Running_Scans_From_IDE.gif "Running a Scan from the IDE")
7771

78-
- Apply Auto Remediation to automatically remediate open source vulnerabilities, by updating to a non-vulnerable package version.
79-
80-
- Links to Codebashing lessons.
81-
82-
- AI Secure Coding Assistant (ASCA) - A lightweight scan engine that runs in the background while you work, enabling developers to identify and remediate secure coding best practice violations **as they code**.
83-
84-
## Checkmarx One Developer Assist – AI guided remediation
72+
## Key Features
73+
- Access the full power of Checkmarx One (SAST, SCA, IaC Security, API Security, Container Security) directly from your IDE.
74+
- ASCA, a lightweight realtime source code scanner, enables developers to identify secure coding best practice violations in the file that they are working on **as they code**.
75+
- Run a new scan from your IDE even before committing the code, or import scan results from your Checkmarx One account.
76+
- Rescan an existing branch from your IDE or create a new branch in Checkmarx One for the local branch in your workspace.
77+
- Provides actionable results including remediation recommendations. Navigate from results panel directly to the highlighted vulnerable code in the editor and get right down to work on the remediation.
78+
- Connect to Checkmarx via API Key or OAuth user login flow
79+
- Group and filter results.
80+
- Triage results (by adjusting the severity and state and adding comments) directly from the JetBrains console (currently supported for SAST and IaC Security).
81+
- Apply Auto Remediation to automatically remediate open source vulnerabilities, by updating to a non-vulnerable package version.
82+
- Links to Codebashing lessons.
83+
#### **Checkmarx One Developer Assist – AI guided remediation**
8584
- An advanced security agent that delivers real-time context-aware prevention, remediation, and guidance to developers from the IDE.
8685
- OSS Realtime scanner identifies risks in open source packages used in your project.
86+
> COMING SOON - additional realtime scanners for identifying risks in container images, as well as exposed secrets and IaC risks.
8787
- MCP-based agentic AI remediation.
8888
- AI powered explanation of risk details
8989

90-
**COMING SOON** - additional realtime scanners for identifying risks in container images, as well as exposed secrets and IaC risks.
9190

9291

9392
## Prerequisites
9493

95-
- You are running IntelliJ version 2022.2+ or another JetBrains IDE that is based on a supported version of IntelliJ.
96-
97-
- You have access to Checkmarx One via:
98-
- an **API key** (see [Generating an API Key](https://checkmarx.com/resource/documents/en/34965-68618-generating-an-api-key.html)), OR
99-
- login credentials (Base URL, Tenant name, Username and Password).
100-
> The following are the minimum required [roles](https://docs.checkmarx.com/en/34965-68603-managing-roles.html "Managing Roles") for running an end-to-end flow of scanning a project and viewing results via the CLI or plugins:
101-
> - CxOne composite role `ast-scanner`
102-
> - CxOne role `view-policy-management`
103-
> - IAM role `default-roles`
104-
105-
To use **Dev Assist**, you need the following additional prerequisites:
106-
- A Checkmarx One account with a Checkmarx One Assist license
107-
- The Checkmarx MCP must be activated for your tenant account in the Checkmarx One UI under Settings → Plugins. This must be done by an account admin.
108-
- You must have GitHub Copilot Chat (AI Agent) installed
94+
- You are running IntelliJ version 2022.2+
95+
> Early versions of our plugin (2.0.16 and below) support JetBrains version 2021.1+ as well.
96+
> If you are using a JetBrains IDE other than IntelliJ (**Note:** these are not officially supported), make sure that you are using a version based on IntelliJ version 2022.2+.
97+
- You have access to Checkmarx One via:
98+
- an **API key** (see [Generating an API Key](https://checkmarx.com/resource/documents/en/34965-68618-generating-an-api-key.html)), OR
99+
- login credentials (Base URL, Tenant name, Username and Password).
100+
> 🔑 **Note:** The following are the minimum required roles for accessing the full functionality of the IDE plugins:
101+
> - Checkmarx One composite role ast-scanner
102+
> - IAM role default-roles
103+
To use **Dev Assist**, you need the following additional prerequisites:
104+
- A Checkmarx One account with a **Checkmarx One Assist** license
105+
- The **Checkmarx MCP** must be activated for your tenant account in the Checkmarx One UI under **Settings → Plugins**. This must be done by an account admin.
106+
- You must have **GitHub Copilot Chat (AI Agent)** installed
109107

110108
## Initial Setup
111-
112-
- Verify that all prerequisites are in place.
113-
114-
- Install the **Checkmarx One** plugin and configure the settings as
115-
described [here](https://docs.checkmarx.com/en/34965-68734-installing-and-setting-up-the-checkmarx-one-jetbrains-pluging-68734.html#UUID-8d3bdd51-782c-2816-65e2-38d7529651c8_section-idm449017032697283334758018635).
116-
117-
**Note:** To use Dev Assist, you need to Start the Checkmarx MCP server.
109+
- Verify that all prerequisites are in place.
110+
- Install the **Checkmarx One** plugin and configure the settings as
111+
described [here](https://docs.checkmarx.com/en/34965-68734-installing-and-setting-up-the-checkmarx-one-jetbrains-pluging-68734.html#UUID-8d3bdd51-782c-2816-65e2-38d7529651c8_section-idm449017032697283334758018635).
112+
> Note: To use Dev Assist, you may need to **Start** the Checkmarx MCP server.
113+
**GIF – Installing and Setting Up the Plugin**
114+
![Installing and Setting Up the Plugin](https://raw.githubusercontent.com/Checkmarx/ci-cd-integrations/main/.images/JetBrains_Installation_And_Initial_Setup.gif "Installing and Setting Up the Plugin")
118115

119116
## Usage
120-
121-
To see how you can use our tool, please refer to the [Documentation](https://docs.checkmarx.com/en/34965-68734-installing-and-setting-up-the-checkmarx-one-jetbrains-pluging.html)
117+
* To see how you can use our tool, please refer to the [Documentation](https://docs.checkmarx.com/en/34965-68736-using-the-checkmarx-one-jetbrains-plugin.html#UUID-54985b7e-78ae-a5e7-4afc-0195ed2c18b3)
118+
* Learn about using Dev Assist [here](https://docs.checkmarx.com/en/34965-405960-checkmarx-one-developer-assist.html)
122119

123120

124121
## Feedback

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def javaWrapperVersion = System.getenv('JAVA_WRAPPER_VERSION')
1212
def remoteRobotVersion = '0.11.23'
1313

1414
repositories {
15+
1516
mavenCentral()
1617
maven {
1718
url = 'https://packages.jetbrains.team/maven/p/ij/intellij-dependencies'
@@ -49,7 +50,7 @@ dependencies {
4950
implementation 'com.miglayout:miglayout-swing:11.3'
5051

5152
if (javaWrapperVersion == "" || javaWrapperVersion == null) {
52-
implementation('com.checkmarx.ast:ast-cli-java-wrapper:2.4.16'){
53+
implementation('com.checkmarx.ast:ast-cli-java-wrapper:2.4.16.2-telemetry'){
5354
exclude group: 'junit', module: 'junit'
5455
}
5556
} else {

src/main/java/com/checkmarx/intellij/Constants.java

Lines changed: 0 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import org.jetbrains.annotations.NonNls;
44

5-
import java.util.List;
6-
75
/**
86
* Non-translatable constants.
97
*/
@@ -18,7 +16,6 @@ private Constants() {
1816
public static final String BUNDLE_PATH = "messages.CxBundle";
1917

2018
public static final String LOGGER_CAT_PREFIX = "CX#";
21-
public static final String CXONE_ASSIST = "CxOne Assist";
2219

2320
public static final String GLOBAL_SETTINGS_ID = "settings.ast";
2421
public static final String TOOL_WINDOW_ID = "Checkmarx";
@@ -126,106 +123,6 @@ private AuthConstants() {
126123
public static final int TIME_OUT_SECONDS = 120;
127124
}
128125

129-
/**
130-
* The RealTimeConstants class defines a collection of constant values
131-
* related to real-time scanning functionalities, including support for
132-
* different scanning engines and associated configurations.
133-
*/
134-
public static final class RealTimeConstants {
135-
136-
private RealTimeConstants() {
137-
throw new UnsupportedOperationException("Cannot instantiate RealTimeConstants class");
138-
}
139-
140-
// Tab Name Constants
141-
public static final String DEVASSIST_TAB = "CxOne Assist Findings";
142-
143-
// OSS Scanner Constants
144-
public static final String ACTIVATE_OSS_REALTIME_SCANNER = "Activate OSS-Realtime";
145-
public static final String OSS_REALTIME_SCANNER = "Checkmarx Open Source Realtime Scanner (OSS-Realtime)";
146-
public static final String OSS_REALTIME_SCANNER_START = "Realtime OSS Scanner Engine started";
147-
public static final String OSS_REALTIME_SCANNER_DISABLED = "Realtime OSS Scanner Engine disabled";
148-
public static final String OSS_REALTIME_SCANNER_DIRECTORY = "Cx-oss-realtime-scanner";
149-
public static final String ERROR_OSS_REALTIME_SCANNER = "Failed to handle OSS Realtime scan";
150-
151-
public static final String ACTIVATE_CONTAINER_REALTIME_SCANNER = "Activate Containers-Realtime";
152-
public static final String CONTAINER_REALTIME_SCANNER = "Checkmarx Containers Realtime Scanner (Containers-Realtime)";
153-
public static final String CONTAINER_REALTIME_SCANNER_START = "Realtime Containers Scanner Engine started";
154-
public static final String CONTAINER_REALTIME_SCANNER_DISABLED = "Realtime Containers Scanner Engine disabled";
155-
public static final String CONTAINER_REALTIME_SCANNER_DIRECTORY = "Cx-containers-realtime-scanner";
156-
public static final String ERROR_CONTAINER_REALTIME_SCANNER = "Failed to handle Containers Realtime scan";
157-
158-
// Secrets Scanner Constants
159-
public static final String ACTIVATE_SECRETS_REALTIME_SCANNER = "Activate Secrets-Realtime";
160-
public static final String SECRETS_REALTIME_SCANNER = "Checkmarx Secrets Realtime Scanner (Secrets-Realtime)";
161-
public static final String SECRETS_REALTIME_SCANNER_START = "Realtime Secrets Scanner Engine started";
162-
public static final String SECRETS_REALTIME_SCANNER_DISABLED = "Realtime Secrets Scanner Engine disabled";
163-
public static final String SECRETS_REALTIME_SCANNER_DIRECTORY = "Cx-secrets-realtime-scanner";
164-
public static final String ERROR_SECRETS_REALTIME_SCANNER = "Failed to handle Secrets Realtime scan";
165-
166-
//Dev Assist Fixes Constants
167-
public static final String FIX_WITH_CXONE_ASSIST = "Copy fix prompt";
168-
public static final String VIEW_DETAILS_FIX_NAME = "View details";
169-
public static final String IGNORE_THIS_VULNERABILITY_FIX_NAME = "Ignore this vulnerability";
170-
public static final String IGNORE_ALL_OF_THIS_TYPE_FIX_NAME = "Ignore all of this type";
171-
172-
// Manifest file patterns constant
173-
public static final List<String> MANIFEST_FILE_PATTERNS = List.of(
174-
"**/Directory.Packages.props",
175-
"**/packages.config",
176-
"**/pom.xml",
177-
"**/package.json",
178-
"**/requirements.txt",
179-
"**/go.mod",
180-
"**/*.csproj"
181-
);
182-
183-
public static final List<String> CONTAINERS_FILE_PATTERNS = List.of(
184-
"**/dockerfile",
185-
"**/dockerfile-*",
186-
"**/dockerfile.*",
187-
"**/docker-compose.yml",
188-
"**/docker-compose.yaml",
189-
"**/docker-compose-*.yml",
190-
"**/docker-compose-*.yaml"
191-
);
192-
193-
public static final List<String> CONTAINER_HELM_EXTENSION = List.of("yml",
194-
"yaml");
195-
196-
197-
public static final List<String> CONTAINER_HELM_EXCLUDED_FILES = List.of("chart.yml",
198-
"chart.yaml");
199-
200-
// Container filetype constants
201-
202-
public static final String DOCKERFILE = "dockerfile";
203-
public static final String DOCKER_COMPOSE = "docker-compose";
204-
public static final String HELM = "helm";
205-
public static final String UNKNOWN = "unknown";
206-
207-
//Container Image description constants
208-
public static final String MALICIOUS_RISK_CONTAINER = "Malicious-risk container image";
209-
public static final String CRITICAL_RISK_CONTAINER = "Critical-risk container image";
210-
public static final String HIGH_RISK_CONTAINER = "High-risk container image";
211-
public static final String MEDIUM_RISK_CONTAINER = "Medium-risk container imagee";
212-
public static final String LOW_RISK_CONTAINER = "Low-risk container image";
213-
214-
215-
//Tooltip description constants
216-
public static final String RISK_PACKAGE = "risk package";
217-
public static final String SEVERITY_PACKAGE = "Severity Package";
218-
public static final String PACKAGE_DETECTED = "package detected";
219-
public static final String THEME = "THEME";
220-
// Dev Assist Remediation
221-
public static final String CX_AGENT_NAME = "Checkmarx One Assist";
222-
// Files generated by the agent (Copilot)
223-
public static final List<String> AGENT_DUMMY_FILES = List.of("/Dummy.txt", "/");
224-
public static final String RISK_IMAGE = "risk image";
225-
public static final String SEVERITY_IMAGE = "Severity Image";
226-
public static final String SEPERATOR = ":";
227-
}
228-
229126
/**
230127
* Constant class to hold image paths.
231128
*/

src/main/java/com/checkmarx/intellij/Resource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public enum Resource {
150150
MCP_NOT_FOUND,
151151
MCP_INSTALL_ERROR,
152152
CHECKING_MCP_STATUS,
153-
STARTING_CHECKMARX_OSS_SCAN,
153+
STARTING_CHECKMARX_SCAN,
154154
FAILED_OSS_SCAN_INITIALIZATION,
155155
DEV_ASSIST_COPY_FIX_PROMPT,
156156
DEV_ASSIST_COPY_VIEW_DETAILS_PROMPT,

src/main/java/com/checkmarx/intellij/commands/ASCA.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)