How the federal .gov domain space is doing at best practices and policies.
CSS HTML JavaScript Python Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci Update config.yml Apr 24, 2018
app reduce database access Jul 16, 2018
compliance Create component.yaml Dec 8, 2016
data Merge pull request #796 from buckley-w-david/dict-reader Jun 27, 2018
deploy overhauling scan/gather process to streamline it and rename dirs Oct 25, 2017
docs mention CDS Jul 5, 2018
static force numeric sorting (needed only for bod_crypto for some reason) Jun 20, 2018
templates cache bust the donut fetching requests Apr 27, 2018
tests Merge pull request #777 from cds-snc/18F_testing_config Apr 24, 2018
.about.yml updating developer Dec 19, 2016
.cfignore ignore more things during cf push Oct 29, 2017
.codeclimate.yml Adding ratings back in so we get a score (#633) Jan 9, 2017
.gitignore ignore egg directories Jul 11, 2018
.scss-lint.yml hound Nov 2, 2015
CONTRIBUTING.md Merge branch 'master' into basic-frontend Apr 25, 2015
LICENSE.md mention in LICENSE that anything in vendor/ is third party May 27, 2015
Makefile trigger lambda mode and lambda profile use in production Dec 11, 2017
Procfile Update New Relic config to make it actually work May 24, 2017
README.md remove Fabric instructions, out of date and unused Nov 24, 2017
manifest.yml Set pulse environment to a non-default value. Apr 11, 2018
meta.yml add other-websites.csv as a new source Mar 12, 2018
mypy.ini add testing configuration (#7) Apr 23, 2018
newrelic.ini Adds New Relic monitoring Jan 13, 2017
pulse.py reduce to single-threaded mode in waitress Jul 16, 2018
pylintrc add testing configuration (#7) Apr 23, 2018
requirements.txt Setup testing (#5) Apr 23, 2018
runtime.txt update python version of buildpack Apr 20, 2018
setup.py Setup testing (#5) Apr 23, 2018
system-security-plan.yml new link for diagram Apr 19, 2017

README.md

Code Climate Dependency Status

The pulse of the federal .gov webspace

How the .gov domain space is doing at best practices and federal requirements.

Documentation Other Links
Setup and Deploy Instructions System Security Plan
a11y scan process Ideas for new sections to add to the site
Ongoing Work Backlog of feature requests and ideas
ATO artifacts Open Source Reuse of the site
Project Information

Setup

Pulse is a Flask app written for Python 3.5 and up. We recommend pyenv for easy Python version management.

  • Install dependencies:
pip install -r requirements.txt
gem install sass bourbon neat bitters
  • If editing styles during development, keep the Sass auto-compiling with:
make watch
  • And to run the app in development, use:
make debug

This will run the app with DEBUG mode on, showing full error messages in-browser when they occur.

Initializing dataset

To initialize the dataset with the last production scan data and database, there's a convenience function:

make data_init

This will download (using curl) the current live production database and scan data to the local data/ directory.

Install domain-scan and dependencies

Download and set up domain-scan from GitHub.

domain-scan in turn requires pshtt and sslyze. These can be installed directly via pip.

Pulse requires you to set one environment variable:

  • DOMAIN_SCAN_PATH: A path to domain-scan's scan binary.

However, if you don't have pshtt and sslyze on your PATH, then domain-scan may need you to set a couple others:

  • PSHTT_PATH: Path to the pshtt binary.
  • SSLYZE_PATH: Path to the sslyze binary.

Configure the AWS CLI

To publish the resulting data to the production S3 bucket, install the official AWS CLI:

pip install awscli

And link it to AWS credentials that allow authorized write access to the pulse.cio.gov S3 bucket.

Then run it

From the Pulse root directory:

python -m data.update

This will kick off the domain-scan scanning process for HTTP/HTTPS and DAP participation, using the .gov domain list as specified in meta.yml for the base set of domains to scan.

Then it will run the scan data through post-processing to produce some JSON and CSV files the Pulse front-end uses to render data.

Finally, this data will be uploaded to the production S3 bucket.

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.