doc-nis-2 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -0
- package/package.json +88 -0
package/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Doc-NIS-2
|
|
2
|
+
|
|
3
|
+
the [NIS-2 directive](https://eur-lex.europa.eu/EN/legal-content/summary/cybersecurity-of-network-and-information-systems.html)
|
|
4
|
+
will force thousands of companies accross Europe to become more resillient on cyber threats
|
|
5
|
+
|
|
6
|
+
For many of those meddium size buisnesses this is both a treat and an opportunity
|
|
7
|
+
* a threat because they are not used to have a proper documentation (if any exists outside of the heads of the people)
|
|
8
|
+
* creating such a documentation is a real challenge
|
|
9
|
+
* existing tools are
|
|
10
|
+
1) very expensive
|
|
11
|
+
2) intended for larger organisations
|
|
12
|
+
3) have a steep learning curve, needing often a dedicated team
|
|
13
|
+
* an opportunity because eventually not only they will be more resillient, but also will bet a better
|
|
14
|
+
understanding of their Information System
|
|
15
|
+
|
|
16
|
+
with that in mind `Doc-NIS-2` is born after beeing fully rewritten from a private tool made during the COVID in order to help
|
|
17
|
+
a company
|
|
18
|
+
|
|
19
|
+
The main goals of `Doc-NIS-2` are
|
|
20
|
+
* document an Information System
|
|
21
|
+
* document the major processes of a company and describe the applications supporting thoses processes
|
|
22
|
+
* document the risks using [EBOIS](https://cyber.gouv.fr/en/publications/ebios-risk-manager-method)
|
|
23
|
+
* **user friendly**, **minimum of effort** and **collaborative**
|
|
24
|
+
* **open source**
|
|
25
|
+
|
|
26
|
+
The main principles are
|
|
27
|
+
* every **element** of the system (actors, applications, servers, clouds, processes...) are described in a database
|
|
28
|
+
* every **link** between thoses elements (an application uses another application... ) are also described
|
|
29
|
+
* partial graphs are **automatically** created and represented using [plantuml](https://plantuml.com/). All graphs are enhanced in order to make them interactive.
|
|
30
|
+
* all users can **collaborate** at the same time, each user having rights on each class of element
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## installation
|
|
36
|
+
|
|
37
|
+
`Doc-NIS-2` is a web application written in [Vue](https://vuejs.org/) for the front and [node](https://nodejs.org/) for the back
|
|
38
|
+
|
|
39
|
+
It needs a [mariadb](https://mariadb.com/docs) for the database
|
|
40
|
+
|
|
41
|
+
So it can be deployed easily on Linux or Windows
|
|
42
|
+
|
|
43
|
+
### install mariadb
|
|
44
|
+
if needed, install mariadb. the community version is fully ok for this application
|
|
45
|
+
|
|
46
|
+
#### create database
|
|
47
|
+
|
|
48
|
+
create as many database that you need `doc_nis_2_prod` (and if you want a test environnement `doc_nis_2_test`)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
#### user for the migrations
|
|
52
|
+
|
|
53
|
+
In order to create the database (and for future migrations) we need to have a user that has
|
|
54
|
+
higher rights than in production in order to create the schema. This user must at least have
|
|
55
|
+
|
|
56
|
+
```sql
|
|
57
|
+
SHOW GRANTS FOR 'doc-nis-2-migrate'@'localhost'
|
|
58
|
+
```
|
|
59
|
+
| Grants for doc-nis-2-migrate@localhost |
|
|
60
|
+
| --- |
|
|
61
|
+
| GRANT USAGE ON *.* TO `doc-nis-2-migrate`@`localhost` IDENTIFIED BY PASSWORD '*566B7C98855895F9B303B58D292E191D03B8FFF8' |
|
|
62
|
+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, EXECUTE, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON `doc\_it2\_dev`.* TO `doc-nis-2-migrate`@`localhost` |
|
|
63
|
+
|
|
64
|
+
#### user for production
|
|
65
|
+
```sql
|
|
66
|
+
SHOW GRANTS FOR 'doc-nis-2'@'localhost'
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
| Grants for doc-nis-2@localhost |
|
|
70
|
+
| --- |
|
|
71
|
+
| GRANT USAGE ON *.* TO `doc-nis-2`@`localhost` IDENTIFIED BY PASSWORD '*A8B2ACD89C87A533D5077B928E8AF0BC87ED4FF4' |
|
|
72
|
+
| GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `doc\_it2\_dev`.* TO `doc-nis-2`@`localhost` |
|
|
73
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "doc-nis-2",
|
|
3
|
+
"version": "2.1.1",
|
|
4
|
+
"license": "GPL-3.0-only",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Marc Nicole",
|
|
7
|
+
"email": "info@nicoleinnovation.com",
|
|
8
|
+
"url": "https://www.nicoleinnovation.com"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"cartography",
|
|
12
|
+
"documentation",
|
|
13
|
+
"IT System",
|
|
14
|
+
"NIS-2",
|
|
15
|
+
"IT",
|
|
16
|
+
"Risk Analysis",
|
|
17
|
+
"graph",
|
|
18
|
+
"node",
|
|
19
|
+
"vue",
|
|
20
|
+
"plantuml",
|
|
21
|
+
"mariadb"
|
|
22
|
+
],
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://gitlab.com/nicole_innovation/doc-nis-2/-/boards"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://gitlab.com/nicole_innovation/doc-nis-2",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": "./api/dist-api/api/src/doc-nis-2.js",
|
|
29
|
+
"./plugins-front": "./api/dist-api/shared/plugins-front.ts"
|
|
30
|
+
},
|
|
31
|
+
"type": "module",
|
|
32
|
+
"bin": {
|
|
33
|
+
"doc-nis-2": "api/dist-api/api/src/doc-nis-2.js"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist-api/",
|
|
37
|
+
"dist-front"
|
|
38
|
+
],
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build:front": "cd _front && npm run build",
|
|
41
|
+
"build:api": "cd api && npm run build && cp -r ./db-migrations ./dist-api/api/db-migrations && cp -r ./dist-front ./dist-api/api/dist-front",
|
|
42
|
+
"clean": "rimraf api/dist-api api/dist_front",
|
|
43
|
+
"build": "npm run clean && npm run build:front && npm run build:api",
|
|
44
|
+
"prepublishOnly": "npm run build",
|
|
45
|
+
"install": "cd _front && npm ci && cd .. && npm ci",
|
|
46
|
+
"test": "env-cmd -f ./api/.env.test vitest --no-file-parallelism"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/cookie-parser": "^1.4.9",
|
|
50
|
+
"@types/cors": "^2.8.19",
|
|
51
|
+
"@types/express": "^5.0.3",
|
|
52
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
53
|
+
"@types/lodash": "^4.17.9",
|
|
54
|
+
"@types/multer": "^2.0.0",
|
|
55
|
+
"@types/node": "^24.5.1",
|
|
56
|
+
"@types/nodemailer": "^6.4.17",
|
|
57
|
+
"@types/supertest": "^6.0.3",
|
|
58
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
59
|
+
"env-cmd": "^10.1.0",
|
|
60
|
+
"nyc": "^17.1.0",
|
|
61
|
+
"supertest": "^7.1.1",
|
|
62
|
+
"tsc-alias": "^1.8.16",
|
|
63
|
+
"tslib": "^2.8.1",
|
|
64
|
+
"tsx": "^4.20.5",
|
|
65
|
+
"vite-tsconfig-paths": "^5.1.4",
|
|
66
|
+
"vitest": "^4.0.18"
|
|
67
|
+
},
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"axios": "^1.10.0",
|
|
70
|
+
"bcryptjs": "^3.0.2",
|
|
71
|
+
"commander": "^14.0.0",
|
|
72
|
+
"cookie-parser": "^1.4.7",
|
|
73
|
+
"cors": "^2.8.5",
|
|
74
|
+
"dotenv": "^17.0.1",
|
|
75
|
+
"express": "^5.1.0",
|
|
76
|
+
"helmet": "^8.1.0",
|
|
77
|
+
"jsonwebtoken": "^9.0.2",
|
|
78
|
+
"lodash": "^4.17.21",
|
|
79
|
+
"mariadb": "^3.4.2",
|
|
80
|
+
"multer": "^2.0.1",
|
|
81
|
+
"nodemailer": "^8.0.4",
|
|
82
|
+
"qs": "^6.14.0",
|
|
83
|
+
"sha1-file": "^3.0.0",
|
|
84
|
+
"tsx": "^4.20.5",
|
|
85
|
+
"typescript": "^5.8.3",
|
|
86
|
+
"winston": "^3.17.0"
|
|
87
|
+
}
|
|
88
|
+
}
|