Skip to content

feat!: profiles overhaul - #1234

Open
BlankParticle wants to merge 1 commit into
feat/clikitfrom
feat/profile
Open

feat!: profiles overhaul#1234
BlankParticle wants to merge 1 commit into
feat/clikitfrom
feat/profile

Conversation

@BlankParticle

@BlankParticle BlankParticle commented Aug 15, 2026

Copy link
Copy Markdown
Member

Middle of stack #1236: feat/clikitfeat/profilefeat/cli-overhaul.

This PR rebuilds authentication around named profiles and consumes CliKit from #1233 for every interactive authentication flow.

alchemy profile
alchemy profile edit
alchemy profile refresh
alchemy profile create|rename|list|show|current|delete

What changes

  • A built-in default profile with explicit --profile / ALCHEMY_PROFILE selection.
  • A versioned manifest for non-secret configuration and atomic 0600 per-profile credential storage.
  • A typed AuthProvider contract and registry discovered from provider layers.
  • Schema decoding at profile boundaries, with actionable reconfiguration errors for invalid entries.
  • Authentication happens only through profile commands; deploy, plan, and dev never open surprise wizards.
  • Browser OAuth, stored credentials, environment credentials, and provider-specific configuration share one contract.
  • Cloudflare OAuth account discovery uses memberships with the accounts endpoint as fallback.
  • Explicit environment credentials override an implicit profile outside CI; explicit profile selection remains authoritative.
  • CI reads provider environment contracts without touching local profile state.
  • Scriptable configuration supports --method, --set key=value, env:VAR, and stdin-backed secrets.
  • Effect-native cross-process locking protects credential reads and refreshes.

Command migration

Old New
alchemy login alchemy profile
alchemy login --configure alchemy profile edit
alchemy profile clear alchemy profile delete

The top PR keeps removed command names only as hidden moved-command hints. It also migrates the remaining legacy CLI surfaces and deletes the old renderer.

@alchemy-version-bot

alchemy-version-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Install the packages built from this commit:

Alchemy

alchemy

bun add https://pkg.ing/alchemy/b710174

@alchemy.run/better-auth

bun add https://pkg.ing/@alchemy.run/better-auth/b710174

@alchemy.run/cloudflare-runtime

bun add https://pkg.ing/@alchemy.run/cloudflare-runtime/b710174

@alchemy.run/frontend-frameworks

bun add https://pkg.ing/@alchemy.run/frontend-frameworks/b710174

@alchemy.run/node-utils

bun add https://pkg.ing/@alchemy.run/node-utils/b710174

@alchemy.run/pr-package

bun add https://pkg.ing/@alchemy.run/pr-package/b710174

@alchemy.run/floci

bun add https://pkg.ing/@alchemy.run/floci/b710174

Distilled

@distilled.cloud/core

bun add https://pkg.ing/@distilled.cloud/core/dd2a322

@distilled.cloud/aws

bun add https://pkg.ing/@distilled.cloud/aws/dd2a322

@distilled.cloud/axiom

bun add https://pkg.ing/@distilled.cloud/axiom/dd2a322

@distilled.cloud/cloudflare

bun add https://pkg.ing/@distilled.cloud/cloudflare/dd2a322

@distilled.cloud/hetzner

bun add https://pkg.ing/@distilled.cloud/hetzner/dd2a322

@distilled.cloud/neon

bun add https://pkg.ing/@distilled.cloud/neon/dd2a322

@distilled.cloud/planetscale

bun add https://pkg.ing/@distilled.cloud/planetscale/dd2a322

@BlankParticle
BlankParticle force-pushed the feat/profile branch 2 times, most recently from 8eae79c to 5f3d8e9 Compare August 15, 2026 21:16
@BlankParticle
BlankParticle force-pushed the feat/profile branch 3 times, most recently from b214bb4 to dbad74c Compare August 17, 2026 17:39
@BlankParticle
BlankParticle force-pushed the feat/profile branch 4 times, most recently from 5aee99d to 128d093 Compare August 18, 2026 16:35
Comment thread packages/alchemy/src/AWS/AuthProvider.ts Outdated
Comment thread packages/alchemy/src/Cli/commands/profile/flows.ts
Comment thread packages/alchemy/src/Cli/commands/profile/flows.ts
Comment thread packages/alchemy/src/Cli/commands/profile/hub.ts Outdated
Comment thread packages/alchemy/src/Cli/commands/profile/index.ts
Comment thread packages/alchemy/src/Cli/commands/_shared.ts
Comment thread packages/alchemy/src/Cli/commands/_shared.ts
Comment thread packages/alchemy/src/Cloudflare/StateStore/State.ts Outdated
Comment thread packages/alchemy/src/Cloudflare/StateStore/State.ts Outdated
Comment thread packages/alchemy/src/Neon/AuthProvider.ts Outdated
Comment thread packages/alchemy/src/Neon/Credentials.ts
Comment thread packages/alchemy/test/Prisma/fakes.ts
Comment thread website/src/content/docs/aws/tutorial/part-5.mdx
Comment thread website/src/content/docs/cli/profile.mdx Outdated
Comment thread website/src/content/docs/environments/custom-auth-provider.mdx Outdated
Comment thread website/src/content/docs/environments/custom-auth-provider.mdx Outdated
Comment thread website/src/content/docs/environments/profiles.mdx Outdated
Comment thread website/src/content/docs/environments/profiles.mdx Outdated
Comment thread website/src/content/docs/environments/profiles.mdx Outdated
Comment thread website/src/content/docs/environments/profiles.mdx Outdated
@BlankParticle
BlankParticle force-pushed the feat/profile branch 2 times, most recently from 691c1d7 to 9494409 Compare August 18, 2026 22:17
@BlankParticle
BlankParticle force-pushed the feat/profile branch 5 times, most recently from a3b91e7 to b312c05 Compare August 19, 2026 12:48
@BlankParticle
BlankParticle force-pushed the feat/profile branch 2 times, most recently from 5c2e823 to 461cd8b Compare August 22, 2026 15:00
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