启用 JPA 重置商务 + 电子邮件 + dao.resitories 包
守护进程服务在启动时崩溃 : 所需经费 无法找到的QQ型豆子。 最近添加的 Kamo 共享图书馆服务(应用模式执行) 服务 **************** 过渡性需要存储器 但只服务守护进程 启用 JPA 扫描QQ 镜像 KamoIn...
记录程序Job + NATS 新上传快捷键
- 新建Quartz工作记录程序Job每分每分每分,独立发送 VM 和呼叫批次同时切换服务 **************** 使用 QQ 键 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}我还以为是盖子呢 - 新的记录接收客户...
Global VOIP sync job (admin-tunable interval)
VoipGlobalSyncJob ticks every minute and, on each tick, reads the SystemConfiguration singleton to decide whether a global sync is due: - If voipSyncEnabled is ...
重建用于 kamo- shared- library 更新( remove Organization Type, 添加为 Toplevel)
重建用于 kamo- shared- library 更新( remove Organization Type, 添加为 Toplevel)
Rebuild for kamo-shared-library update (CREATE_CHILD_ORG right + apply-to flags)
Pulls the new RoleRightType.CREATE_CHILD_ORG (id 131), the three apply-to flags on ChildOrgSecurityModel, the two 13-arg service overloads, and the AppliedModel...
Rebuild for kamo-shared-library update (appConfig upsert-only fix)
Pulls the hardened **************** that no longer deletes appConfig rows whose service types are absent from the caller's payload — prevents silent data loss w...
为 kamo- share- library 更新而重建( 有效的- feature 解析器)
取出新的应用模式强制服务方法(compute AvailabilitysMap, isAppive Enabled,得到App-Enabled AppTypes, Ccompute Effective Features),因此当它查询或g特性状态时,这个服务可以使用模型化的特性解析.
Rebuild for kamo-shared-library update (applied-model enforcement + appConfigs + isPrivate)
Triggers a rebuild so this service pulls the updated kamo-shared-library containing AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, Servi...
为 Kamo- 共享- 图书馆更新而重建( 运行时部队规则 + DEFAULT 在会员权利应用服务中倒置)
触发重建, 因此此服务可以拾取应用模板力规则的更新的 QQ 和 DEFAULT- template 倒计时器 .
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Add Quartz job for automated lead intake payload processing
Adds LeadIntakeProcessingJob that runs every minute to process queued raw payloads from 3rd-party vendors. Applies configured field mappings, transformations (t...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
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.
Add NATS progress publishing for background document conversion
ConversionProgressPublisher publishes real-time progress events for each conversion stage. DocumentConversionJob and ThumbnailGenerationJob now emit progress fo...
Add document conversion and thumbnail generation background jobs
- DocumentConversionJob: polls for unconverted files, sends to ConversionService, stores converted PDFs with deduplication - ThumbnailGenerationJob: renders f...
Update WebinarReminderJob to use renamed repository method
Calls **************** with a 24-hour max window instead of the removed findWebinarsWithDueReminders method.
Add webinar reminder job with NATS event publishing
Adds WebinarReminderJob (runs every minute) that checks for due webinar reminders based on configured intervals, publishes daemon.webinar.reminder events via NA...
Add OG image warmup job for kamocrm.com
Quartz-scheduled job that pre-fetches opengraph-image URLs daily at 4 AM to keep the marketing site's OG image cache warm. Covers 23 static routes and 7 blog po...
Enable redirect following for MaxMind download
MaxMind returns 302 redirect to the actual file. HttpClient wasn't following it, causing the sync to fail with HTTP 302.
Add SecurityConfig to permit daemon trigger and actuator endpoints
Spring Security defaults blocked all endpoints with 401. Added explicit config to permit /api/daemon/** and /actuator/** without authentication.
Add manual job trigger controller with duplicate execution guard
POST /api/daemon/trigger/{jobName} triggers any Quartz job immediately. Returns 409 if the job is already executing. GET /api/daemon/trigger/status returns runn...
Temporarily set geolite sync cron to every 2 minutes for testing
Will revert to weekly Sunday 3 AM after confirming sync works.
Rewrite GeoLite sync — correct download URL, streaming hash, batch inserts
- Use MaxMind's current permalink API with HTTP Basic Auth (account-id + license-key) - Streaming SHA-256 instead of Files.readAllBytes (prevents OOM on 100MB+ ...
为 MaxMind IP 对位置数据库添加 GeoLite2 同步任务
下载 MaxMind 的Quartz 排期工作( 每周星期天 3 AM) GeoLite2-City-CSV, 剖析 IPv4/IPv6 个块和位置, 装入 进行原子表交换 包括SHA-256DUP, 拉链滑行保护 同步状态跟踪 添加 *** 秘密提及K8s的部署.
Update calendar event and integration ID references from Long to UUID
Include memberId in sync complete NATS messages
SyncCompletePublisher now accepts optional memberId parameter, and ContactSyncJob passes it from the integration's member reference. This enables EmailService t...
