vercel / vercel/vercel-plugin

env-vars / knowledge-update skills: document Marketplace Sensitive flag and run-inside-Vercel implication

Open Beginner friendly
#84 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
287
Forks
58
Avg merge
1d 1h
Merged PRs (30d)
17

Description

Plugin and version

vercel plugin (filed against vercel:env-vars and vercel:knowledge-update skills).

Observed behaviour

Vercel Marketplace integrations (Supabase, Blob, Resend, similar) write env vars into the project with the Sensitive flag set by default. The flag has three consequences that aren't covered by either skill:

  1. vercel env pull cannot retrieve a Sensitive-flagged value. The pulled .env.local ends up with the key but a placeholder value.
  2. The Vercel dashboard hides the value behind a passkey re-auth that an agent cannot complete.
  3. API/CLI reads return the placeholder, not the real value.

Practical implication: any script that uses a Marketplace-managed secret must run inside Vercel (admin route gated by Bearer auth, a build-time script, or a cron). It cannot run from the operator's laptop with a locally-populated .env.local. A team that doesn't know this writes a local script first, sees the Sensitive flag, then has to refactor the script into an admin route. The refactor adds auth-gating, a Server Action shape, and a deploy round-trip.

Expected behaviour

Both vercel:env-vars and vercel:knowledge-update should mention the Sensitive flag and its run-inside-Vercel implication. A worked example showing the admin-route shape (Bearer + CRON_SECRET, returns JSON, idempotent) would prevent the laptop-script-first detour entirely.

Steps to reproduce

  1. Create a Vercel project, install any Marketplace integration that writes env vars (e.g. Supabase).
  2. vercel env pull --environment=production .env.production against the project.
  3. Inspect the pulled file: the Marketplace-injected secrets show placeholder values, not real ones.
  4. Try to read the value via vercel env API: same placeholder.
  5. Try to write a Node script using the real secret from .env.local: fails to authenticate against the underlying service.
  6. The only viable path is to run the script inside Vercel's runtime where the real secret is injected.

Workaround

Skip the local-script step entirely on any task that touches Marketplace-managed secrets. Write the admin route first, deploy, invoke via cron or a one-shot POST with Bearer.

Context

Surfaced during a third-party-API end-to-end buildout that initially used a local launch script. Local script failed because it needed a Marketplace-injected secret. Refactored into a gated admin route in the same session.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the vercel:env-vars and vercel:knowledge-update skill documents and review their existing environment-variable guidance. Document the Marketplace Sensitive flag, its local-read limitations, and the run-inside-Vercel implication, then add the requested Bearer-authenticated, CRON_SECRET-gated, JSON-returning, idempotent admin-route example and verify both skills cover it.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
cloud, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.