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.
Files changed (2) hide show
  1. package/README.md +73 -0
  2. 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
+ ![](./_front/user-docs/en/screenshots/deployment-edit-element-name.png)
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
+ }