|
1 | | -# Security Notes |
| 1 | +<h1 align="center"> |
| 2 | + <sub> |
| 3 | + <img src="resources/security_notes_logo.png" width="48" height="48" alt="icon"> |
| 4 | + </sub> |
| 5 | + <sup> |
| 6 | + Security Notes |
| 7 | + </sup> |
| 8 | +</h1> |
| 9 | +<p align="center"> |
| 10 | + A Visual Studio Code extension to aid code reviews from a security perspective. |
| 11 | +</p> |
2 | 12 |
|
3 | | -Security Notes is a Visual Studio Code extension to aid code reviews from a security perspective. |
| 13 | +--- |
4 | 14 |
|
5 | | -The extension allows the creation of notes within source files, which can be replied to, reacted to using emojis, and assigned statuses such as "TODO", "Vulnerable" and "Not Vulnerable". |
| 15 | +Security Notes allows the creation of notes within source files, which can be replied to, reacted to using emojis, and assigned statuses such as "TODO", "Vulnerable" and "Not Vulnerable". |
6 | 16 |
|
7 | 17 | Also, it allows importing the output from SAST tools (currently only [Semgrep](https://semgrep.dev/)) into notes, making the processing of the findings much easier. |
8 | 18 |
|
9 | | -## Installing a Release |
| 19 | +Finally, collaborate with others by using a centralized database for notes that will be automatically synced in **real-time**! Create a note locally, and it will be automatically pushed to whoever is working with you on the project. |
10 | 20 |
|
11 | | -Download the [latest release](https://github.com/RefactorSecurity/vscode-security-notes/releases) file (with the `.vsix` extension) and install manually in VSCode via **Extensions** > **Install From VSIX**. |
12 | | -## Building the Extension |
| 21 | +## Try it out! |
13 | 22 |
|
14 | | -- Run `npm install` in terminal to install dependencies |
15 | | -- Run the `Run Extension` target in the Debug View. This will: |
16 | | - - Start a task `npm: watch` to compile the code |
17 | | - - Run the extension in a new VS Code window |
| 23 | +Download the extension directly from the Visual Studio [Marketplace]() and you should be ready to go :) |
| 24 | + |
| 25 | +### Alternative installation methods |
| 26 | + |
| 27 | +Please follow any of the alternatives below: |
| 28 | + |
| 29 | +- Download the [latest release](https://github.com/RefactorSecurity/vscode-security-notes/releases) file (with the `.vsix` extension) and install manually in VSCode via **Extensions** > **Install From VSIX** |
| 30 | +- Build the extension yourself |
| 31 | + - Clone the repo |
| 32 | + - Install VS Code Extension Manager via `npm install -g @vscode/vsce` |
| 33 | + - Create a `.vsix` package via `vsce package` |
| 34 | + |
| 35 | +## Basic Usage |
| 36 | + |
| 37 | +Security Notes allows the creation of notes within source files, which can be replied to, reacted to using emojis, and assigned statuses such as "TODO", "Vulnerable" and "Not Vulnerable". |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +## Local database for Comments |
| 42 | + |
| 43 | +By default your notes are backed up in a JSON file once you close VSCode. Once you open the project again, saved comments are loaded and shown on the UI. |
| 44 | + |
| 45 | +## Collaboration Mode |
| 46 | + |
| 47 | +Because chasing bugs with friends is more fun :) |
| 48 | + |
| 49 | +Security Notes allows sharing of notes in real-time with other users. To do so, it leverages the RethinkDB real-time database. |
| 50 | + |
| 51 | +First, make sure you have a RethinkDB database instance up and running. Then set your author name, and the database connection information in the extension's settings, and you are ready to go! Please see the section below for more details). |
| 52 | + |
| 53 | +Collaboration mode in action: |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | +### Setting up the RethinkDB database |
| 58 | + |
| 59 | +We recommend following instructions in RethinkDB [installation guide](https://rethinkdb.com/docs/install/). Additionally, following [hardening steps](https://rethinkdb.com/docs/security/#wrapper), such as setting a password for the `admin` user and setting up SSL/TLS, are strongly encouraged. |
| 60 | + |
| 61 | +Naturally, you will want to collaborate with remote peers. To do so in a secure way, we recommend setting up access to RethinkDB via SSH or through a VPN like [Tailscale](http://tailscale.com). This way, you avoid having to expose the instance to any network, and also ensuring information in transit is encrypted. |
| 62 | + |
| 63 | +> **Important Note:** When collaborating with others, ensure that all VSCode instances open the project from the same relative location. For example, if the source code repository you're reviewing has a directory structure like `source_code/app/src`, all peers should open VScode at the same level. Security Notes will store note location using relative paths, so they should be consistent. |
| 64 | +
|
| 65 | +## Importing SAST results |
| 66 | + |
| 67 | +The extension allows you to import the output from SAST tools (currently only [Semgrep](https://semgrep.dev/)) into notes, making the processing of the findings much easier: |
| 68 | + |
| 69 | + |
18 | 70 |
|
19 | 71 | ## Contributing |
20 | 72 |
|
21 | 73 | We welcome contributions to Security Notes! These are the many ways you can help: |
22 | 74 |
|
23 | 75 | - Report bugs |
24 | 76 | - Submit patches and features |
25 | | -- Add support for additional SAST tool output parsing |
26 | | -- Follow us on [Twitter](https://twitter.com/refactorsec) :) |
| 77 | +- Add support for additional SAST tools |
| 78 | +- Follow us on [Twitter](https://twitter.com/refactorsec) :) |
| 79 | + |
| 80 | +## Development and Debugging |
| 81 | + |
| 82 | +- Clone the repo |
| 83 | +- Run `npm install` to install dependencies |
| 84 | +- Run the `Run Extension` target in the Debug View. This will: |
| 85 | + - Start a task `npm: watch` to compile the code |
| 86 | + - Run the extension in a new VS Code window |
27 | 87 |
|
28 | 88 | ## Acknowledgments |
29 | 89 |
|
30 | | -This project is based on the [comment-sample](https://github.com/microsoft/vscode-extension-samples/tree/main/comment-sample) extension. |
| 90 | +This project is based on the [comment-sample](https://github.com/microsoft/vscode-extension-samples/tree/main/comment-sample) extension. |
31 | 91 |
|
32 | 92 | Additionally, the code for the note reactions was inspired by [comment-reactions](https://github.com/hacke2/vscode-extension-samples/tree/feat/comment-reactions). |
33 | 93 |
|
34 | 94 | ## License |
35 | 95 |
|
36 | | -MIT |
| 96 | +Licensed under the MIT License. |
0 commit comments