Skip to content

Commit

Permalink
Updating language support definition
Browse files Browse the repository at this point in the history
  • Loading branch information
gmontard committed Oct 18, 2023
1 parent b0cd69a commit 116551c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 49 deletions.
34 changes: 28 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<br /><br />
Bearer CLI is a static application security testing (SAST) tool that scans your source code and analyzes your data flows to discover, filter and prioritize security and privacy risks.
<br /><br />
Currently supporting <strong>JavaScript</strong>, <strong>TypeScript</strong>, <strong>Ruby</strong>, and <strong>Java</strong> stacks.<br />
🚧 <strong>PHP</strong> Beta support is <a href="https://github.com/Bearer/bearer/issues/1242">coming next</a> 🚧
Currently supporting: <strong>JavaScript/TypeScript</strong> (GA), <strong>Ruby</strong> (GA), <strong>Java</strong> (Beta), <strong>PHP</strong> (Beta), <strong>Go</strong> (Alpha), <strong>Python</strong> (Alpha) - <a href="https://docs.bearer.com/reference/supported-languages/">Learn more</a>

<br /><br />

[Getting Started](#rocket-getting-started) - [FAQ](#question-faqs) - [Documentation](https://docs.bearer.com) - [Report a Bug](https://github.com/Bearer/bearer/issues/new/choose) - [Discord Community][discord]
Expand Down Expand Up @@ -255,19 +255,39 @@ Finally, Bearer CLI also lets you detect components storing and processing sensi

### Supported Language

Bearer CLI currently supports JavaScript, TypeScript, Ruby, Java and their associated most used frameworks and libraries. More languages will follow.
Bearer CLI currently supports:
<table>
<tr>
<td>GA</td>
<td>JavaScript/TypeScript, Ruby</td>
</tr>
<tr>
<td>Beta</td>
<td>Java, PHP</td>
</tr>
<tr>
<td>Alpha</td>
<td>Go, Python</td>
</tr>
</table>

[Learn more](https://docs.bearer.com/reference/supported-languages/) about language support.

### How long does it take to scan my code? Is it fast?

It depends on the size of your applications. It can take as little as 20 seconds, up to a few minutes for an extremely large code base. We’ve added an internal caching layer that only looks at delta changes to allow quick, subsequent scans.
It depends on the size of your applications. It can take as little as 20 seconds, up to a few minutes for an extremely large code base.

As a rule of thumb, Bearer CLI should never take more time than running your test suite.

Running Bearer CLI should not take more time than running your test suite.
In the case of CI integration, we provide a diff scan solution to make it even faster, [learn more](https://docs.bearer.com/guides/configure-scan/#only-report-new-findings-on-a-branch).

### What about false positives?

If you’re familiar with SAST tools, false positives are always a possibility.

By using the most modern static code analysis techniques and providing a native filtering and prioritizing solution on the most important issues, we believe this problem won’t be a concern when using Bearer CLI.
By using the most modern static code analysis techniques and providing a native filtering and prioritizing solution on the most important issues, we believe we have dramatically improved the overall SAST experience.

We strive to provide the best possible experience for our users. [Learn more](https://docs.bearer.com/reference/supported-languages/#how-do-we-evaluate-language-support%3F) about how we achieve this.

### When and where to use Bearer CLI?

Expand All @@ -277,6 +297,8 @@ You can also integrate Bearer CLI in your CD, though we recommend setting it to

In addition, running Bearer CLI as a scheduled job is a great way to keep track of your security posture and make sure new security issues are found even in projects with low activity.

Make sure to read our [integration strategy guide](https://docs.bearer.com/guides/integration-strategy/) for more information.

## :raised_hand: Get in touch

Thanks for using Bearer CLI. Still have questions?
Expand Down
47 changes: 4 additions & 43 deletions docs/reference/supported-languages.njk
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ layout: layouts/doc.njk
supportChart:
ruby:
name: Ruby
support:
- Security
- Privacy
- Data Flow
frameworks:
- Ruby on Rails
rules: true
Expand All @@ -16,10 +12,6 @@ supportChart:
status: GA
javascript:
name: JavaScript / TypeScript
support:
- Security
- Privacy
- Data Flow
frameworks:
- Express
- React
Expand All @@ -29,10 +21,6 @@ supportChart:
status: GA
java:
name: Java
support:
- Security
- Privacy
- Data Flow
frameworks:
- Spring
rules: true
Expand All @@ -41,23 +29,14 @@ supportChart:
status: Beta
php:
name: PHP
support:
- Security
- Privacy
- Data Flow
frameworks:
- Symfony
rules: false
searchName: lang-php
searchTerm: php_
status: Alpha
comment: Beta coming soon
comment_link: https://github.com/Bearer/bearer/issues/1242
status: Beta
go:
name: Go
support:
- Privacy
- Data Flow
frameworks: []
rules: false
searchName: lang-go
Expand All @@ -67,26 +46,13 @@ supportChart:
comment_link: https://github.com/Bearer/bearer/issues/1302
python:
name: Python
support:
- Privacy
- Data Flow
frameworks: []
rules: false
searchName: lang-python
searchTerm: python_
status: Alpha
comment: Beta coming soon
comment_link: https://github.com/Bearer/bearer/issues/1303
csharp:
name: C#
support:
- Privacy
- Data Flow
frameworks: []
rules: false
searchName: lang-csharp
searchTerm: csharp_
status: Alpha

---
{% renderTemplate "liquid,md" %}
Expand All @@ -102,7 +68,6 @@ When you scan a codebase, Bearer will automatically select the appropriate langu
<tr>
<th>Languages</th>
<th>Frameworks</th>
<th>Report Types</th>
<th># rules</th>
<th>Status</th>
</tr>
Expand All @@ -120,9 +85,6 @@ When you scan a codebase, Bearer will automatically select the appropriate langu
-
{% endif %}
</td>
<td>
{{ supportChart[language].support | join(", ")}}
</td>
<td>
{% if data.rules %}
<a href="/reference/rules/?{{data.searchName}}={{data.searchTerm}}">{{rules.counts.languages[language].count}}</a>
Expand Down Expand Up @@ -159,10 +121,9 @@ Bearer CLI supports the majority of frameworks, requiring only core language sup

### Support status definition

- **General Availability (GA)**: A language at the GA stage encompasses Bearer's complete feature set, having been rigorously tested to ensure maximum accuracy.
- **Beta**: A language in the Beta stage is equipped with the full range of Bearer's features, offering a high degree of precision. However, it may not include all the [security rules](/explanations/reports/#security-report).
- **Alpha**: A language at the Alpha stage does not yet include the entire Bearer feature set, particularly regarding the [security report](/explanations/reports/#security-report).

- **General Availability (GA)**: A language at the GA stage provides a comprehensive set of rules for a wide range of security risks and vulnerabilities. It has undergone rigorous testing to ensure maximum accuracy.
- **Beta**: A language at the Beta stage offers good coverage of top security risks and vulnerabilities, providing a good level of protection.
- **Alpha**: A language at the Alpha stage does not have a strong set of pre-built rules yet and is primarily intended for users interested in creating their own custom rules.

## How do we evaluate language support?

Expand Down

0 comments on commit 116551c

Please sign in to comment.