How allardnaber/bsmain works
This repository is a PHP client/runtime for building Brightspace integrations: application code handles incoming routes, then uses a configured API client to authenticate and access Brightspace resources. The graph emphasizes that request path, alongside reusable resource APIs, configuration, token persistence, and data-object conversion. README content was not provided, so capability coverage is based on the source tree and SOURCE INDEX; unsampled features are grouped only where their paths are explicit.
Main entry points: BsApiClient.php API client · App.php App bootstrap · BsResourceBaseApi.php API transport · BsBaseController.php Controller base
Components 25
Application runtime
- App bootstrap
src/BsMain/App.php - Route discovery
src/BsMain/Controller/RouteFactory.php - Controller base
src/BsMain/Controller/BsBaseController.php - Account controller
src/BsMain/Controller/AccountController.php - Template output
src/BsMain/Template/OutputTemplate.php - Session manager
src/BsMain/SessionManager.php - Error handling
src/BsMain/Controller/ErrorHelper.php
Brightspace API
- API client
src/BsMain/Api/BsApiClient.php - API transport
src/BsMain/Api/BsResourceBaseApi.php - Resource APIs
src/BsMain/Api - File uploads
src/BsMain/Api/Util/ResumableFileUploader.php
OAuth authentication
- Token lifecycle
src/BsMain/Api/OauthToken/OauthTokenHandler.php - Service token selection
src/BsMain/Api/OauthToken/OauthServiceTokenHandler.php - Client OAuth
src/BsMain/Api/OauthToken/OauthClientTokenHandler.php - Database token store
src/BsMain/Api/OauthToken/OauthDatabaseServiceTokenHandler.php - File token store
src/BsMain/Api/OauthToken/OauthFileServiceTokenHandler.php
Configuration
- Config resolution
src/BsMain/Configuration/Configuration.php - Vault secrets
src/BsMain/Configuration/Vault.php
Data and errors
- Typed API data
src/BsMain/Data/GenericObject.php - API exceptions
src/BsMain/Exception/BsAppApiException.php - Runtime exceptions
src/BsMain/Exception/BsAppRuntimeException.php
Other components
- Integration caller
- Brightspace service
- Token database
- Persistent token file
Connections 33
- Integration caller → App bootstrap: invokes
src/BsMain/App.php - App bootstrap → Route discovery: builds routes
src/BsMain/App.php - App bootstrap → Controller base: initializes
src/BsMain/App.php - App bootstrap → Template output: initializes
src/BsMain/App.php - App bootstrap → Session manager: initializes
src/BsMain/App.php - App bootstrap → Error handling: uses
src/BsMain/App.php - Route discovery → Controller base: routes to
src/BsMain/Controller/RouteFactory.php - Account controller → Controller base: extends
src/BsMain/Controller/AccountController.php - Account controller → API client: calls
src/BsMain/Controller/AccountController.php - Controller base → Template output: renders through
src/BsMain/Controller/BsBaseController.php - Controller base → Config resolution: reads
src/BsMain/Controller/BsBaseController.php - API client → Config resolution: reads
src/BsMain/Api/BsApiClient.php - API client → Token lifecycle: selects token handler
src/BsMain/Api/BsApiClient.php - API client → Resource APIs: creates lazily
src/BsMain/Api/BsApiClient.php - API client → Brightspace service: gets identity
src/BsMain/Api/BsApiClient.php - Resource APIs → API transport: inherits requests
src/BsMain/Api/BsEnrollmentsApi.php - API transport → API client: uses credentials
src/BsMain/Api/BsResourceBaseApi.php - API transport → Brightspace service: sends requests
src/BsMain/Api/BsResourceBaseApi.php - API transport → Typed API data: converts responses
src/BsMain/Api/BsResourceBaseApi.php - API transport → API exceptions: raises on HTTP error
src/BsMain/Api/BsResourceBaseApi.php - API transport → Runtime exceptions: raises on transport error
src/BsMain/Api/BsResourceBaseApi.php - Resource APIs → File uploads: uses uploader
src/BsMain/Api/BsAssignmentApi.php - Token lifecycle → Brightspace service: refreshes token
src/BsMain/Api/OauthToken/OauthTokenHandler.php - API client → Service token selection: selects service mode
src/BsMain/Api/BsApiClient.php - Service token selection → Database token store: selects database
src/BsMain/Api/OauthToken/OauthServiceTokenHandler.php - Service token selection → File token store: selects file
src/BsMain/Api/OauthToken/OauthServiceTokenHandler.php - API client → Client OAuth: selects user mode
src/BsMain/Api/BsApiClient.php - Database token store → Token database: reads and writes
src/BsMain/Api/OauthToken/OauthDatabaseServiceTokenHandler.php - File token store → Persistent token file: reads and writes
src/BsMain/Api/OauthToken/OauthFileServiceTokenHandler.php - Config resolution → Vault secrets: resolves secrets
src/BsMain/Configuration/Configuration.php - Config resolution → Runtime exceptions: raises config errors
src/BsMain/Configuration/Configuration.php - Token lifecycle → Config resolution: reads settings
src/BsMain/Api/OauthToken/OauthTokenHandler.php - Typed API data → Runtime exceptions: validates data