Skip to content

feat: add worker backend commands (login, worker, db)#36

Open
ted2048-maker wants to merge 2 commits intoglitternetwork:mainfrom
ted2048-maker:feat/worker-commands
Open

feat: add worker backend commands (login, worker, db)#36
ted2048-maker wants to merge 2 commits intoglitternetwork:mainfrom
ted2048-maker:feat/worker-commands

Conversation

@ted2048-maker
Copy link

Summary

Adds Cloudflare Worker backend management to the pinme CLI, integrated with api.pinme.pro.

New commands

Auth

  • pinme login [--email <email>] — email OTP login, saves ~/.pinme/auth.json
  • pinme whoami — show account identity and tier

Worker management (pinme worker <subcommand>)

  • pinme worker init [name] [--template blank|rest-api] — scaffold a new worker project
  • pinme worker deploy [--message <msg>] [--dry-run] — build + deploy worker
  • pinme worker status — show status, usage, migrations
  • pinme worker destroy [--confirm] — permanently destroy project
  • pinme worker logs — stream live logs (SSE)
  • pinme worker dev [--port <n>] — local dev server via wrangler
  • pinme worker list — list all your worker projects

Secrets (pinme worker secret <subcommand>)

  • pinme worker secret set <key> [value] — set a secret (prompts if value omitted)
  • pinme worker secret list — list secret names
  • pinme worker secret delete <key> — delete a secret
  • pinme worker secret import <file> — bulk import from .env file

Database (pinme db <subcommand>)

  • pinme db migrate [--dry-run] — run pending SQL migrations
  • pinme db migrate:create <name> — create a new migration file
  • pinme db query "<sql>" [--json] — execute SQL on the remote D1 database

New utility modules

  • bin/utils/worker-api.ts — typed API client for api.pinme.pro
  • bin/utils/worker-config.ts — reads pinme.toml and .pinme/project
  • bin/utils/worker-build.ts — esbuild bundler for user worker code

Changes to existing files

  • package.json — added @iarna/toml, moved esbuild to dependencies, bumped engines to >=18.0.0
  • bin/login.ts — rewritten to use Commander opts instead of process.argv
  • bin/index.ts — registered all new commands; fixed all .action() handlers to properly pass Commander args

Test plan

  • pinme login — sends email OTP and saves credentials
  • pinme whoami — shows account info after login
  • pinme worker init my-app — creates scaffolded project directory
  • pinme worker deploy (in a worker project dir) — builds and deploys
  • pinme worker status — shows project info
  • pinme worker list — lists all projects for the account
  • pinme worker secret set FOO bar — sets a secret
  • pinme worker secret list — lists secret names
  • pinme worker secret delete FOO — deletes secret
  • pinme db migrate — runs pending migrations
  • pinme db query "SELECT 1" — executes SQL
  • All existing IPFS commands still work normally

🤖 Generated with Claude Code

ted2048-maker and others added 2 commits February 21, 2026 22:00
Adds Cloudflare Worker deployment capabilities to pinme CLI,
integrating with api.pinme.pro for backend management.

New commands:
  pinme login                   Email OTP authentication via ipfs-proxy
  pinme whoami                  Show account identity and tier
  pinme projects                List all worker projects

  pinme worker init [--template blank|rest-api]
  pinme worker deploy [--message] [--dry-run]
  pinme worker status
  pinme worker destroy [--confirm]
  pinme worker logs
  pinme worker dev [--port]

  pinme db migrate [--dry-run]
  pinme db migrate:create <name>
  pinme db query "<sql>" [--json]

  pinme secret set/list/delete/import

Auth uses the same ~/.pinme/auth.json file as existing commands.
Worker projects store project ID in .pinme/project per directory.
User tier (free/premium) is determined by pinme VIP status.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- `pinme secret *` → `pinme worker secret set/list/delete/import`
- `pinme projects` → `pinme worker list`
- Fix Commander action() handlers to pass args/opts properly (was using process.argv directly)
- Fix `pinme login --email` to use Commander opts instead of process.argv
- Delete obsolete bin/secret.ts and bin/projects.ts (merged into bin/worker.ts)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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.

1 participant