Bulk Copy Shell Course to All Courses

Idea created by Julian Hernandez on Mar 31, 2017
    This idea has been developed and deployed to Canvas


    We are in the process of creating new courses in Canvas. The issue at hand is that our team needs to customize  the items available in each course. To accomplish that, we need to copy a shell course onto all sub account courses in bulk via API call (cURL) in order to apply the custom changes onto all courses.


    Since  we create courses via SIS, we cannot obtain the Primary Key for each course at the time of creation; thus we have to wait for the data to be preprocessed at canvas_data several days after. We then download  the canvas_data.courses_dim and canvas_data.accounts_dim. After that we map all courses to the shell accounts by custom parameters. 


    As of now, I am developing an internal DB table that will hold the transaction status for shell course copy requests (to avoid resubmitting the same request.) The challenge with shell course copy is that we find it takes an average of 25 minutes in our TEST environment to perform a course copy per course_id. Having over 13,000 courses we would need around 6 months to process them. I'm quite sure Production is faster but it is difficult to test because of time we spend on waiting for the data.


    It would be good to have an API endpoint that allows listing all courses with ID, NAME, CREATED_AT, SUBACCOUNT_ID, PROGRESS. Also a SIS feature needs to exist to send the course copy in bulk. 


    Does anyone know how to bulk copy a shell course to all system wide courses? I wonder if anyone knows the release timeframe for 'blueprint' which promises the bulk course copy.


    Comments from Instructure


    For more information, please read through the Canvas Production Release Notes (2017-06-24)  .