Files
websitedev/proto/package.json
T
Do SikiandClaude Sonnet 5 1600d99c5d feat(cms): Payload CMS bootstrap — config, MongoDB adapter, admin routes (MITHOME-86)
Alapinstalláció a Payload CMS-re való áttéréshez (EPIC MITHOME-85):

- payload@3.88.0, @payloadcms/next, @payloadcms/db-mongodb,
  @payloadcms/richtext-lexical, graphql, sharp telepítve
- src/payload.config.ts: mongooseAdapter a meglévő MONGODB_URI-ra
  (ugyanaz az adatbázis, mint a Mongoose/mongodb rétegnek), lexical
  editor, PAYLOAD_SECRET env-ből
- src/collections/Users.ts: minimális auth collection — Payload nem
  tud admin felületet renderelni auth collection nélkül. Ez csak a
  bootstraphez kell; a valódi access control/jelszó-politika MITHOME-90
  feladata.
- App Router route group (src/app/(payload)/): admin UI
  ([[...segments]]), REST (api/[...slug]), GraphQL + playground route-ok,
  root layout — a szokásos Payload v3 Next.js integrációs minta szerint
- next.config.ts: withPayload() wrapper a route handler bundling-hoz
- tsconfig.json: @payload-config path alias -> src/payload.config.ts
  (ez oldja fel a webpack/turbopack importot is, nem csak a type-checket)
- PAYLOAD_SECRET env var: generált dev érték a .env.local-ban
  (gitignore-olt), changeme placeholder + generálási megjegyzés a
  staging/production .env példafájlokban, dokumentálva a CLAUDE.md
  env-lista részében

Ismert, még nem javított biztonsági advisory a felvett payload@3.88.0-ban
(GHSA-jg8r-5jh2-v2xj, moderate, CWE-307: az admin account-unlock alapból
más fiókok lockoutját is felold hitelesített usernek) — nincs újabb
patch-elt verzió jelenleg, nyomon követve MITHOME-90 alatt.

Ellenőrizve ezen a commiton: npm run build, npm run lint, tsc --noEmit,
npm test (58 passed) — mind zöld. Az admin bejelentkezés/DB-kapcsolat
élő tesztje MongoDB-t igényel (jelen környezetben Docker daemon nem fut,
ez lokálisan `docker compose -f docker-compose.dev.yml up -d mongodb`
után `npm run dev` + http://localhost:3000/admin-mal ellenőrizhető).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 03:14:51 +02:00

68 lines
2.9 KiB
JSON
Executable File

{
"name": "proto",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build --turbopack",
"start": "next start",
"lint": "eslint",
"test": "jest --config jest.config.unit.js",
"test:watch": "jest --config jest.config.unit.js --watch",
"test:coverage": "jest --config jest.config.unit.js --coverage",
"test:unit": "jest --config jest.config.unit.js",
"test:browser": "jest --config jest.config.js src/__tests__/browser-integration.test.ts",
"test:integration": "INTEGRATION_TESTS=1 jest --config jest.config.integration.js src/__tests__/integration.test.ts",
"test:e2e": "E2E_TESTS=1 jest --config jest.config.integration.js src/__tests__/e2e-docker.test.ts",
"test:smoke:staging": "playwright test --config=playwright.config.ts",
"test:docker": "npm run test:integration && npm run test:e2e",
"test:all": "npm run test:unit && npm run test:browser && npm run test:docker",
"test:report": "npm test -- --json --outputFile=test-results.json --silent && node ../scripts/sync-test-management.js",
"test:report:integration": "npm run test:integration -- --json --outputFile=integration-results.json --silent && node ../scripts/sync-test-management.js --results-path integration-results.json",
"test:sync": "node ../scripts/sync-test-management.js",
"test:gherkin": "npm run test:all -- --json --outputFile=test-results.json --silent && node ../scripts/generate-gherkin-reports.js test-results.json",
"test:update-tc": "node ../scripts/update-tc-issues.js",
"test:full-report": "npm run test:gherkin && npm run test:update-tc",
"docker:dev": "cd .. && docker-compose -f docker-compose.dev.yml up --build",
"docker:dev:down": "cd .. && docker-compose -f docker-compose.dev.yml down",
"docker:dev:logs": "cd .. && docker-compose -f docker-compose.dev.yml logs -f app",
"docker:build": "docker build -t mozdit-app .",
"docker:run": "docker run -p 3000:3000 --env-file .env.local mozdit-app"
},
"dependencies": {
"@payloadcms/db-mongodb": "^3.88.0",
"@payloadcms/next": "^3.88.0",
"@payloadcms/richtext-lexical": "^3.88.0",
"graphql": "^16.14.2",
"mongodb": "^6.5",
"mongoose": "^8.2",
"next": "^16.3.4",
"payload": "^3.88.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"sharp": "^0.35.4"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@playwright/test": "^1.62.1",
"@tailwindcss/postcss": "^4",
"@testing-library/jest-dom": "^6.5",
"@testing-library/react": "^16.0",
"@testing-library/user-event": "^14.5",
"@types/jest": "^29.5",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@types/winston": "^2.4",
"eslint": "^9",
"eslint-config-next": "^16.3.4",
"jest": "^29.7",
"jest-environment-jsdom": "^29.7",
"tailwindcss": "^4",
"typescript": "^5",
"undici": "^7.15.0",
"winston": "^3.11",
"winston-loki": "^6.0"
}
}