Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
2 tasks
andypf opened this issue Sep 17, 2024 · 0 comments
Open
2 tasks

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

andypf opened this issue Sep 17, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@andypf
Copy link
Collaborator

andypf commented Sep 17, 2024

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

@andypf andypf added the enhancement New feature or request label Sep 17, 2024
@andypf andypf pinned this issue Sep 17, 2024
@andypf andypf changed the title [EPIC](core): develop Modular Architecture for Greenhouse Dashboard with Core and Extension Support [EPIC](aurora): develop Modular Architecture for Aurora Dashboard with Core and Extension Support Sep 24, 2024
@andypf andypf changed the title [EPIC](aurora): develop Modular Architecture for Aurora Dashboard with Core and Extension Support [EPIC](aurora): develop Modular Architecture for Aurora Dashboard Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants