Skip to content

[Obsolete] Admin Portal for Dalgo #1237

@pradnk

Description

@pradnk

Admin Portal Feature - Open Source Contribution Opportunity 🚀

About Dalgo

Dalgo is an open source data pipeline, automation, and visualization platform built by Project Tech4Dev. We empower organizations to manage their data infrastructure with ease, combining pipeline orchestration, warehouse management, and visualization capabilities in one unified platform.


Feature Overview: Admin Portal

We're inviting the open source community to help build a comprehensive Admin Portal - a powerful administrative interface that will enable platform administrators and developers to manage and monitor Dalgo deployments effectively.

🎯 Purpose

The Admin Portal serves as a central command center for Dalgo platform management, providing:

  • Multi-tenancy Management: Control organizations and their configurations
  • Security Operations: Manage credentials, keys, and access controls
  • Monitoring & Observability: Real-time health checks and pipeline stability metrics
  • User & Role Management: Granular access control and invitation workflows
  • Feature Management: Toggle capabilities per organization
  • Infrastructure Control: Warehouse and Superset instance management

Core Features to Implement

1. Organization Management

  • ✅ Create, read, update, delete (CRUD) operations for organizations
  • ✅ Organization profile editing (name, settings, metadata)
  • ✅ Organization-level configuration management
  • ✅ Bulk operations support

2. Warehouse Management

  • 🔐 Password reset and rotation for data warehouses
  • 🔑 Database credential rotation with zero-downtime
  • 📊 Warehouse connection health monitoring
  • 🔄 Support for multiple warehouse types (PostgreSQL, BigQuery, Snowflake, etc.)

3. Superset Integration Management

  • ➕ Add/remove Superset instances per organization
  • 🔗 Connection string management
  • ✅ Instance health verification
  • 📈 Usage metrics tracking

4. Pipeline Monitoring & Management

  • 📊 Pipeline execution overview dashboard
  • 🔍 Pipeline status and logs viewer
  • 📉 Failure rate analytics
  • ⚡ Pipeline stability metrics
  • 🛑 Emergency pipeline controls (pause/resume/cancel)

5. Platform Health & Availability

  • 💚 Overall system health dashboard
  • 📈 Uptime monitoring
  • 🔔 Service availability indicators
  • 📊 Resource utilization metrics
  • ⚠️ Alert management system

6. Feature Flag Management

  • 🎚️ Enable/disable features per organization
  • 🔄 Feature rollout controls
  • 📋 Feature usage analytics
  • 🧪 A/B testing support

7. Role-Based Access Control (RBAC)

  • 👥 CRUD operations for roles within organizations
  • 🎭 Permission assignment and management
  • 👤 User-role mapping
  • 🔒 Role hierarchy management

8. Invitation & User Management

  • 📧 Invite users to organizations
  • ⏰ Invitation expiry and resend functionality
  • ✅ Invitation acceptance workflow
  • 👥 User onboarding management
  • 🗑️ User deactivation/removal

9. Security & Key Management

  • 🔑 Automated key rotation workflows
  • 🔐 Secure credential storage integration
  • 📜 Audit logs for key access
  • ⏰ Key expiry notifications

Technical Architecture

Backend Repository

Repository: [DDP_backend](https://github.com/DalgoT4D/DDP_backend)

Recommended Approach:

ddpui/
├── api/
│   └── admin_portal/          # New admin API endpoints
│       ├── organizations.py
│       ├── warehouses.py
│       ├── superset.py
│       ├── pipelines.py
│       ├── health.py
│       ├── feature_flags.py
│       ├── roles.py
│       └── invitations.py
├── models/
│   └── admin/                 # New database models
│       ├── feature_flag.py
│       ├── audit_log.py
│       └── invitation.py
├── services/
│   └── admin/                 # Business logic layer
│       ├── org_service.py
│       ├── warehouse_service.py
│       ├── monitoring_service.py
│       └── security_service.py
└── permissions/
    └── admin_permissions.py   # Admin-specific permissions

Key Backend Tasks:

  • Design RESTful API endpoints following existing patterns
  • Implement authentication/authorization for admin users
  • Create database migrations for new models
  • Build services for key rotation, health checks, and monitoring
  • Implement audit logging for all admin actions
  • Add comprehensive API documentation (OpenAPI/Swagger)

Frontend Repository

Repository: [webapp_v2](https://github.com/DalgoT4D/webapp_v2)

Recommended Approach:

src/
├── pages/
│   └── AdminPortal/
│       ├── Dashboard.tsx          # Main admin dashboard
│       ├── Organizations/
│       │   ├── List.tsx
│       │   ├── Create.tsx
│       │   └── Edit.tsx
│       ├── Warehouses/
│       ├── Superset/
│       ├── Pipelines/
│       ├── Health/
│       ├── FeatureFlags/
│       ├── Roles/
│       └── Invitations/
├── components/
│   └── Admin/
│       ├── MetricsCard.tsx
│       ├── HealthIndicator.tsx
│       ├── PipelineStatusChart.tsx
│       └── AuditLogViewer.tsx
└── services/
    └── admin/
        └── adminApi.ts           # API client for admin endpoints

Key Frontend Tasks:

  • Design intuitive admin dashboard with real-time updates
  • Build reusable components for metrics and monitoring
  • Implement data tables with sorting, filtering, pagination
  • Create forms for CRUD operations with validation
  • Add confirmation dialogs for destructive actions
  • Implement responsive design for mobile access
  • Add data visualization for metrics (charts, graphs)

Getting Started

Prerequisites

  1. Familiarity with the stack:

    • Backend: Python (FastAPI/Django), PostgreSQL
    • Frontend: React/TypeScript, modern UI frameworks
    • Understanding of REST APIs and authentication
  2. Local Development Setup:

    # Clone repositories
    git clone https://github.com/DalgoT4D/DDP_backend.git
    git clone https://github.com/DalgoT4D/webapp_v2.git
    
    # Follow setup instructions in each repository's README
  3. Review Existing Code:

    • Understand current authentication/authorization patterns
    • Review existing API structure and conventions
    • Examine database models and migrations
    • Study frontend component patterns

Contribution Workflow

  1. 📋 Pick a Feature: Start with a specific feature from the list above
  2. 💬 Discuss: Open a GitHub Discussion or comment on related issues
  3. 📝 Design: Share your technical approach for feedback
  4. 🔨 Implement: Build the feature following project conventions
  5. ✅ Test: Add unit tests and integration tests
  6. 📤 Submit: Create a Pull Request with clear documentation
  7. 🔄 Iterate: Address review feedback collaboratively

Development Guidelines

Code Quality:

  • Follow existing code style and linting rules
  • Write clear, self-documenting code with comments where needed
  • Add comprehensive tests (aim for >80% coverage)
  • Update documentation alongside code changes

API Design:

  • Use RESTful conventions
  • Version APIs appropriately (/api/v1/admin/...)
  • Return consistent error responses
  • Document all endpoints with examples

Security First:

  • Validate all inputs
  • Implement proper authorization checks
  • Never log sensitive information
  • Use parameterized queries to prevent SQL injection
  • Follow OWASP security best practices

Performance:

  • Optimize database queries (use indexes, avoid N+1)
  • Implement pagination for large datasets
  • Add caching where appropriate
  • Consider async operations for long-running tasks

Suggested Implementation Phases

Phase 1: Foundation (Weeks 1-2)

  • Set up admin authentication/authorization
  • Create basic admin dashboard layout
  • Implement organization CRUD operations
  • Build audit logging infrastructure

Phase 2: Core Management (Weeks 3-4)

  • Warehouse credential management
  • Superset instance management
  • Role and permission system
  • Invitation workflow

Phase 3: Monitoring (Weeks 5-6)

  • Platform health dashboard
  • Pipeline monitoring views
  • Real-time metrics integration
  • Alert system

Phase 4: Advanced Features (Weeks 7-8)

  • Feature flag system
  • Key rotation automation
  • Advanced analytics
  • Bulk operations

Support & Communication

Where to Get Help

  • GitHub Discussions: For design discussions and questions
  • GitHub Issues: For bug reports and feature planning
  • Pull Requests: For code reviews and feedback
  • Documentation: Check existing docs in repositories

What We Provide

  • 🎯 Clear requirements and acceptance criteria
  • 👨‍💻 Code review and mentorship
  • 📚 Access to existing architecture documentation
  • 🤝 Collaborative problem-solving

Recognition

Contributors to the Admin Portal will:

  • 🌟 Be acknowledged in the project's CONTRIBUTORS.md
  • 📢 Be featured in project blog posts and social media
  • 🎓 Gain experience with production-grade data platform architecture
  • 🤝 Join a growing community of data infrastructure enthusiasts

Example User Stories

To help you understand the Admin Portal from a user perspective:

Story 1: Organization Onboarding

As a platform administrator, I want to create a new organization and invite their team members so they can start using Dalgo.

Acceptance Criteria:

  • Create organization with name, slug, and settings
  • Generate secure database credentials automatically
  • Send invitation emails to team members
  • Track invitation status

Story 2: Emergency Pipeline Management

As a platform operator, I want to quickly identify and pause failing pipelines across all organizations to prevent data quality issues.

Acceptance Criteria:

  • View real-time pipeline status across all orgs
  • Filter pipelines by status (running, failed, paused)
  • Pause/resume pipelines with one click
  • View error logs and execution history

Story 3: Feature Rollout

As a product manager, I want to enable a new feature for specific organizations to test it before general availability.

Acceptance Criteria:

  • Toggle feature flags per organization
  • See which organizations have which features enabled
  • Monitor feature usage and adoption
  • Bulk enable/disable for multiple orgs

Questions?

Have questions or ideas? We'd love to hear from you!

Let's build something amazing together! 🚀


PS: The requirements may change when we start with the discussions and get started with the team based on the current usage/thinking at that time. But, this can be mutually communicated and discussed.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Apr -June 2026

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions