- oauth_providers registry table (per-provider client creds) + db/oauth_providers.rs - mcp/oauth.rs: authorization-code + PKCE S256, RAM-only TTL'd flow store, copy-paste consent - mcp/install.rs + verify.rs: connector file install + manifest verification - activate persists a pending row (needs_oauth); /mcp/oauth/start + /complete exchange code for refresh token - credential delivery via env var on docker exec (google_authorized_user JSON), never on disk - mcp_catalog/mcp_user_servers: additive OAuth columns (ensure_column), catalog_name/oauth_provider/deliver_json bare TEXT snapshots - frontend: connector-detail.js (OAuth login panel), shared/connector-common.js, connectors.js admin Sign-in providers modal - API: /mcp/providers (admin OAuth creds), /mcp/oauth/start|complete - .gitignore: add /homes/ (instance data), /connectors/, /reset.sh; drop stale /secrets/
101 lines
2.1 KiB
CSS
101 lines
2.1 KiB
CSS
/* ── Custom element display + layout shell ──────────────────────────────────── */
|
|
|
|
tasks-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
task-running-section,
|
|
task-cron-jobs-section,
|
|
task-scheduled-section,
|
|
task-history-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
llm-providers-page,
|
|
models-hub-page {
|
|
display: none; /* toggled by JS */
|
|
flex: 1;
|
|
min-width: 0;
|
|
overflow-y: auto;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
models-llm-section,
|
|
models-transcribe-section,
|
|
models-image-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
projects-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
project-list-section,
|
|
project-board-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
session-detail-page,
|
|
tic-sessions-page,
|
|
file-viewer-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
users-page,
|
|
roles-page,
|
|
connectors-page,
|
|
connector-detail-page,
|
|
marketplace-page,
|
|
catalog-page,
|
|
profile-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
/* ── Workspace placeholder ──────────────────────────────────────────────────── */
|
|
|
|
.app-workspace {
|
|
display: flex;
|
|
flex: 1;
|
|
min-width: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--placeholder-color, #94a3b8);
|
|
font-size: 0.9rem;
|
|
}
|