Skip to content

Ethanljf/tracker-golang

 
 

Repository files navigation

Tracker

This project tracks Government of Canada domains for adherence to digital security best practices and federal requirements.

Application structure

In pursuit of a vision of Government as a Platform, the TBS Directive on Service and Digital states that developers should "Validate your API design by consuming it" and "Use microservices built around business capabilities". Supporting this vision and taking this guidance to heart has meant that the core of the Tracker system is an API/consumer pair resulting in a minimalist microservices architecture.

The Directive also says "Design for cloud mobility", "Use distributed architectures", "Run applications in containers" and to use "open source software first". The technology at the intersection of these four directives is Kubernetes, which is used as a cloud agnostic platform to deploy the services that make up the Tracker system.

Repo Structure

As is common with microservices projects, this repository is organized in the monorepo style with the various services/components separated into their own folders.

.
├── api-js
├── app
├── ci
├── clients
├── CONTRIBUTING.md
├── deploy
├── frontend
├── guidance
├── Makefile
├── platform
├── README.md
├── scripts
├── SECURITY.md
└── services

The ci folder contains an image used in the CI process, but the main event is the next three folders:

The frontend and api-js folders contain the two main parts parts of the application.

The app, platform and deploy folders contain the Kubernetes configuration needed to continuously deploy the tracker on the cloud provider of your choice.

The clients folder contains API clients offered as an alternative to Tracker's web frontend. Only a Python client is available at this time.

The services folder contains smaller services dedicated to scanning or account creation.

The scripts folder is a dumping ground for various utility scripts and codemods.

Running it

Running Tracker locally takes a few commands and a lot of RAM. See the instructions in the app folder

About

Track Government of Canada domains for adherence to digital security best practices and federal requirements.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 94.6%
  • Python 5.1%
  • Go 0.1%
  • Dockerfile 0.1%
  • Makefile 0.1%
  • Shell 0.0%