Files
sshkeyvault/package.json
T
florian.wildeandClaude Opus 5.5 4a23930b54 feat(worker): Worker mit pg-boss, Vorgaenge und Docker-Betrieb (#007)
Die Oberflaeche legt einen Vorgang an und schickt nur dessen ID in die
Warteschlange; der Worker fuehrt ihn aus und haelt Status, Ergebnis
oder Fehler fest. So bleiben lange SSH-Vorgaenge aus dem Webprozess
heraus, und der Fortschritt ist ohne Job-Interna sichtbar.

Kein automatisches Wiederholen: ein halb ausgefuehrter Schreibvorgang
auf einem Host gehoert vor einen Menschen. Fehlertexte aus fremden
Bibliotheken erreichen die Oberflaeche nie.

Dockerfile und Compose fuer den Betrieb: Master-Key als Secret nur im
Worker, Datenbank in einem internen Netz.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:21:41 +02:00

94 lines
3.0 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "sshkv",
"version": "0.0.0",
"private": true,
"type": "module",
"description": "SSHKeyVault – zentrale Verwaltung von SSH-Schluesseln mit Weboberflaeche",
"packageManager": "pnpm@12.6.0",
"engines": {
"node": ">=24"
},
"scripts": {
"dev": "next dev -p 3400",
"build": "next build",
"build:worker": "esbuild src/worker/index.ts --bundle --platform=node --target=node24 --format=esm --outfile=dist/worker.mjs --banner:js=\"$(cat deploy/worker-banner.js)\" --external:@prisma/client --external:@node-rs/argon2 --external:pg-native --external:cpu-features --external:*.node",
"start": "next start -p 3400",
"worker": "tsx src/worker/index.ts",
"lint": "eslint",
"typecheck": "tsc --noEmit",
"format": "prettier --write .",
"format:pruefen": "prettier --check .",
"test": "vitest run",
"test:watch": "vitest",
"test:integration": "vitest run --config vitest.integration.config.mts",
"test:ziele:up": "docker compose -f docker-compose.test.yml up -d --build --wait",
"test:ziele:down": "docker compose -f docker-compose.test.yml down",
"db:up": "docker compose -f docker-compose.dev.yml up -d --wait",
"db:down": "docker compose -f docker-compose.dev.yml down",
"db:migrate": "prisma migrate dev",
"db:seed": "prisma db seed",
"db:generate": "prisma generate",
"issues:sync": "tsx scripts/gitea-issues.ts",
"icons": "node scripts/icons.mjs",
"postinstall": "prisma generate",
"prepare": "husky",
"build:all": "pnpm build && pnpm build:worker"
},
"lint-staged": {
"*.{ts,tsx,mts,mjs}": [
"eslint --fix",
"prettier --write"
],
"*.{json,css,yml,yaml}": [
"prettier --write"
]
},
"dependencies": {
"@fontsource/ibm-plex-sans": "^5.3.0",
"@fontsource/jetbrains-mono": "^5.3.0",
"@fontsource/space-grotesk": "^5.3.0",
"@node-rs/argon2": "^2.2.2",
"@prisma/adapter-pg": "7.10.0",
"@prisma/client": "7.10.0",
"clsx": "^2.1.1",
"jose": "^6.2.12",
"lucide-react": "1.47.0",
"next": "16.3.6",
"openid-client": "^6.8.8",
"pg": "^8.23.1",
"pg-boss": "^12.37.1",
"qrcode": "^1.5.4",
"react": "19.3.0",
"react-dom": "19.3.0",
"ssh2": "^1.17.0",
"zod": "^4.6.5"
},
"devDependencies": {
"@commitlint/cli": "^21.2.3",
"@commitlint/config-conventional": "^21.2.3",
"@playwright/test": "1.63.0",
"@tailwindcss/postcss": "^4.3.3",
"@types/node": "^24.19.2",
"@types/pg": "^8.23.1",
"@types/qrcode": "^1.5.6",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@types/ssh2": "^1.15.6",
"dotenv": "^18.0.7",
"esbuild": "^0.28.2",
"eslint": "^9.39.5",
"eslint-config-next": "16.3.6",
"eslint-config-prettier": "^10.1.8",
"husky": "^9.1.7",
"lint-staged": "^17.6.0",
"prettier": "^3.9.10",
"prisma": "7.10.0",
"sharp": "^0.35.5",
"tailwindcss": "^4.3.3",
"tsx": "^4.23.15",
"typescript": "~6.0.3",
"vite": "8.3.0",
"vitest": "5.0.1"
}
}