// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0 // The module cron of this app: what the worker runs on a clock, not because anyone asked. // // A kit module declares its schedules beside its manifest (kit-core's manifest carries handlers and // no timing); the composition root is what turns them on, so a module that is not in this list is // not scheduled and the registry says so at boot (`installSchedules` refuses a schedule of a job no // module declares). Without the first line nothing ever finishes an upload whose request died, and // every crash boundary of the files module stays open however good its recovery is. import { ACCOUNT_SCHEDULES } from "@app/modules/account" import { FILES_SCHEDULES } from "@conusai-kit/files" import { defineSchedules, type ModuleSchedule } from "@conusai-kit/jobs-pgboss" export function appSchedules(): readonly ModuleSchedule[] { return [ // `files.recover`, every five minutes, for every project of every active organization: the // worker lists the projects through the global reader and enqueues one run for each. ...defineSchedules("files", FILES_SCHEDULES), // `account.deletion.sweep`, every five minutes and in no organization: resumes an account deletion // whose module erasure was unavailable (the deletion ledger is its whole state). And // `account.sessions.revoke`, every minute: delivers the revocations of signed-out app sessions' // derived service sessions that a module's platform has not confirmed (the revocation outbox). ...defineSchedules("account", ACCOUNT_SCHEDULES), ] }