feat: add namespace-based multi-user isolation

Implement namespace support across sessions, machines, and users for multi-user server deployments. Add access control with specific error reasons (namespace-missing, access-denied, not-found) and database schema updates with namespace columns and indexes.
This commit is contained in:
weishu
2025-12-31 21:56:01 +08:00
parent 460c393006
commit e821458af8
30 changed files with 737 additions and 124 deletions
+2 -2
View File
@@ -97,7 +97,7 @@ export function LoginPrompt(props: LoginPromptProps) {
? 'Enter your access token to bind this Telegram account'
: 'Enter your access token to continue'
const submitLabel = isBindMode ? 'Bind' : 'Sign In'
const helpText = 'Use the CLI_API_TOKEN from your server configuration'
const helpText = 'Use CLI_API_TOKEN:<namespace> from your server configuration (omit :<namespace> for default)'
return (
<div className="relative h-full flex items-center justify-center p-4">
@@ -177,7 +177,7 @@ export function LoginPrompt(props: LoginPromptProps) {
type="password"
value={accessToken}
onChange={(e) => setAccessToken(e.target.value)}
placeholder={isBindMode ? 'CLI_API_TOKEN' : 'Access Token'}
placeholder={isBindMode ? 'CLI_API_TOKEN:<namespace>' : 'CLI_API_TOKEN[:namespace]'}
autoComplete="current-password"
disabled={isLoading}
className="w-full px-3 py-2.5 rounded-lg border border-[var(--app-border)] bg-[var(--app-bg)] text-[var(--app-fg)] placeholder:text-[var(--app-hint)] focus:outline-none focus:ring-2 focus:ring-[var(--app-button)] focus:border-transparent disabled:opacity-50"