Skip to content

Latest commit

 

History

History
93 lines (57 loc) · 7.71 KB

File metadata and controls

93 lines (57 loc) · 7.71 KB
graph LR
    Frontend_Application_SPA_["Frontend Application (SPA)"]
    Backend_Server_Core["Backend Server Core"]
    Atlassian_Connect_Event_Webhook_Handlers["Atlassian Connect Event & Webhook Handlers"]
    Database_Management_Layer["Database Management Layer"]
    API_Page_Serving_Layer["API & Page Serving Layer"]
    Security_Authentication_Middleware["Security & Authentication Middleware"]
    Backend_Server_Core -- "routes requests to" --> Atlassian_Connect_Event_Webhook_Handlers
    Backend_Server_Core -- "routes requests to" --> API_Page_Serving_Layer
    Backend_Server_Core -- "serves" --> Frontend_Application_SPA_
    Atlassian_Connect_Event_Webhook_Handlers -- "interacts with" --> Database_Management_Layer
    API_Page_Serving_Layer -- "queries" --> Database_Management_Layer
    Security_Authentication_Middleware -- "protects" --> API_Page_Serving_Layer
    Security_Authentication_Middleware -- "retrieves secrets from" --> Database_Management_Layer
    Frontend_Application_SPA_ -- "makes AJAX requests to" --> API_Page_Serving_Layer
    click Frontend_Application_SPA_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/atlassian-connect-example-app-node/Frontend_Application_SPA_.md" "Details"
    click Backend_Server_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/atlassian-connect-example-app-node/Backend_Server_Core.md" "Details"
    click Atlassian_Connect_Event_Webhook_Handlers href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/atlassian-connect-example-app-node/Atlassian_Connect_Event_Webhook_Handlers.md" "Details"
    click API_Page_Serving_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/atlassian-connect-example-app-node/API_Page_Serving_Layer.md" "Details"
    click Security_Authentication_Middleware href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/atlassian-connect-example-app-node/Security_Authentication_Middleware.md" "Details"
Loading

CodeBoardingDemoContact

Details

This project implements an Atlassian Connect application, featuring a clear separation between a React-based frontend Single Page Application (SPA) and a Node.js Express backend. The core flow involves the Backend Server Core initializing the application, serving the SPA, and routing incoming requests. The Security & Authentication Middleware plays a crucial role in validating JWT tokens for all requests originating from Atlassian, ensuring secure communication. Atlassian Connect Event & Webhook Handlers process lifecycle events and Jira webhooks, updating the Database Management Layer, which persists tenant and application data. The API & Page Serving Layer exposes RESTful APIs for the frontend and dynamically renders pages, while the Frontend Application (SPA) provides the interactive user interface within the Atlassian product's iframe, communicating with the backend via AJAX requests.

Frontend Application (SPA) [Expand]

The client-side React application responsible for the user interface and interactions within the Atlassian product's iframe. It handles rendering, user input, and communication with the backend API.

Related Classes/Methods:

Backend Server Core [Expand]

Manages the Express server's lifecycle, environment configuration, and proxies the frontend SPA during development. It acts as the central entry point for all incoming HTTP requests, routing them to appropriate handlers.

Related Classes/Methods:

Atlassian Connect Event & Webhook Handlers [Expand]

Dedicated modules for processing lifecycle events from Atlassian (e.g., app installation, uninstallation, enabling/disabling) and handling incoming webhooks from Jira. These handlers are responsible for updating the application's database based on these events.

Related Classes/Methods:

Database Management Layer

Provides an abstraction for persistent data storage, primarily managing Atlassian tenant installation details (client key, shared secret, base URL) and application-specific logs. It encapsulates database interactions, ensuring data integrity and consistency.

Related Classes/Methods:

API & Page Serving Layer [Expand]

Exposes RESTful API endpoints for the frontend and other services, dynamically renders HTML pages displayed within the Atlassian product's iframe, and serves the atlassian-connect.json descriptor, which defines the app's capabilities.

Related Classes/Methods:

Security & Authentication Middleware [Expand]

Implements JWT validation for requests originating from Atlassian products, ensuring authenticity and integrity by verifying tokens against stored tenant secrets (symmetric validation) or Atlassian public keys (asymmetric validation). This layer protects API endpoints and pages.

Related Classes/Methods: