Skip to content

[EPIC](aurora): develop Modular Architecture for Aurora Dashboard #386

@andypf

Description

@andypf

Description

This epic outlines the strategy for building a flexible, modular architecture for the Aurora Dashboard (code name: carbon). The goal is to create a “modulith” that supports core functionality, core modules, and third-party extensions, ensuring high modularity while maintaining stability and performance.

Architecture Components

  • Core: Handles critical functions, including extension loading.
  • Modules: Core components, interchangeable for flexibility.
  • Extensions: Third-party add-ons that are fully isolated, wrapped in error boundaries, and integrated via static builds, Micro Frontends (MFEs), or iframes.

Action Plan

  1. Proof of Concept (POC): Build the Core App and a sample module.
  2. Define Interfaces: Establish clear interfaces for core modules and extensions to ensure seamless integration.
  3. Extension Loading: Implement a mechanism for loading extensions with isolation, error handling, and multiple integration options.

Key Decisions

  • Rename the existing app to Greenhouse Legacy.
  • Use TypeScript for development, with Vite and Vitest for build and test systems.
  • Focus on maximizing Developer Experience (DX) with speed and flexibility.

Architecture Overview

+-----------------------------------------------------------------+
|                      Greenhouse Dashboard                       |
|                                                                 |
|  +------------------------+    +-----------------------------+  |
|  |      Core System       |    |       Core Modules          |  |
|  |                        |    |                             |  |
|  | - Extension Loader     |    | - Module A                  |  |
|  | - Core Functionality   |    | - Module B (Interchangeable)|  |
|  | - Dashboard Utilities  |    | - Module C                  |  |
|  +------------------------+    +-----------------------------+  |
|                                                                 |
|                      +---------------------------+              |
|                      |     Extensions            |              |
|                      | (External/Third-Party)    |              |
|                      |                           |              |
|                      | - Extension X (Isolated)  |              |
|                      | - Extension Y (MFE/Iframe)|              |
|                      | - Error Boundary          |              |
|                      +---------------------------+              |
+-----------------------------------------------------------------+
  • Architecture for requirements related to OpenStack backend
  • Implement an initial set of MFE for the OpenStack dashboard
    • Keystone: Project CRUD UI
    • Designate: CRUD UI

Tasks

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions