2022-05-06 14:25:15 +00:00
![Comply ](./logo.png )
2018-05-15 21:13:11 +00:00
Comply is a SOC2-focused compliance automation tool:
- **Policy Generator**: markdown-powered **document pipeline** for publishing auditor-friendly **policy documents**
2018-05-15 22:31:43 +00:00
- **Ticketing Integration**: automate compliance throughout the year via your existing **ticketing system**
2018-05-15 21:13:11 +00:00
- **SOC2 Templates**: open source policy and procedure **templates** suitable for satisfying a SOC2 audit
# Installation
macOS:
2018-05-15 23:03:58 +00:00
`brew tap strongdm/comply; brew install comply`
2018-05-15 21:13:11 +00:00
2018-05-19 00:29:29 +00:00
Linux:
[Download latest release ](https://github.com/strongdm/comply/releases )
2018-05-15 21:13:11 +00:00
Go users:
`go get github.com/strongdm/comply`
# Get Started
Start with `comply init` :
```
$ mkdir my-company
$ cd my-company
$ comply init
```
2018-05-15 22:31:43 +00:00
Once `comply init` is complete, just `git init` and `git push` your project to a new repository. You're ready to begin editing the included policy boilerplate text.
2018-05-15 21:13:11 +00:00
# Discussion
2021-07-12 21:56:13 +00:00
Join us in [Comply Users ](https://join.slack.com/t/comply-users/shared_invite/zt-4k3f46wy-Cs1DceznNvAL~lnW9_HjIA )
2018-05-15 21:13:11 +00:00
# Screenshots
2018-05-19 00:32:54 +00:00
[Demo video ](https://vimeo.com/270257486 )
2018-05-15 21:13:11 +00:00
## Start a Project
2022-05-06 14:25:15 +00:00
2018-05-15 21:13:11 +00:00
![screencast 1 ](sc-1.gif )
## Build PDFs
2022-05-06 14:25:15 +00:00
2018-05-15 21:13:11 +00:00
![screencast 4 ](sc-4.gif )
![pdf example ](pdf-example.png )
## Track Policy Coverage
2022-05-06 14:25:15 +00:00
2018-05-15 21:13:11 +00:00
![screencast 3 ](sc-2.gif )
## Dashboard
2022-05-06 14:25:15 +00:00
2018-05-15 21:13:11 +00:00
![screencast 2 ](sc-3.gif )
2018-05-23 21:18:28 +00:00
## Dependencies
Comply relies on [pandoc ](https://pandoc.org/ ), which can be installed directly as an OS package or invoked via Docker.
2018-05-15 21:13:11 +00:00
## CLI
```
NAME:
comply - policy compliance toolkit
USAGE:
comply [global options] command [command options] [arguments...]
COMMANDS:
2018-05-18 21:42:55 +00:00
init initialize a new compliance repository (interactive)
build, b generate a static website summarizing the compliance program
procedure, proc create ticket by procedure ID
scheduler create tickets based on procedure schedule
serve live updating version of the build command
sync sync ticket status to local cache
todo list declared vs satisfied compliance controls
help, h Shows a list of commands or help for one command
2018-05-15 21:13:11 +00:00
```
2019-02-21 06:51:41 +00:00
## Running in Docker
Comply is currently only released for Linux and macOS, however from other operating systems it's possible to run using Docker:
```
2019-03-16 07:28:08 +00:00
# first pull the latest published docker image
$ docker pull strongdm/comply
2019-02-21 06:51:41 +00:00
# from an empty directory that will contain your comply project
2019-03-16 07:28:08 +00:00
$ docker run --rm -v "$PWD":/source -p 4000:4000 -it strongdm/comply
2019-02-21 08:54:22 +00:00
root@ec4544732298:/source# comply init
✗ Organization Name:
2019-03-16 07:28:08 +00:00
# serve content live from an established project
$ docker run --rm -v "$PWD":/source -p 4000:4000 -it strongdm/comply
root@ae4d499583fc:/source# comply serve
Serving content of output/ at http://127.0.0.1:4000 (ctrl-c to quit)
2019-02-21 06:51:41 +00:00
```
For Windows users, replace $PWD with the full path to your project directory
2022-05-06 14:25:15 +00:00
### Running in macOS M1
2022-05-09 12:48:43 +00:00
If you're running Comply inside Docker, or using it installed by HomeBrew, in a macOS M1, you should increase the Docker allocatable memory space to ~7 GB, but it won't run smoothly. So, we recommend to run Comply locally with pandoc binary installed via HomeBrew. For that, install the `pandoc` and `basictex` packages using the following command:
2022-05-06 14:25:15 +00:00
```bash
brew install pandoc basictex
```
2022-05-09 12:48:43 +00:00
Then when running the Comply binary -installed by HomeBrew- it will work as expected.
2019-02-21 06:51:41 +00:00
2018-07-21 00:45:20 +00:00
## Ticketing Integrations:
2022-05-06 14:25:15 +00:00
2018-07-21 00:45:20 +00:00
- Jira
- Github
- Gitlab
2018-05-15 21:13:11 +00:00
2019-12-26 22:05:32 +00:00
## Configuration
## GitHub
Ticketing integration with GitHub can be configured with the following YAML in `comply.yml` :
```yaml
tickets:
github:
repo: github.com/your-org/SOC2
token: < token >
username: org-bot-user
```
Also, `GITHUB_REPO` , `GITHUB_TOKEN` , and `GITHUB_USERNAME` can be used to override values from the YAML file.
### Jira
2018-08-29 22:17:00 +00:00
When comply creates a ticket (through `proc` , for instance), it sets the following fields.
- assignee
- description
- issuetype
- labels
- project key
- reporter
- summary
2022-05-06 14:25:15 +00:00
Please make sure that the default _Create Screen_ has all of those fields enabled. Additionally, make sure that there are no other required fields for the issue type you choose.
2018-08-29 22:17:00 +00:00
2021-10-08 14:05:11 +00:00
About authentication, you need to create an [API Token ](https://id.atlassian.com/manage-profile/security/api-tokens ) to use as a password.
2018-08-29 22:17:00 +00:00
2018-07-21 00:45:20 +00:00
## Forking and local development
2022-05-06 14:25:15 +00:00
2018-07-21 00:45:20 +00:00
> Assumes installation of golang and configuration of GOPATH in .bash_profile, .zshrc, etc
> Inspiration: http://code.openark.org/blog/development/forking-golang-repositories-on-github-and-managing-the-import-path
```
2018-08-29 22:17:00 +00:00
$ go get github.com/strongdm/comply
2018-07-21 00:45:20 +00:00
$ cd $GOPATH/src/github.com/strongdm/comply ; go get ./...
$ make
$ cd example
$ mv comply.yml.example comply.yml
$ ../comply -h
$ ../comply sync
$ ../comply serve
#
$ make # recompile as needed with in $GOPATH/src/github.com/strongdm/comply
```