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 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 #
- TRAPI Service: Must be deployed and running (GRAPI depends on TRAPI for M-Files communication)
- Network Access: Firewall rules allowing communication with TRAPI service
- 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...