---
title: "Prerequisites & Authentication"
description: "## System Requirements **Production Environment:** - Windows Server 2019 or later, or Linux (Ubuntu 20.04+, RHEL 8+) - .NET 8.0 runtime - Minimum 4GB RAM (8GB recommended for high-volume usage) - Network connectivity to TRAPI service and M-Files Server **Deployment…"
url: "https://extensionkit.unitfly.com/documentation/grapi-prerequisites-authentication/"
updated: "2026-01-23"
category: GRAPI Wiki and User Guide
---

# Prerequisites & Authentication

## System Requirements

**Production Environment:**

- Windows Server 2019 or later, or Linux (Ubuntu 20.04+, RHEL 8+)
- .NET 8.0 runtime
- Minimum 4GB RAM (8GB recommended for high-volume usage)
- Network connectivity to TRAPI service and M-Files Server

**Deployment Options:**

| Option | Description |
| --- | --- |
| **IIS** | Deploy as [ASP.NET](http://asp.net/) Core application on Windows Server |
| **Docker** | Containerized deployment using provided Dockerfile |
| **Azure App Service** | Cloud deployment with environment-based configuration |
| **Self-hosted** | Run as standalone Kestrel server |

**Dependencies:**

- **TRAPI Service**: Must be running and accessible (GRAPI communicates with M-Files through TRAPI)
- **M-Files Server**: Accessible via TRAPI service
- **Valid M-Files user accounts** with appropriate vault permissions
- **SSL certificate** (recommended for production)

## Installation Requirements

1. **TRAPI Service**: Must be deployed and running (GRAPI depends on TRAPI for M-Files communication)
2. **Network Access**: Firewall rules allowing communication with TRAPI service
3. **JWT Token Configuration**: Same JWT tokens used for both GRAPI and TRAPI authentication

## Authentication

GRAPI uses JWT token authentication that is forwarded to the underlying TRAPI service for M-Files operations.

**IMPORTANT!**When TRAPI is configured with JWT authentication, GRAPI **must use the same RSA key pair.**The JWT token is passed via the `X-API-Key`header and authenticates requests to both services.

### JWT Token Authentication

All GraphQL requests require a valid JWT token passed via the `X-API-Key` header.

**Token Generation:** JWT tokens are generated using the KeyGenerator utility included with the API Suite. Same JWT tokens are used for both GRAPI and TRAPI authentication.

**Token Usage:**

```
X-API-Key: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
```
