Back to page

Application Ledger Schemas (AppDbContext)

Raw Markdown & AI/RAG Chunks
Raw Markdown Source 2792 chars
# Application Ledger Schemas (AppDbContext)

The primary master database context for **Asterisk 2** is built on Entity Framework Core relational mappings. It acts as the central brain managing multi-tenant organizational records, documentation navigation trees, customized interface aesthetics, and dynamic feature scoping parameters.

---

## Relational Entity Topology Blueprint

The diagram below illustrates the core data tables and primary/foreign key connections managed by the framework ledger:

```mermaid
graph TD
    %% Core Tenant Metadata
    subgraph MasterEntities["Application Control Tier"]
        T_Org[("Organizations Table<br/>(PK: Id, Slug)")]
        T_Set[("AppSettings Table<br/>(Branding Overrides)")]
        T_Key[("ApiKeys Table<br/>(Machine Identity Hashes)")]
    end

    %% Hierarchical Content Ledger
    subgraph ContentHierarchy["Documentation Tree Structure"]
        T_Proj[("Projects Table<br/>(PK: Id, FK: OrgId)")]
        T_Sec[("Sections Table<br/>(PK: Id, FK: ProjectId)")]
        T_Page[("Pages Table<br/>(PK: Id, FK: SectionId, ParentPageId)")]
    end

    %% ASP.NET Identity Core
    subgraph SecurityLedger["Identity Auth Schemas"]
        T_User[("AspNetUsers Table<br/>(PK: Id, FK: OrgId)")]
        T_Role[("AspNetRoles Table<br/>(RBAC Claims Mapping)")]
    end

    %% Foreign Key Routes
    T_Org ==>|"One-to-Many Ownership"| T_Proj
    T_Org ==>|"One-to-Many Membership"| T_User
    T_Org ==>|"Scoped Token Mapping"| T_Key
    
    T_Proj ==>|"Cascade Section Tree"| T_Sec
    T_Sec ==>|"Cascade Page Arrays"| T_Page
    T_Page -.->|"Recursive Hierarchy<br/>(ParentPageId Restrict)"| T_Page
    
    T_User <==>|"UserRole Linking"| T_Role

    %% Styling Elements
    classDef mainToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef contentToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef secToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class MasterEntities,T_Org,T_Set,T_Key mainToken;
    class ContentHierarchy,T_Proj,T_Sec,T_Page contentToken;
    class SecurityLedger,T_User,T_Role secToken;
```

---

## Structural Modeling Directives

### 1. Fluent Schema Interception (`OnModelCreating`)
To prevent infinite database query cycles during record removal operations, nested entity relationships override default Entity Framework cascade deleting workflows. The hierarchical self-referencing relationship inside `Page` entities is restricted to manual tree unbinding (`DeleteBehavior.Restrict`).

### 2. Isolated Workspace Query Contexts
All commercial application database transactions append global record query criteria ensuring operations evaluate entity fields against matching user claims identity properties.
AI Chunks (RAG) 3 chunks
Chunk #1 Application Ledger Schemas (AppDbContext)
# Application Ledger Schemas (AppDbContext)

The primary master database context for **Asterisk 2** is built on Entity Framework Core relational mappings. It acts as the central brain managing multi-tenant organizational records, documentation navigation trees, customized interface aesthetics, and dynamic feature scoping parameters.

---
Chunk #2 Relational Entity Topology Blueprint
## Relational Entity Topology Blueprint

The diagram below illustrates the core data tables and primary/foreign key connections managed by the framework ledger:

```mermaid
graph TD
    %% Core Tenant Metadata
    subgraph MasterEntities["Application Control Tier"]
        T_Org[("Organizations Table<br/>(PK: Id, Slug)")]
        T_Set[("AppSettings Table<br/>(Branding Overrides)")]
        T_Key[("ApiKeys Table<br/>(Machine Identity Hashes)")]
    end

    %% Hierarchical Content Ledger
    subgraph ContentHierarchy["Documentation Tree Structure"]
        T_Proj[("Projects Table<br/>(PK: Id, FK: OrgId)")]
        T_Sec[("Sections Table<br/>(PK: Id, FK: ProjectId)")]
        T_Page[("Pages Table<br/>(PK: Id, FK: SectionId, ParentPageId)")]
    end

    %% ASP.NET Identity Core
    subgraph SecurityLedger["Identity Auth Schemas"]
        T_User[("AspNetUsers Table<br/>(PK: Id, FK: OrgId)")]
        T_Role[("AspNetRoles Table<br/>(RBAC Claims Mapping)")]
    end

    %% Foreign Key Routes
    T_Org ==>|"One-to-Many Ownership"| T_Proj
    T_Org ==>|"One-to-Many Membership"| T_User
    T_Org ==>|"Scoped Token Mapping"| T_Key
    
    T_Proj ==>|"Cascade Section Tree"| T_Sec
    T_Sec ==>|"Cascade Page Arrays"| T_Page
    T_Page -.->|"Recursive Hierarchy<br/>(ParentPageId Restrict)"| T_Page
    
    T_User <==>|"UserRole Linking"| T_Role

    %% Styling Elements
    classDef mainToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef contentToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef secToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class MasterEntities,T_Org,T_Set,T_Key mainToken;
    class ContentHierarchy,T_Proj,T_Sec,T_Page contentToken;
    class SecurityLedger,T_User,T_Role secToken;
```

---
Chunk #3 Structural Modeling Directives
## Structural Modeling Directives

### 1. Fluent Schema Interception (`OnModelCreating`)
To prevent infinite database query cycles during record removal operations, nested entity relationships override default Entity Framework cascade deleting workflows. The hierarchical self-referencing relationship inside `Page` entities is restricted to manual tree unbinding (`DeleteBehavior.Restrict`).

### 2. Isolated Workspace Query Contexts
All commercial application database transactions append global record query criteria ensuring operations evaluate entity fields against matching user claims identity properties.