feat: enhance pipeline monitoring, downstream jobs, authentication, and dashboard UI - #520
Open
andjoy404 wants to merge 13 commits into
Open
feat: enhance pipeline monitoring, downstream jobs, authentication, and dashboard UI#520andjoy404 wants to merge 13 commits into
andjoy404 wants to merge 13 commits into
Conversation
…nd dashboard UI - protect GitLab API calls with request pacing, concurrency limits, retries, rate-limit handling, and configurable caching - prevent one rate-limited project from breaking the complete group dashboard - use RFC3339 pipeline history timestamps - discover downstream pipelines recursively through bridge jobs - display parent, bridge, and downstream jobs for successful and failed pipelines - fetch all child-job statuses independently from the parent pipeline status - refresh active job trees while keeping completed job results cached - bypass stale job cache entries while downstream jobs are still active - show only the newest pipeline per project on the Pipelines page - request one newest pipeline per project to reduce pagination and API traffic - preserve historical pipeline retrieval for scheduled pipelines - add a manual Refresh button that bypasses the newest-pipeline cache - add pipeline totals, status counts, and status-distribution visualization - add group, project, branch, topic, job, and status filtering - display complete nested namespace paths without duplicating project names - order group and project information consistently across tables - add resizable columns and explicit shared table widths - add horizontal and vertical table scrolling with non-wrapping cells - keep all table headers sticky and aligned with their rows - keep the Action column pinned to the right - replace inline action buttons with an Arcane-style ellipsis menu - apply consistent table behavior to latest pipelines, pipelines, schedules, branch details, and scheduled-pipeline details - add an Arcane-inspired expandable sidebar with saved pin state - display configurable company branding and the selected GitLab group - move theme, favorites, logout, and GitHub actions into the top header - add persistent light and Dracula themes - add optional username/password authentication with secure session cookies - throttle failed login attempts - add runtime-configurable company branding through UI_COMPANY_NAME - document new authentication, branding, history, and cache settings - add anonymized light and Dracula dashboard and login screenshots
- replace the Schedules menu with read-only self-hosted runner monitoring - discover runners from the selected group and all descendant groups - exclude GitLab-hosted shared and instance runners - paginate runner discovery and deduplicate runners by ID - display runner tags, type, owning group or project, address, status, and jobs - retrieve runner IP addresses from the runner managers API - prioritize active and online runner managers when displaying addresses - deduplicate runner manager IP addresses - cache runner lists, details, managers, and active jobs - retain last-known runner and job data during temporary GitLab API failures - pace runner API requests to reduce the risk of HTTP 429 responses - show active jobs handled by each runner with GitLab links - automatically refresh runner state while silently handling background failures - add a manual runner refresh button that bypasses runner caches - add runner totals and status counts - add a colored runner-status distribution visualization - add separate group or project, runner or IP, and tag searches - add clickable status filters with status-specific colors - add readable runner tags and status colors for light and Dracula themes - add colored address and runner-type badges - align runner table dimensions, scrolling, resizing, and pagination with Pipelines - order runner columns as tags, type, group or project, address, runner, status, and jobs - add null-safe handling for optional GitLab runner and group fields - add staggered post-login preloading for dashboard menus - preload inactive menus sequentially to warm backend caches - avoid displaying global errors for silent background preload failures - brighten the application header and table headings in light mode - preserve the Arcane-inspired header and table styling in Dracula mode - document runner permissions and configurable runner cache settings
- replace Schedules with a read-only Runners dashboard - discover self-hosted runners across nested groups and projects - display runner tags, type, namespace, IP address, status, and active jobs - retrieve runner IP addresses from runner manager details - add runner totals, status counts, distribution chart, filters, and refresh - cache and preload runner and pipeline data while limiting GitLab API requests - add resilient handling for missing GitLab runner fields and stale API data - match runner table sizing, scrolling, pagination, and theme behavior with pipelines - improve runner tag and status contrast in light and Dracula themes - reorder runner columns for easier operational scanning - add colorful, theme-safe branch, trigger, topic, and status values to pipeline tables - apply consistent pipeline styling to latest pipelines and expanded branch rows
…it dashboard feature changes - Add GHCR Docker publish workflow - Replace legacy theme screenshot assets - Update README to document api/config.toml and config.example.toml - Align config.example.toml with actual supported runtime schema - Update backend analytics/environment/GitLab config handling - Add analytics and environment management backend support - Update frontend dashboard, analytics, and user feature code - Remove obsolete favorites-panel service - Update build config and Docker setup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves the GitLab CI Dashboard’s reliability, pipeline visibility,
performance, security, and overall user experience.
The Pipelines page now presents one newest pipeline per project, recursively
collects downstream pipeline jobs, tracks active child jobs independently from
the parent pipeline status, and provides a significantly cleaner Arcane-inspired
interface.
GitLab API reliability
Retry-Afterand rate-limit reset information.Pipeline and downstream-job visibility
jobs exist.
Newest-pipeline mode and refresh
page=1andper_page=1.Pipeline overview and filtering
Table improvements
Navigation and visual design
pagination, drawers, alerts, and dialogs.
Authentication and branding
Added an optional login page for private deployments.
Added server-side username/password authentication.
Added random server-side session tokens.
Added HttpOnly and SameSite session cookies.
Added optional secure-cookie support for HTTPS deployments.
Added failed-login throttling.
Added Sign out support.
Added runtime-configurable company branding: