@zintrust/core 0.1.41 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/Controllers/AuthController.d.ts +10 -0
- package/app/Controllers/AuthController.d.ts.map +1 -0
- package/app/Controllers/AuthController.js +201 -0
- package/app/Controllers/UserController.d.ts +9 -0
- package/app/Controllers/UserController.d.ts.map +1 -0
- package/app/Controllers/UserController.js +8 -0
- package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
- package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
- package/app/Controllers/UserQueryBuilderController.js +404 -0
- package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
- package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
- package/app/Middleware/ProfilerMiddleware.js +47 -0
- package/app/Middleware/index.d.ts +59 -0
- package/app/Middleware/index.d.ts.map +1 -0
- package/app/Middleware/index.js +215 -0
- package/app/Models/Post.d.ts +14 -0
- package/app/Models/Post.d.ts.map +1 -0
- package/app/Models/Post.js +27 -0
- package/app/Models/User.d.ts +14 -0
- package/app/Models/User.d.ts.map +1 -0
- package/app/Models/User.js +44 -0
- package/app/Schedules/JobTracking.d.ts +3 -0
- package/app/Schedules/JobTracking.d.ts.map +1 -0
- package/app/Schedules/JobTracking.js +13 -0
- package/app/Schedules/index.d.ts +2 -0
- package/app/Schedules/index.d.ts.map +1 -0
- package/app/Schedules/index.js +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
- package/app/Toolkit/Notification/sendSms.d.ts +6 -0
- package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSms.js +5 -0
- package/app/Types/controller.d.ts +42 -0
- package/app/Types/controller.d.ts.map +1 -0
- package/app/Types/controller.js +1 -0
- package/config/broadcast.d.ts +38 -0
- package/config/broadcast.d.ts.map +1 -0
- package/config/broadcast.js +37 -0
- package/config/cache.d.ts +40 -0
- package/config/cache.d.ts.map +1 -0
- package/config/cache.js +39 -0
- package/config/database.d.ts +58 -0
- package/config/database.d.ts.map +1 -0
- package/config/database.js +65 -0
- package/config/mail.d.ts +51 -0
- package/config/mail.d.ts.map +1 -0
- package/config/mail.js +69 -0
- package/config/middleware.d.ts +11 -0
- package/config/middleware.d.ts.map +1 -0
- package/config/middleware.js +30 -0
- package/config/notification.d.ts +33 -0
- package/config/notification.d.ts.map +1 -0
- package/config/notification.js +33 -0
- package/config/queue.d.ts +55 -0
- package/config/queue.d.ts.map +1 -0
- package/config/queue.js +87 -0
- package/config/storage.d.ts +59 -0
- package/config/storage.d.ts.map +1 -0
- package/config/storage.js +59 -0
- package/config/workers.d.ts +54 -0
- package/config/workers.d.ts.map +1 -0
- package/config/workers.js +83 -0
- package/package.json +27 -5
- package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
- package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
- package/packages/cloudflare-d1-proxy/src/index.js +387 -0
- package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
- package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
- package/packages/cloudflare-kv-proxy/src/index.js +325 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
- package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
- package/packages/queue-monitor/src/connection.d.ts +3 -0
- package/packages/queue-monitor/src/connection.d.ts.map +1 -0
- package/packages/queue-monitor/src/connection.js +1 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
- package/packages/queue-monitor/src/dashboard-ui.js +997 -0
- package/packages/queue-monitor/src/driver.d.ts +15 -0
- package/packages/queue-monitor/src/driver.d.ts.map +1 -0
- package/packages/queue-monitor/src/driver.js +115 -0
- package/packages/queue-monitor/src/index.d.ts +71 -0
- package/packages/queue-monitor/src/index.d.ts.map +1 -0
- package/packages/queue-monitor/src/index.js +296 -0
- package/packages/queue-monitor/src/metrics.d.ts +27 -0
- package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
- package/packages/queue-monitor/src/metrics.js +92 -0
- package/packages/queue-monitor/src/worker.d.ts +8 -0
- package/packages/queue-monitor/src/worker.d.ts.map +1 -0
- package/packages/queue-monitor/src/worker.js +35 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
- package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
- package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
- package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
- package/packages/queue-redis/src/RedisPublishClient.js +251 -0
- package/packages/queue-redis/src/index.d.ts +12 -0
- package/packages/queue-redis/src/index.d.ts.map +1 -0
- package/packages/queue-redis/src/index.js +10 -0
- package/packages/queue-redis/src/register.d.ts +6 -0
- package/packages/queue-redis/src/register.d.ts.map +1 -0
- package/packages/queue-redis/src/register.js +21 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
- package/packages/workers/src/AnomalyDetection.d.ts +107 -0
- package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
- package/packages/workers/src/AnomalyDetection.js +329 -0
- package/packages/workers/src/AutoScaler.d.ts +128 -0
- package/packages/workers/src/AutoScaler.d.ts.map +1 -0
- package/packages/workers/src/AutoScaler.js +425 -0
- package/packages/workers/src/BroadcastWorker.d.ts +24 -0
- package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
- package/packages/workers/src/BroadcastWorker.js +24 -0
- package/packages/workers/src/CanaryController.d.ts +104 -0
- package/packages/workers/src/CanaryController.d.ts.map +1 -0
- package/packages/workers/src/CanaryController.js +424 -0
- package/packages/workers/src/ChaosEngineering.d.ts +80 -0
- package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
- package/packages/workers/src/ChaosEngineering.js +229 -0
- package/packages/workers/src/CircuitBreaker.d.ts +107 -0
- package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
- package/packages/workers/src/CircuitBreaker.js +374 -0
- package/packages/workers/src/ClusterLock.d.ts +91 -0
- package/packages/workers/src/ClusterLock.d.ts.map +1 -0
- package/packages/workers/src/ClusterLock.js +397 -0
- package/packages/workers/src/ComplianceManager.d.ts +178 -0
- package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
- package/packages/workers/src/ComplianceManager.js +556 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
- package/packages/workers/src/DatacenterOrchestrator.js +404 -0
- package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
- package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
- package/packages/workers/src/DeadLetterQueue.js +544 -0
- package/packages/workers/src/HealthMonitor.d.ts +43 -0
- package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
- package/packages/workers/src/HealthMonitor.js +312 -0
- package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
- package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/MultiQueueWorker.js +282 -0
- package/packages/workers/src/NotificationWorker.d.ts +24 -0
- package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
- package/packages/workers/src/NotificationWorker.js +23 -0
- package/packages/workers/src/Observability.d.ts +154 -0
- package/packages/workers/src/Observability.d.ts.map +1 -0
- package/packages/workers/src/Observability.js +538 -0
- package/packages/workers/src/PluginManager.d.ts +124 -0
- package/packages/workers/src/PluginManager.d.ts.map +1 -0
- package/packages/workers/src/PluginManager.js +392 -0
- package/packages/workers/src/PriorityQueue.d.ts +118 -0
- package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
- package/packages/workers/src/PriorityQueue.js +276 -0
- package/packages/workers/src/ResourceMonitor.d.ts +165 -0
- package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
- package/packages/workers/src/ResourceMonitor.js +632 -0
- package/packages/workers/src/SLAMonitor.d.ts +111 -0
- package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
- package/packages/workers/src/SLAMonitor.js +274 -0
- package/packages/workers/src/WorkerFactory.d.ts +218 -0
- package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
- package/packages/workers/src/WorkerFactory.js +2253 -0
- package/packages/workers/src/WorkerInit.d.ts +86 -0
- package/packages/workers/src/WorkerInit.d.ts.map +1 -0
- package/packages/workers/src/WorkerInit.js +307 -0
- package/packages/workers/src/WorkerMetrics.d.ts +116 -0
- package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
- package/packages/workers/src/WorkerMetrics.js +570 -0
- package/packages/workers/src/WorkerRegistry.d.ts +152 -0
- package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
- package/packages/workers/src/WorkerRegistry.js +396 -0
- package/packages/workers/src/WorkerShutdown.d.ts +70 -0
- package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
- package/packages/workers/src/WorkerShutdown.js +185 -0
- package/packages/workers/src/WorkerVersioning.d.ts +108 -0
- package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
- package/packages/workers/src/WorkerVersioning.js +300 -0
- package/packages/workers/src/config/workerConfig.d.ts +5 -0
- package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
- package/packages/workers/src/config/workerConfig.js +25 -0
- package/packages/workers/src/createQueueWorker.d.ts +26 -0
- package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/createQueueWorker.js +367 -0
- package/packages/workers/src/dashboard/index.d.ts +2 -0
- package/packages/workers/src/dashboard/index.d.ts.map +1 -0
- package/packages/workers/src/dashboard/index.js +1 -0
- package/packages/workers/src/dashboard/types.d.ts +123 -0
- package/packages/workers/src/dashboard/types.d.ts.map +1 -0
- package/packages/workers/src/dashboard/types.js +1 -0
- package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
- package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
- package/packages/workers/src/dashboard/workers-api.js +738 -0
- package/packages/workers/src/helper/index.d.ts +6 -0
- package/packages/workers/src/helper/index.d.ts.map +1 -0
- package/packages/workers/src/helper/index.js +10 -0
- package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
- package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerApiController.js +313 -0
- package/packages/workers/src/http/WorkerController.d.ts +375 -0
- package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerController.js +1454 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
- package/packages/workers/src/index.d.ts +47 -0
- package/packages/workers/src/index.d.ts.map +1 -0
- package/packages/workers/src/index.js +48 -0
- package/packages/workers/src/routes/workers.d.ts +13 -0
- package/packages/workers/src/routes/workers.d.ts.map +1 -0
- package/packages/workers/src/routes/workers.js +126 -0
- package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
- package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
- package/packages/workers/src/storage/WorkerStore.js +259 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
- package/packages/workers/src/telemetry/index.d.ts +16 -0
- package/packages/workers/src/telemetry/index.d.ts.map +1 -0
- package/packages/workers/src/telemetry/index.js +60 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
- package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
- package/packages/workers/src/type.d.ts +77 -0
- package/packages/workers/src/type.d.ts.map +1 -0
- package/packages/workers/src/type.js +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
- package/packages/workers/src/ui/router/ui.d.ts +4 -0
- package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
- package/packages/workers/src/ui/router/ui.js +208 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
- package/packages/workers/src/ui/types/worker-ui.js +5 -0
- package/routes/api.d.ts +7 -0
- package/routes/api.d.ts.map +1 -0
- package/routes/api.js +129 -0
- package/routes/broadcast.d.ts +9 -0
- package/routes/broadcast.d.ts.map +1 -0
- package/routes/broadcast.js +27 -0
- package/routes/storage.d.ts +4 -0
- package/routes/storage.d.ts.map +1 -0
- package/routes/storage.js +35 -0
- package/src/boot/bootstrap.js +27 -11
- package/src/boot/registry/runtime.d.ts.map +1 -1
- package/src/boot/registry/runtime.js +11 -0
- package/src/cache/Cache.d.ts.map +1 -1
- package/src/cache/Cache.js +40 -8
- package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
- package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
- package/src/cache/drivers/KVRemoteDriver.js +259 -44
- package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
- package/src/cache/drivers/MemoryDriver.js +10 -2
- package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
- package/src/cache/drivers/RedisDriver.js +256 -33
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +12 -0
- package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
- package/src/cli/commands/ConfigCommand.js +3 -5
- package/src/cli/commands/D1LearnCommand.d.ts +9 -0
- package/src/cli/commands/D1LearnCommand.d.ts.map +1 -0
- package/src/cli/commands/D1LearnCommand.js +143 -0
- package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/D1MigrateCommand.js +55 -16
- package/src/cli/commands/InitContainerCommand.d.ts.map +1 -1
- package/src/cli/commands/InitContainerCommand.js +30 -15
- package/src/cli/commands/InitEcosystemCommand.d.ts +6 -0
- package/src/cli/commands/InitEcosystemCommand.d.ts.map +1 -0
- package/src/cli/commands/InitEcosystemCommand.js +51 -0
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateCommand.js +78 -36
- package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateWorkerCommand.js +36 -2
- package/src/cli/commands/NewCommand.d.ts.map +1 -1
- package/src/cli/commands/NewCommand.js +33 -0
- package/src/cli/commands/PutCommand.d.ts +6 -0
- package/src/cli/commands/PutCommand.d.ts.map +1 -0
- package/src/cli/commands/PutCommand.js +173 -0
- package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -1
- package/src/cli/commands/QueueRecoveryCommand.js +113 -14
- package/src/cli/commands/ScheduleListCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleListCommand.js +62 -0
- package/src/cli/commands/ScheduleRunCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleRunCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleRunCommand.js +32 -0
- package/src/cli/commands/ScheduleStartCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleStartCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleStartCommand.js +40 -0
- package/src/cli/commands/SecretsCommand.d.ts.map +1 -1
- package/src/cli/commands/SecretsCommand.js +2 -2
- package/src/cli/commands/StartCommand.d.ts.map +1 -1
- package/src/cli/commands/StartCommand.js +23 -1
- package/src/cli/commands/schedule/ScheduleCliSupport.d.ts +6 -0
- package/src/cli/commands/schedule/ScheduleCliSupport.d.ts.map +1 -0
- package/src/cli/commands/schedule/ScheduleCliSupport.js +55 -0
- package/src/cli/config/ConfigManager.d.ts.map +1 -1
- package/src/cli/config/ConfigManager.js +8 -1
- package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
- package/src/cli/d1/D1SqlMigrations.js +11 -1
- package/src/cli/d1/WranglerConfig.d.ts.map +1 -1
- package/src/cli/d1/WranglerConfig.js +34 -2
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
- package/src/cli/services/VersionChecker.d.ts.map +1 -1
- package/src/cli/services/VersionChecker.js +5 -1
- package/src/cli/utils/DatabaseCliUtils.d.ts.map +1 -1
- package/src/cli/utils/DatabaseCliUtils.js +6 -1
- package/src/cli/utils/DistPackager.d.ts.map +1 -1
- package/src/cli/utils/DistPackager.js +25 -0
- package/src/cli/utils/EnvFileLoader.d.ts +1 -0
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
- package/src/cli/utils/EnvFileLoader.js +47 -14
- package/src/cli.d.ts +5 -0
- package/src/cli.d.ts.map +1 -0
- package/src/cli.js +4 -0
- package/src/collections/index.d.ts +2 -2
- package/src/collections/index.d.ts.map +1 -1
- package/src/collections/index.js +1 -1
- package/src/common/RemoteSignedJson.d.ts.map +1 -1
- package/src/common/RemoteSignedJson.js +58 -25
- package/src/common/utility.d.ts.map +1 -1
- package/src/common/utility.js +2 -6
- package/src/config/cache.js +1 -1
- package/src/config/cloudflare.d.ts.map +1 -1
- package/src/config/cloudflare.js +19 -8
- package/src/config/env.d.ts +7 -0
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +10 -2
- package/src/config/queue.js +1 -1
- package/src/functions/cloudflare.d.ts.map +1 -1
- package/src/functions/cloudflare.js +4 -2
- package/src/helper/index.d.ts +225 -0
- package/src/helper/index.d.ts.map +1 -0
- package/src/helper/index.js +347 -0
- package/src/index.d.ts +3 -6
- package/src/index.d.ts.map +1 -1
- package/src/index.js +7 -9
- package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
- package/src/middleware/JwtAuthMiddleware.js +11 -5
- package/src/migrations/MigrationDiscovery.d.ts.map +1 -1
- package/src/migrations/MigrationDiscovery.js +2 -1
- package/src/orm/DatabaseAdapter.d.ts +1 -0
- package/src/orm/DatabaseAdapter.d.ts.map +1 -1
- package/src/orm/SchemaStatemenWriter.d.ts +15 -0
- package/src/orm/SchemaStatemenWriter.d.ts.map +1 -0
- package/src/orm/SchemaStatemenWriter.js +78 -0
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
- package/src/orm/adapters/D1Adapter.js +52 -2
- package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/D1RemoteAdapter.js +137 -89
- package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/MySQLProxyAdapter.js +100 -81
- package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/PostgreSQLProxyAdapter.js +26 -10
- package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -1
- package/src/orm/adapters/SqlProxyAdapterUtils.js +2 -1
- package/src/orm/adapters/SqlProxyRegistryMode.d.ts +12 -0
- package/src/orm/adapters/SqlProxyRegistryMode.d.ts.map +1 -0
- package/src/orm/adapters/SqlProxyRegistryMode.js +24 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SqlServerProxyAdapter.js +125 -117
- package/src/orm/migrations/MigrationStore.js +1 -1
- package/src/proxy/ProxyRequestParsing.d.ts +9 -0
- package/src/proxy/ProxyRequestParsing.d.ts.map +1 -0
- package/src/proxy/ProxyRequestParsing.js +16 -0
- package/src/proxy/RequestValidator.d.ts.map +1 -1
- package/src/proxy/RequestValidator.js +2 -1
- package/src/proxy/SigningService.js +2 -2
- package/src/proxy/SqlProxyDbOverrides.d.ts +17 -0
- package/src/proxy/SqlProxyDbOverrides.d.ts.map +1 -0
- package/src/proxy/SqlProxyDbOverrides.js +1 -0
- package/src/proxy/SqlProxyServerDeps.d.ts +12 -0
- package/src/proxy/SqlProxyServerDeps.d.ts.map +1 -0
- package/src/proxy/SqlProxyServerDeps.js +9 -0
- package/src/proxy/StatementPayloadValidator.d.ts +13 -0
- package/src/proxy/StatementPayloadValidator.d.ts.map +1 -0
- package/src/proxy/StatementPayloadValidator.js +18 -0
- package/src/proxy/StatementRegistryLoader.d.ts +2 -0
- package/src/proxy/StatementRegistryLoader.d.ts.map +1 -0
- package/src/proxy/StatementRegistryLoader.js +36 -0
- package/src/proxy/StatementRegistryResolver.d.ts +15 -0
- package/src/proxy/StatementRegistryResolver.d.ts.map +1 -0
- package/src/proxy/StatementRegistryResolver.js +34 -0
- package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -1
- package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -1
- package/src/proxy/d1/ZintrustD1Proxy.js +2 -1
- package/src/proxy/isMutatingSql.d.ts +2 -0
- package/src/proxy/isMutatingSql.d.ts.map +1 -0
- package/src/proxy/isMutatingSql.js +12 -0
- package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -1
- package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -1
- package/src/proxy/kv/ZintrustKvProxy.js +2 -1
- package/src/proxy/mysql/MySqlProxyServer.d.ts +2 -8
- package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -1
- package/src/proxy/mysql/MySqlProxyServer.js +84 -51
- package/src/proxy/postgres/PostgresProxyServer.d.ts +2 -8
- package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -1
- package/src/proxy/postgres/PostgresProxyServer.js +86 -48
- package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -1
- package/src/proxy/smtp/SmtpProxyServer.js +6 -5
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +2 -8
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -1
- package/src/proxy/sqlserver/SqlServerProxyServer.js +84 -49
- package/src/proxy.d.ts +4 -0
- package/src/proxy.d.ts.map +1 -0
- package/src/proxy.js +3 -0
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
- package/src/runtime/RuntimeAdapter.js +30 -12
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/CloudflareAdapter.js +15 -4
- package/src/scheduler/Schedule.d.ts +36 -0
- package/src/scheduler/Schedule.d.ts.map +1 -0
- package/src/scheduler/Schedule.js +197 -0
- package/src/scheduler/ScheduleHttpGateway.d.ts +8 -0
- package/src/scheduler/ScheduleHttpGateway.d.ts.map +1 -0
- package/src/scheduler/ScheduleHttpGateway.js +196 -0
- package/src/scheduler/ScheduleRunner.d.ts +6 -0
- package/src/scheduler/ScheduleRunner.d.ts.map +1 -1
- package/src/scheduler/ScheduleRunner.js +166 -29
- package/src/scheduler/SchedulerRuntime.d.ts +15 -0
- package/src/scheduler/SchedulerRuntime.d.ts.map +1 -0
- package/src/scheduler/SchedulerRuntime.js +79 -0
- package/src/scheduler/cron/Cron.d.ts +19 -0
- package/src/scheduler/cron/Cron.d.ts.map +1 -0
- package/src/scheduler/cron/Cron.js +200 -0
- package/src/scheduler/leader/SchedulerLeader.d.ts +14 -0
- package/src/scheduler/leader/SchedulerLeader.d.ts.map +1 -0
- package/src/scheduler/leader/SchedulerLeader.js +187 -0
- package/src/scheduler/state/ScheduleStateStore.d.ts +27 -0
- package/src/scheduler/state/ScheduleStateStore.d.ts.map +1 -0
- package/src/scheduler/state/ScheduleStateStore.js +27 -0
- package/src/scheduler/types.d.ts +10 -0
- package/src/scheduler/types.d.ts.map +1 -1
- package/src/schedules/index.d.ts +1 -0
- package/src/schedules/index.d.ts.map +1 -1
- package/src/schedules/index.js +1 -0
- package/src/schedules/job-tracking-cleanup.d.ts +4 -0
- package/src/schedules/job-tracking-cleanup.d.ts.map +1 -0
- package/src/schedules/job-tracking-cleanup.js +116 -0
- package/src/schedules/log-cleanup.d.ts +1 -2
- package/src/schedules/log-cleanup.d.ts.map +1 -1
- package/src/schedules/log-cleanup.js +12 -15
- package/src/security/Sanitizer.d.ts.map +1 -1
- package/src/security/Sanitizer.js +1 -9
- package/src/security/SignedRequest.d.ts.map +1 -1
- package/src/security/SignedRequest.js +2 -2
- package/src/security/TokenRevocation.d.ts +19 -2
- package/src/security/TokenRevocation.d.ts.map +1 -1
- package/src/security/TokenRevocation.js +558 -30
- package/src/templates/docker/docker-compose.ecosystem.yml.tpl +301 -0
- package/src/templates/docker/docker-compose.schedules.yml.tpl +84 -0
- package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
- package/src/templates/project/basic/app/Schedules/index.ts.tpl +0 -0
- package/src/templates/project/basic/config/database.ts.tpl +1 -1
- package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
- package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
- package/src/toolkit/Secrets/Manifest.d.ts.map +1 -1
- package/src/toolkit/Secrets/Manifest.js +5 -7
- package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
- package/src/tools/mail/drivers/Smtp.js +7 -1
- package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -1
- package/src/tools/queue/JobReconciliationRunner.js +7 -39
- package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -1
- package/src/tools/queue/JobRecoveryDaemon.js +116 -18
- package/src/tools/queue/JobStateTracker.d.ts +10 -1
- package/src/tools/queue/JobStateTracker.d.ts.map +1 -1
- package/src/tools/queue/JobStateTracker.js +24 -2
- package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -1
- package/src/tools/queue/JobStateTrackerDbPersistence.js +93 -2
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
name: zintrust-ecosystem
|
|
2
|
+
|
|
3
|
+
x-app-runtime: &app-runtime
|
|
4
|
+
build:
|
|
5
|
+
context: .
|
|
6
|
+
dockerfile: Dockerfile
|
|
7
|
+
|
|
8
|
+
x-common-env: &common-env
|
|
9
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
10
|
+
CSRF_SKIP_PATHS: ${CSRF_SKIP_PATHS:-/api/*,/queue-monitor/*}
|
|
11
|
+
|
|
12
|
+
SCHEDULE_SHUTDOWN_TIMEOUT_MS: ${SCHEDULE_SHUTDOWN_TIMEOUT_MS:-30000}
|
|
13
|
+
SCHEDULE_OVERLAP_LOCK_TTL_MS: ${SCHEDULE_OVERLAP_LOCK_TTL_MS:-300000}
|
|
14
|
+
|
|
15
|
+
# Database & Redis
|
|
16
|
+
DB_CONNECTION: ${DB_CONNECTION:-postgresql}
|
|
17
|
+
DB_HOST: ${DB_HOST:-postgres}
|
|
18
|
+
DB_PORT: ${DB_PORT:-5432}
|
|
19
|
+
DB_DATABASE: ${DB_DATABASE:-zintrust}
|
|
20
|
+
DB_USERNAME: ${DB_USERNAME:-zintrust}
|
|
21
|
+
DB_PASSWORD: ${DB_PASSWORD:-zintrust}
|
|
22
|
+
|
|
23
|
+
REDIS_HOST: ${REDIS_HOST:-redis}
|
|
24
|
+
REDIS_PORT: ${REDIS_PORT:-6379}
|
|
25
|
+
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
|
|
26
|
+
REDIS_DB: ${REDIS_DB:-0}
|
|
27
|
+
|
|
28
|
+
services:
|
|
29
|
+
# Web Application (API)
|
|
30
|
+
web:
|
|
31
|
+
<<: *app-runtime
|
|
32
|
+
ports:
|
|
33
|
+
- '${PORT:-3000}:3000'
|
|
34
|
+
environment:
|
|
35
|
+
<<: *common-env
|
|
36
|
+
PORT: 3000
|
|
37
|
+
HOST: 0.0.0.0
|
|
38
|
+
RUNTIME_MODE: node-server
|
|
39
|
+
WORKER_ENABLED: 'false'
|
|
40
|
+
QUEUE_ENABLED: 'true'
|
|
41
|
+
command: npm run dev
|
|
42
|
+
depends_on:
|
|
43
|
+
postgres:
|
|
44
|
+
condition: service_healthy
|
|
45
|
+
redis:
|
|
46
|
+
condition: service_healthy
|
|
47
|
+
volumes:
|
|
48
|
+
- .:/app
|
|
49
|
+
- /app/node_modules
|
|
50
|
+
- /app/dist
|
|
51
|
+
networks:
|
|
52
|
+
- zintrust-network
|
|
53
|
+
|
|
54
|
+
# Workers (Consumers)
|
|
55
|
+
workers:
|
|
56
|
+
<<: *app-runtime
|
|
57
|
+
environment:
|
|
58
|
+
<<: *common-env
|
|
59
|
+
RUNTIME_MODE: containers
|
|
60
|
+
WORKER_ENABLED: 'true'
|
|
61
|
+
WORKER_AUTO_START: 'true'
|
|
62
|
+
QUEUE_ENABLED: 'true'
|
|
63
|
+
command: npx tsx bin/zin.ts worker:start-all
|
|
64
|
+
depends_on:
|
|
65
|
+
postgres:
|
|
66
|
+
condition: service_healthy
|
|
67
|
+
redis:
|
|
68
|
+
condition: service_healthy
|
|
69
|
+
volumes:
|
|
70
|
+
- .:/app
|
|
71
|
+
- /app/node_modules
|
|
72
|
+
- /app/dist
|
|
73
|
+
networks:
|
|
74
|
+
- zintrust-network
|
|
75
|
+
|
|
76
|
+
# Dedicated schedules service (auto-start schedules)
|
|
77
|
+
schedules:
|
|
78
|
+
<<: *app-runtime
|
|
79
|
+
environment:
|
|
80
|
+
<<: *common-env
|
|
81
|
+
# Dedicated schedules service enabled by default (override in .env)
|
|
82
|
+
SCHEDULES_ENABLED: ${SCHEDULES_ENABLED:-true}
|
|
83
|
+
# job tracking cleanup schedule
|
|
84
|
+
JOB_TRACKING_CLEANUP_ENABLED: ${JOB_TRACKING_CLEANUP_ENABLED:-false}
|
|
85
|
+
JOB_TRACKING_CLEANUP_INTERVAL_MS: ${JOB_TRACKING_CLEANUP_INTERVAL_MS:-21600000}
|
|
86
|
+
JOB_TRACKING_CLEANUP_RETENTION_DAYS: ${JOB_TRACKING_CLEANUP_RETENTION_DAYS:-30}
|
|
87
|
+
JOB_TRACKING_CLEANUP_BATCH_SIZE: ${JOB_TRACKING_CLEANUP_BATCH_SIZE:-5000}
|
|
88
|
+
JOB_TRACKING_CLEANUP_MAX_BATCHES: ${JOB_TRACKING_CLEANUP_MAX_BATCHES:-1}
|
|
89
|
+
JOB_TRACKING_CLEANUP_LOCK_PROVIDER: ${JOB_TRACKING_CLEANUP_LOCK_PROVIDER:-redis}
|
|
90
|
+
command: ['node', 'dist/bin/zin.js', 'schedule:start']
|
|
91
|
+
depends_on:
|
|
92
|
+
postgres:
|
|
93
|
+
condition: service_healthy
|
|
94
|
+
redis:
|
|
95
|
+
condition: service_healthy
|
|
96
|
+
networks:
|
|
97
|
+
- zintrust-network
|
|
98
|
+
|
|
99
|
+
# Backing services
|
|
100
|
+
postgres:
|
|
101
|
+
image: postgres:16-alpine
|
|
102
|
+
environment:
|
|
103
|
+
POSTGRES_DB: ${DB_DATABASE:-zintrust}
|
|
104
|
+
POSTGRES_USER: ${DB_USERNAME:-zintrust}
|
|
105
|
+
POSTGRES_PASSWORD: ${DB_PASSWORD:-zintrust}
|
|
106
|
+
ports:
|
|
107
|
+
- '${POSTGRES_PORT:-5432}:5432'
|
|
108
|
+
volumes:
|
|
109
|
+
- postgres_data:/var/lib/postgresql/data
|
|
110
|
+
healthcheck:
|
|
111
|
+
test: ['CMD-SHELL', 'pg_isready -U ${DB_USERNAME:-zintrust}']
|
|
112
|
+
interval: 10s
|
|
113
|
+
timeout: 5s
|
|
114
|
+
retries: 5
|
|
115
|
+
networks:
|
|
116
|
+
- zintrust-network
|
|
117
|
+
|
|
118
|
+
redis:
|
|
119
|
+
image: redis:7-alpine
|
|
120
|
+
ports:
|
|
121
|
+
- '${REDIS_PORT:-6379}:6379'
|
|
122
|
+
volumes:
|
|
123
|
+
- redis_data:/data
|
|
124
|
+
healthcheck:
|
|
125
|
+
test: ['CMD', 'redis-cli', 'ping']
|
|
126
|
+
interval: 10s
|
|
127
|
+
timeout: 5s
|
|
128
|
+
retries: 5
|
|
129
|
+
networks:
|
|
130
|
+
- zintrust-network
|
|
131
|
+
|
|
132
|
+
# Proxies (optional; separate blocks like docker-compose.proxy.yml)
|
|
133
|
+
# These can be started/stopped independently.
|
|
134
|
+
proxy-gateway:
|
|
135
|
+
image: ${PROXY_GATEWAY_IMAGE:-zintrust-proxy-gateway:local}
|
|
136
|
+
build:
|
|
137
|
+
context: ./docker/proxy-gateway
|
|
138
|
+
dockerfile: Dockerfile
|
|
139
|
+
restart: on-failure:3
|
|
140
|
+
depends_on:
|
|
141
|
+
- proxy-mysql
|
|
142
|
+
- proxy-pg
|
|
143
|
+
- proxy-redis
|
|
144
|
+
- proxy-mongodb
|
|
145
|
+
- proxy-sqlserver
|
|
146
|
+
- proxy-smtp
|
|
147
|
+
ports:
|
|
148
|
+
- ${PROXY_GATEWAY_PORT:-8800}:8080
|
|
149
|
+
environment:
|
|
150
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
151
|
+
CSRF_SKIP_PATHS: ${CSRF_SKIP_PATHS:-/api/*,/queue-monitor/*}
|
|
152
|
+
networks:
|
|
153
|
+
- zintrust-network
|
|
154
|
+
|
|
155
|
+
proxy-mysql:
|
|
156
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
157
|
+
build:
|
|
158
|
+
context: .
|
|
159
|
+
dockerfile: Dockerfile
|
|
160
|
+
target: runtime
|
|
161
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:mysql', '--host', '0.0.0.0', '--port', '8789']
|
|
162
|
+
expose:
|
|
163
|
+
- '8789'
|
|
164
|
+
environment:
|
|
165
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
166
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
167
|
+
APP_KEY: ${APP_KEY:-}
|
|
168
|
+
MYSQL_PROXY_REQUIRE_SIGNING: true
|
|
169
|
+
MYSQL_PROXY_KEY_ID: ${MYSQL_PROXY_KEY_ID:-}
|
|
170
|
+
MYSQL_PROXY_SECRET: ${MYSQL_PROXY_SECRET:-}
|
|
171
|
+
MYSQL_PROXY_SIGNING_WINDOW_MS: ${MYSQL_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
172
|
+
MYSQL_DB_HOST: ${MYSQL_DB_HOST:-${DOCKER_DB_HOST:-host.docker.internal}}
|
|
173
|
+
MYSQL_DB_PORT: ${MYSQL_DB_PORT:-${DB_PORT:-3306}}
|
|
174
|
+
MYSQL_DB_DATABASE: ${MYSQL_DB_DATABASE:-${DB_DATABASE:-zintrust}}
|
|
175
|
+
MYSQL_DB_USERNAME: ${MYSQL_DB_USERNAME:-${DB_USERNAME:-zintrust}}
|
|
176
|
+
MYSQL_DB_PASSWORD: ${MYSQL_DB_PASSWORD:-${DB_PASSWORD:-secret}}
|
|
177
|
+
networks:
|
|
178
|
+
- zintrust-network
|
|
179
|
+
|
|
180
|
+
proxy-pg:
|
|
181
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
182
|
+
build:
|
|
183
|
+
context: .
|
|
184
|
+
dockerfile: Dockerfile
|
|
185
|
+
target: runtime
|
|
186
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:postgres', '--host', '0.0.0.0', '--port', '8790']
|
|
187
|
+
expose:
|
|
188
|
+
- '8790'
|
|
189
|
+
environment:
|
|
190
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
191
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
192
|
+
APP_KEY: ${APP_KEY:-}
|
|
193
|
+
POSTGRES_PROXY_REQUIRE_SIGNING: true
|
|
194
|
+
POSTGRES_PROXY_KEY_ID: ${POSTGRES_PROXY_KEY_ID:-}
|
|
195
|
+
POSTGRES_PROXY_SECRET: ${POSTGRES_PROXY_SECRET:-}
|
|
196
|
+
POSTGRES_PROXY_SIGNING_WINDOW_MS: ${POSTGRES_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
197
|
+
DB_HOST: ${DOCKER_DB_HOST:-host.docker.internal}
|
|
198
|
+
DB_PORT_POSTGRESQL: ${POSTGRES_DB_PORT:-5432}
|
|
199
|
+
DB_DATABASE_POSTGRESQL: ${POSTGRES_DB_DATABASE:-postgres}
|
|
200
|
+
DB_USERNAME_POSTGRESQL: ${POSTGRES_DB_USERNAME:-postgres}
|
|
201
|
+
DB_PASSWORD_POSTGRESQL: ${POSTGRES_DB_PASSWORD:-postgres}
|
|
202
|
+
networks:
|
|
203
|
+
- zintrust-network
|
|
204
|
+
|
|
205
|
+
proxy-redis:
|
|
206
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
207
|
+
build:
|
|
208
|
+
context: .
|
|
209
|
+
dockerfile: Dockerfile
|
|
210
|
+
target: runtime
|
|
211
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:redis', '--host', '0.0.0.0', '--port', '8791']
|
|
212
|
+
expose:
|
|
213
|
+
- '8791'
|
|
214
|
+
environment:
|
|
215
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
216
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
217
|
+
APP_KEY: ${APP_KEY:-}
|
|
218
|
+
REDIS_PROXY_REQUIRE_SIGNING: true
|
|
219
|
+
REDIS_PROXY_KEY_ID: ${REDIS_PROXY_KEY_ID:-}
|
|
220
|
+
REDIS_PROXY_SECRET: ${REDIS_PROXY_SECRET:-}
|
|
221
|
+
REDIS_PROXY_SIGNING_WINDOW_MS: ${REDIS_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
222
|
+
REDIS_PROXY_TARGET_HOST: ${REDIS_PROXY_TARGET_HOST:-${DOCKER_REDIS_HOST:-host.docker.internal}}
|
|
223
|
+
REDIS_PROXY_TARGET_PORT: ${REDIS_PROXY_TARGET_PORT:-${REDIS_PORT:-6379}}
|
|
224
|
+
REDIS_PROXY_TARGET_PASSWORD: ${REDIS_PROXY_TARGET_PASSWORD:-${REDIS_PASSWORD:-}}
|
|
225
|
+
REDIS_PROXY_TARGET_DB: ${REDIS_PROXY_TARGET_DB:-${REDIS_DB:-0}}
|
|
226
|
+
networks:
|
|
227
|
+
- zintrust-network
|
|
228
|
+
|
|
229
|
+
proxy-mongodb:
|
|
230
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
231
|
+
build:
|
|
232
|
+
context: .
|
|
233
|
+
dockerfile: Dockerfile
|
|
234
|
+
target: runtime
|
|
235
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:mongodb', '--host', '0.0.0.0', '--port', '8792']
|
|
236
|
+
expose:
|
|
237
|
+
- '8792'
|
|
238
|
+
environment:
|
|
239
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
240
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
241
|
+
APP_KEY: ${APP_KEY:-}
|
|
242
|
+
MONGODB_PROXY_REQUIRE_SIGNING: true
|
|
243
|
+
MONGODB_PROXY_KEY_ID: ${MONGODB_PROXY_KEY_ID:-}
|
|
244
|
+
MONGODB_PROXY_SECRET: ${MONGODB_PROXY_SECRET:-}
|
|
245
|
+
MONGODB_PROXY_SIGNING_WINDOW_MS: ${MONGODB_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
246
|
+
MONGO_URI: ${MONGODB_PROXY_TARGET_URI:-mongodb://host.docker.internal:27017}
|
|
247
|
+
MONGO_DB: ${MONGODB_PROXY_TARGET_DB:-zintrust}
|
|
248
|
+
networks:
|
|
249
|
+
- zintrust-network
|
|
250
|
+
|
|
251
|
+
proxy-sqlserver:
|
|
252
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
253
|
+
build:
|
|
254
|
+
context: .
|
|
255
|
+
dockerfile: Dockerfile
|
|
256
|
+
target: runtime
|
|
257
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:sqlserver', '--host', '0.0.0.0', '--port', '8793']
|
|
258
|
+
expose:
|
|
259
|
+
- '8793'
|
|
260
|
+
environment:
|
|
261
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
262
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
263
|
+
APP_KEY: ${APP_KEY:-}
|
|
264
|
+
SQLSERVER_PROXY_REQUIRE_SIGNING: true
|
|
265
|
+
SQLSERVER_PROXY_KEY_ID: ${SQLSERVER_PROXY_KEY_ID:-}
|
|
266
|
+
SQLSERVER_PROXY_SECRET: ${SQLSERVER_PROXY_SECRET:-}
|
|
267
|
+
SQLSERVER_PROXY_SIGNING_WINDOW_MS: ${SQLSERVER_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
268
|
+
DB_HOST_MSSQL: ${SQLSERVER_DB_HOST:-host.docker.internal}
|
|
269
|
+
DB_PORT_MSSQL: ${SQLSERVER_DB_PORT:-1433}
|
|
270
|
+
DB_DATABASE_MSSQL: ${SQLSERVER_DB_DATABASE:-zintrust}
|
|
271
|
+
DB_USERNAME_MSSQL: ${SQLSERVER_DB_USERNAME:-sa}
|
|
272
|
+
DB_PASSWORD_MSSQL: ${SQLSERVER_DB_PASSWORD:-}
|
|
273
|
+
networks:
|
|
274
|
+
- zintrust-network
|
|
275
|
+
|
|
276
|
+
proxy-smtp:
|
|
277
|
+
image: ${PROXY_IMAGE:-zintrust-proxy:local}
|
|
278
|
+
build:
|
|
279
|
+
context: .
|
|
280
|
+
dockerfile: Dockerfile
|
|
281
|
+
target: runtime
|
|
282
|
+
command: ['node', 'dist/bin/zin.js', 'proxy:smtp', '--host', '0.0.0.0', '--port', '8794']
|
|
283
|
+
expose:
|
|
284
|
+
- '8794'
|
|
285
|
+
environment:
|
|
286
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
287
|
+
APP_NAME: ${APP_NAME:-ZinTrust}
|
|
288
|
+
APP_KEY: ${APP_KEY:-}
|
|
289
|
+
SMTP_PROXY_REQUIRE_SIGNING: true
|
|
290
|
+
SMTP_PROXY_KEY_ID: ${SMTP_PROXY_KEY_ID:-}
|
|
291
|
+
SMTP_PROXY_SECRET: ${SMTP_PROXY_SECRET:-}
|
|
292
|
+
SMTP_PROXY_SIGNING_WINDOW_MS: ${SMTP_PROXY_SIGNING_WINDOW_MS:-60000}
|
|
293
|
+
networks:
|
|
294
|
+
- zintrust-network
|
|
295
|
+
|
|
296
|
+
networks:
|
|
297
|
+
zintrust-network:
|
|
298
|
+
|
|
299
|
+
volumes:
|
|
300
|
+
postgres_data:
|
|
301
|
+
redis_data:
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
name: zintrust-schedules
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
schedules:
|
|
5
|
+
build:
|
|
6
|
+
context: .
|
|
7
|
+
dockerfile: Dockerfile
|
|
8
|
+
environment:
|
|
9
|
+
NODE_ENV: ${NODE_ENV:-development}
|
|
10
|
+
SCHEDULES_ENABLED: ${SCHEDULES_ENABLED:-true}
|
|
11
|
+
CSRF_SKIP_PATHS: ${CSRF_SKIP_PATHS:-/api/*,/queue-monitor/*}
|
|
12
|
+
|
|
13
|
+
# Scheduling
|
|
14
|
+
SCHEDULE_SHUTDOWN_TIMEOUT_MS: ${SCHEDULE_SHUTDOWN_TIMEOUT_MS:-30000}
|
|
15
|
+
SCHEDULE_OVERLAP_LOCK_TTL_MS: ${SCHEDULE_OVERLAP_LOCK_TTL_MS:-300000}
|
|
16
|
+
|
|
17
|
+
# Redis (for locks / queue / cache)
|
|
18
|
+
REDIS_HOST: ${REDIS_HOST:-redis}
|
|
19
|
+
REDIS_PORT: ${REDIS_PORT:-6379}
|
|
20
|
+
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
|
|
21
|
+
REDIS_DB: ${REDIS_DB:-0}
|
|
22
|
+
|
|
23
|
+
# Database (for job-tracking cleanup schedule)
|
|
24
|
+
DB_CONNECTION: ${DB_CONNECTION:-postgresql}
|
|
25
|
+
DB_HOST: ${DB_HOST:-postgres}
|
|
26
|
+
DB_PORT: ${DB_PORT:-5432}
|
|
27
|
+
DB_DATABASE: ${DB_DATABASE:-zintrust}
|
|
28
|
+
DB_USERNAME: ${DB_USERNAME:-zintrust}
|
|
29
|
+
DB_PASSWORD: ${DB_PASSWORD:-zintrust}
|
|
30
|
+
|
|
31
|
+
# Job tracking cleanup schedule
|
|
32
|
+
JOB_TRACKING_CLEANUP_ENABLED: ${JOB_TRACKING_CLEANUP_ENABLED:-false}
|
|
33
|
+
JOB_TRACKING_CLEANUP_INTERVAL_MS: ${JOB_TRACKING_CLEANUP_INTERVAL_MS:-21600000}
|
|
34
|
+
JOB_TRACKING_CLEANUP_RETENTION_DAYS: ${JOB_TRACKING_CLEANUP_RETENTION_DAYS:-30}
|
|
35
|
+
JOB_TRACKING_CLEANUP_BATCH_SIZE: ${JOB_TRACKING_CLEANUP_BATCH_SIZE:-5000}
|
|
36
|
+
JOB_TRACKING_CLEANUP_MAX_BATCHES: ${JOB_TRACKING_CLEANUP_MAX_BATCHES:-1}
|
|
37
|
+
JOB_TRACKING_CLEANUP_LOCK_PROVIDER: ${JOB_TRACKING_CLEANUP_LOCK_PROVIDER:-redis}
|
|
38
|
+
command: ['node', 'dist/bin/zin.js', 'schedule:start']
|
|
39
|
+
depends_on:
|
|
40
|
+
postgres:
|
|
41
|
+
condition: service_healthy
|
|
42
|
+
redis:
|
|
43
|
+
condition: service_healthy
|
|
44
|
+
networks:
|
|
45
|
+
- zintrust-network
|
|
46
|
+
|
|
47
|
+
postgres:
|
|
48
|
+
image: postgres:16-alpine
|
|
49
|
+
environment:
|
|
50
|
+
POSTGRES_DB: ${DB_DATABASE:-zintrust}
|
|
51
|
+
POSTGRES_USER: ${DB_USERNAME:-zintrust}
|
|
52
|
+
POSTGRES_PASSWORD: ${DB_PASSWORD:-zintrust}
|
|
53
|
+
ports:
|
|
54
|
+
- '${POSTGRES_PORT:-5432}:5432'
|
|
55
|
+
volumes:
|
|
56
|
+
- postgres_data:/var/lib/postgresql/data
|
|
57
|
+
healthcheck:
|
|
58
|
+
test: ['CMD-SHELL', 'pg_isready -U ${DB_USERNAME:-zintrust}']
|
|
59
|
+
interval: 10s
|
|
60
|
+
timeout: 5s
|
|
61
|
+
retries: 5
|
|
62
|
+
networks:
|
|
63
|
+
- zintrust-network
|
|
64
|
+
|
|
65
|
+
redis:
|
|
66
|
+
image: redis:7-alpine
|
|
67
|
+
ports:
|
|
68
|
+
- '${REDIS_PORT:-6379}:6379'
|
|
69
|
+
volumes:
|
|
70
|
+
- redis_data:/data
|
|
71
|
+
healthcheck:
|
|
72
|
+
test: ['CMD', 'redis-cli', 'ping']
|
|
73
|
+
interval: 10s
|
|
74
|
+
timeout: 5s
|
|
75
|
+
retries: 5
|
|
76
|
+
networks:
|
|
77
|
+
- zintrust-network
|
|
78
|
+
|
|
79
|
+
networks:
|
|
80
|
+
zintrust-network:
|
|
81
|
+
|
|
82
|
+
volumes:
|
|
83
|
+
postgres_data:
|
|
84
|
+
redis_data:
|
|
@@ -148,9 +148,17 @@ async function register(req: IRequest, res: IResponse): Promise<void> {
|
|
|
148
148
|
password: passwordHash,
|
|
149
149
|
});
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
let insertedUserId: unknown = result.id;
|
|
152
|
+
if (insertedUserId === null || insertedUserId === undefined) {
|
|
153
|
+
const inserted = await User.where('email', '=', email).limit(1).first<UserRow>();
|
|
154
|
+
if (inserted?.id !== null && inserted?.id !== undefined) {
|
|
155
|
+
insertedUserId = inserted.id;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (insertedUserId !== null && insertedUserId !== undefined) {
|
|
152
160
|
Logger.info('AuthController.register: successful registration', {
|
|
153
|
-
user_id:
|
|
161
|
+
user_id: insertedUserId,
|
|
154
162
|
email,
|
|
155
163
|
ip: ipAddress,
|
|
156
164
|
timestamp: new Date().toISOString(),
|
|
@@ -179,7 +187,7 @@ async function register(req: IRequest, res: IResponse): Promise<void> {
|
|
|
179
187
|
async function logout(req: IRequest, res: IResponse): Promise<void> {
|
|
180
188
|
const authHeader =
|
|
181
189
|
typeof req.getHeader === 'function' ? req.getHeader('authorization') : undefined;
|
|
182
|
-
TokenRevocation.revoke(authHeader);
|
|
190
|
+
await TokenRevocation.revoke(authHeader);
|
|
183
191
|
res.json({ message: 'Logged out' });
|
|
184
192
|
}
|
|
185
193
|
|
|
File without changes
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-ignore - config templates are excluded from the main TS project in this repo
|
|
1
2
|
/**
|
|
2
3
|
* Middleware Configuration (template)
|
|
3
4
|
*
|
|
@@ -6,27 +7,27 @@
|
|
|
6
7
|
* - Projects can override by editing `middlewareConfigObj`.
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
10
|
+
import { Env } from '@zintrust/core';
|
|
11
|
+
import type { MiddlewaresType } from '@zintrust/core';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export const middlewareConfigObj = {
|
|
22
|
-
...coreMiddlewareConfig,
|
|
23
|
-
route: {
|
|
24
|
-
...coreMiddlewareConfig.route,
|
|
25
|
-
csrf,
|
|
13
|
+
export default {
|
|
14
|
+
skipPaths: Env.get('CSRF_SKIP_PATHS', '')
|
|
15
|
+
.split(',')
|
|
16
|
+
.map((m: string) => m.trim())
|
|
17
|
+
.filter((m: string) => m.length > 0) as ReadonlyArray<string>,
|
|
18
|
+
fillRateLimit: {
|
|
19
|
+
windowMs: 60_000,
|
|
20
|
+
max: 5,
|
|
21
|
+
message: 'Too many fill requests, please try again later.',
|
|
26
22
|
},
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
authRateLimit: {
|
|
24
|
+
windowMs: 60_000,
|
|
25
|
+
max: 4,
|
|
26
|
+
message: 'Too many authentication attempts, please try again later.',
|
|
27
|
+
},
|
|
28
|
+
userMutationRateLimit: {
|
|
29
|
+
windowMs: 60_000,
|
|
30
|
+
max: 20,
|
|
31
|
+
message: 'Too many user mutation requests, please try again later.',
|
|
32
|
+
},
|
|
33
|
+
} as MiddlewaresType;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{projectSlug}}",
|
|
3
|
+
"main": "./src/index.ts",
|
|
4
|
+
"compatibility_date": "2025-04-21",
|
|
5
|
+
"compatibility_flags": ["nodejs_compat"],
|
|
6
|
+
"workers_dev": true,
|
|
7
|
+
"minify": false,
|
|
8
|
+
|
|
9
|
+
"vars": {
|
|
10
|
+
"ENVIRONMENT": "development"
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"d1_databases": [
|
|
14
|
+
{
|
|
15
|
+
"binding": "ZIN_DB",
|
|
16
|
+
"database_name": "{{projectSlug}}-db",
|
|
17
|
+
"database_id": "REPLACE_ME",
|
|
18
|
+
"migrations_dir": "database/migrations/d1"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
|
|
22
|
+
"kv_namespaces": [
|
|
23
|
+
{
|
|
24
|
+
"binding": "ZIN_KV",
|
|
25
|
+
"id": "REPLACE_ME"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../../../../src/toolkit/Secrets/Manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../../../../src/toolkit/Secrets/Manifest.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,YAAY,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACvC,CAAC;AAyDF,eAAO,MAAM,QAAQ;iBACA;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,GAAG,OAAO,CAAC,eAAe,CAAC;EA4B5B,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
2
|
+
import { isNonEmptyString, isObject } from '../../helper/index.js';
|
|
2
3
|
import { fsPromises as fs } from '../../node-singletons/fs.js';
|
|
3
4
|
import * as path from '../../node-singletons/path.js';
|
|
4
|
-
const isRecord = (value) =>
|
|
5
|
+
const isRecord = (value) => isObject(value);
|
|
5
6
|
const assertString = (value, name) => {
|
|
6
|
-
if (
|
|
7
|
+
if (!isNonEmptyString(value)) {
|
|
7
8
|
throw ErrorFactory.createCliError(`Manifest: missing/invalid ${name}`);
|
|
8
9
|
}
|
|
9
10
|
return value;
|
|
@@ -28,17 +29,14 @@ const parseKeySpec = (envKey, specUnknown) => {
|
|
|
28
29
|
if (isRecord(awsUnknown)) {
|
|
29
30
|
spec.aws = {
|
|
30
31
|
secretId: assertString(awsUnknown['secretId'], `keys.${envKey}.aws.secretId`),
|
|
31
|
-
jsonKey:
|
|
32
|
-
? awsUnknown['jsonKey']
|
|
33
|
-
: undefined,
|
|
32
|
+
jsonKey: isNonEmptyString(awsUnknown['jsonKey']) ? awsUnknown['jsonKey'] : undefined,
|
|
34
33
|
};
|
|
35
34
|
}
|
|
36
35
|
const cloudflareUnknown = specUnknown['cloudflare'];
|
|
37
36
|
if (isRecord(cloudflareUnknown)) {
|
|
38
37
|
spec.cloudflare = {
|
|
39
38
|
key: assertString(cloudflareUnknown['key'], `keys.${envKey}.cloudflare.key`),
|
|
40
|
-
namespaceId:
|
|
41
|
-
cloudflareUnknown['namespaceId'].trim() !== ''
|
|
39
|
+
namespaceId: isNonEmptyString(cloudflareUnknown['namespaceId'])
|
|
42
40
|
? cloudflareUnknown['namespaceId']
|
|
43
41
|
: undefined,
|
|
44
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smtp.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Smtp.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"Smtp.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Smtp.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuqBF,eAAO,MAAM,UAAU;IACrB;;;;OAIG;iBACgB,UAAU,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EAuDzE,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -85,7 +85,13 @@ const ensureSignedSettings = (settings) => {
|
|
|
85
85
|
const shouldUseProxy = () => {
|
|
86
86
|
if (Env.USE_SMTP_PROXY === true)
|
|
87
87
|
return true;
|
|
88
|
-
|
|
88
|
+
// In Cloudflare Workers, SMTP requires TCP sockets; if sockets are disabled,
|
|
89
|
+
// we must use the HTTP SMTP proxy transport when a URL is configured.
|
|
90
|
+
if (isWorkersRuntime() && Cloudflare.isCloudflareSocketsEnabled() === false) {
|
|
91
|
+
return Env.SMTP_PROXY_URL.trim() !== '';
|
|
92
|
+
}
|
|
93
|
+
// Default: do not use proxy unless explicitly enabled.
|
|
94
|
+
return false;
|
|
89
95
|
};
|
|
90
96
|
const serializeMessage = (message) => {
|
|
91
97
|
const attachments = message.attachments?.map((attachment) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobReconciliationRunner.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/JobReconciliationRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JobReconciliationRunner.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/JobReconciliationRunner.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;yBACP,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;8CA6B3B,OAAO,CAAC,MAAM,CAAC;eAqB3C,OAAO,CAAC;QAAE,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;EAc/F,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
|
|
@@ -4,24 +4,6 @@ import { useDatabase } from '../../orm/Database.js';
|
|
|
4
4
|
import { JobStateTracker } from './JobStateTracker.js';
|
|
5
5
|
const getDb = () => useDatabase(undefined, Env.get('JOB_TRACKING_DB_CONNECTION', 'default'));
|
|
6
6
|
const toSqlDateTime = (value) => value.toISOString().slice(0, 19).replace('T', ' ');
|
|
7
|
-
const mapPersistedStatus = (raw) => {
|
|
8
|
-
if (typeof raw !== 'string')
|
|
9
|
-
return null;
|
|
10
|
-
const value = raw.trim().toLowerCase();
|
|
11
|
-
const allowed = [
|
|
12
|
-
'pending',
|
|
13
|
-
'active',
|
|
14
|
-
'completed',
|
|
15
|
-
'failed',
|
|
16
|
-
'stalled',
|
|
17
|
-
'timeout',
|
|
18
|
-
'pending_recovery',
|
|
19
|
-
'dead_letter',
|
|
20
|
-
'manual_review',
|
|
21
|
-
'delayed',
|
|
22
|
-
];
|
|
23
|
-
return (allowed.find((entry) => entry === value) ?? null);
|
|
24
|
-
};
|
|
25
7
|
export const JobReconciliationRunner = Object.freeze({
|
|
26
8
|
async reconcileInMemory() {
|
|
27
9
|
const timeoutMs = Math.max(1000, Env.getInt('QUEUE_JOB_TIMEOUT', 60) * 1000);
|
|
@@ -46,31 +28,17 @@ export const JobReconciliationRunner = Object.freeze({
|
|
|
46
28
|
const db = getDb();
|
|
47
29
|
const staleAfterMs = Math.max(1000, Env.getInt('JOB_RECONCILIATION_STALE_MS', 120000));
|
|
48
30
|
const cutoff = new Date(Date.now() - staleAfterMs);
|
|
49
|
-
|
|
31
|
+
// Persistence is an enqueue-fallback buffer (jobs that failed to enqueue).
|
|
32
|
+
// Do not reconcile stale 'pending'/'active' from DB: QUEUE_DRIVER is the source of truth.
|
|
33
|
+
// pending_recovery rows are handled by JobRecoveryDaemon, which performs the enqueue attempt.
|
|
34
|
+
const candidates = await db
|
|
50
35
|
.table(Env.get('JOB_TRACKING_DB_TABLE', 'zintrust_jobs'))
|
|
51
|
-
.select('queue_name', 'job_id'
|
|
52
|
-
.whereIn('status', ['
|
|
36
|
+
.select('queue_name', 'job_id')
|
|
37
|
+
.whereIn('status', ['pending_recovery'])
|
|
53
38
|
.where('updated_at', '<=', toSqlDateTime(cutoff))
|
|
54
39
|
.limit(Math.max(1, limit))
|
|
55
40
|
.get();
|
|
56
|
-
|
|
57
|
-
await Promise.all(actionableRows.map(async (row) => {
|
|
58
|
-
const status = mapPersistedStatus(row.status);
|
|
59
|
-
if (status === 'active') {
|
|
60
|
-
await JobStateTracker.stalled({
|
|
61
|
-
queueName: row.queue_name,
|
|
62
|
-
jobId: row.job_id,
|
|
63
|
-
reason: 'Persisted active job stale during reconciliation',
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
await JobStateTracker.pendingRecovery({
|
|
68
|
-
queueName: row.queue_name,
|
|
69
|
-
jobId: row.job_id,
|
|
70
|
-
reason: 'Persisted pending job stale during reconciliation',
|
|
71
|
-
});
|
|
72
|
-
}));
|
|
73
|
-
return actionableRows.length;
|
|
41
|
+
return candidates.length;
|
|
74
42
|
},
|
|
75
43
|
async runOnce() {
|
|
76
44
|
const inMemory = await this.reconcileInMemory();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobRecoveryDaemon.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/JobRecoveryDaemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JobRecoveryDaemon.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/JobRecoveryDaemon.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAejF,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE7F,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAuFF,eAAO,MAAM,iBAAiB;uBAElB,iBAAiB,GACxB,OAAO,CAAC,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;eA2EvC,OAAO,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;4BAkD4B,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;EA2DzE,CAAC;AAiFH,eAAe,iBAAiB,CAAC"}
|