Skip to content

OperationsJob — @gj-kit/nest-operations-jobs

A public interface from @gj-kit/nest-operations-jobs. The signature below is taken directly from the 0.1.1 release declaration.

import { OperationsJob } from '@gj-kit/nest-operations-jobs';
/**
* Operations job contract. A job owns business logic only — authentication,
* overlap prevention, timeouts, run records and logging belong to the runner.
*
* Returning a summary whose `ok` is exactly `false` marks the run FAILED while
* preserving the summary, so an external scheduler retries and alerting fires.
* Any other value of `ok` (including `0`, `''`, `undefined`) is a success.
*/
interface OperationsJob<Input = void> {
/** Unique key shaped `domain.action`, lower-case and hyphenated, at most 100 chars. */
readonly key: string;
readonly description: string;
/** Absent means the job takes no input; a non-empty request body is then rejected. */
readonly inputSchema?: JobInputValidator<Input> | undefined;
/** Defaults to {@link DEFAULT_JOB_TIMEOUT_MS}. */
readonly timeoutMs?: number | undefined;
/**
* Defaults to `'forbid'`: a second trigger while one run holds the key is SKIPPED.
*
* Overlap prevention buys liveness with a bounded safety gap: a runner that is
* stalled rather than dead has its row reaped, and a second body then starts.
* The window is one heartbeat interval plus the job's abort reaction time, and
* while the store itself is unreachable it widens to `staleRunAfterMs` plus
* that reaction time. Only the job's own domain-level idempotency closes it.
*/
readonly overlapPolicy?: JobOverlapPolicy | undefined;
/** Documentation and scheduler-sync metadata only. `null` means "no declared cron". */
readonly schedule?: JobSchedule | null | undefined;
/** Defaults to true. False means an external non-HTTP trigger owns this schedule. */
readonly schedulerHttpSync?: boolean | undefined;
run(input: Input, context: OperationsJobContext): Promise<JobSummary | void>;
}

This declaration is the source of truth for parameters, optionality, generics, return values, and public union/type contracts. Check the package golden path and this subpath’s import conditions for required environment, permission, and error boundaries before calling it.

  • Package: @gj-kit/nest-operations-jobs
  • Version: 0.1.1
  • Public entry: .
  • Source: GitHub