|
1 | | -[](https://circleci.com/gh/cds-snc/tracker) |
2 | | -[](https://snyk.io/test/github/cds-snc/tracker) |
| 1 | +# Tracker |
3 | 2 |
|
4 | | -[La version française suit.](#---------------------------------------------------------------------) |
| 3 | +This project tracks the Government of Canada domains for adherence to digital security best practices and federal requirements. |
5 | 4 |
|
6 | | -## Track Government of Canada domains's adherence to digital security practices |
| 5 | +## Project Structure |
7 | 6 |
|
8 | | -How the GC domain space is doing at best practices and federal requirements. |
9 | | - |
10 | | -| Documentation | |
11 | | -| ------------------------------------------------------- | |
12 | | -| [Development Setup Instructions](#development-setup) | |
13 | | -| [Local Deploy Step-by-step](docs/en/local-instructions.md) | |
14 | | - |
15 | | -## Developer Notes |
16 | | - |
17 | | -This repository is using [snyk](https://snyk.io/org/cds-snc) to scan our dependencies for vulnerabilities. |
18 | | -Unfortunately Synk lacks the ability to detect the dependencies listed in the `setup.py` file. |
19 | | -To get around this we are have the dependencies synced between the `setup.py` and `requirements.txt` (which snyk can scan) files. |
20 | | -If you are developing this and add an additional dependency, make sure to add it to both locations. |
21 | | - |
22 | | -## Development Setup |
23 | | - |
24 | | -For development purposes it is recommended that you install [MongoDB](https://www.mongodb.com/) and run the database locally. |
25 | | - |
26 | | -This utility is written for **Python 3.6 and up**. We recommend [pyenv](https://github.com/yyuu/pyenv) for easy Python version management. |
27 | | - |
28 | | -To setup local Python dependencies you can run `make setup` from the root of the repository. We recommend that this is done from within a virtual environment. |
29 | | - |
30 | | -* Install dependencies: |
31 | | - |
32 | | -```bash |
33 | | -pip install -r requirements.txt |
34 | | -``` |
35 | | - |
36 | | -* If developing tracker, you will also need the development requirements: |
37 | | - |
38 | | -```bash |
39 | | -pip install .[development] |
40 | | -``` |
41 | | - |
42 | | -#### Install domain-scan and dependencies |
43 | | - |
44 | | -Download and set up `domain-scan` [from GitHub](https://github.com/cds-snc/domain-scan) as per its setup instructions. |
45 | | - |
46 | | -`domain-scan` in turn requires [`pshtt`](https://github.com/dhs-ncats/pshtt) and [`sslyze`](https://github.com/nabla-c0d3/sslyze). These can be installed directly via `pip`. |
47 | | - |
48 | | -The app requires you to set one environment variable: |
49 | | - |
50 | | -* `DOMAIN_SCAN_PATH`: A path to `domain-scan`'s `scan` binary. |
51 | | -* `DOMAIN_GATHER_PATH`: A path to `domain-scan`'s `gather` binary. |
52 | | - |
53 | | -However, if you don't have `pshtt` and `sslyze` on your PATH, then `domain-scan` may need you to set a couple others: |
54 | | - |
55 | | -* `PSHTT_PATH`: Path to the `pshtt` binary. |
56 | | -* `SSLYZE_PATH`: Path to the `sslyze` binary. |
57 | | - |
58 | | -#### Then run it |
| 7 | +This project is organized in the monorepo style with the various components separationed into their own folders. |
59 | 8 |
|
| 9 | +```sh |
| 10 | +. |
| 11 | +├── scanner |
| 12 | +├── web |
| 13 | +├── platform |
| 14 | +└── README.md |
60 | 15 | ``` |
61 | | -tracker run |
62 | | -``` |
63 | | - |
64 | | -This will kick off the `domain-scan` scanning process for HTTP/HTTPS and DAP participation, using the domain lists as specified in `data/data_meta.yml` for the base set of domains to scan. |
65 | | - |
66 | | -Then it will run the scan data through post-processing producing some JSON and CSV files as scan artifacts and finally uploading the results into the database that the frontend uses to render the information (by default if not further specified `localhost:21017/track`). |
67 | | - |
68 | | -For a more detailed step by step procedure of getting a local development deployment going, checkout out the [Local Deploy Step-by-step](docs/en/local-instructions.md) document! |
69 | | - |
70 | | -#### Scanner CLI |
71 | | - |
72 | | -The utility has a CLI that can be used to perform individual parts of the scanning in isolation of the other steps. |
73 | | -By following the steps to setup the Scanning portion, this CLI should be readily accessible to you (if you have activated the environment you installed it into). |
74 | | -As you may have guessed from the command in the previous section, the CLI command is `tracker`. |
75 | | - |
76 | | -Help on how to use the CLI can be output via the command `tracker --help`. |
77 | | - |
78 | | - |
79 | | -## Public domain |
80 | | - |
81 | | -This project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md): |
82 | | - |
83 | | -> This project is in the public domain and copyright and related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). |
84 | | -> |
85 | | -> 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. |
86 | | -
|
87 | | -### Origin |
88 | | - |
89 | | -This project was originally forked from [18F](https://github.com/18f/pulse) and has been modified to fit the Canadian context. |
90 | | - |
91 | | -## --------------------------------------------------------------------- |
92 | | - |
93 | | -## Faire le suivi du respect des pratiques en matière de sécurité Web par les domaines du gouvernement du Canada |
94 | | - |
95 | | -La mesure dans laquelle l’espace des noms de domaine du gouvernement du Canada respecte les pratiques exemplaires et les exigences fédérales. |
96 | | - |
97 | | -| Documentation | |
98 | | -| ------------------------------------------------------- | |
99 | | -| [Instructions de configuration du développement](#configuration-du-développement) | |
100 | | -| [Déploiement local étape par étape](docs/fr/directives-locales.md) | |
101 | | - |
102 | | -## Developer Notes |
103 | | - |
104 | | -Ce dépôt utilise [snyk](https://snyk.io/org/cds-snc) pour analyser nos dépendances à l’égard des vulnérabilités. |
105 | | -Malheureusement, Snyk ne peut pas déceler les dépendances énumérées dans le fichier `setup.py`. Pour contourner ce problème, nous avons synchronisé les dépendances entre les fichiers `setup.py` et `requirements.txt` (que Snyk peut numériser). |
106 | | -Si vous procédez au développement et ajoutez une dépendance supplémentaire, vous devez veiller à l’ajouter aux deux emplacements. |
107 | | - |
108 | | -## Configuration du développement |
109 | | - |
110 | | -À des fins de développement, il vous est recommandé d’installer [MongoDB](https://www.mongodb.com/) et d’exécuter la base de données localement. |
111 | | - |
112 | | -Ce programme utilitaire est écrit pour **Python 3.6 et les versions subséquentes**. Nous recommandons [pyenv](https://github.com/yyuu/pyenv) pour une gestion facile des versions de Python. |
113 | | - |
114 | | -Pour configurer les dépendances locales de Python, vous pouvez exécuter `make setup` à partir de la racine du dépôt. Nous recommandons que cela soit fait dans un environnement virtuel. |
115 | | - |
116 | | -* Installer les dépendances : |
117 | | - |
118 | | -```bash |
119 | | -pip install -r requirements.txt |
120 | | -``` |
121 | | - |
122 | | -* Si vous développez le `tracker`, vous aurez aussi besoin des exigences de développement. |
123 | | - |
124 | | -```bash |
125 | | -pip install .[development] |
126 | | -``` |
127 | | - |
128 | | -#### Installer « domain-scan » et les dépendances |
129 | | - |
130 | | -Téléchargez et configurez `domain-scan` [de GitHub](https://github.com/cds-snc/domain-scan) aconformément aux instructions de configuration. |
131 | | - |
132 | | -`domain-scan` à son tour exige [`pshtt`](https://github.com/dhs-ncats/pshtt) et [`sslyze`](https://github.com/nabla-c0d3/sslyze). Ceux-ci peuvent être installés directement au moyen de `pip`. |
133 | | - |
134 | | -L’application vous oblige à établir une variable d’environnement : |
135 | | - |
136 | | -* `DOMAIN_SCAN_PATH`: Un chemin d’accès vers le fichier binaire `scan` de `domain-scan`. |
137 | | -* `DOMAIN_GATHER_PATH`: Un chemin d’accès vers le fichier binaire `gather` de `domain-scan`. |
138 | | - |
139 | | -Cependant, si vous n’avez pas `pshtt` et `sslyze` dans votre CHEMIN D’ACCÈS, then `domain-scan` pourrait exiger que vous en établissiez deux autres : |
140 | | - |
141 | | -* `PSHTT_PATH`: Chemin d’accès vers le fichier binaire `pshtt`. |
142 | | -* `SSLYZE_PATH`: Chemin d’accès vers le fichier binaire `sslyze`. |
143 | | - |
144 | | -#### Ensuite, exécutez-le |
145 | | - |
146 | | -``` |
147 | | -tracker run |
148 | | -``` |
149 | | - |
150 | | -Le processus d’analyse de` domain-scan` pour la participation à HTTP/HTTPS et à DAP sera lancé au moyen des listes de domaines précisés dans `data/data_meta.yml` pour l’ensemble de base des domaines à analyser. |
151 | | - |
152 | | -Ensuite, les données seront analysées par posttraitement, ce qui produira quelques fichiers JSON et CSV sous forme d’artefacts d’analyse, puis les résultats seront téléchargés dans la base de données dont se servent les utilisateurs pour fournir des renseignements (par défaut, si ce n’est pas davantage specified `localhost:21017/track`). |
153 | | - |
154 | | -Pour obtenir une méthode détaillée étape par étape de mise en œuvre du développement local, consultez le document [Déploiement local étape par étape](docs/fr/directives-locales.md). |
155 | | - |
156 | | -#### Interface de ligne de commande de l’analyseur |
157 | | - |
158 | | -Le programme utilitaire a une interface de ligne de commande qui peut être utilisée pour exécuter des volets individuels de l’analyse indépendamment des autres étapes. En suivant les étapes pour configurer la partie Analyse, vous devriez avoir facilement accès à cette interface de ligne de commande (si vous avez activé l’environnement dans lequel vous l’avez installée). Comme vous l’aurez deviné à partir de la commande dans la section précédente, l’interface de ligne de commande est `tracker`. |
159 | | - |
160 | | -Vous pouvez obtenir de l’aide sur la façon d’utiliser l’interface de ligne de commande au moyen de la commande `tracker --help`. |
161 | | - |
162 | | - |
163 | | -## Domaine public |
164 | | - |
165 | | -Ce projet fait partie du [domaine public](LICENSE.md#---------------------------------------------------------------------) mondial. Comme l’indique le fil [CONTRIBUTING](CONTRIBUTING.md#---------------------------------------------------------------------) : |
166 | | - |
167 | | -> Le projet fait partie du domaine public; l’auteur renonce dans le mode entier au droit d’auteur et aux droits connexes sur l’œuvre par voie de la licence [CC0 1.0 Universel – Transfert dans le domaine public](https://creativecommons.org/publicdomain/zero/1.0/deed.fr). |
168 | | -> |
169 | | -> Toutes les contributions à ce projet seront publiées en application de la licence CC0. En présentant une demande de retrait, vous acceptez de vous conformer à la présente renonciation au droit d’auteur. |
170 | 16 |
|
171 | | -### Origine |
| 17 | +The [scanner](scanner/README.md) folder contains everything related to the `scanner` service, the [web](web/README.md) contains everything for the `web` service that shows the results of the scan, and the [platform](platform/README.md) folder contains the Kubernetes configuration needed to deploy the tracker on the cloud provider of your choice. |
172 | 18 |
|
173 | | -À l’origine, ce projet a été créé à partir du fil [18F](https://github.com/18f/pulse) et a été modifié pour s’adapter au contexte canadien. |
| 19 | +Further details can be found in the readme files contained in their respective folders. |
0 commit comments