Skip to content

[experimental-services] job service types#15944

Merged
ricardo-agz merged 19 commits into
mainfrom
ricardo/job-service-implementation
Apr 16, 2026
Merged

[experimental-services] job service types#15944
ricardo-agz merged 19 commits into
mainfrom
ricardo/job-service-implementation

Conversation

@ricardo-agz

@ricardo-agz ricardo-agz commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Introduces the new "job" service type

  • migrates old 'cron' service to 'job' + 'schedule' trigger
  • ports 'worker' service to 'job' + 'queue' trigger

@changeset-bot

changeset-bot Bot commented Apr 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3cff6dc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 18 packages
Name Type
@vercel/build-utils Patch
vercel Patch
@vercel/config Patch
@vercel/fs-detectors Patch
@vercel/python Patch
@vercel/backends Patch
@vercel/client Patch
@vercel/elysia Patch
@vercel/express Patch
@vercel/fastify Patch
@vercel/gatsby-plugin-vercel-builder Patch
@vercel/h3 Patch
@vercel/hono Patch
@vercel/koa Patch
@vercel/nestjs Patch
@vercel/node Patch
@vercel/static-build Patch
@vercel/cervel Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@ricardo-agz ricardo-agz changed the title [experimental-service] job service types [experimental-services] job service types Apr 14, 2026
@github-actions

github-actions Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

📦 CLI Tarball Ready

The Vercel CLI tarball for this PR is now available!

Quick Test

You can test this PR's CLI directly by running:

npx https://vercel-2r03v1z8o.vercel.sh/tarballs/vercel.tgz --help

Use in vercel.json

To use this CLI version in your project builds, add to your vercel.json:

{
  "build": {
    "env": {
      "VERCEL_CLI_VERSION": "vercel@https://vercel-2r03v1z8o.vercel.sh/tarballs/vercel.tgz"
    }
  }
}

Python Runtime Wheel

A vercel-runtime wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_RUNTIME_PYTHON="vercel-runtime @ https://vercel-2r03v1z8o.vercel.sh/tarballs/vercel_runtime-0.14.0.dev1776371171+3cff6dc-py3-none-any.whl"

Python Workers Wheel

A vercel-workers wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_WORKERS_PYTHON="vercel-workers @ https://vercel-2r03v1z8o.vercel.sh/tarballs/vercel_workers-0.1.0.dev1776371171+3cff6dc-py3-none-any.whl"

@vercel

vercel Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Low Risk — New experimental service type + trigger system with validation, tests, and backward compatibility for legacy cron/worker types.

  • types.ts: added job service type, JobTrigger union, ServiceQueueTopic interface
  • validate-config.ts: restructured schema to enforce trigger-specific required fields via oneOf
  • resolve.ts: added validation for job trigger combinations, backward-compatible trigger inference for legacy types

Assessed at 3cff6dc.

@github-actions

github-actions Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

🧪 Unit Test Strategy

Comparing: 363696d3cff6dc (view diff)

Strategy: Code changed outside of a package - running all unit tests

⚠️ All unit tests will run because global code changes could impact all packages.

Affected packages - 40 (100%)
  1. @vercel-internals/get-package-json
  2. @vercel/backends
  3. @vercel/build-utils
  4. @vercel/cervel
  5. @vercel/cli-auth
  6. @vercel/client
  7. @vercel/config
  8. @vercel/detect-agent
  9. @vercel/edge
  10. @vercel/elysia
  11. @vercel/error-utils
  12. @vercel/express
  13. @vercel/fastify
  14. @vercel/firewall
  15. @vercel/frameworks
  16. @vercel/fs-detectors
  17. @vercel/functions
  18. @vercel/gatsby-plugin-vercel-builder
  19. @vercel/go
  20. @vercel/h3
  21. @vercel/hono
  22. @vercel/hydrogen
  23. @vercel/koa
  24. @vercel/nestjs
  25. @vercel/next
  26. @vercel/node
  27. @vercel/oidc
  28. @vercel/oidc-aws-credentials-provider
  29. @vercel/python
  30. @vercel/python-analysis
  31. @vercel/redwood
  32. @vercel/related-projects
  33. @vercel/remix-builder
  34. @vercel/routing-utils
  35. @vercel/ruby
  36. @vercel/rust
  37. @vercel/static-build
  38. @vercel/static-config
  39. examples
  40. vercel

Results

  • Unit tests: All affected packages will run unit tests
  • E2E tests: Running in parallel via E2E Tests workflow
  • Type checks: All affected packages will run type checks

This comment is automatically generated based on the affected testing strategy

@vercel

vercel Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vercel Ready Ready Preview, Comment Apr 14, 2026 10:28pm

Request Review

@ricardo-agz ricardo-agz marked this pull request as draft April 15, 2026 23:28
@ricardo-agz ricardo-agz marked this pull request as ready for review April 15, 2026 23:50

@dnwpark dnwpark left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

I saw '<dynamic>' schedules in cli commands index and services orchestrator, these are supposed to be placeholders?

Comment thread packages/python/src/entrypoint.ts Outdated
Comment thread packages/fs-detectors/src/services/resolve.ts
@ricardo-agz

Copy link
Copy Markdown
Contributor Author

Looks good!

I saw '<dynamic>' schedules in cli commands index and services orchestrator, these are supposed to be placeholders?

it's for the new vercel.cron sdk support which lets you register multiple schedules under a single service
<dynamic> is what we understand under the hood but we also made schedule optional so you don't have to write it out (it looks hacky)

@ricardo-agz ricardo-agz merged commit 2a6344e into main Apr 16, 2026
262 of 265 checks passed
@ricardo-agz ricardo-agz deleted the ricardo/job-service-implementation branch April 16, 2026 21:55
mehulkar pushed a commit that referenced this pull request Apr 17, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## vercel@51.6.0

### Minor Changes

- Add `vercel connex list` command
([#16018](#16018))

### Patch Changes

- Add OpenAPI-driven subcommand fallback behind `VERCEL_AUTO_API=1`.
([#15989](#15989))

When the env var is set, unrecognized CLI tokens are matched against
OpenAPI tags and operation IDs from `openapi.vercel.sh`. This enables
`vercel <tag> <operationId>` (e.g. `vercel user getAuthUser`) at the top
level, and per-command fallthrough (e.g. `vercel projects getProject`)
when a token doesn't match a native subcommand.

When `x-vercel-cli.displayColumns` is present in the OpenAPI response
schema, results render as a card (single object) or table (array)
instead of raw JSON.

- [experimental-services] add new job service type support
([#15944](#15944))

- Add naming and formatting utilities for OpenAPI CLI integration.
([#16010](#16010))

Introduces `foldNamingStyle` for case-insensitive matching across
camelCase/kebab-case/snake_case, `humanReadableColumnLabel` for
converting schema property paths to readable headers, and
`inferCliSubcommandAliases` for auto-generating CLI aliases from HTTP
methods.

- Updated dependencies
\[[`44d519b8660185754d8280517adbe0ab7268f540`](44d519b),
[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/detect-agent@1.2.3
    -   @vercel/build-utils@13.17.2
    -   @vercel/python@6.33.3
    -   @vercel/backends@0.0.64
    -   @vercel/elysia@0.1.67
    -   @vercel/express@0.1.77
    -   @vercel/fastify@0.1.70
    -   @vercel/go@3.5.0
    -   @vercel/h3@0.1.76
    -   @vercel/hono@0.2.70
    -   @vercel/hydrogen@1.3.6
    -   @vercel/koa@0.1.50
    -   @vercel/nestjs@0.2.71
    -   @vercel/next@4.16.8
    -   @vercel/node@5.7.9
    -   @vercel/redwood@2.4.12
    -   @vercel/remix-builder@5.7.2
    -   @vercel/ruby@2.3.2
    -   @vercel/rust@1.1.1
    -   @vercel/static-build@2.9.17

## @vercel/backends@0.0.64

### Patch Changes

- Updated dependencies
\[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/build-utils@13.17.2

## @vercel/build-utils@13.17.2

### Patch Changes

- [experimental-services] add new job service type support
([#15944](#15944))

## @vercel/cervel@0.0.51

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/backends@0.0.64

## @vercel/client@17.3.6

### Patch Changes

- Updated dependencies
\[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/build-utils@13.17.2

## @vercel/config@0.2.1

### Patch Changes

- [experimental-services] add new job service type support
([#15944](#15944))

## @vercel/detect-agent@1.2.3

### Patch Changes

- Add v0 to detect-agent supported agents
([#16016](#16016))

## @vercel/elysia@0.1.67

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/express@0.1.77

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9
    -   @vercel/cervel@0.0.51

## @vercel/fastify@0.1.70

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/fs-detectors@5.18.2

### Patch Changes

- [experimental-services] add new job service type support
([#15944](#15944))

- Updated dependencies
\[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/build-utils@13.17.2

## @vercel/gatsby-plugin-vercel-builder@2.1.17

### Patch Changes

- Updated dependencies
\[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/build-utils@13.17.2

## @vercel/h3@0.1.76

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/hono@0.2.70

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/koa@0.1.50

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/nestjs@0.2.71

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.9

## @vercel/node@5.7.9

### Patch Changes

- Updated dependencies
\[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]:
    -   @vercel/build-utils@13.17.2

## @vercel/python@6.33.3

### Patch Changes

- [experimental-services] add new job service type support
([#15944](#15944))

## @vercel/static-build@2.9.17

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.1.17

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants