Educates Backend Plugin#
Overview#
The Educates backend plugin provides the server-side functionality required to integrate Educates training portals with Backstage. It handles API communication, authentication, session management, and exposes endpoints for the frontend plugin to consume.
Features#
API Integration#
- Seamless communication with Educates training portals
- Support for multiple portal configurations
- Secure API token management
- Error handling and retries
Authentication Management#
- Token-based authentication
- Automatic token refresh
- Secure credential storage
- Session persistence
Workshop Management#
- Workshop catalog retrieval
- Workshop metadata handling
- Session creation and tracking
Multi-Portal Support#
- Multiple portal configurations out of the box
Permission Framework#
- Resource-based permission system
- Conditional permission rules
- Portal and workshop-specific access control
- Advanced permission conditions and decision making
Permission Framework#
The backend plugin provides a comprehensive permission framework with resource-based access control:
Permission Resources#
The plugin defines two main resource types:
- Training Portal Resource (
educates-training-portal
) - Controls access to specific training portals
-
Supports portal ownership and access rules
-
Workshop Resource (
educates-workshop
) - Controls access to individual workshops
- Supports workshop-specific permissions
Permission Rules#
Portal Permission Rules#
IS_PORTAL_OWNER
: Grants access to users who own a training portalHAS_PORTAL_ACCESS
: Grants access to users with specific portal permissions
Workshop Permission Rules#
IS_WORKSHOP_OWNER
: Grants access to users who own a workshopHAS_WORKSHOP_ACCESS
: Grants access to users with specific workshop permissions
Conditional Permissions#
The plugin supports conditional permission decisions through:
- Portal Conditions: Fine-grained portal access control
- Workshop Conditions: Workshop-specific permission logic
- Decision Factories: Programmatic permission decision creation
Technical Details#
Integration Points#
- Educates Training Portal API
- Backstage backend services
- Permission framework
- Authentication system
Type Definitions#
Utilizes shared types from the common package:
TrainingPortalConfig
EducatesConfig
Workshop
WorkshopEnvironment
TrainingPortalStatus
WorkshopSession
Error Handling#
- Comprehensive error types
- Detailed error messages
- Automatic retries
- Rate limiting protection
Security#
- Secure credential management
- Token-based authentication
- Resource-based permission controls with conditional rules
- Request validation
Architecture#
Components#
-
API Router
- Endpoint registration
- Request handling
- Response formatting
-
Portal Manager
- Portal configuration
- Health monitoring
- Connection management
-
Session Controller
- Session lifecycle
- Resource allocation
-
Authentication Handler
- Token management
- Credential storage
- Permission checks
-
Permission Handler
- Resource-based access control
- Conditional permission evaluation
- Permission rule enforcement
Data Flow#
- Request received from frontend
- Authentication and permission validation
- Portal communication
- Response processing
- Result returned to client
For installation and configuration details, refer to the Installation Guide and Configuration Guide.