Skip to content

Latest commit

Β 

History

History
263 lines (216 loc) Β· 8.25 KB

File metadata and controls

263 lines (216 loc) Β· 8.25 KB

Render Dashboard - Complete Feature List

Core Features

1. Dual Operating Modes

TUI Dashboard Mode (rdash)

  • Visual monitoring - See all services at a glance
  • Real-time status - Auto-refreshes every 30 seconds
  • Color-coded indicators - Quick status identification
    • 🟒 Green ● = Running
    • 🟑 Yellow ● = Deploying
    • πŸ”΄ Red ● = Failed
    • βšͺ Gray β—‹ = Suspended
  • Keyboard navigation - Arrow keys to move between services
  • Quick actions - Press L/E/D/S to open logs/events/deploys/settings
  • Status bar - Shows last update time and controls
  • Responsive layout - Clean, focused interface that works in any terminal size

CLI Command Mode (rdash <service> <action>)

  • Lightning-fast access - rdash chat logs opens logs instantly
  • Smart service matching
    • Exact match: rdash chat logs
    • Partial match: rdash ch logs (if unique)
    • Alias support: rdash c logs if "c" is an alias
  • Browser integration - Automatically opens Render dashboard URLs
  • Enhanced status checks - rdash chat status shows:
    • Color-coded service status (🟒 available, 🟠 deploying, πŸ”΄ failed, ⚫ suspended)
    • Custom domain URL (prioritized over Render's onrender.com URLs)
    • Latest deployment status with colored icons
    • Time since deployment (smart formatting: 5m ago, 2h ago, 3d ago)
    • GitHub commit links - Direct links to deployed commits with short SHA
  • Helpful errors - Shows available services if match fails

2. Service Management

Service Information Display

  • Service name and ID
  • Current status with color-coded icons:
    • 🟒 Green = Available/Running
    • 🟠 Orange = Deploying
    • πŸ”΄ Red = Failed
    • ⚫ Gray = Suspended
  • Service type (web service, cron job, etc.)
  • Custom domain URL (prioritized) or Render URL (fallback)
  • Latest deployment status with colored icons
  • Time since last deployment (smart formatting: seconds, minutes, hours, days)
  • GitHub commit information:
    • Short commit SHA (first 7 characters)
    • Full commit URL (clickable in most terminals)
  • Deployment progress indication (for in-progress deploys)

Supported Actions

  • Logs - Open service logs in browser
  • Events - Open service events in browser
  • Deploys - Open deployment history in browser
  • Settings - Open service settings in browser
  • Status - View current status in terminal

3. Configuration

Flexible Configuration

  • YAML-based configuration file
  • Environment variable substitution (${RENDER_API_KEY})
  • Multiple config locations:
    • ./config.yaml (current directory)
    • ~/.config/render-dashboard/config.yaml (home directory)
  • Configurable auto-refresh interval
  • Service priority ordering

Service Configuration

  • Service ID (from Render dashboard)
  • Display name
  • Multiple aliases per service
  • Priority for display order

4. API Integration

Render API Client

  • Async HTTP client - Fast concurrent requests
  • Automatic retries - Handles transient failures
  • Error handling - Graceful handling of:
    • Authentication failures
    • Rate limits
    • Network errors
    • Invalid service IDs
    • Timeout errors

API Endpoints Used

  • GET /v1/services/{serviceId} - Service details and repository URL
  • GET /v1/services/{serviceId}/deploys - Deployment history with commit info
  • GET /v1/services/{serviceId}/custom-domains - Custom domain configuration

5. Shell Integration

Zsh Completion Plugin

  • Tab completion - Complete service names and actions
  • Action descriptions - Help text for each action
  • Cached completions - Fast, no API calls needed
  • Auto-update - Regenerates when config changes
  • Oh-My-Zsh compatible - Works with standard oh-my-zsh setup
  • Autosuggestions support - Works with zsh-autosuggestions plugin

Installation

  • Automated installer script (install-zsh-plugin.sh)
  • Manual installation instructions
  • Works with both oh-my-zsh and standalone zsh

6. User Experience

Smart Defaults

  • Sensible default refresh interval (30 seconds)
  • Helpful error messages with actionable advice
  • Example config file included
  • Comprehensive documentation

Performance

  • Concurrent API requests (all services fetched in parallel)
  • Minimal re-renders in TUI
  • Cached completions for shell integration
  • Efficient async polling

Accessibility

  • Clear visual indicators
  • Keyboard-first interface
  • Works in any terminal emulator
  • No mouse required (but mouse works in Textual)

Advanced Features

Service Matching Algorithm

  1. Exact alias match - Highest priority
  2. Partial alias match - If unique
  3. Name match - Fallback to service name
  4. Disambiguation - Shows options if multiple matches
  5. Case insensitive - rd Chat logs = rd chat logs

Auto-Refresh System

  • Background async task
  • Configurable interval
  • Updates all services concurrently
  • Shows time since last update
  • Manual refresh with 'R' key

Error Handling

  • Config validation - Catches errors before startup
  • API error handling - Graceful degradation
  • Browser fallback - Prints URL if browser fails to open
  • Network resilience - Continues running despite transient failures
  • Helpful messages - Clear explanations of what went wrong

URL Generation

  • Constructs correct Render dashboard URLs
  • Supports all Render service types
  • Handles different action types (logs, events, deploys, settings)
  • Works with any Render service ID format

Technical Features

Architecture

  • Modular design - Separate API, UI, and CLI layers
  • Async-native - Built on async/await throughout
  • Type hints - Full type annotations for better IDE support
  • Dataclasses - Clean, typed data models
  • Enums - Type-safe status values

Dependencies

  • Textual - Modern TUI framework with reactive updates
  • httpx - Modern async HTTP client
  • PyYAML - Config file parsing
  • python-dateutil - Robust datetime handling
  • Click - CLI framework (minimal usage)

Code Quality

  • Clean separation of concerns
  • Comprehensive error handling
  • Helpful inline documentation
  • Example code and configs included

Documentation

Included Documentation

  • README.md - Comprehensive guide with all features
  • QUICKSTART.md - Get running in 5 minutes
  • TESTING.md - Complete test scenarios and verification
  • PROJECT_STRUCTURE.md - Architecture and design decisions
  • FEATURES.md - This file
  • config.yaml.example - Example configuration

Documentation Quality

  • Step-by-step instructions
  • Code examples for every feature
  • Troubleshooting section
  • Clear explanations of concepts
  • Visual examples of output

Installation & Setup

Easy Installation

  • Standard Python package with setup.py
  • Install with pip install -e .
  • Creates rdash command in PATH
  • No additional setup required

Configuration

  • Example config file provided
  • Clear instructions for finding service IDs
  • Environment variable for API key
  • Multiple config location support

Shell Integration

  • Automated zsh plugin installer
  • Manual installation instructions
  • Works immediately after install

Use Cases

Daily Monitoring

  • Keep TUI open in tmux pane
  • At-a-glance status of all services
  • Auto-refresh keeps info current
  • Quick keyboard shortcuts for common actions

Quick Actions

  • rdash api logs - Instant access to logs
  • rdash db status - Check database status
  • rdash web events - View recent events
  • No need to open browser and navigate

Debugging

  • Quickly open logs during incidents
  • Check deploy status
  • View events timeline
  • Fast iteration: check status β†’ open logs β†’ fix β†’ check again

Team Workflows

  • Share config file with team
  • Consistent aliases across team
  • Quick access to shared services
  • Terminal-first workflow

Future Compatibility

Extensibility

  • Easy to add new API endpoints
  • Simple to create new TUI widgets
  • Pluggable action system
  • Config format is extensible

Planned Enhancements (Not Yet Implemented)

  • Log streaming in TUI
  • Deploy triggering
  • Desktop notifications
  • Multiple config profiles
  • Service health metrics graphs
  • Filter services by status
  • Search in TUI

Total Features Implemented: 50+

This is a comprehensive, production-ready tool for managing Render services from the terminal!