-
Notifications
You must be signed in to change notification settings - Fork 10
Code and Repositories
GC Tracker currently measures .gc.ca and .canada.ca subdomains that are publicly accessible over HTTP. These domains and subdomains are provided by the Digital Transformation Office within the Treasury Board of Canada Secretariat. In addition, GC Tracker also provides tailored implementation guidance based on the results of the domain scans.
GC Tracker is built in accordance to TBS OCIO’s architectural guidance outlined in their Directive on Service and Digital. As such, it is architected as a set of distributed, containerized microservices.
- Platform: The Tracker application is a cloud native application that is orchestrated using Kubernetes.
- API: The Tracker API is exclusively focused on serving data, rather than HTML. It is a GraphQL API, chosen because of its composability, legibility and for the way it enables both security and security automation. It is built with the Express webserver using the ApolloServer middleware, and follows the Relay specifications for pagination.
- Frontend: This frontend is an example of a Single Page Application (SPA) on the Web Platform. The frontend is written using the React framework and is complimented by the Chakra-UI component library to help ensure a modular and accessible UI.
- Datastore: Tracker relies on the ArangoDB multi-model database.
- Scanners: The domain scans rely on a series of containerized open source tools such as checkdmarc, dkimpy, and sslyze.
This repository holds the code for the entire Tracker deployment. The scanning tools measures the behaviour of four “endpoints” of every domain and subdomain: http://
, http://www
, https://
, and https://www
. Data from these endpoints is used to characterize the overall behaviour of a domain or subdomain.
The tracker repository contains further documentation on:
- Platform overlays for deploying to Google Cloud Platform or locally to Minikube
- Information on how to set up/configure the API dev environment
- Documentation on the various components and links to additional resources
- How to edit existing components or add new components to the scanning system
This project was built by the Treasury Board of Canada Secretariat in collaboration with the Canadian Centre for Cyber Security.