# @memberjunction/data-context-server Server-side implementation of the MemberJunction Data Context system. Provides SQL-based data loading for `DataContextItem` objects using direct database connections. ## Overview The `@memberjunction/data-context-server` package extends the base `DataContextItem` class from `@memberjunction/data-context` with a server-side implementation that executes SQL queries directly against SQL Server using `mssql` connection pools. This is the server counterpart to the client-side GraphQL-based data context loading. ```mermaid graph TD A["DataContextItemServer"] -->|extends| B["DataContextItem
(data-context package)"] A -->|uses| C["mssql ConnectionPool"] C --> D["SQL Server"] E["Server-Side Code
(MJAPI, Actions, etc.)"] --> A F["Client-Side Code
(Angular, React)"] --> G["DataContextItemClient
(GraphQL-based)"] style A fill:#2d6a9f,stroke:#1a4971,color:#fff style B fill:#7c5295,stroke:#563a6b,color:#fff style C fill:#2d8659,stroke:#1a5c3a,color:#fff style D fill:#2d8659,stroke:#1a5c3a,color:#fff style E fill:#b8762f,stroke:#8a5722,color:#fff style G fill:#b8762f,stroke:#8a5722,color:#fff ``` ## Installation ```bash npm install @memberjunction/data-context-server ``` ## How It Works The package registers `DataContextItemServer` as a subclass of `DataContextItem` using MemberJunction's `@RegisterClass` decorator. When server-side code creates a `DataContextItem`, the class factory automatically returns the server implementation that uses direct SQL execution rather than GraphQL. ```typescript import '@memberjunction/data-context-server'; // DataContextItem instances now use direct SQL execution on the server ``` The `LoadFromSQL` method: 1. Receives a SQL Server `ConnectionPool` as the data source 2. Creates a new `Request` from the pool 3. Executes the `DataContextItem.SQL` query directly 4. Stores the resulting recordset in `DataContextItem.Data` 5. Returns success/failure with error details on `DataLoadingError` ## Dependencies | Package | Purpose | |---------|---------| | `@memberjunction/core` | UserInfo, LogError utilities | | `@memberjunction/global` | RegisterClass decorator | | `@memberjunction/data-context` | Base DataContextItem class | | `mssql` | SQL Server connectivity | ## License ISC