From 3858853e7274cf6abd7b1b6408714b3b6d0d73eb Mon Sep 17 00:00:00 2001 From: William Phetsinorath Date: Wed, 22 Apr 2026 17:03:09 +0200 Subject: [PATCH] chore: cleanup unused tooling Signed-off-by: William Phetsinorath --- AGENTS.md | 2 +- ENVIRONMENTS.md | 16 +- README.md | 16 +- apps/client/Dockerfile | 2 +- apps/client/package.json | 22 +- apps/server-nestjs/Dockerfile | 4 +- apps/server-nestjs/package.json | 16 +- apps/server/Dockerfile | 2 +- apps/server/package.json | 11 +- ci/scripts/run-tests.sh | 14 +- docker/docker-compose.ci.yml | 2 +- docker/docker-compose.dev.yml | 21 +- docker/docker-compose.integ.yml | 22 +- docker/docker-compose.local.yml | 20 -- migrations/v9/Dockerfile | 7 - migrations/v9/Migrate v9-FR.md | 42 ---- migrations/v9/Migrate v9.md | 42 ---- migrations/v9/migrate.js | 142 ----------- migrations/v9/package.json | 15 -- package.json | 35 +-- packages/hooks/package.json | 9 +- packages/logger/package.json | 4 +- packages/opencds/Dockerfile | 11 +- packages/shared/package.json | 9 +- packages/test-utils/package.json | 6 +- pgadmin/servers-docker.json | 22 -- pgadmin/servers-kube.json | 22 -- playwright/package.json | 2 +- plugins/argocd/package.json | 4 +- plugins/gitlab/package.json | 4 +- plugins/harbor/package.json | 6 +- plugins/keycloak/package.json | 4 +- plugins/nexus/package.json | 4 +- plugins/sonarqube/package.json | 4 +- plugins/vault/package.json | 4 +- pnpm-lock.yaml | 405 +------------------------------ scripts/update-hosts.sh | 130 ---------- 37 files changed, 102 insertions(+), 1001 deletions(-) delete mode 100644 migrations/v9/Dockerfile delete mode 100644 migrations/v9/Migrate v9-FR.md delete mode 100644 migrations/v9/Migrate v9.md delete mode 100644 migrations/v9/migrate.js delete mode 100644 migrations/v9/package.json delete mode 100644 pgadmin/servers-docker.json delete mode 100644 pgadmin/servers-kube.json delete mode 100755 scripts/update-hosts.sh diff --git a/AGENTS.md b/AGENTS.md index 1602cf9d07..cb04abef56 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -67,7 +67,7 @@ Migrations: standard Prisma Migrate. Major version data migrations in `migration ## Main commands -- `pnpm dev` : local Docker infra (keycloak, postgres, pgadmin) + server/client +- `pnpm dev` : local Docker infra (keycloak, postgres) + server/client - `pnpm docker:dev` : fully containerized with Docker Compose Watch - `pnpm docker:integ` / `pnpm integ` : integration mode (remote env) - `pnpm fullsetup` : full install (deps, prisma generate, build, Docker images) diff --git a/ENVIRONMENTS.md b/ENVIRONMENTS.md index 011939c593..4d585329fb 100644 --- a/ENVIRONMENTS.md +++ b/ENVIRONMENTS.md @@ -87,7 +87,7 @@ graph LR style NAV_L fill:#fff,stroke:#333 ``` -Docker Compose utilisé : [`docker/docker-compose.local.yml`](docker/docker-compose.local.yml) (infrastructure uniquement : Keycloak, PostgreSQL, pgAdmin, OpenCDS mock, **nginx-strangler, et Jaeger**) +Docker Compose utilisé : [`docker/docker-compose.local.yml`](docker/docker-compose.local.yml) (infrastructure uniquement : Keycloak, PostgreSQL, OpenCDS mock, **nginx-strangler, et Jaeger**) Fichiers utilisés : @@ -100,12 +100,12 @@ Les valeurs par défaut, disponibles dans les fichiers `.env-example`, sont suff **Commandes de lancement :** ```bash -# Lance l'infrastructure (Keycloak, PostgreSQL, pgAdmin, OpenCDS mock, nginx-strangler, Jaeger) +# Lance l'infrastructure (Keycloak, PostgreSQL, OpenCDS mock, nginx-strangler, Jaeger) pnpm dev # Puis dans d'autres terminaux, lancer les serveurs et le client manuellement : pnpm --filter server run dev -pnpm --filter server-nestjs run start:dev # nouveau backend NestJS +pnpm --filter server-nestjs run dev # nouveau backend NestJS pnpm --filter client run dev ``` @@ -137,7 +137,7 @@ Dans `apps/server-nestjs`, l'instrumentation OpenTelemetry est initialisée au d Pour vérifier rapidement : 1. Démarrer l'infra : `pnpm dev` (Jaeger inclus). -2. Démarrer `server-nestjs` : `pnpm --filter server-nestjs run start:dev`. +2. Démarrer `server-nestjs` : `pnpm --filter server-nestjs run dev`. 3. Exécuter une requête sur une route backend (depuis le client ou un `curl`). 4. Ouvrir http://localhost:16686 et chercher le service `cloud-pi-native-console`. @@ -154,7 +154,7 @@ Fichiers utilisés : - `apps/server-nestjs/.env` - `apps/server-nestjs/.env.docker` -Cette configuration est déjà plus intéressante, car elle s'appuie sur les conteneurs définis dans [ce docker-compose](docker/docker-compose.dev.yml), qui lance notamment une base de données PostreSQL (ainsi qu'un `pgadmin`), et un serveur Keycloak préchargé avec un royaume qui contient un jeu de données. Le docker-compose contient des instructions `develop` qui permettent soit de synchroniser certains fichiers, soit de carrément reconstruire l'image et de relancer le service concerné. De cette manière vous pouvez développer en laissant les conteneurs tourner. C'est un peu moins performant qu'un travail totalement en local, mais ça a le mérite d'être plus proche du déploiement cible. +Cette configuration est déjà plus intéressante, car elle s'appuie sur les conteneurs définis dans [ce docker-compose](docker/docker-compose.dev.yml), qui lance notamment une base de données PostreSQL et un serveur Keycloak préchargé avec un royaume qui contient un jeu de données. Le docker-compose contient des instructions `develop` qui permettent soit de synchroniser certains fichiers, soit de carrément reconstruire l'image et de relancer le service concerné. De cette manière vous pouvez développer en laissant les conteneurs tourner. C'est un peu moins performant qu'un travail totalement en local, mais ça a le mérite d'être plus proche du déploiement cible. Le `nginx-strangler` et `server-nestjs` sont inclus dans ce docker-compose et démarrent automatiquement. Le `client` pointe vers `nginx-strangler` — le routage API est donc toujours actif, même si aucune route n'est encore basculée vers NestJS (tout passe par `server` en fallback). @@ -162,7 +162,7 @@ Le `nginx-strangler` et `server-nestjs` sont inclus dans ce docker-compose et d ```bash # Lance l'ensemble des conteneurs (client, server, server-nestjs, nginx-strangler, -# keycloak, postgres, pgadmin, opencds mock) avec Docker Compose Watch +# keycloak, postgres, opencds mock) avec Docker Compose Watch pnpm docker:dev ``` @@ -235,10 +235,10 @@ Le `nginx-strangler` et `server-nestjs` sont également inclus dans ce docker-co # Option 1 : Tout conteneurisé, branché sur l'environnement d'intégration pnpm docker:integ -# Option 2 : Seulement l'infra en Docker (postgres, pgadmin), server et client en local avec mode integ +# Option 2 : Seulement l'infra en Docker postgres, server et client en local avec mode integ pnpm integ # Puis dans d'autres terminaux : pnpm --filter server run dev -pnpm --filter server-nestjs run start:dev +pnpm --filter server-nestjs run dev pnpm --filter client run dev ``` diff --git a/README.md b/README.md index 3a89503a2b..8a0cabd085 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ L'application peut se lancer de plusieurs manières, à savoir : __Déploiement local du client et du serveur de la console, le reste dans des conteneurs :__ ```shell -# Lancer keycloak, postgres et pgadmin dans des conteneurs +# Lancer keycloak et postgres dans des conteneurs pnpm run dev # Lancer le serveur dans un shell (la commande va afficher les logs) @@ -142,10 +142,10 @@ pnpm --filter @cpn-console/client run dev # …une fois que vous terminé d'utiliser l'application: -# Supprimer les conteneurs keycloak, postgres et pgadmin +# Supprimer les conteneurs keycloak et postgres pnpm run dev:clean -# Supprimer les conteneurs keycloak, postgres et pgadmin (supprime les volumes docker) +# Supprimer les conteneurs keycloak et postgres (supprime les volumes docker) pnpm run dev:delete ``` @@ -171,7 +171,7 @@ L'application peut se lancer de plusieurs manières, à savoir : __Déploiement local du client et du serveur de la console, le reste dans des conteneurs :__ ```shell -# Lancer postgres et pgadmin dans des conteneurs +# Lancer postgres dans des conteneurs # (le keycloak utilisé devra être configuré dans les .env.integ) pnpm run integ @@ -181,10 +181,10 @@ pnpm --filter @cpn-console/server run integ # Lancer le client pnpm --filter @cpn-console/client run integ -# Supprimer les conteneurs postgres et pgadmin +# Supprimer les conteneurs postgres pnpm run integ:clean -# Supprimer les conteneurs postgres et pgadmin (supprime les volumes docker) +# Supprimer les conteneurs postgres (supprime les volumes docker) pnpm run integ:delete ``` @@ -233,7 +233,6 @@ Les services sont disponibles via les ports suivants : | ---------------------------------------------- | ----------------------- | | Interface graphique *- (client)* | | | Serveur *- (api)* | | -| Interface d'administration de base de données | | | Interface d'administration du serveur keycloak | | *__Notes:__ ⚠ Il est possible que le navigateur utilisé (particulièrement Brave ou Firefox) bloque les cookies utilisés entre le frontend et keycloak, il est nécessaire de désactiver les protections de ce type dans votre navigateur (ex: Brave Shield).* @@ -246,8 +245,7 @@ Les comptes utilisés pendant le développement sont les suivants : | ------------------ | ----------------- | ------------ | | Keycloak *(admin)* | `admin` | `admin` | | Keycloak *(user)* | `test` | `test` | -| PgAdmin | `admin@dso.fr` | `admin` | -| Postgres | `admin@dso.fr` | `admin` | +| Postgres | `admin` | `admin` | > La liste complète des comptes Keycloak pré-créés est disponible [ici](./keycloak/realms/realm-dev.json). diff --git a/apps/client/Dockerfile b/apps/client/Dockerfile index 27dec53c2f..e41c51a2e2 100644 --- a/apps/client/Dockerfile +++ b/apps/client/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app COPY --chown=node:root package.json ./ # Install pnpm version defined in package.json "packageManager" property -RUN npm install --global corepack@latest && corepack enable && corepack enable pnpm +RUN corepack enable COPY --chown=node:root pnpm-workspace.yaml pnpm-lock.yaml ./ COPY --chown=node:root patches ./patches diff --git a/apps/client/package.json b/apps/client/package.json index 3c23cf69d9..434a988320 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -9,21 +9,21 @@ "url": "https://github.com/cloud-pi-native/console" }, "scripts": { - "build": "pnpm run icons && pnpm run type-check && pnpm run build-only", - "build-only": "vite --mode=production build", + "check": "vue-tsc --noEmit -p tsconfig.json", + "prebuild": "pnpm run build:icons", + "build": "vite --mode=production build", + "build:icons": "vue-dsfr-icons -s scripts/icons.js -t src/icon-collections.ts", "build:clean": "rimraf ./dist ./tsconfig.tsbuildinfo", "dev": "vite --mode=development", - "format": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' eslint ./ --fix", - "format:style": "stylelint ./src/**/*.{css,vue} --fix", - "icons": "vue-dsfr-icons -s scripts/icons.js -t src/icon-collections.ts", + "format": "pnpm --filter @cpn-console/client run \"/^format:.*/\"", + "format:eslint": "eslint . --fix", + "format:stylelint": "stylelint ./src/**/*.{css,vue} --fix", "integ": "vite --mode=integration", - "lint": "pnpm run --parallel \"/^lint:.*/\"", - "lint:style": "stylelint ./src/**/*.{css,vue}", - "lint:ts": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' eslint ./", - "preview": "vite preview --port 8080", + "lint": "pnpm --filter @cpn-console/client run \"/^lint:.*/\"", + "lint:eslint": "eslint .", + "lint:stylelint": "stylelint ./src/**/*.{css,vue}", "test": "vitest run", - "test:cov": "vitest run --coverage", - "type-check": "vue-tsc --noEmit -p tsconfig.json" + "test:cov": "vitest run --coverage" }, "dependencies": { "@cpn-console/logger": "workspace:^", diff --git a/apps/server-nestjs/Dockerfile b/apps/server-nestjs/Dockerfile index abcef15d31..002c4f8e3b 100644 --- a/apps/server-nestjs/Dockerfile +++ b/apps/server-nestjs/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app COPY --chown=node:root package.json ./ # Activer pnpm via corepack (version définie dans package.json "packageManager") -RUN npm install --global corepack@latest && corepack enable && corepack enable pnpm +RUN corepack enable # Copier les manifestes workspace (nécessaires pour que pnpm résolve les dépendances) COPY --chown=node:root pnpm-workspace.yaml pnpm-lock.yaml ./ @@ -53,7 +53,7 @@ RUN pnpm --filter @cpn-console/server-nestjs exec prisma generate \ --schema=src/prisma/schema ENTRYPOINT ["pnpm", "--filter", "server-nestjs", "run"] -CMD ["start:dev"] +CMD ["dev"] # Build stage ---------------------------------------------------------------------- FROM dev AS build diff --git a/apps/server-nestjs/package.json b/apps/server-nestjs/package.json index e9459f04e8..04d998aa4f 100644 --- a/apps/server-nestjs/package.json +++ b/apps/server-nestjs/package.json @@ -11,21 +11,19 @@ }, "scripts": { "build": "nest build", + "build:clean": "rimraf ./dist ./tsconfig.tsbuildinfo", "db:generate": "prisma generate", "db:migrate": "prisma migrate dev --name dso", "db:reset": "prisma migrate reset", - "format": "eslint ./ --fix", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", - "start": "nest start", - "start:debug": "nest start --debug --watch", - "start:dev": "nest start --watch", - "start:prod": "node dist/main", + "debug": "nest start --debug --watch", + "dev": "nest start --watch", + "format": "eslint . --fix", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"", + "start": "node dist/main", "pretest": "pnpm run db:generate", "test": "vitest run", - "test:watch": "vitest", "pretest:cov": "pnpm run db:generate", - "test:cov": "vitest run --coverage", - "test:debug": "vitest --inspect" + "test:cov": "vitest run --coverage" }, "dependencies": { "@cpn-console/argocd-plugin": "workspace:^", diff --git a/apps/server/Dockerfile b/apps/server/Dockerfile index 6e27b95fd9..abc206175f 100644 --- a/apps/server/Dockerfile +++ b/apps/server/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app COPY --chown=node:root package.json ./ # Install pnpm version defined in package.json "packageManager" property -RUN npm install --global corepack@latest && corepack enable && corepack enable pnpm +RUN corepack enable COPY --chown=node:root pnpm-workspace.yaml pnpm-lock.yaml ./ COPY --chown=node:root patches ./patches diff --git a/apps/server/package.json b/apps/server/package.json index e48fe73ec4..141ef056d6 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -19,7 +19,6 @@ "build": "tspc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "db:deploy": "prisma migrate deploy", - "db:diff": "prisma migrate diff", "db:generate": "prisma generate", "db:migrate": "prisma migrate dev --name dso", "db:reset": "prisma migrate reset", @@ -27,19 +26,17 @@ "dev": "nodemon --exec 'vite-node src/bootstrap.ts'", "predebug": "pnpm run db:migrate", "debug": "nodemon --exec 'NODE_OPTIONS=\"--inspect-brk=0.0.0.0\" vite-node src/bootstrap.ts'", - "format": "eslint ./ --fix", + "format": "eslint . --fix", "preinteg": "INTEGRATION=true pnpm run db:migrate", "integ": "INTEGRATION=true nodemon --exec 'vite-node src/bootstrap.ts'", - "lint": "eslint ./", - "prepublishOnly": "pnpm run db:generate", - "prestart": "npm run db:deploy", + "lint": "eslint .", + "prestart": "pnpm run db:deploy", "start": "node --enable-source-maps dist/bootstrap.js", "pretest": "pnpm run db:generate", "test": "vitest run", "pretest:cov": "pnpm run db:generate", "test:cov": "vitest run --coverage", - "test:e2e": "pnpm run dev", - "test:e2e-ci": "pnpm run start" + "prepublishOnly": "pnpm run db:generate" }, "dependencies": { "@cpn-console/argocd-plugin": "workspace:^", diff --git a/ci/scripts/run-tests.sh b/ci/scripts/run-tests.sh index cf18c018fe..64b3fe4736 100755 --- a/ci/scripts/run-tests.sh +++ b/ci/scripts/run-tests.sh @@ -13,7 +13,6 @@ PROJECT_DIR="$(git rev-parse --show-toplevel)" # Get versions NODE_VERSION="$(node --version)" -NPM_VERSION="$(npm --version)" DOCKER_VERSION="$(docker --version)" DOCKER_BUILDX_VERSION="$(docker buildx version)" @@ -95,7 +94,6 @@ checkBuildxPlugin () { # Settings printf "\nScript settings: -> node version: ${NODE_VERSION} - -> npm version: ${NPM_VERSION} -> docker version: ${DOCKER_VERSION} -> docker buildx version: ${DOCKER_BUILDX_VERSION} -> run unit tests: ${RUN_UNIT_TESTS} @@ -107,13 +105,13 @@ cd "$PROJECT_DIR" # Run lint if [ "$RUN_LINT" == "true" ]; then - npm run lint + pnpm run lint fi # Run unit tests if [ "$RUN_UNIT_TESTS" == "true" ]; then - npm run test:cov + pnpm run test:cov fi # Run e2e tests @@ -123,8 +121,8 @@ if [ "$RUN_E2E_TESTS" == "true" ]; then printf "\n${red}${i}.${no_color} Launch e2e tests\n" i=$(($i + 1)) - npm --prefix $PROJECT_DIR/packages/shared run build - npm --prefix $PROJECT_DIR/packages/test-utils run build + pnpm --prefix $PROJECT_DIR/packages/shared run build + pnpm --prefix $PROJECT_DIR/packages/test-utils run build if [[ -n "$TAG" ]]; then docker pull ghcr.io/cloud-pi-native/console/server:$TAG && docker tag ghcr.io/cloud-pi-native/console/server:$TAG dso-console/server:ci @@ -133,10 +131,10 @@ if [ "$RUN_E2E_TESTS" == "true" ]; then docker pull ghcr.io/cloud-pi-native/console/nginx-strangler:$TAG && docker tag ghcr.io/cloud-pi-native/console/client:$TAG dso-console/nginx-strangler:ci fi - npm run docker:e2e-ci + pnpm run docker:e2e-ci printf "\n${red}${i}.${no_color} Remove resources\n" i=$(($i + 1)) - npm run docker:e2e-ci:delete + pnpm run docker:e2e-ci:delete fi diff --git a/docker/docker-compose.ci.yml b/docker/docker-compose.ci.yml index acfeeed3b8..2c80e6b9e0 100644 --- a/docker/docker-compose.ci.yml +++ b/docker/docker-compose.ci.yml @@ -30,7 +30,7 @@ services: image: docker.io/postgres:15.3 container_name: dso-console_postgres ports: - - 8081:80 + - 5432:5432 environment: POSTGRES_DB: dso-console-db POSTGRES_USER: admin diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 0be198a191..3a1656d475 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -41,24 +41,6 @@ services: - dso-network attach: false - pgadmin: - restart: unless-stopped - image: docker.io/dpage/pgadmin4:latest - container_name: dso-console_pgadmin - depends_on: - - postgres - volumes: - - ../pgadmin/servers-docker.json:/pgadmin4/servers.json - - dso-pgadmin-data-dev:/var/lib/pgadmin - ports: - - 8081:80 - environment: - PGADMIN_DEFAULT_EMAIL: admin@dso.fr - PGADMIN_DEFAULT_PASSWORD: admin - networks: - - dso-network - attach: false - server: restart: unless-stopped build: @@ -117,7 +99,7 @@ services: target: dev image: dso-console/server-nestjs:dev container_name: dso-console_server-nestjs - command: [start:dev] + command: [dev] ports: - 3001:3001 depends_on: @@ -235,5 +217,4 @@ networks: volumes: dso-keycloak-dsfr-theme: - dso-pgadmin-data-dev: dso-postgres-data-dev: diff --git a/docker/docker-compose.integ.yml b/docker/docker-compose.integ.yml index 64f4da0826..7e0f31bbfd 100644 --- a/docker/docker-compose.integ.yml +++ b/docker/docker-compose.integ.yml @@ -15,25 +15,6 @@ services: - dso-network attach: false - pgadmin: - restart: unless-stopped - image: docker.io/dpage/pgadmin4:latest - container_name: dso-console_pgadmin - depends_on: - postgres: - condition: service_started - volumes: - - ../pgadmin/servers-docker.json:/pgadmin4/servers.json - - dso-pgadmin-data-integ:/var/lib/pgadmin - ports: - - 8081:80 - environment: - PGADMIN_DEFAULT_EMAIL: admin@dso.fr - PGADMIN_DEFAULT_PASSWORD: admin - networks: - - dso-network - attach: false - server: restart: unless-stopped build: @@ -94,7 +75,7 @@ services: target: dev image: dso-console/server-nestjs:dev container_name: dso-console_server-nestjs - command: [start:dev] + command: [dev] depends_on: postgres: condition: service_started @@ -201,5 +182,4 @@ networks: driver: bridge volumes: - dso-pgadmin-data-integ: dso-postgres-data-integ: diff --git a/docker/docker-compose.local.yml b/docker/docker-compose.local.yml index 6609aa9d8c..9e6f02e5f3 100644 --- a/docker/docker-compose.local.yml +++ b/docker/docker-compose.local.yml @@ -77,25 +77,6 @@ services: networks: - dso-network - pgadmin: - restart: unless-stopped - image: docker.io/dpage/pgadmin4:latest - container_name: dso-console_pgadmin - depends_on: - postgres: - condition: service_started - volumes: - - ../pgadmin/servers-docker.json:/pgadmin4/servers.json - - dso-pgadmin-data-local:/var/lib/pgadmin - ports: - - 8081:80 - environment: - PGADMIN_DEFAULT_EMAIL: admin@dso.fr - PGADMIN_DEFAULT_PASSWORD: admin - networks: - - dso-network - attach: false - nginx-strangler: # En mode local (pnpm dev), server et server-nestjs tournent nativement sur la machine. # Le nginx-strangler reste en Docker et atteint les processes natifs via host.docker.internal. @@ -142,5 +123,4 @@ networks: volumes: dso-keycloak-dsfr-theme: dso-keycloak-data-local: - dso-pgadmin-data-local: dso-postgres-data-local: diff --git a/migrations/v9/Dockerfile b/migrations/v9/Dockerfile deleted file mode 100644 index 5365c15bc1..0000000000 --- a/migrations/v9/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM docker.io/node:22.14.0-bullseye-slim -WORKDIR /app -COPY ./package.json package.json -RUN npm i -COPY ./migrate.js migrate.js -CMD [ "npm", "start" ] -USER node diff --git a/migrations/v9/Migrate v9-FR.md b/migrations/v9/Migrate v9-FR.md deleted file mode 100644 index f27cb4619f..0000000000 --- a/migrations/v9/Migrate v9-FR.md +++ /dev/null @@ -1,42 +0,0 @@ -# Migration vers la v9 -## Qu'est-ce qui change ? -Nous avons pris la décision d'abandonner la fonctionnalité d'organisation, dès lors le projet ne sera plus rattaché à rien. Cela entraîne quelques problèmes de suivi des ressources, mais si vous suivez les instructions ci-dessous, tout ira bien. - -Les organisations reviendront à l'avenir, mais sous une forme complètement différente. - -## IMPORTANT -Sauvegardez votre instance gitlab et le kv Vault !!! - -## Préparation des ressources -Depuis la version 8.22.0, le serveur api stocke son numéro de version pour chaque projet provisionné avec succès. - -Avant de passer à la version 9, vous DEVEZ provisionner tous les projets actifs au moins à la version 8.23.0. Si vous ne le faites pas, le script de migration SQL lèvera une exception. - -Un bon suivi des ressources est essentiel. Si un projet ne peut pas être provisionné avec succès, vous pouvez toujours changer sa valeur dans la base de données directement, mais assurez-vous que les balises suivantes sont appliquées sur les ressources kubernetes correspondantes : -- dso/project.id : (namespace, applications, appprojects) -- dso/project.slug : (namespace, applications, appprojects) -- dso/environment.id : (namespace, applications, appprojects) -- dso/repository.id : (namespace, applications) - -## Migration des ressources utilisateurs -Vous pouvez lancer cette image (une seule fois) avant ou après la mise à jour vers la v9. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: migrate-v9 -spec: - containers: - - image: ghcr.io/cloud-pi-native/migration:v9 - name: migrate-v9 - resources: {} - envFrom: - - secretRef: - name: dso-config - restartPolicy: Never -``` -kubectl run --image docker ghcr.io/cloud-pi-native/migration:v9 - -### À propos de Gitlab -Parce que gitlab effectue de nombreuses tâches de manière asynchrone, nous ne pouvons pas supprimer les anciens groupes d'organisation après avoir transféré les groupes de projet. Vous devrez vous connecter manuellement pour les rechercher et les supprimer. Si vous ne le faites pas, ce n'est pas grave... diff --git a/migrations/v9/Migrate v9.md b/migrations/v9/Migrate v9.md deleted file mode 100644 index 9b7e94bacd..0000000000 --- a/migrations/v9/Migrate v9.md +++ /dev/null @@ -1,42 +0,0 @@ -# Migrating to v9 -## What's changing? -We've taken the decision to abandon the organization feature, so the project won't be attached to anything. This is causing some resource tracking problems, but if you follow the instructions below, you'll be fine. - -Organizations will return in future, but in a completely different form. - -## IMPORTANT -Backup your gitlab instance and the vault KV !!! - -## Resource preparation -Since version 8.22.0, the api server stores its version number for each successfully provisioned project. - -Before upgrading to version 9, you MUST provision all active projects to at least version 8.23.0. If you fail to do so, the SQL migration script will throw an exception. - -Good resource tracking is essential. If a project cannot be provisioned successfully, you can always change its value in the database directly, but make sure the following tags are applied on the corresponding kubernetes resources: -- dso/project.id : (namespace, applications, appprojects) -- dso/project.slug : (namespace, applications, appprojects) -- dso/environment.id : (namespace, applications, appprojects) -- dso/repository.id : (namespace, applications) - -## Migrate user resources -You can run this image (once only) before or after upgrading to v9 - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: migrate-v9 -spec: - containers: - - image: ghcr.io/cloud-pi-native/migration:v9 - name: migrate-v9 - resources: {} - envFrom: - - secretRef: - name: dso-config - restartPolicy: Never -``` -kubectl run --image docker ghcr.io/cloud-pi-native/migration:v9 - -### About Gitlab -Because gitlab performs many tasks asynchronously, we can't delete the old organization groups after transferring the project groups. You'll have to log in manually to search for and delete them. If you don't, it's not a big deal... diff --git a/migrations/v9/migrate.js b/migrations/v9/migrate.js deleted file mode 100644 index ed8d048084..0000000000 --- a/migrations/v9/migrate.js +++ /dev/null @@ -1,142 +0,0 @@ -import { logger as baseLogger } from '@cpn-console/logger/hooks' -import { Gitlab } from '@gitbeaker/rest' -import axios from 'axios' - -const logger = baseLogger.child({ scope: 'migration:v9' }) - -export function removeTrailingSlash(url) { - return url?.endsWith('/') - ? url.slice(0, -1) - : url -} - -export function requiredEnv(envName) { - const envValue = process.env[envName] - if (envValue) return envValue - - throw new Error(`env: ${envName} is not defined !`) -} - -const gitlabToken = requiredEnv('GITLAB_TOKEN') -const gitlabPublicUrl = removeTrailingSlash(requiredEnv('GITLAB_URL')) -const projectsRootDir = requiredEnv('PROJECTS_ROOT_DIR') -const gitlabInternalUrl = process.env.GITLAB_INTERNAL_URL - ? removeTrailingSlash(process.env.GITLAB_INTERNAL_URL) - : gitlabPublicUrl - -const vaultPublicUrl = removeTrailingSlash(requiredEnv('VAULT_URL')) - -const axiosInstance = axios.create({ - baseURL: vaultPublicUrl, - headers: { - 'X-Vault-Token': requiredEnv('VAULT_TOKEN'), - }, -}) - -const api = new Gitlab({ token: gitlabToken, host: gitlabInternalUrl }) - -const groupRootSearch = await api.Groups.search(projectsRootDir) -const groupRootId = (groupRootSearch.find(grp => grp.full_path === projectsRootDir))?.id - -const organizationGroups = await api.Groups.allDescendantGroups(groupRootId, { perPage: 300 }) - -logger.info({ organizationGroupsCount: organizationGroups.length }, 'Loaded organization groups') -if (organizationGroups.length > 300) { - throw new Error('increase perPage, you could miss some results') -} - -for (const organizationGroup of organizationGroups) { - if (organizationGroup.name === 'Infra') continue - logger.info({ organizationGroupId: organizationGroup.id, organizationGroupName: organizationGroup.name }, 'Processing organization group') - const projectGroups = await api.Groups.allDescendantGroups(organizationGroup.id, { perPage: 300 }) - if (projectGroups.length > 300) { - throw new Error('increase perPage, you could miss some projects group results') - } - - for (const projectGroup of projectGroups) { - const newName = `${organizationGroup.name}-${projectGroup.name}` - logger.info({ projectGroupId: projectGroup.id, newName }, 'Renaming and transferring project group') - - try { - const renamedGroup = await api.Groups.edit(projectGroup.id, { name: newName, path: newName }) - await api.Groups.transfer(renamedGroup.id, { groupId: groupRootId }) - } catch (error) { - logger.warn({ err: error, projectGroupId: projectGroup.id, organizationGroupId: organizationGroup.id }, 'Could not rename/transfer project group') - } - } -} - -const coreKvName = 'forge-dso' - -const vaultToken = (await axiosInstance.post('/v1/auth/token/create')) - .data.auth.client_token - -function transformPath(path) { - if (!path.startsWith('/')) { - path = `/${path}` - } - const parts = path.split('/') - return `/${parts[1]}-${parts[2]}/${parts.slice(3).join('/')}` -} -const secretsMapper = {} - -async function list(path = '/') { - if (!path.startsWith('/')) - path = `/${path}` - const response = await axiosInstance({ - url: `/v1/${coreKvName}/metadata/${projectsRootDir}${path}`, - headers: { - 'X-Vault-Token': vaultToken, - }, - method: 'list', - validateStatus: code => [200, 404].includes(code), - }) - - if (response.status === 404) return [] - for (const key of response.data.data.keys) { - if (key.endsWith('/')) { - await list(`${path}${key}`) - } else { - secretsMapper[`${path}${key}`] = transformPath(`${path}${key}`) - } - } -} - -try { - await list() - logger.info({ secretsCount: Object.keys(secretsMapper).length }, 'Collected secrets mapping') -} catch (error) { - logger.error({ err: error }, 'Failed while collecting secrets mapping') -} - -for (const [source, destination] of Object.entries(secretsMapper)) { - const secretContent = await axiosInstance({ - url: `/v1/${coreKvName}/data/${projectsRootDir}${source}`, - headers: { - 'X-Vault-Token': vaultToken, - }, - method: 'get', - validateStatus: code => [200, 404].includes(code), - }) - const data = secretContent.data.data.data - - try { - await axiosInstance({ - method: 'POST', - url: `/v1/${coreKvName}/data/${projectsRootDir}${destination}`, - headers: { - 'X-Vault-Token': vaultToken, - }, - data: { data }, - }) - await axiosInstance({ - method: 'delete', - url: `/v1/${coreKvName}/metadata/${projectsRootDir}${source}`, - headers: { - 'X-Vault-Token': vaultToken, - }, - }) - } catch (error) { - logger.error({ err: error, source, destination }, 'Failed while moving secret') - } -} diff --git a/migrations/v9/package.json b/migrations/v9/package.json deleted file mode 100644 index 4b5a6c3a4d..0000000000 --- a/migrations/v9/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "dso-v9-migration", - "version": "1.0.0", - "description": "", - "author": "Cloud Pi Native", - "license": "ISC", - "main": "index.js", - "scripts": { - "start": "node migrate.js" - }, - "dependencies": { - "@gitbeaker/rest": "~40.6.0", - "axios": "^1.7.9" - } -} diff --git a/package.json b/package.json index 6b89e4d2ba..67ef021830 100644 --- a/package.json +++ b/package.json @@ -13,43 +13,44 @@ "npm": ">=11.0.0" }, "scripts": { - "build": "pnpm -r run build", - "build:clean": "pnpm -r run build:clean", - "db:generate": "pnpm -r run db:generate", - "dev": "docker compose -f ./docker/docker-compose.local.yml up -d --remove-orphans && echo '\nStart applications with commands:\n\n pnpm --filter @cpn-console/server run dev\n pnpm --filter @cpn-console/client run dev\n pnpm --filter @cpn-console/server-nestjs run dev\n\nMake sure you provide env variables in `.env` files.'", + "build": "pnpm -r --if-present run build", + "build:clean": "pnpm -r --if-present run build:clean", + "db:generate": "pnpm -r --if-present run db:generate", + "predev": "docker compose -f ./docker/docker-compose.local.yml up -d --remove-orphans", + "dev": "echo '\nStart applications with commands:\n\n pnpm --filter @cpn-console/server run dev\n pnpm --filter @cpn-console/client run dev\n pnpm --filter @cpn-console/server-nestjs run dev\n\nMake sure you provide env variables in `.env` files.'", "dev:clean": "docker compose -f ./docker/docker-compose.local.yml down --remove-orphans", "dev:delete": "docker compose -f ./docker/docker-compose.local.yml down -v --remove-orphans", "docker:dev": "docker compose -f ./docker/docker-compose.dev.yml up -d --remove-orphans; docker compose -f ./docker/docker-compose.dev.yml watch --no-up & docker compose -f ./docker/docker-compose.dev.yml logs server client server-nestjs nginx-strangler -f", - "docker:dev:build": "export COMPOSE_FILE=./docker/docker-compose.dev.yml && ./scripts/run-build.sh $COMPOSE_FILE", + "docker:dev:build": "COMPOSE_FILE=./docker/docker-compose.dev.yml ./scripts/run-build.sh", "docker:dev:clean": "docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans", "docker:dev:delete": "docker compose -f ./docker/docker-compose.dev.yml down -v --remove-orphans", "docker:e2e": "docker compose -f ./docker/docker-compose.dev.yml up ${TAG:+--no-build} -d --remove-orphans; pnpm playwright:test; docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans", "docker:e2e-ci": "docker compose -f ./docker/docker-compose.ci.yml up ${TAG:+--no-build} -d --remove-orphans; pnpm playwright:test", "docker:e2e-ci:delete": "docker compose -f ./docker/docker-compose.ci.yml down -v --remove-orphans", "docker:integ": "docker compose --env-file apps/server/.env.integ -f ./docker/docker-compose.integ.yml up -d; docker compose --env-file apps/server/.env.integ -f ./docker/docker-compose.integ.yml watch --no-up & docker compose --env-file apps/server/.env.integ -f ./docker/docker-compose.integ.yml logs server client server-nestjs nginx-strangler -f", - "docker:integ:build": "export $(cat apps/server/.env.integ | grep -v '#' | xargs) && export COMPOSE_FILE=./docker/docker-compose.integ.yml && cd $(dirname $COMPOSE_FILE) && docker buildx bake --allow=fs.read=.. --file $(basename $COMPOSE_FILE) --load && cd - > /dev/null", + "docker:integ:build": "env $(cat apps/server/.env.integ | grep -v '#' | xargs) COMPOSE_FILE=./docker/docker-compose.integ.yml docker buildx bake --allow=fs.read=.. --file ./docker/docker-compose.integ.yml --load", "docker:integ:clean": "docker compose --env-file apps/server/.env.integ -f ./docker/docker-compose.integ.yml down --remove-orphans", "docker:integ:delete": "docker compose --env-file apps/server/.env.integ -f ./docker/docker-compose.integ.yml down -v --remove-orphans", - "format": "pnpm -r run format", + "docker:prod:build": "pnpm run docker:dev:build", + "format": "pnpm -r --aggregate-output --parallel --if-present run format", "format:root": "eslint . --fix", - "format:style": "pnpm -r run format:style", "fullclean": "sh ./ci/scripts/cleanup.sh", "fullsetup": "sh ./ci/scripts/setup.sh", - "integ": "docker compose -f ./docker/docker-compose.local.yml up -d --remove-orphans postgres pgadmin && echo '\nStart server and client with commands:\n\n pnpm --filter @cpn-console/server run integ\n pnpm --filter @cpn-console/client run integ\n pnpm --filter @cpn-console/server-nestjs run integ\n\nMake sure you provide env variables in `.env.integ` files.'", + "preinteg": "docker compose -f ./docker/docker-compose.local.yml up -d --remove-orphans postgres pgadmin", + "integ": "echo '\nStart applications with commands:\n\n pnpm --filter @cpn-console/server run integ\n pnpm --filter @cpn-console/client run integ\n pnpm --filter @cpn-console/server-nestjs run integ\n\nMake sure you provide env variables in `.env.integ` files.'", "integ:clean": "docker compose -f ./docker/docker-compose.local.yml down --remove-orphans", "integ:delete": "docker compose -f ./docker/docker-compose.local.yml down -v --remove-orphans", - "lint": "pnpm -r run lint", + "lint": "pnpm -r --aggregate-output --parallel --if-present run lint", "lint:root": "eslint .", - "lint:style": "pnpm -r run lint:style", - "lint:ts": "pnpm -r run lint:ts", "playwright:test": "pnpm --dir playwright run playwright:test", "playwright:test:ui": "pnpm --dir playwright run playwright:test:ui", - "playwright:test:integration": "pnpm --dir playwright run playwright:test:integration", + "playwright:test:integration": "pnpm --dir playwright run integ:playwright:test", "prepare": "husky", - "test": "pnpm -r run test", - "test:cov": "pnpm -r run test:cov", - "test:e2e": "pnpm kube:e2e", - "test:e2e-ci": "pnpm kube:prod; pnpm kube:e2e-ci" + "test": "pnpm -r --aggregate-output --parallel --if-present run test", + "test:cov": "pnpm -r --aggregate-output --parallel --if-present run test:cov", + "test:e2e": "pnpm run docker:e2e", + "test:e2e-ci": "pnpm run docker:e2e-ci", + "check": "pnpm -r --aggregate-output --parallel --if-present run check" }, "devDependencies": { "@commitlint/cli": "^20.5.0", diff --git a/packages/hooks/package.json b/packages/hooks/package.json index c14988aeb1..4c78fa78e4 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -22,13 +22,10 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'vite-node src/config.ts'", - "format": "eslint ./ --fix", - "kube:e2e-ci": "echo 'check cache'", - "lint": "eslint ./", + "format": "eslint . --fix", + "lint": "eslint .", "test": "vitest run", - "test:cov": "vitest run --coverage", - "test:e2e-ci": "echo 'check cache'", - "test:watch": "vitest" + "test:cov": "vitest run --coverage" }, "dependencies": { "@cpn-console/logger": "workspace:^", diff --git a/packages/logger/package.json b/packages/logger/package.json index 1019a04619..f2a102bb96 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -30,8 +30,8 @@ "scripts": { "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "pino": "9.14.0", diff --git a/packages/opencds/Dockerfile b/packages/opencds/Dockerfile index 85028aa97a..b2b4ae0416 100644 --- a/packages/opencds/Dockerfile +++ b/packages/opencds/Dockerfile @@ -1,12 +1,9 @@ FROM node:18-alpine -RUN npm install -g @mockoon/cli@9.3.0 - -# Install curl for healthcheck and tzdata for timezone support. -RUN apk --no-cache add curl tzdata - -# Do not run as root. -RUN adduser --shell /bin/sh --disabled-password --gecos "" mockoon +# Install mockoon-cli and dependencies. +RUN corepack install -g @mockoon/cli@9.3.0 && \ + apk --no-cache add curl tzdata && \ + adduser --shell /bin/sh --disabled-password --gecos "" mockoon COPY ./opencds_api.json ./opencds_api.json RUN chown -R mockoon ./opencds_api.json diff --git a/packages/shared/package.json b/packages/shared/package.json index 13963ee5ae..bc5a9aba05 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -22,13 +22,10 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "kube:e2e-ci": "echo 'check cache'", - "lint": "eslint ./", + "format": "eslint . --fix", + "lint": "eslint .", "test": "vitest run", - "test:cov": "vitest run --coverage", - "test:e2e-ci": "echo 'check cache'", - "test:watch": "vitest" + "test:cov": "vitest run --coverage" }, "dependencies": { "@cpn-console/logger": "workspace:*", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 83a00b3e38..d284540ae3 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -18,10 +18,8 @@ "scripts": { "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", - "format": "eslint ./ --fix", - "kube:e2e-ci": "echo 'check cache'", - "lint": "eslint ./", - "test:e2e-ci": "echo 'check cache'" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/shared": "workspace:^", diff --git a/pgadmin/servers-docker.json b/pgadmin/servers-docker.json deleted file mode 100644 index d1710b3648..0000000000 --- a/pgadmin/servers-docker.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "Servers": { - "1": { - "Name": "dso-console-db", - "Group": "Servers", - "Host": "postgres", - "Port": 5432, - "MaintenanceDB": "dso-console-db", - "Username": "admin", - "SSLMode": "prefer", - "SSLCert": "/.postgresql/postgresql.crt", - "SSLKey": "/.postgresql/postgresql.key", - "SSLCompression": 0, - "BGColor": "#EEEDE7", - "FGColor": "#05445E", - "Timeout": 10, - "UseSSHTunnel": 0, - "TunnelPort": "22", - "TunnelAuthentication": 0 - } - } -} diff --git a/pgadmin/servers-kube.json b/pgadmin/servers-kube.json deleted file mode 100644 index 4f16a15fae..0000000000 --- a/pgadmin/servers-kube.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "Servers": { - "1": { - "Name": "dso-console-db", - "Group": "Servers", - "Host": "dso-cpn-console-db-hl", - "Port": 5432, - "MaintenanceDB": "dso-console-db", - "Username": "admin", - "SSLMode": "prefer", - "SSLCert": "/.postgresql/postgresql.crt", - "SSLKey": "/.postgresql/postgresql.key", - "SSLCompression": 0, - "BGColor": "#EEEDE7", - "FGColor": "#05445E", - "Timeout": 10, - "UseSSHTunnel": 0, - "TunnelPort": "22", - "TunnelAuthentication": 0 - } - } -} diff --git a/playwright/package.json b/playwright/package.json index e9b28aae13..23f671df60 100644 --- a/playwright/package.json +++ b/playwright/package.json @@ -15,7 +15,7 @@ "playwright:test:ui": "pnpm exec playwright test --ui", "integ:playwright:test": "INTEGRATION=true pnpm exec playwright test", "integ:playwright:test:ui": "INTEGRATION=true pnpm exec playwright test --ui", - "format": "eslint ./ --fix" + "format": "eslint . --fix" }, "devDependencies": { "@cpn-console/eslint-config": "workspace:^", diff --git a/plugins/argocd/package.json b/plugins/argocd/package.json index 8f27fefb99..41b2619652 100644 --- a/plugins/argocd/package.json +++ b/plugins/argocd/package.json @@ -19,8 +19,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/gitlab-plugin": "workspace:^", diff --git a/plugins/gitlab/package.json b/plugins/gitlab/package.json index 03b54452fb..d366f099e7 100644 --- a/plugins/gitlab/package.json +++ b/plugins/gitlab/package.json @@ -20,8 +20,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/hooks": "workspace:^", diff --git a/plugins/harbor/package.json b/plugins/harbor/package.json index cae9a88ffc..99ddcd216f 100644 --- a/plugins/harbor/package.json +++ b/plugins/harbor/package.json @@ -20,9 +20,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./", - "swagger:generate": "swagger-typescript-api -p https://raw.githubusercontent.com/goharbor/harbor/v2.9.1/api/v2.0/swagger.yaml -o ./src/api --axios" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/hooks": "workspace:^", @@ -41,7 +40,6 @@ "@vitest/coverage-v8": "^2.1.9", "nodemon": "^3.1.14", "rimraf": "^6.1.3", - "swagger-typescript-api": "^13.3.1", "typescript": "^5.9.3", "vite": "^7.3.1", "vitest": "^2.1.9" diff --git a/plugins/keycloak/package.json b/plugins/keycloak/package.json index 224fc85bae..05d623786a 100644 --- a/plugins/keycloak/package.json +++ b/plugins/keycloak/package.json @@ -19,8 +19,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/hooks": "workspace:^", diff --git a/plugins/nexus/package.json b/plugins/nexus/package.json index ac17d90f3a..d893006d48 100644 --- a/plugins/nexus/package.json +++ b/plugins/nexus/package.json @@ -19,8 +19,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/gitlab-plugin": "workspace:^", diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index c6c80a4512..01a6ee5485 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -19,8 +19,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/gitlab-plugin": "workspace:^", diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 52ee533f2a..569f8f867f 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -19,8 +19,8 @@ "build": "tsc", "build:clean": "rimraf ./dist ./types ./tsconfig.tsbuildinfo", "dev": "nodemon --watch src --ext .ts --exec 'pnpm run build'", - "format": "eslint ./ --fix", - "lint": "eslint ./" + "format": "eslint . --fix", + "lint": "eslint ." }, "dependencies": { "@cpn-console/hooks": "workspace:^", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0a6392b5b..d47f0975cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -959,9 +959,6 @@ importers: rimraf: specifier: ^6.1.3 version: 6.1.3 - swagger-typescript-api: - specifier: ^13.3.1 - version: 13.3.1(magicast@0.3.5) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1284,22 +1281,6 @@ packages: peerDependencies: ajv: '>=8' - '@apidevtools/json-schema-ref-parser@14.0.1': - resolution: {integrity: sha512-Oc96zvmxx1fqoSEdUmfmvvb59/KDOnUoJ7s2t7bISyAn0XEz57LCCw8k2Y4Pf3mwKaZLMciESALORLgfe2frCw==} - engines: {node: '>= 16'} - - '@apidevtools/openapi-schemas@2.1.0': - resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} - engines: {node: '>=10'} - - '@apidevtools/swagger-methods@3.0.2': - resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} - - '@apidevtools/swagger-parser@12.1.0': - resolution: {integrity: sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==} - peerDependencies: - openapi-types: '>=7' - '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -1801,23 +1782,6 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/js-api@4.0.0': - resolution: {integrity: sha512-EOArR/6drRzM1/hwOIz1pZw90FL31Ud4Y7hEHGWVtMNmAwS9SrwZ8hMENGlLVXCeGW/kL46p8kX7eO6x9Nmezg==} - peerDependencies: - '@biomejs/wasm-bundler': ^2.3.0 - '@biomejs/wasm-nodejs': ^2.3.0 - '@biomejs/wasm-web': ^2.3.0 - peerDependenciesMeta: - '@biomejs/wasm-bundler': - optional: true - '@biomejs/wasm-nodejs': - optional: true - '@biomejs/wasm-web': - optional: true - - '@biomejs/wasm-nodejs@2.4.6': - resolution: {integrity: sha512-YRhedzOovXDMs+ZKzi/ZcDTefZIMcrp3z0Ruq+abrNb622aYUh/2m1Ooj8BcG4anGUGR6o+dTCbvAEx9vc74hw==} - '@borewit/text-codec@0.2.1': resolution: {integrity: sha512-k7vvKPbf7J2fZ5klGRD9AeKfUvojuZIQ3BT5u7Jfv+puwXkUBUT5PVyMDfJZpy30CBDXGMgw7fguK/lpOMBvgw==} @@ -2421,9 +2385,6 @@ packages: resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@exodus/schemasafe@1.3.0': - resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} - '@faker-js/faker@9.9.0': resolution: {integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} @@ -4098,9 +4059,6 @@ packages: '@types/supertest@6.0.3': resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} - '@types/swagger-schema-official@2.0.25': - resolution: {integrity: sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg==} - '@types/tedious@4.0.14': resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} @@ -4476,14 +4434,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - ajv-formats-draft2019@1.6.1: resolution: {integrity: sha512-JQPvavpkWDvIsBp2Z33UkYCtXCSpW4HD3tAZ+oL4iEFOk9obQZffx0yANwECt6vzr6ET+7HN5czRyqXbnq/u0Q==} peerDependencies: @@ -4749,14 +4699,6 @@ packages: magicast: optional: true - c12@3.3.3: - resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==} - peerDependencies: - magicast: '*' - peerDependenciesMeta: - magicast: - optional: true - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -4780,9 +4722,6 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -4866,9 +4805,6 @@ packages: cjs-module-lexer@2.2.0: resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -4912,10 +4848,6 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -5122,9 +5054,6 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} - de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -5225,10 +5154,6 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.3.2: - resolution: {integrity: sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==} - engines: {node: '>=20'} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5248,10 +5173,6 @@ packages: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} - dotenv@17.3.1: - resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} - engines: {node: '>=12'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -5359,12 +5280,6 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.45.1: - resolution: {integrity: sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==} - - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -5636,10 +5551,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - eta@3.5.0: - resolution: {integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==} - engines: {node: '>=6.0.0'} - etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -6143,9 +6054,6 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http2-client@1.3.5: - resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -7004,11 +6912,6 @@ packages: engines: {node: ^18 || >=20} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} - engines: {node: ^18 || >=20} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -7047,29 +6950,13 @@ packages: node-emoji@1.11.0: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - node-fetch-h2@2.3.0: - resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==} - engines: {node: 4.x || >=6.0.0} - node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-readfiles@0.2.0: - resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} - node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} @@ -7093,22 +6980,6 @@ packages: engines: {node: '>=18'} hasBin: true - oas-kit-common@1.0.8: - resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} - - oas-linter@3.2.2: - resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==} - - oas-resolver@2.5.6: - resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==} - hasBin: true - - oas-schema-walker@1.1.5: - resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==} - - oas-validator@5.0.8: - resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==} - oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -7557,9 +7428,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - reftools@1.1.9: - resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} - regenerate-unicode-properties@10.2.2: resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} @@ -7809,24 +7677,6 @@ packages: resolution: {integrity: sha512-296/Nzi4DmANh93iYBwT4NoYRJuHnKEzefrkSagQbTH/A6NTaB68hSPDjm5IlbI5dx9FXdmtqPcj6N5H+CPm6w==} engines: {node: '>=14'} - should-equal@2.0.0: - resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} - - should-format@3.0.3: - resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} - - should-type-adaptors@1.1.0: - resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} - - should-type@1.4.0: - resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} - - should-util@1.0.1: - resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} - - should@13.2.3: - resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8107,18 +7957,6 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - swagger-schema-official@2.0.0-bab6bed: - resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} - - swagger-typescript-api@13.3.1: - resolution: {integrity: sha512-fSYf55kY0nV2TxS131h35sl+HaLNiZabF+A5ffFC7TCMlHTAVCSlmsh3MPXFaWYk8CcMLSFg4q4vDlWkhBDdAA==} - engines: {node: '>=20'} - hasBin: true - - swagger2openapi@7.0.8: - resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} - hasBin: true - symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} @@ -8141,9 +7979,6 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwind-merge@3.5.0: - resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} - tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -8201,8 +8036,8 @@ packages: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} - tinyexec@1.0.4: - resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} tinyglobby@0.2.15: @@ -8275,9 +8110,6 @@ packages: resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} engines: {node: '>=16'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -8771,9 +8603,6 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -8815,9 +8644,6 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -9013,17 +8839,6 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - yummies@7.10.0: - resolution: {integrity: sha512-BXMmEYzFr/DtSvr1VMvctPVxQ/BZnx35oY2AGs6clkqgWnflsjqfuVle+8rH2uiMenmEf4I3OH9bRRW86yYyyg==} - peerDependencies: - mobx: ^6.12.4 - react: ^18 || ^19 - peerDependenciesMeta: - mobx: - optional: true - react: - optional: true - zod-validation-error@3.5.4: resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} engines: {node: '>=18.0.0'} @@ -9167,25 +8982,6 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - '@apidevtools/json-schema-ref-parser@14.0.1': - dependencies: - '@types/json-schema': 7.0.15 - js-yaml: 4.1.1 - - '@apidevtools/openapi-schemas@2.1.0': {} - - '@apidevtools/swagger-methods@3.0.2': {} - - '@apidevtools/swagger-parser@12.1.0(openapi-types@12.1.3)': - dependencies: - '@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) - call-me-maybe: 1.0.2 - openapi-types: 12.1.3 - '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -9850,12 +9646,6 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/js-api@4.0.0(@biomejs/wasm-nodejs@2.4.6)': - optionalDependencies: - '@biomejs/wasm-nodejs': 2.4.6 - - '@biomejs/wasm-nodejs@2.4.6': {} - '@borewit/text-codec@0.2.1': {} '@cacheable/memory@2.0.8': @@ -10475,8 +10265,6 @@ snapshots: '@eslint/core': 1.1.1 levn: 0.4.1 - '@exodus/schemasafe@1.3.0': {} - '@faker-js/faker@9.9.0': {} '@fastify/accept-negotiator@1.1.0': {} @@ -12395,8 +12183,6 @@ snapshots: '@types/methods': 1.1.4 '@types/superagent': 8.1.9 - '@types/swagger-schema-official@2.0.25': {} - '@types/tedious@4.0.14': dependencies: '@types/node': 24.12.0 @@ -13097,10 +12883,6 @@ snapshots: agent-base@7.1.4: {} - ajv-draft-04@1.0.0(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - ajv-formats-draft2019@1.6.1(ajv@8.18.0): dependencies: ajv: 8.18.0 @@ -13392,23 +13174,6 @@ snapshots: optionalDependencies: magicast: 0.3.5 - c12@3.3.3(magicast@0.3.5): - dependencies: - chokidar: 5.0.0 - confbox: 0.2.4 - defu: 6.1.4 - dotenv: 17.3.1 - exsolve: 1.0.8 - giget: 2.0.0 - jiti: 2.6.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.1.0 - pkg-types: 2.3.0 - rc9: 2.1.2 - optionalDependencies: - magicast: 0.3.5 - cac@6.7.14: {} cac@7.0.0: {} @@ -13438,8 +13203,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - call-me-maybe@1.0.2: {} - callsites@3.1.0: {} camelcase@6.3.0: {} @@ -13513,10 +13276,6 @@ snapshots: cjs-module-lexer@2.2.0: {} - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -13560,8 +13319,6 @@ snapshots: clone@1.0.4: {} - clsx@2.1.1: {} - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -13743,8 +13500,6 @@ snapshots: dateformat@4.6.3: {} - dayjs@1.11.19: {} - de-indent@1.0.2: {} debug@4.4.3(supports-color@5.5.0): @@ -13826,10 +13581,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.3.2: - optionalDependencies: - '@types/trusted-types': 2.0.7 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -13848,8 +13599,6 @@ snapshots: dotenv@17.2.3: {} - dotenv@17.3.1: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14003,10 +13752,6 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.45.1: {} - - es6-promise@3.3.1: {} - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -14468,8 +14213,6 @@ snapshots: esutils@2.0.3: {} - eta@3.5.0: {} - etag@1.8.1: {} eventemitter2@6.4.9: {} @@ -15080,8 +14823,6 @@ snapshots: transitivePeerDependencies: - supports-color - http2-client@1.3.5: {} - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -15537,7 +15278,7 @@ snapshots: listr2: 9.0.5 picomatch: 4.0.3 string-argv: 0.3.2 - tinyexec: 1.0.4 + tinyexec: 1.1.1 yaml: 2.8.2 listr2@9.0.5: @@ -16157,8 +15898,6 @@ snapshots: nanoid@5.0.9: {} - nanoid@5.1.6: {} - natural-compare@1.4.0: {} natural-orderby@5.0.0: {} @@ -16189,26 +15928,14 @@ snapshots: dependencies: lodash: 4.17.23 - node-fetch-h2@2.3.0: - dependencies: - http2-client: 1.3.5 - node-fetch-native@1.6.7: {} - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-readfiles@0.2.0: - dependencies: - es6-promise: 3.3.1 - node-releases@2.0.36: {} nodemon@3.1.14: @@ -16238,37 +15965,6 @@ snapshots: pathe: 2.0.3 tinyexec: 1.0.2 - oas-kit-common@1.0.8: - dependencies: - fast-safe-stringify: 2.1.1 - - oas-linter@3.2.2: - dependencies: - '@exodus/schemasafe': 1.3.0 - should: 13.2.3 - yaml: 1.10.2 - - oas-resolver@2.5.6: - dependencies: - node-fetch-h2: 2.3.0 - oas-kit-common: 1.0.8 - reftools: 1.1.9 - yaml: 1.10.2 - yargs: 17.7.2 - - oas-schema-walker@1.1.5: {} - - oas-validator@5.0.8: - dependencies: - call-me-maybe: 1.0.2 - oas-kit-common: 1.0.8 - oas-linter: 3.2.2 - oas-resolver: 2.5.6 - oas-schema-walker: 1.1.5 - reftools: 1.1.9 - should: 13.2.3 - yaml: 1.10.2 - oauth-sign@0.9.0: {} object-assign@4.1.1: {} @@ -16773,8 +16469,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - reftools@1.1.9: {} - regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -17079,32 +16773,6 @@ snapshots: any-base: 1.1.0 uuid: 9.0.1 - should-equal@2.0.0: - dependencies: - should-type: 1.4.0 - - should-format@3.0.3: - dependencies: - should-type: 1.4.0 - should-type-adaptors: 1.1.0 - - should-type-adaptors@1.1.0: - dependencies: - should-type: 1.4.0 - should-util: 1.0.1 - - should-type@1.4.0: {} - - should-util@1.0.1: {} - - should@13.2.3: - dependencies: - should-equal: 2.0.0 - should-format: 3.0.3 - should-type: 1.4.0 - should-type-adaptors: 1.1.0 - should-util: 1.0.1 - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -17448,51 +17116,6 @@ snapshots: svg-tags@1.0.0: {} - swagger-schema-official@2.0.0-bab6bed: {} - - swagger-typescript-api@13.3.1(magicast@0.3.5): - dependencies: - '@apidevtools/swagger-parser': 12.1.0(openapi-types@12.1.3) - '@biomejs/js-api': 4.0.0(@biomejs/wasm-nodejs@2.4.6) - '@biomejs/wasm-nodejs': 2.4.6 - '@types/swagger-schema-official': 2.0.25 - c12: 3.3.3(magicast@0.3.5) - citty: 0.2.1 - consola: 3.4.2 - es-toolkit: 1.45.1 - eta: 3.5.0 - nanoid: 5.1.6 - openapi-types: 12.1.3 - swagger-schema-official: 2.0.0-bab6bed - swagger2openapi: 7.0.8 - type-fest: 5.4.4 - typescript: 5.9.3 - yaml: 2.8.2 - yummies: 7.10.0 - transitivePeerDependencies: - - '@biomejs/wasm-bundler' - - '@biomejs/wasm-web' - - encoding - - magicast - - mobx - - react - - swagger2openapi@7.0.8: - dependencies: - call-me-maybe: 1.0.2 - node-fetch: 2.7.0 - node-fetch-h2: 2.3.0 - node-readfiles: 0.2.0 - oas-kit-common: 1.0.8 - oas-resolver: 2.5.6 - oas-schema-walker: 1.1.5 - oas-validator: 5.0.8 - reftools: 1.1.9 - yaml: 1.10.2 - yargs: 17.7.2 - transitivePeerDependencies: - - encoding - symbol-observable@4.0.0: {} symbol-tree@3.2.4: {} @@ -17513,8 +17136,6 @@ snapshots: tagged-tag@1.0.0: {} - tailwind-merge@3.5.0: {} - tapable@2.3.0: {} temp-dir@2.0.0: {} @@ -17563,7 +17184,7 @@ snapshots: tinyexec@1.0.2: {} - tinyexec@1.0.4: {} + tinyexec@1.1.1: {} tinyglobby@0.2.15: dependencies: @@ -17623,8 +17244,6 @@ snapshots: dependencies: tldts: 7.0.25 - tr46@0.0.3: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -18277,8 +17896,6 @@ snapshots: web-streams-polyfill@3.3.3: {} - webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} webidl-conversions@7.0.0: {} @@ -18332,11 +17949,6 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 @@ -18597,15 +18209,6 @@ snapshots: yoctocolors-cjs@2.1.3: {} - yummies@7.10.0: - dependencies: - class-variance-authority: 0.7.1 - clsx: 2.1.1 - dayjs: 1.11.19 - dompurify: 3.3.2 - nanoid: 5.1.6 - tailwind-merge: 3.5.0 - zod-validation-error@3.5.4(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/scripts/update-hosts.sh b/scripts/update-hosts.sh deleted file mode 100755 index 0de643ec93..0000000000 --- a/scripts/update-hosts.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/bin/bash - -set -xe -set -o pipefail - -# Colorize terminal -export red='\e[0;31m' -export no_color='\033[0m' - -# Get versions -export DOCKER_VERSION="$(docker --version)" - -# Default -export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" -export HELM_RELEASE_NAME="dso" -export INTEGRATION_ARG="" -export INTEGRATION_ARGS_UTILS="" -export CI_ARGS="" - - -# Declare script helper -export TEXT_HELPER="\nThis script aims to manage a local kubernetes cluster using Kind also known as Kubernetes in Docker. -Following flags are available: - - -c Command tu run. Multiple commands can be provided as a comma separated list. - Available commands are : - create - Create kind cluster. - clean - Delete images in kind cluster (keep only infra resources and ingress controller). - delete - Delete kind cluster. - build - Build, push and load docker images from compose file into cluster nodes. - load - Load docker images from compose file into cluster nodes. - dev - Run application in development mode. - prod - Run application in production mode. - integ - Run application in integration mode (need to combine with 'dev' or 'prod'). - - -d Domains to add in /etc/hosts for local services resolution. Comma separated list. This will require sudo. - - -f Path to the docker-compose file that will be used with Kind. - - -i Install kind. - - -k Path to the kubeconfig to use. - - -t Tag used to deploy application images. - - -h Print script help.\n\n" - -print_help() { - printf "$TEXT_HELPER" -} - -# Parse options -while getopts hc:d:f:ik:t: flag; do - case "${flag}" in - c) - export COMMAND=${OPTARG};; - d) - export DOMAINS=${OPTARG};; - f) - export COMPOSE_FILE=${OPTARG};; - i) - export INSTALL_KIND=true;; - k) - export KUBECONFIG_HOST_PATH=${OPTARG};; - t) - export TAG=${OPTARG};; - h | *) - print_help - exit 0;; - esac -done - - -# Utils -install_kind() { - printf "\n\n${red}[kind wrapper].${no_color} Install kind...\n\n" - if [ "$(uname)" = "Linux" ]; then - export OS=linux - elif [ "$(uname)" = "Darwin" ]; then - export OS=darwin - else - printf "\n\nNo installation available for your system, plese refer to the installation guide\n\n" - exit 0 - fi - - if [ "$(uname -m)" = "x86_64" ]; then - export ARCH=amd64 - elif [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then - export ARCH=arm64 - fi - - curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-$OS-$ARCH" - chmod +x ./kind - mv ./kind /usr/local/bin/kind - - printf "\n\n$(kind --version) installed\n\n" -} - -if [ "$INSTALL_KIND" = "true" ] && [ -z "$(kind --version)" ]; then - install_kind -fi - - -# Script condition -if [ -z "$(kind --version)" ]; then - echo "\nYou need to install kind to run this script.\n" - print_help - exit 1 -fi - -if [[ "$COMMAND" =~ "build" ]] && [ ! -f "$(readlink -f $COMPOSE_FILE)" ]; then - echo "\nDocker compose file $COMPOSE_FILE does not exist.\n" - print_help - exit 1 -fi - - -# Add local services to /etc/hosts -if [ ! -z "$DOMAINS" ]; then - printf "\n\n${red}[kind wrapper].${no_color} Add services local domains to /etc/hosts\n\n" - - export FORMATED_DOMAINS="$(echo "$DOMAINS" | sed 's/,/\ /g')" - if [ "$(grep -c "$FORMATED_DOMAINS" /etc/hosts)" -ge 1 ]; then - printf "\n\n${red}[kind wrapper].${no_color} Services local domains already added to /etc/hosts\n\n" - else - sudo sh -c "echo $'\n\n# Kind\n127.0.0.1 $FORMATED_DOMAINS' >> /etc/hosts" - - printf "\n\n${red}[kind wrapper].${no_color} Services local domains successfully added to /etc/hosts\n\n" - fi -fi