Skip to content

Add support for secrets on windows#74

Merged
andrewjensen merged 7 commits into
mainfrom
adj/add-windows-support
May 14, 2026
Merged

Add support for secrets on windows#74
andrewjensen merged 7 commits into
mainfrom
adj/add-windows-support

Conversation

@andrewjensen
Copy link
Copy Markdown
Collaborator

@andrewjensen andrewjensen commented May 14, 2026

Overview

This adds support for getting and setting secrets on Windows.

We're delegating to the cross-keychain package for the low-level interactions on Windows. Why?

  • I'm less familiar with the Windows ecosystem so I want to delegate to a battle-tested library rather than roll our own implementation
    • I originally looked at keytar and @github/keytar, but they are both in maintenance mode
  • I'm choosing to not change the MacOS and Linux implementation over to cross-keychain to avoid making a breaking change.
    • In the future, we could do some clever migration logic like we're doing with handleTemporaryBaseUrlMigration.

The change has forced some core functions in secrets.ts and runtime.ts to become async, which impacts all the commands. So the diff for this change is broad but shallow. There is no change to the existing user experience for MacOS and Linux. In those cases, we're only switching from the blocking execaSync function to the async execa function, but the user is waiting for the same work to complete either way.

Screenshot of dx init

dx-cli-secrets-windows

@andrewjensen andrewjensen marked this pull request as draft May 14, 2026 17:23
@andrewjensen andrewjensen marked this pull request as ready for review May 14, 2026 18:04
@andrewjensen andrewjensen merged commit 05e496b into main May 14, 2026
3 checks passed
@andrewjensen andrewjensen deleted the adj/add-windows-support branch May 14, 2026 21:23
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