Press "Enter" to skip to content

Bb TLC 2017 – Dev Con

Blackboard’s Developers Conference at BbTLC17

These are my notes and thoughts and should not be seen as an accurate account of the information provided.  Some of the information included here contains features that Blackboard are working on / towards but have no guarantee to bring to market.

If you feel I have missed something / been inaccurate in my note taking please let me know in the comments and I will correct / discuss / debate with you 🙂

What’s New!

  • Increase commitment to 9.1
    • Increased engineer positions in Product Development
    • Working hard to clear out the bug backlog
    • Merged code
  • New 9.1 Installation Process
    • Based on Gradle and Maven
    • Command line driven – no Java Forms
    • Also used for cumulative updates moving forward
  • Simplify Integration paths
    • REST
    • Q2 2016 – merged code SaaS and Learn
    • Learn Q2 2016 release supports Java 8
    • Support for Building Blocks in Ultra
  • Improved Developer Engagement
  • Modernise Integration Models
    • REST is Live!
    • Rest and LTI are our go-forward models for integrating with Learn
    • Examples on Community and GitHub
  • Improve Documentation

Developer Platform

Blackboard Community
Has a good built in search ( – why can’t Blackboard Learn have a good search?)
Sample code and Tutorials all shared.
can also be found at

Developer Tools – Developer Virtual Machine

Recently changed the server that manages the virtual machine downloads – this has caused some issues and you may find it takes you a few tries to download a functioning file – email Scott / Mark for a alternative link.

VM available on Behind the Blackboard, VirtualBox image, Managed by Vagrant.

Open Technical Previews

Developer Groups allows you to assign developers an application to manage.

Rate limits can be adjusted upon request and review via a support ticket.

When managing your applications, only ever give out the application ID – key and secret should be used ONLY in your code!!!!

Keys and secrets – you can now generate new ones for registered applications.  This means if you lose the original you no longer have to deregister and reregister your applications to generate new keys and secrets.


REST APIs are Bb’s prefered integration model going forward.

Rate limits are 10K per consumer (Bb Learn system).
There is no rate limit activity tracker in the developer portal. But each request has in its header 3 variables indicating how you’re doing with the rate limit.

Collection Gets hard-coded to 200 items per page – i.e. if dealing with 500 items you will need to trigger next page 2 times.

Setting Up Your DVM With REST and Python

[DVM = Developer Virtual Machine]

When it’s working well you can get your copy from behind the blackboard, when it’s not email a developer / submit a ticket to obtain an alternative link.

Operates on a developer licence which is a fully functional licence.
100 courses
150 users
1000 memberships

When you download your DVM it is just an empty shell – this session will look at a script that can populate this environment with courses, users etc. There is an element of randomisation built in.

This has the following requirements:

  • Python 3.5.1
  • A Learn test instance
  • requests lib

If using the REST feature:

  • A REST Developer account
  • Register your version of the LearnObjectGen tool within the Dev Portal
  • Register your version of the LearnObjectGen tool within your test instance

Nice to haves…

Mark uses miniconda

$ python -i|–index <start index> [-t|–target_url] [-f|–output_file]  [-o|–object <Courses|Users|Memberships>] [-n|–number]

            -t|–target_url : (Optional) Target URL – required to update with REST. If left blank output will be written to a the file specified by -f

            -i|–index : (Optional) Starting index for object ids. e.g.: 1000

            -n|–number : (Optional) Number of objects to create. e.g.: 10

            -f|–output_file : (Optional) Snapshot Flat File prefix. Default: learnObjectGen

         You have to minimally provide either the target (-t) or index (-i)

         Providing only the index arg writes Snapshot Flat Files for all objects (max count).

         Providing only the target arg writes Snapshot Flat Files for all objects (max count) AND uses REST to create the objects on the target system.

         Max Counts: 100 Courses, 150 Users, 1000 Memberships

         NOTE: Snapshot flat files are created to assist in managing created objects. These may be regenerated using the same index

         and count arguments as when you created the objects and running without the -t argument.

         Note: When creating memberships this tool will randomly distribute memberships, emulating a real world environment.

         Not all courses will have enrollments, not all Users will have enrollments. Regenerated membership files will not align with previously generated 

         membership snapshot files.

Grades Journey Building Block

Allows export of data in multiple formats.

Works with LIS 2.0

This is now free.

Institutional Admin have extra tools

Showed GradesJourneyDemo Building Block

This can also create Blogs, journals, discussions and Assignments

There is still no way to manage a course that needs to submit grades at multiple points, Bb are looking at this but the current issue is that the submission of the grades locks the Grade Centre in full.

Andy has said he is willing to share his code and will at how to put up on GitHub.

If you need to you can create and return using different methods – e.g. create via flat file and return via REST.

Caliper: tapping into the Learn Activity Stream

Bb & Caliper – a work in progress

Bb joined as the spec wasn’t fully formed and as such Bb are still adding a few features needed.

Caliper focuses on learning event interoperability, to get away from the data silo problem.

Available to Learn SaaS deployments and Managed Hosting 9.1 ?

Exploring ways around technical constraints for self-hosted customers.

The reason for this is that the server they are using is behind Blackboards firewall and they would need to find a way of opening up that firewall for specific self-hosted solutions without compromising the security of their systems.

Given examples of Stream Event Syntax.


Blackboard is looking to deprecate SOAP in favour for REST, subtext: we’re getting you ready for Ultra.

Signup List B2-to-REST Migration

This example of migration to REST demonstrates a tool developed by Malcolm Murray, Durham Uni that has been converted by Mark O’Neil Scott Hurrey, with Malcolm Murray and Stephen Vickers acting as advisors.

Project Blog:

Code Git repository:

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.