Skip to main content
← Back to list
01Issue
BugShippedExtensions
Assigneesstack72

Relationships

#1274 spreadsheets-values: every method fails with 'Missing required path parameter: spreadsheetId' — implementation reads a global argument the schema does not declare

Opened by ryan_0zxv · 7/19/2026· Shipped 7/19/2026

Summary

Every method on @swamp/gcp/sheets/spreadsheets-values fails. The execute functions resolve the required {spreadsheetId} path parameter exclusively from globalArgs["spreadsheetId"] (models/spreadsheets_values.ts, e.g. lines 291-293 in 2026.07.18.1), but GlobalArgsSchema (line 117) does not declare a spreadsheetId field. Strict validation therefore rejects the argument when supplied, and the API path cannot be built when it is omitted — there is no configuration that reaches the API.

Environment

  • @swamp/gcp/sheets 2026.07.18.1
  • swamp 20260711.232311.0 (repo), CLI 20260718.081020.0, macOS arm64
  • Auth: service-account JSON via credentialsJson (vault-wired)

Reproduction

$ swamp model create @swamp/gcp/sheets/spreadsheets-values values-test \
    --global-arg 'credentialsJson=${{ vault.get(google, GCP_SHEETS_SA_JSON) }}' \
    --global-arg 'name=test'

# Without spreadsheetId anywhere:
$ swamp model @swamp/gcp/sheets/spreadsheets-values method run get values-test \
    --arg 'identifier=Sheet1!A1:B2'
[FTL] error: Error: "Missing required path parameter: spreadsheetId"

# Control — supplying it as a global argument (where the implementation reads it):
$ swamp model @swamp/gcp/sheets/spreadsheets-values method run get values-test \
    --global-arg 'spreadsheetId=<SPREADSHEET_ID>' --arg 'identifier=Sheet1!A1:B2'
[FTL] error: Error: "Global arguments validation failed: Unknown argument(s):
spreadsheetId. Valid arguments are: name, accessToken, credentialsJson, project,
scopes, majorDimension, range, values"

(Identifier variants <id>/values/<range>, spreadsheets/<id>/values/<range>, and <id>:<range> also return the missing-path-parameter error — params["range"] = args.identifier is used verbatim.)

Expected

A way to supply the spreadsheet ID that validation accepts. Verified locally: adding spreadsheetId: z.string().optional() to GlobalArgsSchema makes get succeed against a real sheet with the identifier as the A1-notation range.

Suggested resolution

  • Add spreadsheetId to GlobalArgsSchema (matches what the implementation already reads)
  • Or derive it from the identifier (documenting a composite format)

The same generator pattern may affect other subresource types whose REST paths have a parent path parameter (e.g. spreadsheets-developermetadata).

Upstream repository: https://github.com/swamp-club/swamp-extensions

Environment

  • Extension: @swamp/gcp/sheets@2026.07.18.1
  • swamp: 20260718.081020.0-sha.fc14abbd
  • OS: darwin (aarch64)
  • Deno: 2.8.3
  • Shell: /bin/zsh
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 7 MOREREVIEW+ 4 MOREPR_MERGED+ 1 MORENOTIFICATION_SKIPPED

Shipped

7/19/2026, 10:57:23 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack727/19/2026, 9:38:19 PM

Sign in to post a ripple.