Skip to content

fix: declare required secrets so Pinata prompts on deploy#5

Merged
ryanio merged 1 commit into
mainfrom
fix/declare-secrets
Apr 30, 2026
Merged

fix: declare required secrets so Pinata prompts on deploy#5
ryanio merged 1 commit into
mainfrom
fix/declare-secrets

Conversation

@ryanio

@ryanio ryanio commented Apr 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Pinata's setup UI reads manifest.jsonsecrets to know what env vars to prompt for at deploy time. We had no secrets array, so users were never prompted for the four credentials the agent actually needs — they had to know to paste them into the env UI by hand. The README mentions doing this, but a setup wizard that silently doesn't ask is the wrong default.

Changes

manifest.json: declare all four as required: true, with descriptions matching the README's Secrets you'll need table:

  • OPENSEA_API_KEY — includes the curl one-liner that mints an instant key
  • PRIVY_APP_ID — points at dashboard.privy.io
  • PRIVY_APP_SECRET — same dashboard page
  • PRIVY_WALLET_ID — points at the skill's wallet-setup reference

Pattern follows moonpay-defi-portfolio's secrets array. The canonical schema (per useful-assistant's _docs block) only requires name + description; required defaults to true.

.github/workflows/validate.yml: assert the secrets array exists, every entry has a SHOUTING_SNAKE_CASE name and non-empty description, and all four required vars are explicitly declared with required: true. So this can't silently regress.

Test plan

  • CI passes
  • Re-deploy on Pinata and confirm the setup wizard now prompts for all four secrets

🤖 Generated with Claude Code

Pinata's setup UI reads manifest.json → secrets to know what env vars
to prompt for. We had none declared, so users hitting deploy never
got asked for OPENSEA_API_KEY, PRIVY_APP_ID, PRIVY_APP_SECRET, or
PRIVY_WALLET_ID — they had to know to paste them into the env UI by
hand (the README mentions this, but a setup wizard that doesn't ask
is the wrong default).

Declared all four as required, with descriptions matching what the
README's secrets table says. Pattern follows the moonpay-defi-portfolio
template's secrets array (the canonical schema only requires name +
description; required defaults to true).

CI now asserts the secrets array exists, every entry has a valid
SHOUTING_SNAKE_CASE name and non-empty description, and all four
required vars are declared with required: true — so this can't
silently regress.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ryanio ryanio merged commit b5f1a75 into main Apr 30, 2026
3 checks passed
@ryanio ryanio deleted the fix/declare-secrets branch May 7, 2026 00:19
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.

1 participant