Brightspace/D2L APIs for Courses and Enrollments
Part 1: Create a Role with Permissions
We recommend you create a role specifically for this integration. This will allow you to control the permissions available to VitalSource without affecting other users.
- Click on the gear icon to view the Admin Tools.
- Under the Security Tab, select Roles & Permissions.
- Click Create/Copy.
- You can copy an existing role if you like or start fresh. Either way, make sure your role is configured as noted in the next steps.
-
- General
- Name: VitalSource
- Cascading Role: Check this box
- Description: Can add if needed
- Role Alias: Can add if needed
- You do not need to select anything in Tool Behavior Options or Classlist Display Options
- Course Access Options:
- Access Inactive Courses: Check the box
- Access Past Courses: Check this box
- Access Future Courses: Check this box
- Access All Course Sections
- Access All Course Groups
- General
- Click Save.
- On the Edit Role Interactions page, check all boxes for your Administrator role.
- Click Save and you have created the role.
- On the Role List page, click the down arrow next to the VitalSource role you just created and select Edit Permissions.
- In the Filter by Tool dropdown menu, select Classlist and click Apply Filter. Check the following boxes and click Save.
- a. Has Access to the Classlist: All boxes
- b. See Classlist Report: All boxes
- c. View Group Enrollments: All boxes
- In the Filter by Tool dropdown menu, select Content and click Apply Filter. Check the following boxes and click Save. *omit if your campus does not wish to use our LTI link placement service
- a. View Course Content: All boxes
- b. Manage Content: All boxes
- c. Create and Edit Modules and Topics: All boxes
- In the Filter by Tool dropdown menu, select Course Management Console and click Apply Filter. Check the following boxes and click Save.
- a. See Course Info: Course Offering, Group, Semester, Section, Department, Program, School Type, Campus
- b. See Tool Management: Course Offering
- c. Set Tool Status: Course Offering
- In the Filter by Tool dropdown menu, select External Learning Tools and click Apply Filter. Check the following boxes and click Save. *omit if your campus does not wish to use our LTI link placement service
- a. Manage External Learning Tools Configuration: Course Template, Course Offering, Semester, Section, Department, Program
- b. Launch External Learning Tool Links: Course Offering
- c. Manage and Delete External Learning Tool Links: Course Template, Course Offering, Semester, Section, Department, Program
- d. Manage External Learning Tool Providers: Course Template, Course Offering, Semester, Section, Department, Program
- e. Create Quicklinks from available External Learning Tools links: All boxes
- f. Create External Learning Tool Links from available External Learning Tool Providers: All boxes
- g. Manage LTI Advantage Tool Registrations: Organization
- h. Manage LTI Advantage Tool Deployments: Organization
- i. Delete External Learning Tool Links: All boxes
- In the Filter by Tool dropdown menu, select My Org Units and click Apply Filter. Check the following boxes and click Save.
- a. See My Org Units: Organization, Course Template, Course Offering, Group, Semester, Section, Department, Program
- b. Manage My Org Units tool: Course Offering
- In the Filter by Tool dropdown menu, select Org Unit Editor and click Apply Filter. Check the following boxes and click Save.
- a. View Org Unit Editor: Organization
- In the Filter by Tool dropdown menu, select Tool Management and click Apply Filter. Check the following boxes and click Save.
- a. See Org Tool Management: Organization
- In the Filter by Tool dropdown menu, select User Information Privacy and click Apply Filter. Check the following boxes and click Save.
- a. See First Names: All boxes
- b. See Last Names: All boxes
- c. See Usernames: All boxes
- d. See Org Defined IDs: All boxes
- e. See Email Addresses: All boxes
- In the Filter by Tool dropdown menu, select Users and click Apply Filter. Check the following boxes and click Save.
- a. View the Users' Email Address: All boxes
- b. View Users' Org Defined IDs: All boxes
- c. View User Enrollments: All boxes
- d. Search for 'Instructor': All boxes
- e. Search for 'Student': All boxes
Part 2: Create a System User
- Navigate to the Settings Menu (gear icon) and select Users.
- Click New User and enter the following:
- First Name: VitalSource
- Last Name: Integration
- Username: vst.integration
- Role: Select the VitalSource role you created in Part 1
- Password: Check the Manually set password box and enter a password that you will remember. You will need this later.
- Click Save.
Part 3: Register an App
- Navigate to the Settings Menu (gear icon) and select Manage Extensibility.
- Click Register an App and enter the following:
- Application Name: VitalSource
- Trusted URL: https://bc.vitalsource.com/oauth2callback
- Major and minor version box is mandatory for the admin to fill in as well.
- Enable this application: Check this box
- I accept the Non-Commercial Developer Agreement: Check this box
- Click Register Application
- Copy the Application ID and Application Key and save them. You’ll need them again.
- Click Register Application.
- Copy the Application ID & Application Key and send them to the VitalSource team along with the URL for your Brightspace site.
Part 4: Authenticate
- The VitalSource team will send you an authentication link after receiving the application key and ID from you.
- Before clicking the link, go to your Brightspace site and make sure you are logged out of your own account.
- Click the link and enter the username and password for the user you created in Part 2 above.
- You should receive a Success! message meaning that you have authenticated the rostering application. Send a confirmation back to the VitalSource team.
- Once VitalSource has confirmed that the setup was successful, please add a VitalSource link to a course in your upcoming term and click on this link.
- This will initiate the API sync and allow us to begin pulling course and roster information.
For Each New Term
Each term sync is initiated with a click on the VitalSource link within a course associated with the upcoming term. To pull course and roster information for each new term, be sure to click on the VitalSource link in a course in the upcoming term to initiate the new term sync.
Endpoints
Here is a comprehensive list of the D2L Valence APIs used by the VitalSource app.
- GET /d2l/api/lp/1.2/courses/:course_id
- GET /d2l/api/lp/1.2/orgstructure/:semester_id/children/
- GET /d2l/api/lp/1.2/enrollments/orgunits/:course_id/users/
- GET /d2l/api/lp/1.2/organization/info
- GET /d2l/api/lp/1.2/orgstructure/:semester_id
- GET /d2l/api/lp/1.2/orgstructure/:org_id/children
- GET /d2l/api/le/1.40/:course_id/content/root/
- POST /d2l/api/le/1.40/:course_id/content/root/
- GET /d2l/api/le/1.40/:course_id/content/modules/:module_id/structure/
- POST /d2l/api/le/1.40/:course_id/content/modules/:module_id/structure/
- POST /d2l/api/le/1.40/lti/link/:course_id
- POST /d2l/api/le/1.40/lti/quicklink/:course_id/:lti_link_id
Data Storage & Usage
Here is a description of the Brightspace data the VitalSource app receives and how that data is stored & used.
Field |
Description |
Storage & Usage |
(course) identifier |
Unique course identifier |
stored & used for identifying unique courses, communication of student opt-out decisions to publisher courseware providers when applicable |
(course) name |
Course title |
stored & used for display in VitalSource Launch & Analytics and matching LMS/VLE course data to SIS course data for Inclusive Access programmes |
(course) code |
Course code/label |
stored & used for display in VitalSource Launch & Analytics and matching LMS/VLE course data to SIS course data for Inclusive Access programmes |
(course) StartDate |
Course start date |
stored & used for determining when courses should be considered active in application displays and when to issue add/drop content access to students |
(course) EndDate |
Course end date |
stored & used for determining when a course ends |
(semester) identifier |
Unique semester identifier |
stored & used to group courses together that belong to the same semester |
(semester) name |
Semester title |
stored & used to group courses together that belong to the same semester |
(semester) code |
Semester abbreviation |
not stored or used |
(department) identifier |
Unique department identifier |
not stored or used |
(department) name |
Department name |
not stored or used |
(department) code |
Department abbreviation |
not stored or used |
(user) identifier |
Unique user identifier |
not stored or used |
(user) displayName |
User full name |
stored & used for personalised display |
(user) emailAddress |
User email address |
stored & used for matching LMS/VLE student accounts to SIS student enrolment for Inclusive Access programmes |
(user) orgDefinedId |
Unique user identifier |
stored & used for matching LMS/VLE student accounts to SIS student enrolment for Inclusive Access programmes |
(user) profileBadgeUrl |
D2L profile badge url |
not stored or used |
(user) profileIdentifier |
D2L profile identifier |
not stored or used |
(user) role |
A user's role within an org unit |
stored & used to determine the appropriate user experience and access type a user should be granted |
(organization) identifier |
Unique D2L organisation identifier |
not stored, used to execute other D2L Valence APIs |