Tsugi Support for User-Agent in Web Service Calls to Canvas

28 views
Skip to first unread message

Chuck Severance

unread,
Nov 12, 2025, 12:14:39 PM11/12/25
to tsug...@apereo.org
Hi all,

You may not have heard about this yet but Canvas is enforcing User Agents for API requests on January 17, 2026.

I will have a Tsugi update for this pretty soon and after I test it, I will announce it on this list.

If you are on an earlier branch - the fix should be small and easily back-ported to branches - so check if you are using master or a branch and let me know if you are on aback-level branch and need this fix.

Hope all is well.

/Chuck

Chris Filkins

unread,
Dec 2, 2025, 1:46:08 PM12/2/25
to Tsugi Developers, cs...@umich.edu
Hi Chuck, and Happy Holidays!

We just wanted to check in on the progress towards addressing this Canvas issue.  I hadn't realized that it would also impact LTI tools :(  I don't think we'll be able to fully upgrade, but plan on backporting.  Thanks!

-Chris 

Charles Severance

unread,
Dec 3, 2025, 9:44:41 AM12/3/25
to Tsugi Developers, Chris Filkins
Clint,

Here is the commit for User-Agent


It is really just two files and the changes should be easy to back port.

This is running in my production servers and working fine.

Let me know if it works for you or if you need anything else.

/Chuck

On Dec 2, 2025, at 1:46 PM, Chris Filkins <cfil...@gmail.com> wrote:

Hi Chuck, and Happy Holidays!

We just wanted to check in on the progress towards addressing this Canvas issue.  I hadn't realized that it would also impact LTI tools :(  I don't think we'll be able to fully upgrade, but plan on backporting.  Thanks!

-Chris 

On Wednesday, November 12, 2025 at 12:14:39 PM UTC-5 cs...@umich.edu wrote:

Dr. Chuck

unread,
Dec 15, 2025, 8:25:17 PM12/15/25
to Charles Severance, Tsugi Developers, Chris Filkins
Chris,

I deployed the User-Agent fix for all my servers that talk to Canvas @Umich and a week later, I was off the "No User Agent" audit report.

/Chuck

Chris Filkins

unread,
Jan 8, 2026, 12:28:53 PMJan 8
to Dr. Chuck, Charles Severance, Tsugi Developers
Interesting...I just deployed a new Tsugi server with the latest commit, and when I use it with a Canvas environment it immediately showed up on the naughty list.  Are you custom defining a user agent string in your config.php file?  And I'm stumped at the moment as to how I might be able to even test to confirm that Tsugi is setting it on my calls.

-Chris

Chris Filkins

unread,
Jan 8, 2026, 12:57:16 PMJan 8
to Dr. Chuck, Charles Severance, Tsugi Developers
@Charles Severance  - I see where you updated the Net.php file, but in LTI13.php there are number of cURL requests (for things like NRPS, which is what I'm using) that aren't setting the user agent.  I'll work on something that I can put together a PR for in the next few days.

-Chris

Chuck Severance

unread,
Jan 8, 2026, 1:36:07 PMJan 8
to Chris Filkins, Tsugi Developers
That explains it - I don't use NRPS with Canvas - just grade callback - A PR would be most welcome.

/Chuck

Matthew Jones

unread,
Jan 9, 2026, 3:49:20 PMJan 9
to Chuck Severance, Chris Filkins, Tsugi Developers
Yeah, I don't use NRPS in Tsugi either.

The good news is that this change for Canvas was pushed back 2 months until March 21st, so there's time to update this code without too much pressure. 

--
You received this message because you are subscribed to the Google Groups "Tsugi Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tsugi-dev+...@apereo.org.
To view this discussion visit https://groups.google.com/a/apereo.org/d/msgid/tsugi-dev/97E6FE30-7243-47E2-AB30-87B32D0EF5E2%40gmail.com.

Chris Filkins

unread,
Jan 9, 2026, 3:53:22 PMJan 9
to Matthew Jones, Chuck Severance, Tsugi Developers
Thanks Matthew!  That just made my day :)

I have our fixes in place on the LTI13.php file to implement the user agent changes for all of the LTI 1.3 transactions, and will still be planning a pull request next week with those.

-Chris
Message has been deleted

Charles Severance

unread,
Feb 2, 2026, 4:16:20 PM (2 days ago) Feb 2
to Tom Reijnders, Tsugi Developers, cfil...@gmail.com, matthe...@learnxp.com
Tom,

I believe this is already in tsugi and tsugi-php for master:



If you are working in master - the PR process is different.  All PRs need to go to tsugi.   All of tsugi-php has been puled into tsugi in the lib folder.


Things are flipped - when I get a PR to tsugi, it is pushed back to tsugi-php through a subtree push so tsugi-php keeps up-to-date.

If you checkout tsugi for your systems, this makes things a lot simpler.  I don’t know of a lot of folks that just use the tsui-php on a composer.json.  Let me knos if you just use tsugi.

If you are back leveled (i.e. far behind master), we might need to do things differently.   Let me know (a) if the existing patches are enough and (b) if you checkout tsugi or tsugi-php and (c) if you hang with master….

Thanks.

/Chuck


On Feb 2, 2026, at 3:25 PM, Tom Reijnders <ajjrei...@gmail.com> wrote:

Hi Chris (and Dr Chuck),

We need the changes to be in the repository. I am happy to create a pull request for LTI13.php. However, just a question. Should that be a PR for the lib reposotory, and than somehow update the reference from the main repo to the lib repo and make a PR for that as well?

Cheers,

Tom


Op vrijdag 9 januari 2026 om 21:53:22 UTC+1 schreef cfil...@gmail.com:
Reply all
Reply to author
Forward
0 new messages