Skip to content

fix(workers): reject $LATEST qualifier in Lambda ARN validation#3657

Merged
rossnelson merged 1 commit into
mainfrom
com-211
Jul 10, 2026
Merged

fix(workers): reject $LATEST qualifier in Lambda ARN validation#3657
rossnelson merged 1 commit into
mainfrom
com-211

Conversation

@rossnelson

@rossnelson rossnelson commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Description

Part of COM-211.

The serverless worker Lambda ARN validation (serverless-worker-form/shared.ts) accepted any function qualifier, so an ARN ending in :$LATEST passed validation. Worker deployment versions need a pinned function version or alias, so a $LATEST ARN should be rejected.

This adds a validation rule that rejects a :$LATEST qualifier with a clear message, and covers the schema with unit tests.

What this does NOT cover

The other half of COM-211 (ARN / field edits not persisting) is a backend concern: worker deployment versions are currently immutable, so the edit form's changes silently no-op. Per the team discussion the direction is to make those fields mutable server-side, so there is no UI change here for that.

Testing

  • pnpm test (all suites pass, new shared.test.ts added)
  • pnpm check (clean)
  • pnpm lint (clean)

New tests verify:

  • valid unqualified ARN, numeric version, and alias all pass
  • :$LATEST qualifier is rejected
  • malformed and empty ARNs still error as before

The serverless worker ARN validation accepted any function qualifier,
so an ARN ending in :$LATEST passed. Worker deployment versions need a
pinned version or alias, so reject $LATEST with a clear error and cover
the schema with tests.

COM-211
@rossnelson
rossnelson requested a review from a team as a code owner July 10, 2026 18:03
@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Jul 10, 2026 6:03pm

Request Review

@rossnelson
rossnelson merged commit 1f0e149 into main Jul 10, 2026
19 checks passed
@rossnelson
rossnelson deleted the com-211 branch July 10, 2026 18:14
rossnelson added a commit that referenced this pull request Jul 10, 2026
rossnelson added a commit that referenced this pull request Jul 13, 2026
…t $LATEST validation (#3658)

* fix(workers): send update mask when editing WDV compute config

Editing an existing worker deployment version silently did nothing:
the update/validate compute-config calls sent the scaling group without
a FieldMask, and per the API an empty mask on an existing scaling group
is a no-op. Mirror the CLI by sending an update mask (provider,scaler)
so ARN, IAM role, external ID, and scaler edits actually persist.

COM-211

* Revert "fix(workers): reject $LATEST qualifier in Lambda ARN validation (#3657)"

This reverts commit 1f0e149.
rossedfort added a commit that referenced this pull request Jul 13, 2026
Auto-generated version bump from 2.52.0 to 2.52.1

Bump type: patch

Changes included:
- [`3be0df00`](3be0df0) fix(schedules): default absent second/minute/hour to 0 when editing (#3653)
- [`508b65b7`](508b65b) fix(schedules): default emptied second/minute/hour to 0 on submit (#3655)
- [`1f0e149c`](1f0e149) fix(workers): reject $LATEST qualifier in Lambda ARN validation (#3657)
- [`b42b0776`](b42b077) a11y(2.4.3): inert-based focus containment + restore; drop trap from native dialogs (#3598)
- [`cc491a29`](cc491a2) a11y(2.4.3): keep toast live region announcing during a focus trap [DT-4252] (#3654)
- [`ddc7f8e2`](ddc7f8e) a11y(2.4.11): add scroll-padding so sticky overlays don't obscure focused elements (#3532)
- [`b7e3a472`](b7e3a47) FilterBar icon update (#3660)
- [`09318ec6`](09318ec) Add danger PR comment for api version bump (#3662)
- [`273cc4be`](273cc4b) a11y(4.1.2): add label prop to Button primitive and enforce accessible names (#3556)
- [`4507115f`](4507115) Use an editable combobox for the Cloud Run region field (DT-4232) (#3636)
- [`694a7471`](694a747) a11y(1.4.13): migrate saved-query nav tooltips to Tooltip primitive (#3607)
- [`8b384a40`](8b384a4) a11y(4.1.2): fix nested interactive elements in Copyable component (#3558)
- [`1bfd2750`](1bfd275) fix describe SANO API requests to include runId parameter (#3661)
- [`ba18b43e`](ba18b43) a11y(4.1.2): require label on CodeBlock primitive; add aria-readonly for read-only mode (#3557)
- [`6e2290f1`](6e2290f) feat(deployments): make compute provider picker configurable (#3659)
- [`4470b76a`](4470b76) fix(workers): persist WDV compute-config edits via update mask; revert $LATEST validation (#3658)
- [`17fd591b`](17fd591) fix(nexus-operations): make start standalone nexus operation timeouts optional (#3656)

Co-authored-by: rossedfort <[email protected]>
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.

2 participants