Docs navigation

DocsLink ModeDesign preview

Link Mode

Endpoints you already have become governed jobs — declared in one weev.yaml, no SDK, no code changes. HTTP jobs are for invocable work; SDK jobs for long-running lifecycle.

Design preview · Upcoming

Nothing on this page ships yet. The schema below is the settled design Link Mode is being built to; the label comes off when weev generate accepts the file. Until then, the shipped path is the SDK Mode quickstart.

The file

One weev.yaml, beside your code

The file declares definitions only — batches, jobs and their edges. Credentials, org/project linkage and environment endpoints never appear in it. Deploying stays the same two commands as SDK Mode: weev generate && weev push.
weev.yamlPreviewyaml
version: 1

batches:
  nightly-settlement:
    displayName: Nightly Settlement
    jobs:
      ledger-close:
        http: { path: /jobs/ledger-close }
      fx-rates:
        http: { path: /jobs/fx-rates }
      recon-batch:
        http: { path: /jobs/recon }
        after: [ledger-close, fx-rates]
      fee-accrual:
        http: { path: /jobs/accrue, timeoutMs: 45000 }
      settle:
        http:
          path: /jobs/settle
          successStatus: [200, 202]
        after: [recon-batch, fee-accrual]

http.path

Required. Relative path, must start with /. Appended to the environment's configured endpoint — no hostnames ever appear in the file, which is what lets one file deploy unchanged to staging and production.

http.method · timeoutMs · successStatus

Optional. POST by default (GET/PUT allowed); timeout default 30s, hard cap 60s; success is any 2xx unless you list statuses.

after

Optional. Job IDs within the same batch — the YAML spelling of the SDK's predecessors. Becomes dag edges in the manifest.

displayName · description

Optional presentation fields. Map keys are the identity — lowercase kebab-case, validated.

Execution

The response is the verdict

Weev calls the endpoint directly at the scheduled moment or when the job's edges clear. A configured success status means success; anything else, or a timeout, is failure. There are no lifecycle callbacks — no claim, no heartbeat. Every request carries X-Weev-Run-Id and X-Weev-Attempt-Id; delivery is at-least-once, so dedupe on those headers. HTTP jobs and SDK jobs mix freely in one batch and run in DAG order.

Validation

What fails the build

  • Strict parsing everywhere: unknown keys anywhere in the file are errors — typos fail loudly instead of deploying silently.
  • after references must resolve within the batch; unknown IDs and cycles fail weev generate, and again server-side.
  • SDK and YAML definitions merge additively into one manifest; the same public ID declared in both sources fails the build with both locations printed.
  • Identical declarations in YAML and the SDK produce byte-identical manifests — the backend cannot tell the doors apart.
The file feeds the unchanged manifest pipeline — the same manifest format and validation both doors share. Schedules and calendars have their own sections in the design and arrive with schedules-in-code.