CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Canceled after 0s
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Canceled after 0s
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Canceled after 0s
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Canceled after 0s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
239 lines
28 KiB
Markdown
Executable File
239 lines
28 KiB
Markdown
Executable File
# mozdIT Weboldal - Fejlesztési TODO Lista
|
||
|
||
## Projekt Áttekintés
|
||
Next.js 15 alapú weboldal a mozdIT Bt. számára, Docker Compose-szal deployolva.
|
||
|
||
## ⚠️ Projekt Management
|
||
**Elsődleges forrás**: Plane — `MITHOME` projekt (`pm.llmdev.mozdit.hu`, workspace: `developments`)
|
||
**Lokális másolat**: Ez a fájl csak referencia, a Plane az authoritative source
|
||
|
||
---
|
||
|
||
## ✅ Befejezett
|
||
|
||
| Plane | Feladat | Státusz |
|
||
|-------|---------|---------|
|
||
| MITHOME-1 | Repo & Next.js bootstrap — dev szerver | ✅ |
|
||
| MITHOME-2 | Kezdőlap (Hero + USP + Webmail CTA) | ✅ |
|
||
| MITHOME-3 | Rólunk oldal | ✅ |
|
||
| MITHOME-4 | Szolgáltatások oldal | ✅ |
|
||
| MITHOME-5 | Kapcsolat űrlap + API route | ✅ |
|
||
| MITHOME-6 | /api/health endpoint | ✅ |
|
||
| MITHOME-7 | Dockerfile + Docker Compose fejlesztői környezet | ✅ |
|
||
| MITHOME-8 | Tailwind + design system, dark mode, animációk | ✅ |
|
||
| MITHOME-9 | JSON alapú content management rendszer | ✅ |
|
||
| MITHOME-10 | Unit teszt infrastruktúra (Jest + React Testing Library) | ✅ |
|
||
| MITHOME-11 | Contact API — rate limiting, spam detection, validáció | ✅ |
|
||
| MITHOME-12 | Docker stack — Next.js + MongoDB + Loki + Grafana | ✅ |
|
||
| MITHOME-28 | Custom CMS (content-editor.js) UI fejlesztés, Basic Auth & Publikálás gomb | ✅ |
|
||
| MITHOME-29 | Webmail link (mail.mozdit.hu) és Logo finomhangolás | ✅ |
|
||
| MITHOME-30 | Bug: Content Editor sérti a JSON struktúrát és adattípusokat | ✅ |
|
||
| MITHOME-41 | Content Editor: runtime content schema-validáció és atomikus mentés | ✅ |
|
||
| MITHOME-43 | Content Editor: hozzáférésvédelem, CSRF-védelem és auditnapló | ✅ |
|
||
| MITHOME-48 | Cache-Control fejléc a statikus assetekre is kihat (perf regresszió) | ✅ |
|
||
| MITHOME-49 | Elutasított MongoDB client promise cache-elődik | ✅ |
|
||
| MITHOME-50 | X-Forwarded-For spoofing a Content Editor rate limiterében | ✅ |
|
||
| MITHOME-51 | Gyenge és ellentmondásos Mongo defaultok a compose fájlokban | ✅ |
|
||
| MITHOME-52 | Staging banner szöveg kerüljön content JSON-ba | ✅ |
|
||
| MITHOME-53 | deploy.sh: APP_PORT env nem látszik a shell healthcheckjének | ✅ |
|
||
| MITHOME-54 | Staging smoke teszt: console-error ellenőrzés szűrése zajra | ✅ |
|
||
| MITHOME-56 | Content Editor: kilépés (logout) gomb | ✅ |
|
||
| MITHOME-58 | CMS: kilépés megerősítéssel + logós bejelentkező oldal | ✅ |
|
||
| MITHOME-59 | CMS: Publikálás (Publish) Git workflow és hibaüzenet javítása | ✅ |
|
||
| MITHOME-60 | CMS publikálás: deploy csak valódi változásnál + rebase-védelem + tesztek | ✅ |
|
||
| MITHOME-61 | CMS: optimista zárolás (stale-tab felülírás védelem) | ✅ |
|
||
| MITHOME-62 | CMS: Safari-kompatibilis hitelesítés (session-only böngésző, natív ablak nélkül) | ✅ |
|
||
| MITHOME-63 | Deploy-verzió azonosítás: git SHA a CMS-ben és a /api/health-ben | ✅ |
|
||
| MITHOME-64 | CMS: Verziók panel — mentéslista, diff-nézet és egykattintásos visszaállítás | ✅ |
|
||
| MITHOME-67 | CMS: törlés gomb után nem futott le az újraindexelés (ritka tömbök) | ✅ |
|
||
| MITHOME-68 | CMS: saját mentés után ne kapjon 409-et ugyanaz a fül | ✅ |
|
||
| MITHOME-69 | CMS: stabil alsó sáv — ne vándoroljanak a gombok Mentés/Publikálás közben | ✅ |
|
||
| MITHOME-70 | Teljeskörű pre-deploy tesztkészlet egyetlen belépési ponttal | ✅ |
|
||
| MITHOME-71 | CMS verziócímke frissessége: deploy restartolja a CMS-t, editor oldal no-store | ✅ |
|
||
| MITHOME-72 | CMS publish: deploy-indítás naplózása és robust leválasztás systemd alatt | ✅ |
|
||
| MITHOME-73 | Lábléc/Kapcsolat cím CMS-szerkeszthetővé tétele (common.json footer.address) | ✅ |
|
||
| MITHOME-74 | CMS publish deploy: hiányzó cwd — a deploy a gyökérben landolt | ✅ |
|
||
| MITHOME-75 | CMS: gyorsbillentyűk (Ctrl+S Mentés, Ctrl+P Publikálás, Ctrl+Shift+V Verziók, ? súgó) | ✅ |
|
||
| MITHOME-76 | CMS: Interaktív logó szerkesztő (vágás, méretezés, forgatás, margó, korrekció) | ✅ |
|
||
| MITHOME-77 | Fix weboldal higiénia: OG-kép, metadataBase, Header szöveg/nav, holt kód | ✅ |
|
||
| MITHOME-78 | Contact API: mezőhossz-korlátok | ✅ |
|
||
| MITHOME-79 | Nitpick: logger substr/version, next.config turbo deprecation, npm audit | ✅ |
|
||
| MITHOME-80 | Fájlméret-limitek: logo-page/save handler/client refaktor | ✅ |
|
||
| MITHOME-81 | Minőségi gate: tsc --noEmit + lint a pre-deploy készletbe | ✅ |
|
||
| MITHOME-82 | Biztonsági monitoring: detektáló script + cron | ✅ |
|
||
| MITHOME-83 | Partnerek szekció a honlapon (logó + URL, CMS feltöltéssel) | ✅ |
|
||
| MITHOME-84 | Logószerkesztő: háttér áttetszővé tétele (fehér eltávolítás) | ✅ |
|
||
| MITHOME-98 | Bug: dev docker-compose MongoDB URI nem hitelesített (auth hiányzott) | ✅ |
|
||
|
||
---
|
||
|
||
## 🚀 TODO (Soron következő — v1.0.1 roadmap)
|
||
|
||
| Plane | Feladat | Státusz | Megjegyzés |
|
||
|-------|---------|---------|-----------|
|
||
| MITHOME-13 | CI pipeline — lint + unit tesztek + staging deploy trigger | ⏳ | Elsődleges prioritás |
|
||
| MITHOME-14 | Playwright E2E smoke tesztek + Lighthouse CI | ⏳ | Elsődleges prioritás |
|
||
| MITHOME-32 | Bug: staging és production MongoDB URI alapértelmezése nem hitelesített | ⏳ | |
|
||
| MITHOME-33 | Bug: staging és production Loki host-ra hivatkozik Loki service nélkül | ⏳ | |
|
||
| MITHOME-34 | Bug: site config minden környezetben development rekordot olvas és ír | ⏳ | |
|
||
| MITHOME-35 | Bug: aktív Gitea CI nem futtat integration/E2E tesztet és nem indít staging deployt | ⏳ | |
|
||
| MITHOME-36 | Bug: elavult GitHub/Linear workflow továbbra is aktív szinkronizációt végez | ⏳ | |
|
||
| MITHOME-42 | Content Editor: ellenőrzött publikálás és natív production release integráció | ⏳ | |
|
||
| MITHOME-44 | Környezetenkénti Content Release réteg: promotion és rollback | ⏳ | |
|
||
| MITHOME-45 | Content Editor: felhasználónkénti hitelesítés és auditnapló | ⏳ | |
|
||
| MITHOME-46 | Központi IDM/SSO réteg több céges alkalmazáshoz | ⏳ | |
|
||
| MITHOME-47 | Belső vállalati Portal – mozdIT operatív munkaasztal tervezése | ⏳ | |
|
||
|
||
---
|
||
|
||
## 🔄 In Progress
|
||
|
||
| Plane | Feladat | Státusz | Megjegyzés |
|
||
|-------|---------|---------|-----------|
|
||
| MITHOME-17 | Winston logger + Loki integráció | 🔄 | Winston + LokiTransport már implementálva `src/lib/logger.ts`-ben |
|
||
| MITHOME-31 | Bug: kapcsolatfelvételi API sikeres választ ad elveszett üzenetre | 🔄 | |
|
||
|
||
---
|
||
|
||
## 📋 Backlog (v1.0.2+)
|
||
|
||
### EPIC: Payload CMS migráció (MITHOME-85)
|
||
|
||
Cél: az ügyfél önállóan, admin felületen szerkeszthesse a tartalmat — a JSON content rendszer (`proto/src/content/pages/*.json`) és a hozzá épült egyedi CMS (`content-editor.js`) lecserélése Payload CMS-re (Next.js App Router-be épülő, MongoDB adapterrel).
|
||
|
||
| Plane | Feladat | Státusz |
|
||
|-------|---------|---------|
|
||
| MITHOME-85 | **EPIC**: Áttérés Payload CMS-re (admin felület az ügyfélnek) | 📋 |
|
||
| MITHOME-86 | Payload CMS alapinstallálás: config, MongoDB adapter, admin route | ✅ |
|
||
| MITHOME-87 | Home/About/Services/Contact/Common Globals kialakítása és JSON tartalom migrálása | ✅ |
|
||
| MITHOME-88 | LegalPages collection (adatvedelem, hasznalati-feltetelek) migrálása | ✅ |
|
||
| MITHOME-89 | Partners + Media collection: logófeltöltés (MVP) | ✅ |
|
||
| MITHOME-118 | Logószerkesztő Payload admin komponensként — **lezárva, nem valósítjuk meg** (3rd party előfeldolgozás marad) | ❌ |
|
||
| MITHOME-90 | Users collection: ügyfél admin bejelentkezés és access control | ✅ |
|
||
| MITHOME-119 | MFA előkészítés a Users collection-höz (kutatás/terv, nem implementáció) | 📋 |
|
||
| MITHOME-91 | Frontend átállítása Payload Local API-ra, JSON content rendszer kivezetése | ✅ |
|
||
| MITHOME-92 | Draft/preview és verziózás bekapcsolása (Verziók panel utódja) | ✅ |
|
||
| MITHOME-93 | Régi egyedi CMS (content-editor.js) leépítése | ✅ |
|
||
| MITHOME-94 | Opcionális: ContactSubmissions collection a Mongoose modell helyett | ✅ |
|
||
| MITHOME-95 | .agent/ és CLAUDE.md dokumentáció frissítése Payload architektúrára | 📋 |
|
||
| MITHOME-96 | Tesztek migrálása: content schema tesztek helyett Payload collection/global tesztek | 📋 |
|
||
| MITHOME-97 | Deploy/Docker frissítés: PAYLOAD_SECRET, admin bundle, Dockerfile/deploy.sh | ✅ |
|
||
| MITHOME-117 | Vizuális design-védelem: színek/design tokenek változatlansága (MITHOME-91/93 elfogadási kritériuma) | 📋 |
|
||
| MITHOME-102 | ContactSubmissions afterChange hook: PLATFM-2-kompatibilis esemény-emisszió (függ: MITHOME-94) | 📋 |
|
||
| MITHOME-103 | Esemény-emisszió biztonsága: hitelesítés, rate limit, payload-validáció, elérhetetlenség-riasztás | 📋 |
|
||
| MITHOME-105 | MITHOME-31 lezárása: elveszett üzenet bug összekötése a PLATFM-10 triázs pilottal | 📋 |
|
||
| MITHOME-120 | Admin gyorskeresés (teljes szöveges kereső a Payload admin tetején) | ✅ |
|
||
| MITHOME-121 | Partner logók soha nem töltődtek be a publikus oldalon (Media read access) + logo mező opcionálissá tétele | ✅ |
|
||
|
||
### EPIC: Többnyelvűség bevezetése — hu alapértelmezett + en (MITHOME-109)
|
||
|
||
Cél: a weboldal magyar (alapértelmezett, prefix nélkül, pl. `/rolunk`) és angol (`/en/` alatt, pl. `/en/about`) nyelven is elérhető legyen, Payload beépített mező-szintű lokalizációjára építve. Az angol tartalom első körben AI-draft fordítás, admin felületen jelezve, emberi jóváhagyásig. Retroaktívan érinti a már kész MITHOME-87/88-at (localized mezők utólagos bejelölése).
|
||
|
||
| Plane | Feladat | Státusz |
|
||
|-------|---------|---------|
|
||
| MITHOME-109 | **EPIC**: Többnyelvűség bevezetése (hu alapértelmezett + en) | 📋 |
|
||
| MITHOME-110 | Payload localization config bekapcsolása | ✅ |
|
||
| MITHOME-111 | Globals retrofit: localized mezők (Home/About/Services/Contact/Common) | 📋 |
|
||
| MITHOME-112 | LegalPages collection retrofit: localized mezők | 📋 |
|
||
| MITHOME-113 | AI-draft angol tartalom + migrációs script bővítése (en locale seed) | 📋 |
|
||
| MITHOME-114 | Next.js /hu/ + /en/ szimmetrikus prefix routing (egy menetben MITHOME-91-gyel) | ✅ |
|
||
| MITHOME-115 | Nyelvválasztó UI komponens (Header) | 📋 |
|
||
| MITHOME-116 | SEO: hreflang tagek és kétnyelvű sitemap | 📋 |
|
||
|
||
### EPIC: Hermes Agent — kapcsolatfelvételi triázs pilot (MITHOME-99) — **LEZÁRVA, duplikátum**
|
||
|
||
2026-09-10: kiderült, hogy ugyanez a pilot már meg volt tervezve (jobban kidolgozva) a **PLATFM-10** ("Kis kapacitásigényű, felügyelt AI-funkciók pilot") alatt a `PLATFM` projektben. A motor-választás (Hermes vs. alternatívák) külön ADR-ben dől el: **PLATFM-12**. A MITHOME-99 EPIC és a hozzá tartozó MITHOME-100/101/104/106/107/108 issue-k Cancelled státuszban maradnak, Plane-kommenttel a PLATFM-re mutatva. Ami valódi MITHOME-felelősség (a weboldal saját eseményforrása), az a Payload-epic alá került fentebb (MITHOME-102/103/105).
|
||
|
||
| Plane | Feladat | Státusz |
|
||
|-------|---------|---------|
|
||
| MITHOME-15 | Production domain, Nginx reverse proxy és HTTPS | 📋 |
|
||
| MITHOME-16 | Site config migrálása környezetfüggetlen MongoDB tárolásra | 📋 |
|
||
| MITHOME-18 | Adatvédelmi tájékoztató oldal (/adatvedelem) — GDPR | 📋 |
|
||
| MITHOME-19 | Accessibility (A11y) — WCAG 2.1 AA megfelelőség | 📋 |
|
||
| MITHOME-20 | Lighthouse score ≥ 90 minden kategóriában | 📋 |
|
||
| MITHOME-21 | Logging middleware megvalósítása | 📋 |
|
||
| MITHOME-22 | Grafana dashboard konfiguráció | 📋 |
|
||
| MITHOME-23 | SEO optimalizálás | 📋 |
|
||
| MITHOME-24 | Performance optimalizálás | 📋 |
|
||
| MITHOME-25 | Reszponzív design finomítása | 📋 |
|
||
| MITHOME-26 | Analytics integráció (Plausible / GA4) | 📋 |
|
||
| MITHOME-27 | Production környezet beállítása — nat��v Node.js/systemd (Iron szerver) | 📋 |
|
||
| MITHOME-38 | Production: Next.js standalone release, systemd service és rollback | 📋 |
|
||
| MITHOME-39 | Production: közös natív MongoDB több alkalmazás biztonságos kiszolgálására | 📋 |
|
||
| MITHOME-40 | Production MongoDB: automatizált mentés, visszaállítási próba és monitoring | 📋 |
|
||
| MITHOME-55 | Contact API válaszformátum igazítása a projekt konvencióhoz | 📋 |
|
||
| MITHOME-57 | Felhasználói útmutató (CMS + Honlap) Súgó menüponttal | 📋 |
|
||
| MITHOME-65 | CMS: logó cseréje feltöltéssel (🎨 Logó oldal) | 📋 |
|
||
| MITHOME-66 | Copyright sor CMS-szerkeszthetővé tétele (2002–aktuális tartomány) | 📋 |
|
||
|
||
---
|
||
|
||
## Technikai Stack
|
||
- **Frontend**: Next.js 15, TypeScript, Tailwind CSS 4
|
||
- **Backend**: Next.js API Routes
|
||
- **Database**: MongoDB (Mongoose ODM)
|
||
- **Logging**: Winston + Loki
|
||
- **Monitoring**: Grafana
|
||
- **Deployment**: Docker Compose (deploy.sh)
|
||
- **Testing**: Jest, React Testing Library
|
||
- **Project Management**: Plane MITHOME (elsődleges)
|
||
|
||
---
|
||
|
||
## Fejlesztési Parancsok
|
||
|
||
```bash
|
||
# Fejlesztői szerver
|
||
cd proto && npm run dev
|
||
|
||
# Tesztek
|
||
cd proto && npm test
|
||
cd proto && npm run test:all
|
||
|
||
# Build
|
||
cd proto && npm run build
|
||
|
||
# Docker stack
|
||
docker-compose -f docker-compose.dev.yml up -d
|
||
docker-compose -f docker-compose.dev.yml down
|
||
```
|
||
|
||
### Elérhető szolgáltatások (Docker)
|
||
- **Weboldal**: http://localhost:3000
|
||
- **MongoDB UI**: http://localhost:8081 (admin/password123)
|
||
- **Grafana**: http://localhost:3001 (admin/admin123)
|
||
- **Loki**: http://localhost:3100
|
||
|
||
---
|
||
|
||
## Frissítési Napló
|
||
- **2026-09-12**: MITHOME-94 (ContactSubmissions collection) kész — a `/api/contact` a nyers, Payload-on kívüli Mongo collection helyett most a Payload Local API-n keresztül egy `ContactSubmissions` collection-be ír (name/email/subject/message/gdprConsent/status), amit az ügyfél az adminban lát. Rate limiting/validáció/spam-szűrés változatlanul a route-on maradt. Nincs egyedi access-blokk — a Payload alapértelmezése (csak bejelentkezett usernek REST-en) pont a kívánt, a route saját írása a Local API-n (`overrideAccess: true`) nem ütközik ezzel. Talált és dokumentált teszt-gotcha: a next/jest SWC transform lecseréli a `@payload-config` alias-t valódi relatív útvonalra, ezért a mockot is a feloldott útvonalra kell tenni (`jest.mock('../../../payload.config', ...)`), nem az alias-ra. Élesben ellenőrizve mindkét helyen (helyi dev valódi űrlap-küldéssel + staging curl-lal).
|
||
- **2026-09-12**: MITHOME-97 follow-up #3 — a felhasználó kérdésére ("el lehet jutni a honlapra az admin oldalról?") kiderült, hogy nem: az admin navigációban csak belső linkek voltak. Hozzáadva egy "🌐 Honlap megnyitása" link a keresősáv mellé (`QuickSearch.tsx`), ami `NEXT_PUBLIC_SITE_URL`-re mutat — környezetenként automatikusan helyes cím. Élesben ellenőrizve, staging-re deployolva.
|
||
- **2026-09-12**: MITHOME-121 kész — a felhasználó kérésére a Partners `logo` mezője opcionálissá vált (`required: true` törölve; a frontend már eleve kiszűrte a logó nélküli partnereket). Eközben egy valódi, MITHOME-89 óta jelen lévő hiba is előkerült: a `Media` collection sosem kapott explicit `access.read`-et, így a Payload alapértelmezett "csak bejelentkezett user" szabálya miatt a `/api/media/file/*` route mindig 403-at adott — a Next.js image-optimizer emiatt sosem tudta betölteni a partner logókat a publikus oldalon (törött kép ikon, senki nem vette észre). Javítva: `access: { read: () => true }`. Staging-en emellett egy második, kapcsolódó hibát is találtam: a médiafájl fizikai byte-jai elvesztek egy korábbi (a `media_data_staging` volume bevezetése előtti) konténer-újraépítéskor — az árva Media rekord törlésével és a migráció volume-mountolt konténerből való újrafuttatásával helyreállítva. Élesben ellenőrizve mindkét helyen (helyi dev + staging).
|
||
- **2026-09-12**: MITHOME-120 (admin gyorskeresés) kész — a felhasználó kérésére egy keresőmező került a Payload admin minden oldalának tetejére (`admin.components.header`), ami az összes Global + Collection összes szöveges mezőjét átkeresi mindkét locale-ban (kliens-oldali, index nélküli megoldás — `@payloadcms/plugin-search` aránytalan lenne a projekt méretéhez, ugyanaz az érvelés, mint MITHOME-118-nál). Útközbeni gotcha: a Payload komponens-útvonalak `process.cwd()`-hez (nem a config fájl mappájához) relatívak — dokumentálva. Élesben ellenőrizve böngészőben (Global + Collection találat is, helyes navigáció, 0 console hiba), a lint egy valódi hibát is elkapott (ref helyett state kellett). Staging-re is kideployolva.
|
||
- **2026-09-11**: MITHOME-97 follow-up #2 — a felhasználó véletlen elgépelt egy URL-t (`stage.llmdev.mozdit.hu`), amire a Firefox valódinak tűnő "site could be impersonating" figyelmeztetést adott. Kiderült: egy elárvult `cms.stage.llmdev.mozdit.hu` nginx vhost a régi, leépített CMS-re (content-editor.js, port 4001, MITHOME-93) mutatott — a backend leállítva, de a vhost/tanúsítványa élt, nginx fallback-ként adta ezt bármilyen nem egyező `*.mozdit.hu` aldomainre. Megoldás: a vhost most a Payload admin felé proxyz (`/admin`, `/api/`, `/_next/` → staging app 127.0.0.1:8081), minden más redirect a kanonikus `stage.mozdit.hu`-ra — kényelmi admin-URL, meglévő tanúsítvány újrahasznosítva. Dokumentálva: `docs/nginx-vhosts.md` (eddig egyetlen nginx-konfig sem volt nyomon követve a repóban). Élesben ellenőrizve böngészőben (0 console hiba, bejelentkezés is működik ezen a domain-en).
|
||
- **2026-09-11**: MITHOME-97 follow-up — automatikus, ismert Payload admin-felhasználó minden deploy után. `deploy.sh` a healthcheck után meghívja a Payload beépített `POST /api/users/first-register` végpontját `ADMIN_EMAIL`/`ADMIN_PASSWORD` alapján; ez a végpont csak üres `users` collection-nél enged létrehozást (403 minden további hívásra) — idempotens, sosem ír felül meglévő jelszót. Élesben ellenőrizve (friss DB → 200, ismételt hívás → 403, meglévő más-user-es DB → 403), majd staging-en ténylegesen bevezetve: `.env.staging`-hez szerveren generált admin jelszó, két egymást követő `deploy.sh staging` (első létrehozta, második helyesen kihagyta), bejelentkezés-teszt 200.
|
||
- **2026-09-11**: MITHOME-92 (draft/preview + verziózás) kész — Payload versions.drafts minden tartalmi Global/Collection-ön, admin UI Save Draft/Publish + Versions tab, ez a régi CMS "Verziók panel" (MITHOME-64) utódja. Valódi hiba javítva: a `_status` mező defaultValue-ja 'draft', a migrációs script eddig sosem adott át explicit `_status`-t → minden migrált dokumentum draft állapotban landolt; javítva `_status: 'published'` explicit átadásával. Élesben ellenőrizve (draft mentés nem látszik a publikus oldalon, publish után igen).
|
||
- **2026-09-11**: MITHOME-93 (régi egyedi CMS leépítése) kész — `content-editor.js` + `scripts/cms-*.js` + a hozzá tartozó tesztkészlet eltávolítva. Felhasználói kérésre biztonsági mentés készült a törlés előtt: `proto/scripts/export-content-snapshot.ts` (Payload Local API export) → `docs/backups/payload-content-snapshot-*.json`, plusz ellenőrizve, hogy a régi CMS `.content-backups/` mappájának legutóbbi bejegyzése a mai migráció előtti, és minden JSON-szerkesztés saját git commitként is megvan.
|
||
- **2026-09-11**: MITHOME-97 (Deploy/Docker) kész, ÉS staging deploy ténylegesen megtörtént (https://stage.mozdit.hu). Két valódi hiba a Docker build első élő tesztjén: (1) a `(frontend)/[locale]` oldalak SSG-ként (`generateStaticParams`) épültek, build közben hívva a Payload Local API-t — DB nélkül a build elhalt; (2) ennél súlyosabb, hogy SSG mellett egy admin publikálás csak redeploy után látszott volna, ami az önkiszolgáló szerkesztési cél ellen dolgozott. Felhasználói jóváhagyással `force-dynamic`-ra váltva — minden kérés élő Payload-olvasás, build DB-független. `PAYLOAD_SECRET` bekötve staging/prod/dev compose-ba (eddig csak `.env.*.example`-ben létezett, sosem jutott el a konténerig). Named media volume a Payload uploadoknak. Külön javítva: a staging deploy script egy már nem létező `mozdit-content-editor.service`-t indított újra — eltávolítva, a szerveren a valós unit is leállítva/letiltva. Staging: hiányzó `PAYLOAD_SECRET` generálva a szerveren, `deploy.sh staging` lefuttatva, tartalom-migráció lefuttatva a staging DB ellen, élesben ellenőrizve böngészőben (`/hu`, `/en`, `/admin` mind működik).
|
||
- **2026-09-10**: MITHOME-91 + MITHOME-114 (Frontend Payload Local API-ra állítás + hu/en locale routing) kész, egy menetben. URL-stratégia véglegesítve: mindkét nyelv szimmetrikus prefixet kap (`/hu/rolunk`, `/en/about`, lefordított szlögekkel), felülírva a korábbi "hu prefix nélkül" döntést. Minden oldal Payload Local API-ról megy, `@/content` kivezetve az app-kódból. Két valódi, régről létező bug javítva (webmail-linkek, GDPR-checkbox linkje). Talált és javított: Next.js beépített 404-fallback ütközött a (payload) route group-pal — saját `not-found.tsx` oldotta meg, éles production-standalone szerverrel is ellenőrizve (0 console hiba). Build/lint/tsc/teszt zöld. **Folyamat-eltérés**: ez a commit közvetlenül a `main`-re ment feature branch nélkül (egy interrupt miatt kimaradt a branch-nyitás) — a végeredmény megegyezik azzal, mintha branch+merge lett volna, mert eddig is minden branch azonnali fast-forwarddal ment be.
|
||
- **2026-09-10**: MITHOME-90 (Users access control) kész — explicit maxLoginAttempts/lockTime, cookie security, access control minden op-ra. GHSA-jg8r-5jh2-v2xj advisory megvizsgálva és tudatosan elfogadva az egyetlen "admin" szerepkör modellben. Élesben ellenőrizve valódi lockout-teszttel. Follow-up: MITHOME-119 (MFA előkészítés, felhasználói kérésre, külön taszk) — mert a Payloadnak nincs natív MFA-ja, és ez ugyanabba a konvergencia-pontba esik, mint az Auth/IDM (PLATFM-4/PLATFM-11 IDM v1), ezért csak ADR-szintű döntést csinálunk, nem implementációt. PLATFM-1 kapcsolati térkép frissítve ("Auth/IDM/MFA" sor).
|
||
- **2026-09-10**: MITHOME-118 (logószerkesztő Payload-ba építése) lezárva, tudatosan nem valósítjuk meg — determinisztikus képfeldolgozás, nem illik sem a Payload admin-ba (aránytalan karbantartási teher egy ritkán használt funkcióért), sem Hermes/AI-agent munkafolyamatba (az nyelvi/döntési feladatokra való, nem pixel-transzformációra). Döntés: 3rd party előfeldolgozás (pl. remove.bg) marad — ez rögzítve a Partners collection `logo` mezőjének admin leírásában is.
|
||
- **2026-09-10**: MITHOME-110 (Payload localization bekapcsolása) kész — hu alapértelmezett, en, fallback:true. `Common.buttons.*` localized:true (valódi, előremutató teszt-mező, része a MITHOME-111 retrofitnak). Fontos tapasztalat dokumentálva: utólagos localized:true után a migrációs scriptet újra kell futtatni, mert a defaultLocale alatti régi érték "eltűnik". Élesben ellenőrizve admin UI nyelvváltóval.
|
||
- **2026-09-10**: MITHOME-89 (Partners + Media collection MVP) kész. Payload upload (Media) + Partners collection, migrálva a meglévő partner logóval — élesben ellenőrizve (1+1 dokumentum, idempotens, logó thumbnail rendben). A régi crop/rotate/transparent-logo szerkesztő (kliens-oldali canvas, 345 sor) külön ticketre bontva: MITHOME-118. Fontos: a Payload uploadok `proto/media/`-ba kerülnek (gitignore-olva) — staging/production docker-compose-ban perzisztens volume kell (jelezve MITHOME-97-nél).
|
||
- **2026-09-10**: MITHOME-117 létrehozva — explicit elfogadási kritérium, hogy a Payload-átállás (MITHOME-91/93) ne változtasson a publikus oldal jelenlegi színein/design tokenjein (`proto/src/app/(frontend)/globals.css`, márka-színek: Logo Blue #1f4e9d, Logo Orange #e43e26). Before/after screenshot-összehasonlítás lesz az elfogadási feltétel.
|
||
- **2026-09-10**: Többnyelvűség EPIC (MITHOME-109) és 7 alfeladat (MITHOME-110–116) létrehozva Plane-ben — hu (alapértelmezett, prefix nélkül) + en (/en/ alatt), Payload natív lokalizációra építve, AI-draft angol tartalommal. MITHOME-91-hez (Frontend Local API átállás) hozzáadva a MITHOME-114 (locale routing) függőségi megjegyzés — egy menetben érdemes elvégezni.
|
||
- **2026-09-10**: MITHOME-88 (LegalPages collection) kész. Slug-alapú collection (adatvedelem, hasznalati-feltetelek), migrálva `migrate-content-to-payload.ts`-sel (idempotens upsert, kétszeri futtatás után is pontosan 2 dokumentum). Élesben ellenőrizve admin UI-ban.
|
||
- **2026-09-10**: PLATFM-1 ("Platform architektúra és komponensfüggőségi nyilvántartás") kiegészítve egy MITHOME↔PLATFM kapcsolati térképpel (6 konvergencia-pont: AI-triázs, Auth/IDM, Content Release, Termékkatalógus, Messaging, BCDR) — ez a Program-szintű koordináció, nem kell hozzá külön Plane-projekt. A MITHOME-40 (production MongoDB mentés) prioritása medium→urgentre emelve, mert a PLATFM-5 (BCDR) explicit RPO≤15p/RTO≤4ó célt ad a kapcsolatfelvételi üzenetekre.
|
||
- **2026-09-10**: MITHOME/PLATFM rendrakás. Kiderült, hogy a Hermes Agent EPIC (MITHOME-99) duplikálta a PLATFM-10 AI-pilotot (kapcsolatfelvételi triázs) — MITHOME-99/100/101/104/106/107/108 lezárva (Cancelled), PLATFM-10-re hivatkozva. Új ADR nyitva a motor-választáshoz: PLATFM-12. Ami valódi MITHOME-felelősség maradt (ContactSubmissions eseményforrás, PLATFM-2-kompatibilis sémával), az a Payload-epic alá került: MITHOME-102/103/105.
|
||
- **2026-09-10**: Hermes Agent EPIC (MITHOME-99) és 9 alfeladat (MITHOME-100–108) létrehozva Plane-ben — pilot: self-hosted AI agent (Nous Research, MCP-támogatás) a kapcsolatfelvételi triázshoz, kapcsolódva a nyitott MITHOME-31 bughoz és a MITHOME-47 (belső operatív munkaasztal) irányhoz.
|
||
- **2026-09-10**: MITHOME-98 (dev docker-compose Mongo URI auth) kész. A `docker-compose.dev.yml` `app` service-e hitelesítés nélkül próbált kapcsolódni egy authot igénylő MongoDB-hez — élesben reprodukálva (findOne → "Command find requires authentication"), majd javítva és ellenőrizve (POST /api/contact valódi Mongo-írása). Ugyanaz a hibaosztály, mint MITHOME-32, de külön, dev-specifikus ticket, mert MITHOME-32 csak staging/production compose-t fed le. Branch: `fix/dev-mongo-uri-auth`.
|
||
- **2026-09-10**: MITHOME-87 (Home/About/Services/Contact/Common Globals + JSON migráció) kész. Munka közben két, MITHOME-86-hoz visszanyúló hibát javítottunk: (1) a gyökér src/app/layout.tsx ütközött a Payload (payload)/layout.tsx-ével — a webodal saját route-jai átkerültek egy (frontend) route groupba; (2) a kézzel írt importMap.js stub nem volt elég — tsx 4.22.4→4.23.13 (Node 25 kompatibilitás) után legenerálva a valódit. Mindkettő valós böngészőben ellenőrizve (curl nem buktatta fel korábban). `npm run migrate:content` script + `npm test`/lint/build zöld.
|
||
- **2026-09-10**: MITHOME-86 (Payload alapinstalláció) kész: Next.js 15.5→16.3.4 upgrade (Payload peer dep miatt), payload.config.ts + mongooseAdapter + minimális Users collection + admin/API/GraphQL route-ok. Élesben ellenőrizve valódi MongoDB-vel. Ismert nyitott advisory a payload@3.88.0-ban (GHSA-jg8r-5jh2-v2xj), nyomon követve MITHOME-90 alatt. Branch: `feature/payload-cms-setup`.
|
||
- **2026-09-10**: Payload CMS migrációs EPIC (MITHOME-85) és 12 alfeladat (MITHOME-86–97) létrehozva Plane-ben — cél: JSON content + egyedi CMS lecserélése Payload-ra, ügyfél önálló admin szerkesztéshez.
|
||
- **2026-08-17**: Plane sync (`plane-sync.js`). Új MITHOME-27 (Production környezet) Backlog-ba; Custom CMS és Webmail bevéve a Plane-be (28/29, Done). `regenerate()` hiba javítva (szekció-elválasztó).
|
||
- **2026-08-17**: Plane sync futtatása (`plane-sync.js`). MITHOME-15, MITHOME-18 visszaminősítve Backlog-ba (Plane szerint), MITHOME-27/28 megtartva.
|
||
- **2026-04-26**: Átállás Linear → Plane (MITHOME projekt). TODO.md teljes újraírva, 26 issue szinkronizálva.
|
||
- **2025-01-23**: ZEE-29 (Tailwind + layout) és JSON content management befejezése (Linear)
|
||
- **2025-09-05**: Docker fejlesztői környezet implementálva
|