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.