Docs / Configuration

Configuration reference

Task project

A task project must contain package.json and helmr.config.ts. package.json must declare @helmr/sdk in dependencies and an explicit packageManager.

import { defineConfig } from "@helmr/sdk"

export default defineConfig({
  project: "my-project",
  dirs: ["./tasks"],
  ignorePatterns: ["**/*.test.*"],
})

dirs is required and must be non-empty. Deploy excludes node_modules, .git, .helmr, .next, .env, and .env.*; when ignorePatterns is omitted, tests, specs, and underscore-prefixed files are also excluded.

Runtime configuration

SurfaceFields
taskid, sandbox, maxDuration, secrets, run
sandboximage(img), workspace(mountPath), resources({ cpu, memory })
imagefrom, run, copy, copyFrom, workdir, env, user
sourcefile(path), directory(path, { ignore })

Secret declarations use placements:

secrets: [
  { name: "TOKEN", env: "TOKEN" },
  { name: "config-json", file: "/run/secrets/config.json", mode: "0400" },
  { name: "creds", dir: "/run/secrets/creds", mode: "0700" },
]

Secret names must match /^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/.