diff --git a/README.md b/README.md index 3a89503a2b..a1a5a7a10d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Console Cloud π Native +# Console Cloud π (PI) Native La console Cloud π Native est une application web ayant pour but de piloter des services dans un cluster Kubernetes afin de fournir une plateforme cloud qui accompagne les produits numériques lors de toutes les phases de leur cycle de vie. diff --git a/apps/client/package.json b/apps/client/package.json index 89898f957e..6512158b57 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -60,6 +60,7 @@ "@vitest/coverage-v8": "^4.1.5", "@vue/eslint-config-typescript": "^14.7.0", "chalk": "^5.6.2", + "eslint": "^10.1.0", "eslint-plugin-vue": "^10.8.0", "jsdom": "^25.0.1", "rimraf": "^6.1.3", diff --git a/apps/client/src/components/ProjectRoleForm.vue b/apps/client/src/components/ProjectRoleForm.vue index d145bee1b9..ce466ec4f3 100644 --- a/apps/client/src/components/ProjectRoleForm.vue +++ b/apps/client/src/components/ProjectRoleForm.vue @@ -1,6 +1,12 @@ diff --git a/apps/nginx-strangler/conf.d/routing.conf b/apps/nginx-strangler/conf.d/routing.conf index 1245ffdc4c..a41b88a41c 100644 --- a/apps/nginx-strangler/conf.d/routing.conf +++ b/apps/nginx-strangler/conf.d/routing.conf @@ -33,6 +33,21 @@ server { # Taille des headers (nécessaire pour les tokens Keycloak) large_client_header_buffers 4 32k; + + + # ── Routes migrées vers NestJS ──────────────────────────────────────────── + # (vide au démarrage — toutes les routes sont en fallback sur server-legacy) + # + # Exemple (à décommenter lors de la Vague 1) : + # + # # [Vague 1 - system/health] 2026-XX-XX + # location = /api/v1/system/health { + # proxy_pass http://server-nestjs; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # } # Healthcheck de nginx-strangler lui-même location = /health { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5281124de5..2b73adfdca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -135,6 +135,9 @@ importers: chalk: specifier: ^5.6.2 version: 5.6.2 + eslint: + specifier: ^10.1.0 + version: 10.3.0(jiti@2.6.1) eslint-plugin-vue: specifier: ^10.8.0 version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.3.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.3.0(jiti@2.6.1))) @@ -2306,10 +2309,6 @@ packages: resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@3.0.3': - resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@3.0.5': resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -2461,10 +2460,6 @@ packages: resolution: {integrity: sha512-xS8HAzhRSQXqMfD779EgbZmPcgkaNW8Hf2anrwvvPYb9Tt0vP9CtzOqj+8GYSOUQqgcRFejmCR9WoAgZJamB1g==} engines: {pnpm: '>=8'} - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - '@humanfs/core@0.19.2': resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} @@ -9581,8 +9576,8 @@ snapshots: '@apidevtools/json-schema-ref-parser': 14.0.1 '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 - ajv: 8.18.0 - ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv: 8.20.0 + ajv-draft-04: 1.0.0(ajv@8.20.0) call-me-maybe: 1.0.2 openapi-types: 12.1.3 @@ -10853,9 +10848,9 @@ snapshots: '@eslint/config-array@0.23.3': dependencies: - '@eslint/object-schema': 3.0.3 + '@eslint/object-schema': 3.0.5 debug: 4.4.3(supports-color@5.5.0) - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color @@ -10873,7 +10868,7 @@ snapshots: '@eslint/config-helpers@0.5.3': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 '@eslint/config-helpers@0.5.5': dependencies: @@ -10925,8 +10920,6 @@ snapshots: '@eslint/object-schema@2.1.7': {} - '@eslint/object-schema@3.0.3': {} - '@eslint/object-schema@3.0.5': {} '@eslint/plugin-kit@0.4.1': @@ -10936,7 +10929,7 @@ snapshots: '@eslint/plugin-kit@0.6.1': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 levn: 0.4.1 '@eslint/plugin-kit@0.7.1': @@ -10954,8 +10947,8 @@ snapshots: '@fastify/ajv-compiler@3.6.0': dependencies: - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) fast-uri: 2.4.0 '@fastify/ajv-compiler@4.0.5': @@ -11160,15 +11153,13 @@ snapshots: '@himenon/argocd-typescript-openapi@1.2.2': {} - '@humanfs/core@0.19.1': {} - '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 '@humanfs/node@0.16.7': dependencies: - '@humanfs/core': 0.19.1 + '@humanfs/core': 0.19.2 '@humanwhocodes/retry': 0.4.3 '@humanfs/node@0.16.8': @@ -14025,7 +14016,7 @@ snapshots: '@typescript-eslint/types': 8.57.0 '@typescript-eslint/visitor-keys': 8.57.0 debug: 4.4.3(supports-color@5.5.0) - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -14262,7 +14253,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.0)(@vitest/coverage-v8@4.1.5)(jsdom@25.0.1)(msw@2.12.10(@types/node@24.12.0)(typescript@5.9.3))(vite@7.3.3(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(yaml@2.8.2)) + vitest: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@24.12.0)(@vitest/coverage-v8@4.1.5)(jsdom@25.0.1)(msw@2.12.10(@types/node@24.12.0)(typescript@5.9.3))(vite@7.3.3(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(yaml@2.8.4)) '@vitest/eslint-plugin@1.6.17(@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.5)': dependencies: @@ -14565,9 +14556,9 @@ snapshots: agent-base@7.1.4: {} - ajv-draft-04@1.0.0(ajv@8.18.0): + ajv-draft-04@1.0.0(ajv@8.20.0): optionalDependencies: - ajv: 8.18.0 + ajv: 8.20.0 ajv-formats-draft2019@1.6.1(ajv@8.18.0): dependencies: @@ -14581,13 +14572,13 @@ snapshots: optionalDependencies: ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.20.0 - ajv-formats@3.0.1(ajv@8.18.0): + ajv-formats@3.0.1(ajv@8.17.1): optionalDependencies: - ajv: 8.18.0 + ajv: 8.17.1 ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: @@ -14597,13 +14588,13 @@ snapshots: dependencies: ajv: 8.18.0 - ajv-keywords@3.5.2(ajv@6.14.0): + ajv-keywords@3.5.2(ajv@6.15.0): dependencies: - ajv: 6.14.0 + ajv: 6.15.0 - ajv-keywords@5.1.0(ajv@8.18.0): + ajv-keywords@5.1.0(ajv@8.20.0): dependencies: - ajv: 8.18.0 + ajv: 8.20.0 fast-deep-equal: 3.1.3 ajv@6.14.0: @@ -16029,8 +16020,8 @@ snapshots: fast-json-stringify@5.16.1: dependencies: '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) fast-deep-equal: 3.1.3 fast-uri: 2.4.0 json-schema-ref-resolver: 1.0.1 @@ -16459,7 +16450,7 @@ snapshots: glob@13.0.0: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 minipass: 7.1.3 path-scurry: 2.0.2 @@ -18665,15 +18656,15 @@ snapshots: schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 6.14.0 - ajv-keywords: 3.5.2(ajv@6.14.0) + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) - ajv-keywords: 5.1.0(ajv@8.18.0) + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) schemes@1.4.0: dependencies: