irisnb/dsh-credentials-keyring2

dsh-credentials-keyring

为 DeepSeek Harness 凭据接缝提供的系统级钥匙串凭据提供者(支持 Windows 凭据管理器 / macOS 钥匙串 / Linux 秘密服务)。

AI 分析

核心用途是将 DSH 的敏感凭据(如 API Key)安全地存储在操作系统的钥匙串中。适合对本地凭据存储安全性有较高要求的 DSH 用户。

套件
dsh-credentials-keyring
版本
0.1.0
授權
MIT
最近更新
2026年8月16日

安裝

此插件尚未提供可驗證的 bundle,或相容性檢查未通過。請先閱讀倉庫說明。 閱讀完整 README ↗

Usage

The provider implements CredentialProvider, so it plugs into the credentials seam and stores one value per credential reference (a POSIX identifier such as DEEPSEEK_API_KEY).

import { Context } from '@deepseek-ai/cordis'
import { KeyringCredentialProvider } from 'dsh-credentials-keyring'

const ctx = new Context()
await ctx.plugin(KeyringCredentialProvider, { service: 'com.your-app.desktop' })

// Consumers then resolve through the seam as usual:
const hit = await ctx.credentials.resolve(credentialRef('DEEPSEEK_API_KEY'))
// { value: 'sk-…', source: 'keyring' } | undefined

Config

FieldDefaultMeaning
servicecom.deepseek.dshKeychain service namespace. Set it to your app's identifier so your secrets never collide with another app's.

Every other value lives in the keychain under (service, account), where account is the credential reference.

Semantics

  • resolve(ref){ value, source: 'keyring' } when stored, undefined when absent or empty.
  • describe(ref){ configured, source?, writable }never the value.
  • set(ref, value) → stores; rejects an empty value (use unset).
  • unset(ref) → deletes; deleting an absent entry is a no-op.
  • set / unset emit credentials/updated after committing, like every provider.