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:File Type | Extensions | Description |
---|---|---|
pdf | Portable Document Format files | |
Text | txt | Plain text documents |
Word | doc , docx , odt | Microsoft Word and OpenDocument text documents |
Excel | xls , xlsx , ods | Microsoft Excel and OpenDocument spreadsheets |
PowerPoint | ppt , pptx , pps , ppsx , odp | Microsoft PowerPoint and OpenDocument presentations |
Image | png , jpeg , jpg , gif | Common image formats |
Video | mp4 | MP4 video files |
Maximum file size is 500 MB per file. Files are stored in the
training-files
directory.GraphQL Query
Training files are accessed through thetrainingFiles
field on the LearningPath
type:
TrainingFile Fields
Field | Type | Description |
---|---|---|
id | ID! | Unique identifier of the training file |
name | String | Display name of the file (customizable title) |
description | String | Optional description explaining the file’s purpose |
filename | String! | Original filename of the uploaded file |
url | String! | Secure download URL with JWT token for authentication |
mimeType | String! | MIME type of the file (e.g., application/pdf ) |
size | Int! | File size in bytes |
extension | String | File extension (e.g., pdf , docx ) - used to determine file type |
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
Theurl
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.