d4rkbot: API v1 mit Key-System, Env-Diät, Rebranding
- API-Keys (SHA-256-Hash, Scopes, last_used) — Verwaltung auf der Setup-Seite, Klartext-Key wird genau einmal angezeigt - /api/v1: message, dm, roles (add/remove), member/:id, stats — Bearer-Auth mit Scope-Prüfung, Embed-Sanitizing, README-Doku mit Python-Beispiel - Env-Diät: PUBLIC_URL + GITEA_URL jetzt Settings (Env nur Fallback), OAuth-Redirect dynamisch; Env enthält nur noch Secrets/Bootstrap - Rebranding ecobot → d4rkbot (Packages, Container, Cookies, README); Volume-Name bleibt ecobot_data (Datenerhalt), Portainer-Stack-Name bleibt Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -503,6 +503,44 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
|
||||
.toggle input:checked::after { transform: translateX(16px); background: var(--neon); }
|
||||
.toggle > span:first-of-type { color: var(--text); font-size: .95rem; }
|
||||
|
||||
/* API-Keys */
|
||||
.key-list { margin-bottom: 1.2rem; border: 1px solid rgba(255, 255, 255, .06); }
|
||||
.key-row {
|
||||
display: flex; align-items: center; gap: 1rem;
|
||||
padding: .5rem .8rem;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .05);
|
||||
font-size: .9rem;
|
||||
}
|
||||
.key-row:last-child { border-bottom: none; }
|
||||
.key-name { font-weight: 600; min-width: 8rem; }
|
||||
.key-scopes {
|
||||
font-family: var(--mono); font-size: .65rem; letter-spacing: .1em;
|
||||
color: var(--neon); flex: 1;
|
||||
}
|
||||
.key-used { font-family: var(--mono); font-size: .62rem; color: var(--muted2); white-space: nowrap; }
|
||||
.key-created {
|
||||
border: 1px solid rgba(0, 255, 136, .3);
|
||||
background: rgba(0, 255, 136, .04);
|
||||
padding: .8rem 1rem;
|
||||
margin-bottom: 1.2rem;
|
||||
font-size: .9rem;
|
||||
}
|
||||
.key-created p { margin: 0 0 .5rem; }
|
||||
.key-created code {
|
||||
display: block;
|
||||
font-family: var(--mono); font-size: .8rem;
|
||||
color: var(--success);
|
||||
background: #000; padding: .5rem .7rem;
|
||||
user-select: all; word-break: break-all;
|
||||
}
|
||||
.scope-row { display: flex; gap: 1.2rem; margin-top: .5rem; flex-wrap: wrap; }
|
||||
.scope-pick {
|
||||
display: flex; align-items: center; gap: .4rem;
|
||||
font-family: var(--mono); font-size: .7rem; letter-spacing: .1em;
|
||||
color: var(--muted); cursor: pointer;
|
||||
}
|
||||
.scope-pick input { accent-color: var(--neon); }
|
||||
|
||||
.settings-actions { display: flex; align-items: center; gap: 1rem; }
|
||||
.btn-save { background: var(--neon); color: #0a0a0a; border-color: var(--neon); font-weight: 600; }
|
||||
.btn-save:hover:not(:disabled) { background: var(--text); border-color: var(--text); }
|
||||
|
||||
Reference in New Issue
Block a user