Cartografiere corectă a numelui de câmp între backend și frontend pentru nivelul de acces API
Harta backend securityId→Level Access, isOrganizationOwner→isOwner, memberType→isTeamMember in API route. Fixează dreapta pentru a utiliza EDIT MINTE ACCESS LEV...
Adaugă suport static pentru pagina de oferte atunci când abonamentul API nu este disponibil
Masa nu există încă în producţie. astfel încât API întoarce o eroare. Retrage-te la promovarea hardcoded și planurile de date astfel încât pagina de oferte func...
Actualizare tip ApiPromotie pentru potrivirea cu noua List <Sfring> răspuns suport
planIds aplicabile și aplicabileBillingCycles sunt acum array-uri, nu șiruri JSON.
Extend 18DOFF promotion end date to 2026-12-31
The April 14 end date was causing the offer page to show as expired.
Elimină validarea secretă a webhook-ului redundant, APIService se ocupă de HMAC auth
Validate Forgejo HMAC-SHA256 signature instead of plain secret header
Forgejo sends webhook secret as X-Gitea-Signature / X-Forgejo-Signature HMAC-SHA256 hash, not as a plain header value. Read body, verify HMAC, then forward to S...
Redactează numele secrete ale K8s în afișarea de changelog, înlocuiește cu ***
Statistici server-side pentru totaluri reale, defilare infinită, număr de filtru precis
Stats bar și numărul de pastile de filtrare provin acum de la /api/changelog/public/stats (agregate DB reale, fără număr de pagini încărcate). Mai multe butoane...
Eliminați KamoGamesRoboCluck din proiectele publice changelog, adăugați scripturi backfill
Se adaugă /api/changelog/public/stats obiectivul pentru numărul total pe tip și proiect
Adăugați gindByProjectIn interogare la CommiteLogRepository pentru obiectivul statistici
Utilizați portul 80 pentru serviciul de securitate URL-ul serviciului K8s, nu portul aplicației brute 4201
Truncate comite titluri mai mari de 500 de chars pentru a preveni introducerea de eșecuri DB
Adăugați validarea secretă a webhook pentru a modifica obiectivul jurnal
Apărare în profunzime: validează *** antetul pe SecurityService în plus față de validarea APIService gateway.
Expose changelog webhook through APIService with secret key auth
Adds POST /api/changelog/webhook route that validates *** header before forwarding to SecurityService. Secret configured via CHANGELOG_WEBHOOK_SECRET env var / ...
Mută jurnalul de schimbare în Navigatorul de resurse / subsol și adaugă la toate sitemaps
Actualizează data lansării bannerului de previzualizare până în 20 aprilie
Eliminați JSON de lucru în jurul pentru array-uri plan de abonament
Platforma returnează acum array-uri adecvate în loc de siruri de caractere JSON, astfel încât try/parse/catch back logice nu mai este necesară în plus, pachet; ...
Use List<String> instead of manual JSON strings for promotion plan/cycle IDs
Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...
Abonați-vă Migrați Câmpuri JSON la relații bazate pe entitate @MultiToMany
Înlocuiește coloanele de șir jsonb (PlanIds compatibile, incluseInPlanIds, PlanIds aplicabile, aplicabilBillingCycles) cu JPA propriu-zis @MultyToMany se alătur...
Configurează proiectele publice de schimb cu toate cele 23 de programe Forgejo
Adaugă înlocuiri de text insensibile la caz pentru afișarea jurnalului de schimb
Înlocuiește denumirile de instrumente interne cu denumirile cu care se confruntă publicul (Docs-> Docs, Meet->Meet, Capcha->Capcha, Avatar Creator->Avatar Creat...
Adaugă pagina de jurnal live Change cu UI cronologie, filtre și statistici
Name oferă filtrare de proiect/tip, grupare de date, descrieri expandabile; şi mai multă încărcătură. Added nav and footer links.
Adaugă enum ComiteType, ComiteLog și ComiteLogRepository for changelog system
Adăugați editorul de nivel de acces la setările de membri cu înlocuire de etichetă specifică org
Redenumește CLIENT→MINTE ȘI INTERN→TEAM MINTE în ImageAccessLevelType.ts cu {var} placeholders. Adăugaţi secţiunea de nivel de acces la RolesPermissionsTab cu e...
Adaugă nivelul de acces al membrilor și criteriile de evaluare a statutului proprietarului
Adaugă GET and PACTCH *************** obiective pentru citirea și actualizarea nivelurilor de acces cu aplicarea deplină a permisiunii. Actualizați crearea orga...
Use createOrganizationOwner for admin members, rename INTERNAL to TEAM_MEMBER
Update owner creation to use new createOrganizationOwner method which handles admin role assignment and PRIVILEGED access level automatically. Replace all Image...
Adaugă sistem de nivel de acces pentru membri cu sisteme de promovare a proprietarului și de securitate
Redenumeşte CLIENT→MINTEA ŞI INTERNE→TEAM MEmber in ImageAccessLevelType cu {var} deţinătorii de locuri pentru etichetele specifice org. Mutați nivelul de secur...
Proper image-to-PDF conversion with sizing, centering, and multi-page TIFF
- Images scaled to fill page (max width or height) maintaining aspect ratio - Images centered on the page - Multi-page TIFF: one PDF page per TIFF page - Letter...
Adăugați etape de proces de conversie granulare cu 8 actualizări distincte WebSocket
Etape: descărcare (0-15%) → pregătire (15-20%) → conversie (20-65%) → verificare (65-75%) → depozitare (75-90%) → finalizarea (90-100%) → completă
Handle image files (JPG, PNG, TIFF, etc.) directly via PDFBox instead of Docs
Docs can't convert images to PDF. Added ImageToPdfService that embeds images into a PDF page using PDFBox. Docs is only used for office document formats (DOC, D...
Use imgRepository.findByDat() instead of lazy imgDat.getImages()
Quartz jobs run outside JPA sessions, so lazy collection access on ImgDat.images throws LazyInitializationException. Use explicit repository query instead.
Adaugă căutareByDat interogare la ImgRepository pentru căutarea non-lazy Img
Adăugați logare extinsă la fluxul de conversie sincron, fixați căutarea găleată
Utilizați img.getAssocId() pentru găleată în loc de variabila assocType locale. Adăugați pas cu pas logare pentru descărcare, apel de conversie, și rezultatul.
Arată mesajul de eroare specific pe pagina de editare în loc de eșec generic
Utilizați butonul React JSX în AG Grid cellRenderer în loc de elementul DOM brut
Actualizează toate semnăturile funcției imagisticeApi pentru a accepta șiruri de caractere
Declanșează reconstrucția pentru a ridica biblioteca comună JPQL fix interogare
Name
Hibernat nu poate rezolva nume enum pe deplin calificate în JPQL pe toate versiuni. Pass ImageAssocType.SYSTEM WIDE ca parametru numit în schimb.
Actualizați tipul imgId pentru a string-ul numar pentru siguranța ID-ului CockroachDB, adăugați eroare de logare
Serialize imgId as String to prevent JavaScript precision loss
CockroachDB unique_rowid() IDs exceed Number.MAX_SAFE_INTEGER. Changed imgId from Long to String in UploadDocumentResponse and DocumentMetadata DTOs so Jackson ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
