After an outage on September 1, the Instructure Community is now fully available, including guides, release notes, forums, and groups. If some styling still looks unusual, clear your cache and cookies.
Is there some official way to build Canvas's internal plugins? By internal plugins I mean plugins which will hook directly into canvas's codebase, and hence will have whole lot more power. Like some official plugins provided by canvas which i believe reside here: canvas-lms/gems/plugins at master · instructure/canvas-lms · GitHub
We are building some plugins for one of our not-for-profit products, and we would like it to do some functionalities in canvas which are not possible with APIs and LTI. We have built one such plugin for moodle, moodle allows for such plug-gable plugins. It doesn't seem so Canvas allows such plugins, but i still wanted to confirm what are our options(if any).
NOTE: We are not building this plugin for internal use, we have to distribute it, so it can't be that all of our users go in their code-base and manually add these plugins, we are looking for some practical way of distributing such plugins, like LTI apps are distributed.
Solved! Go to Solution.
There are three ways to get your code to interact with Canvas at a deeper level than what is provided by API and LTI.
Canvas really doesn't want you doing any of those. In 2013, one of the company founders introduced me to some developers that were all about the custom JavaScript approach, but Canvas has shifted focus since then and they really want plugins to use the LTI framework. Some sites integrate at such a level that they have to go through Custom JavaScript. When that happens, I normally complain to my local Canvas administrator about the error messages I'm seeing show up in the browser developer tools because of poor coding.
There are three ways to get your code to interact with Canvas at a deeper level than what is provided by API and LTI.
Canvas really doesn't want you doing any of those. In 2013, one of the company founders introduced me to some developers that were all about the custom JavaScript approach, but Canvas has shifted focus since then and they really want plugins to use the LTI framework. Some sites integrate at such a level that they have to go through Custom JavaScript. When that happens, I normally complain to my local Canvas administrator about the error messages I'm seeing show up in the browser developer tools because of poor coding.
Thankyou so much James for detailed and quick response, really appreciate it.
So for our usecase, we might need to talk to DB, which means we need a hook into rails code of canvas, which only leaves first option from what you have described. I understand we can maybe use option 2 in some scenarios where we only want to tweak some UI etc, but that not our goal.
So first option not being practical is also out, so we don't really have any such option. Which is not that bad, i had this understanding but wanted to confirm officially and also put it out there for anyone who is looking for similar usecases.
Only thing i would like to mention though is, that Moodle has extensive plugins system, and another developer at our team has easily built a plugin which interacts with Moodle's internal and does everything we want to do. If anything like that can be considered in future for canvas as well, would be great.
Thanks again.
Greetings all. Sidebar question... I'm looking for a Canvas developer to create some customizations for us at Colorado University.
A taste of what we'd like to do:
Open to a range of solutions within Canvas and without (thinking about tampermonkey plugins). If anyone is interested in this type of development, please contact me here or clint.carlson@cuanschutz.edu
To interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.