API Key Relationship #
API Keys are typically created for a user, and then passed to the requesting web client, granting limited duration access to the learner’s resources.
erDiagram "API KEY" ||--o| "USER" :"API Key on a user or with a realm ID, a 'realm user key'" "API KEY" ||--o| "REALM" :"API Key on a realm or 'realm key'" "API KEY" ||--o| "COURSE PROVIDER" :"API Key on a course provider or 'course provider key'"
Realm User keys are the typical use case. These limited duration keys can be generated from a web server, and returned to a requesting page. This gives the page [typically 10 minutes] of access to the user’s entities, most typically to launch a course.
Course Provider keys are largely deprecated.
Table Model #
erDiagram "API KEY" { string access_token datetime expires_at int course_provider_id FK "internal Bright foreign key, can be NULL. When set the key is a 'realm user' key" int realm_id FK "internal Bright foreign key, can be NULL" int user_id FK "internal Bright foreign key, can be NULL (not typical)" string token_type "Unused" timestamp created_at timestamp updated_at boolean internal_api "These are special API keys created only for Bright Certified Client apis" boolean anonymous_access "An API Key specified anonymous_access can list course titles, for example, without be tied to specific user" }
See also #
API documentation for API Creation: