> For the complete documentation index, see [llms.txt](https://docs.we360.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.we360.ai/reference/framework/system-architecture.md).

# System Architecture

Our platform is designed to provide you with real-time endpoint visibility without compromising your network performance or data security.

***

### How We Process and Protect Your Data

1\. Secure Access & Identity Management (Zero-Trust Foundation): We integrate with your existing security postures rather than forcing you to build new ones.

* Authentication and Authorization Service: All connections—from endpoint agents to portal users—must pass through strict authentication. We support enterprise SSO and OAuth2, ensuring your team accesses the platform using your established corporate credentials.
* Licensing & Entitlements Service: A dedicated service validates licenses and enforces Role-Based Access Control (RBAC), guaranteeing that your users only see the data and features they're explicitly authorized to access.

2\. High-Performance, Low-Impact Ingestion: Your endpoint performance and network stability are our top priorities.

* Asynchronous Processing: Endpoints push encrypted telemetry and media to our Ingestion API, which immediately offloads it to a Raw Data Store. This decoupled design ensures that sudden spikes in your endpoint activity will never bottleneck the system or slow down the devices.
* Intelligent Routing (Workers): A fleet of background workers silently parses, enriches, and normalizes your data before securely routing it to the appropriate storage systems.
* Real-Time Livestreaming: When your admins need instant visibility, our Livestream Server establishes a low-latency, secure WebSocket (WSS) connection directly to the endpoint, bypassing the main database to deliver real-time screen feeds.

3\. Segregated Storage for Speed and Compliance: To guarantee lightning-fast dashboard performance and simplify your data retention policies, we strictly segregate how we store your data:

* Analytics DB: Highly optimized for structured telemetry and event logs, powering your rapid analytics and trend reporting.
* Metadata DB: Securely stores your system configurations, user profiles, and security policies.
* Object Store: A highly scalable vault for your media, such as session recordings and screenshots.

4\. Ecosystem Integration & Actionable Insights: The platform is designed to break down data silos and feed your existing workflows.

* Targeted APIs: Your Web Portal accesses data through specialized APIs. The Management API handles policy updates securely, while the Analytics API crunches complex queries instantly.
* Automated Reporting: The system handles scheduled jobs, alert digests, and secure CSV/email delivery, pushing vital information to your stakeholders automatically.
* Extensibility: Built-in push (Webhooks/Streaming) and pull (API) capabilities mean our platform easily feeds your existing SIEM, BI, or ITSM tools.

```mermaid
 sequenceDiagram
    actor EP as Endpoint Device
    participant AUTH as Auth Server
    participant LIC as Licensing Server
    participant IG as Ingestion API
    participant RAW as Raw Data Store
    participant OBJ as Object Store
    participant WK as Workers
    participant MDB as Metadata DB
    participant ADB as Analytics DB
    participant LS as Livestream Server
    participant MAPI as Mgmt and Metadata API
    participant AAPI as Analytics API
    participant RPT as Reporting
    participant EXT as External Integrations
    actor PO as Web Portal

    %% Auth flow — Endpoint
    EP->>AUTH: HTTPS — authenticate and request token
    AUTH-->>EP: Token issued

    %% Auth flow — Portal
    PO->>AUTH: HTTPS — authenticate and request token
    AUTH-->>PO: Token issued

    %% Licensing flow — Endpoint
    EP->>LIC: HTTPS — validate license and check entitlements
    LIC-->>EP: License confirmed

    %% Licensing flow — Portal
    PO->>LIC: HTTPS — validate license and seat count
    LIC-->>PO: License confirmed

    %% Licensing flow — Mgmt API
    MAPI->>LIC: HTTPS — verify feature entitlements
    LIC-->>MAPI: Entitlements confirmed

    %% Ingest flow
    EP->>IG: HTTPS POST — activity events and media
    IG->>IG: Validate and authenticate
    IG-->>EP: 200 OK
    IG->>RAW: Write raw payload
    IG->>OBJ: Store screenshots and recordings

    %% Worker processing
    RAW->>WK: Consume raw payload
    WK->>MDB: Write user and policy metadata
    WK->>ADB: Write events and activity
    WK->>RPT: Trigger scheduled jobs and alert digests
    WK->>EXT: Push — webhooks and streaming
    EXT->>WK: Pull — third-party API requests

    %% Livestream flow
    EP-)LS: WSS — live screen feed
    LS-)PO: WSS — Live Monitor Dashboard

    %% Management Dashboard flow
    PO->>MAPI: HTTPS — fetch config, policies, user data
    MAPI->>MDB: Read metadata
    MDB-->>MAPI: Results
    MAPI-->>PO: Response — Management Dashboard
    PO->>MAPI: HTTPS — update config or policy
    MAPI->>MDB: Write metadata
    MDB-->>MAPI: Acknowledged
    MAPI-->>PO: Confirmed

    %% Analytics Dashboard flow
    PO->>AAPI: HTTPS — query filters and aggregates
    AAPI->>ADB: Fetch events and activity
    ADB-->>AAPI: Results
    AAPI-->>PO: Response — Analytics Dashboard

    %% Reporting output
    RPT-->>PO: CSV export and email delivery

```

```mermaid
flowchart TD
    DEVICE["Endpoint Device"]

    subgraph CORE["Core Services"]
        INGEST["Ingestion API"]
        RAW[("Raw Data Store")]
        WORKERS["Workers<br/>• Parse<br/>• Enrich<br/>• Normalize<br/>• Route"]
        LS["Livestream Server<br/>• WSS"]
    end

    AUTH["Auth Server<br/>• Token Issuance<br/>• Session Validation<br/>• SSO / OAuth2"]

    LIC["Licensing Server<br/>• License Validation<br/>• Seat Management<br/>• Feature Entitlements"]

    subgraph STORES["Data Stores"]
        MDB[("Metadata DB<br/>• Users<br/>• Policies<br/>• Config")]
        ADB[("Analytics DB<br/>• Events<br/>• Activity")]
        OBJ[("Object Store<br/>• Screenshots<br/>• Recordings")]
    end

    subgraph APIS["APIs"]
        MAPI["Mgmt &amp; Metadata API<br/>• Auth / RBAC<br/>• Settings<br/>• Policies"]
        AAPI["Analytics API<br/>• Queries<br/>• Aggregates<br/>• Filters"]
    end

    RPT["Reporting<br/>• Scheduled Jobs<br/>• Alert Digests<br/>• CSV Export<br/>• Email Delivery"]

    EXT["External Integrations<br/>• Push — Webhooks / Streaming<br/>• Pull — Third-party API Access"]

    subgraph PORTAL["Web Portal"]
        LIVE["Live Monitor Dashboard"]
        ADASH["Analytics Dashboard"]
        MDASH["Management Dashboard"]
    end

    DEVICE <-->|HTTPS| AUTH
    DEVICE <-->|HTTPS| LIC
    DEVICE -->|HTTPS| INGEST
    DEVICE <-->|WSS| LS
    LS <--> LIVE

    PORTAL <-->|HTTPS| AUTH
    PORTAL <-->|HTTPS| LIC
    MAPI <-->|HTTPS| LIC

    INGEST --> RAW
    INGEST --> OBJ
    RAW --> WORKERS

    WORKERS --> MDB
    WORKERS --> ADB
    WORKERS --> RPT
    WORKERS <--> EXT

    MDB <--> MAPI
    ADB --> AAPI

    AAPI --> ADASH
    MAPI --> MDASH

```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.we360.ai/reference/framework/system-architecture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
