@James has created many great scripts using TamperMonkey/GreaseMonkey that many use. He also has created the GitHub canvancement which is awesome. I am an admin with limited coding skills and new to TamperMonkey/GreaseMonkey and Postman and I imagine other administrators are in the same boat. I would love for the experts here to gather into a team to develop a series of https://community.canvaslms.com/community/ideas/canvaslive?sr=search&searchId=58ed0fb7-8725-474c-be1... webinar sessions that takes anyone using Canvas from simple user to Coding/API master. What do https://community.canvaslms.com/groups/canvas-developers?sr=search&searchId=5f684eff-bd97-4da2-89b2-... folks think about this? Would anyone like/have time to join this user group team? It would also be great to have developers from Canvas to join us as well.
When I started Canvancements, I tried to pick a term generic enough that other people could jump in and help out, so it would be awesome if there were an army of coding engineers. Along the line, I discovered that there were many people in a boat like yours -- limited (or no) coding skills, but wishing there was an easier way.
There are many fancier, much better written, programs out there than what I put out. I suspect there are a few reasons why Canvancements seem popular (I don't do any tracking, so I don't know for sure).
I recently had the chance to meet with some people at Canvas. I was concerned about the move to ReactJS, the deprecation of jQuery UI, the not-exposing certain objects anymore, and other things making it harder to do what I do. From the conversations, I gathered a couple of things.
Beyond all that, which is just commentary to get the ball rolling, how did you arrive at the combination of user scripts and Postman? They seem similar but separate. Postman can get you started to figure out what you need to help with the user scripts, as can the live API, but it would also help with writing in any language.
I can understand Instructure's concerns and needs, but some of the functionality that you and others have provided are things that other LMSs do now, such as your 'edit dates in one place' workaround. Side note: Our faculty love your workaround.
The first point you provided is very interesting and I thank you for sharing. Using your TamperMonkey script seems to be an external tool that changes your UI in an 'unofficial' manner in that it does not change the entire instance of Canvas, must be made active per browser session, and can be turned off.
I am on their side concerning changes made in JS that affect the site as a whole. Personally, I push back on customization of a supported 3rd party product like Canvas unless that customization has a tool within the application to make the changes like the Theme Editor. What I don't mind at all is using TamperMonkey to make temporary changes to an individual browser session.
Will the deprecation of JQuery UI and hiding objects affect your TamperMonkey tools?
Postman is a different animal, and I should not have added it to the post. Postman offers an easy way to run API calls iteratively.
To paraphrase: jQuery is supplied for you, but if you want to use React, then you need to load it yourself. btw - Canvas is moving to React, but there's a lot of code that uses jQuery so you're probably safe but we'd eventually like to do away with that as well, so you may not be safe forever. It's better for you to load your own libraries than depend on ours. For a better user experience, we want to minimize the amount of information sent.
That said ...
I am prone to hyperbole so take what I say with a grain of salt the size of the Eifel Tower.
I realize that you are paraphrasing here, but I am seeing things like this that start me down a path of worry. One of the things about Canvas that I love is how open it is. Blackb... gave us a closed system where you were at the mercy of the developers to get something changed/added/removed. In Canvas, you do what many here do, make a workaround and add the idea to Instructure. As I read your paraphrase, we can still do that, but they really don't want you to do that and at some point in time, you will no longer be able to do that. Whim of the developers again.
I'm also prone to slant the paraphrase based on the assessment I got of the situation.
Understandably, they would rather we use supported technologies to do what we need. API, LTI, etc.
Unfortunately, not everything that we need to do has been exposed through the API. My rubric importer and access report data scripts use undocumented internal non-API AJAX calls. I get that Canvas doesn't want us using those since they may break at any moment and then it looks bad for Canvas, but sometimes you got to do what you got to do. That's a benefit of user scripts over Google Sheets, which are limited to only the API calls. I did talk to the software people Tuesday night and they said "There's an API for that." I couldn't find it, so I dug a little deeper and found out it's there, but it didn't make it into the documentation so I don't know about it.
User scripts have an additional benefit over LTIs in that you don't have to find anywhere to host them and you don't have to worry about storing data outside of the country (I know Canada has some regulations about that).
I have hopes, though. The move seems to be towards creating separate mobile apps for each role: A teacher app, an admin app, a student app, etc. My experience has been that a driving force behind the API has been that an app needed it to function, so hopefully there will be more things added to the API because of the expansion in apps.