Skip to main content
Training Files provide learners with additional downloadable resources that supplement their learning experience. These files are directly associated with specific learning paths and are accessible to enrolled users.

Overview

Training Files are media entities that can be attached to learning paths to provide:
  • Supplementary Materials: PDFs, documents, presentations, and other resources
  • Reference Documents: Additional reading materials and guides
  • Media Content: Images, videos, and multimedia files
  • Templates: Downloadable templates and worksheets

Supported File Types

The system supports a wide range of file formats organized by logical file types:
Maximum file size is 500 MB per file. Files are stored in the training-files directory.

GraphQL Query

Training files are accessed through the trainingFiles field on the LearningPath type:

TrainingFile Fields

Access Control

Training files are subject to strict access control:
  • User Authentication: Must be authenticated with valid user context
  • Learning Path Access: User must have access to the associated learning path
  • Enrollment Status: Typically requires enrollment in the learning path

Secure Download URLs

The url field returns a secure download link that includes a JWT token for authentication. The system generates these URLs dynamically:
1

JWT Token Generation

Creates a secure token containing:
  • Media ID (training file)
  • Learning Path ID
  • User Context UUID
2

URL Construction

Builds URL in format: /training-files/secure/{token}
3

Access Validation

When accessed, the system validates:
  • Token authenticity and expiration
  • User access to the learning path
  • File existence and availability
Token Security: Each download URL contains a unique JWT token that expires and is tied to the specific user, learning path, and file combination. This prevents unauthorized access and link sharing.

Learning Path

Learn about the complete learning path structure and navigation

Learning Path Homepage

Understand how to build learning path interfaces with all available data