oclaw/uds-auth
oliver fa4d5d6d97
Some checks are pending
ci / test (push) Waiting to run
ci / test-postgresql (push) Waiting to run
fix(uds-auth): isolate trusted Host calls from browser identity
2026-10-11 17:03:40 +08:00
..
docs Bundle uds-skill-auth inside the uds-auth plugin for single-package handoff. 2026-09-08 23:46:11 +08:00
lib fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00
scripts Ship uds-auth offline tgz without npm qrcode fetch (0.2.20). 2026-10-10 20:06:40 +08:00
skill-helpers Bundle uds-skill-auth inside the uds-auth plugin for single-package handoff. 2026-09-08 23:46:11 +08:00
skills/uds-skill-auth Bundle uds-skill-auth inside the uds-auth plugin for single-package handoff. 2026-09-08 23:46:11 +08:00
test fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00
.gitignore Bridge uds-auth session identity for Desktop dsh-app://. 2026-10-09 22:46:37 +08:00
config.default.yaml Add parallel skill credential path to uds-auth for agent/cron use. 2026-09-08 23:01:11 +08:00
cordis.patch.yml Enforce multi-user ACL for sessions, settings, and workspaces. 2026-09-08 04:29:48 +08:00
package-lock.json fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00
package.json fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00
pnpm-lock.yaml change log in 2026-09-08 00:28:58 +08:00
README.md fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00
README.zh.md fix(uds-auth): isolate trusted Host calls from browser identity 2026-10-11 17:03:40 +08:00

uds-auth

UDS authentication plugin for DeepSeek Harness: fixed sidebar login badge + host session/role APIs.

Install

dsh plugin --profile web add -w "D:/project/chatgpt/oclaw/uds-auth"

Restart Harness after install. The badge mounts on sidebar.footer.action (root scope).

Version 0.2.21 provides ctx.get('udsAuth').runAsHost(callback) for trusted Host plugins. It isolates UDS browser identity during synchronous and asynchronous background operations and restores the caller afterward. Use with dsh-im-ops >= 4.9.1-ops.38 to fix WhatsApp background Session creation rejected as signed out; update both plugins and restart the Host. The callback adds no remote endpoint and preserves browser login and workspace ACL checks.

Config

uacBaseUrl: https://uac.zte.com.cn
userSearchUrl: https://icenterapi.zte.com.cn/zte-km-icenter-addresearch/user/plain/docs/search
loginSystemCode: '100000455558'
originSystemCode: ''
retainSkillCredentialsOnLogout: true
skillCredentialTtlSeconds: 604800
outboundAllowedHosts: icenterapi.zte.com.cn,icentermsg.dt.zte.com.cn

Skill auth standard (Chinese): docs/skill-auth-standard.zh.md.

Bundled skill: skills/uds-skill-auth. Handoff notes: docs/uds-skill-auth.zh.md.

Loopback agent APIs: GET|POST /uds-auth/agent-credentials, POST /uds-auth/outbound.

Local admin unlock (optional, decrypt-to-login)

  1. node scripts/seal-local-admin.mjs "your-passphrase"
  2. Set printed UDS_AUTH_LOCAL_ADMIN_BOX=... on the Harness process (ciphertext only)
  3. Login panel → “Unlock with local key” → enter passphrase

Env alone does not grant admin. Legacy UDS_AUTH_LOCAL_ADMIN_KEY is ignored.

Layout

Piece Path Role
Host lib/index.js Cordis apply: settings, RPC, /uds-auth/*
Client lib/client.js ModuleLoader + React footer login card
Bundle cordis.patch.yml layer insert only
Meta package.json dsh.client ./client + slots inject

The login panel uses position: fixed with a measured trigger anchor (same pattern as CordisPanel) so the sidebar overflow clip cannot hide it.

License

MIT