Skip to content

Support multiple named 1Password vault configurations per owner #1791

Description

@aarondfrancis

Problem

The 1Password credential provider currently supports one owner-scoped configuration containing one vaultId. Configuring another vault replaces the existing configuration, and secret resolution rejects references outside that selected vault.

This makes least-privilege setups awkward. A user can point Executor at a dedicated automation vault, but may also need selected credentials that remain canonical in a Private, shared, or work vault. Copying those items creates independent copies that do not remain synchronized, while selecting the broader vault exposes more items than Executor needs.

Proposed behavior

Support multiple named 1Password vault configurations per owner, for example:

  • executor
  • personal
  • work

Each configuration would retain its own authentication metadata, vaultId, and display name. Secret references or provider item identifiers should route through an explicitly selected named configuration so the existing vault boundary remains enforceable.

The Secrets UI should list configured 1Password vaults and provide an Add 1Password vault action instead of switching to only Edit and Disconnect after the first configuration.

Acceptance criteria

  • Add, edit, and remove multiple named 1Password configurations without overwriting another configuration.
  • Browse provider entries within a specific configured vault.
  • Resolve a secret only through its selected configuration and vault boundary.
  • Continue redacting service-account tokens and never expose credential values through discovery APIs.
  • Migrate an existing singleton 1Password configuration to a default named configuration without breaking existing references.

Current implementation context

The current plugin uses a fixed provider key and stores a single blob under the fixed config key. Its configuration schema contains one vaultId, and configuredVaultUri refuses a fully qualified op:// URI when its vault does not match that configured ID. This request likely needs named provider configurations rather than only an additional vault picker in the UI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions