+
{ project.description = desc }"
+ :can-edit-description="
+ asProfile === 'user'
+ && ProjectAuthorized.Manage({ projectPermissions: project.myPerms })
+ "
+ @update:model-value="
+ (desc: string | undefined) => {
+ project.description = desc;
+ }
+ "
@save-description="saveProject"
/>
-
+
-
+
-
+
Vous n'avez pas les permissions pour afficher ces ressources
-
+
-
+
-
+
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: