I think your statement before (1) is about 179° off from what I do. I didn't spin up a server. Roll Call hasn't (as far as I know) had the source code released. I don't manually schedule any reports in bulk - I have code that does it form me (I'm all about eliminating repetitive keystrokes or mouse clicks)., so nothing is manual. You can only download information that is there, but you can schedule the program to run whenever you want. I use Linux, so there are cronjobs for scheduling regular events. I think Windows has a scheduler, but I don't use Windows to do backend work.
I'm using Node to execute JavaScript, although you could use Python or whatever language you're familiar, with to make network calls to Canvas servers. The main thing to understand is that I am filling out the form that is available under Admin > Attendance > Generate Report. I am limited by whatever it can do. I don't have any special access to the backend of Roll Call. People have been asking for API access to the data for a while, but mostly, we need a different attendance tool.
I scheduled my job to run nightly so you can schedule it in advance. For some things, you need to get it sooner rather than later as Canvas only makes the information available for a certain amount of time. I don't know about Roll Call, but web logs in Canvas Data 2 are only available for 30 days and some of the log data in other parts of Canvas disappear after a year. I went into and asked for attendance from August 2022 (14 months ago) and it delivered it, so it may not matter with Roll Call.
That email with the link said the data is available for the next 6 hours. The expires in the URL says 86400, which is 24 hours. I'm not sure which to believe, but if you run this in the middle of night and don't automatically process it, you'll want to make sure that someone is there to handle it.
A low-tech solution if you're only wanting to do this at the end of a 15 week term is to have someone fill the form out 15 times a few times a year. It will take a couple of minutes and then you wait for the emails to show up. If you were doing this every week or every day like I was, then you would want to automate it.
I fetch data for the entire institution, which limits me to one week at a time. That's why I complete the form multiple times to get the last three weeks of attendance records. That also eliminates the need to worry about multiple courses, you get everything, just for a limited amount of time.
The Roll Call attendance is launched using an account LTI code not from within a course. Use the account version of list external tools to get the ID. Store that ID somewhere. Hardcode it if you like. It's not changing for your account unless something major happens and then you can save the lookup in the future.
Then you get a sessionless launch url for an external tool. Use the account version with the ID you got in the last step.
This will do some redirects that you will need to follow and save the cookies. Eventually it will stop and you will be in a Roll Call session and have a form.
I then create a virtual DOM and parse the form, populating it with the values you need. Then you submit the form. This is why it would be easier to do with Puppeteer or Selenium. They work within the browser so you don't have to create the DOM, it's already there. The redirects are automatically followed. It's just an all-around easier process since you don't have automate as much.
I have no idea what RPA, MS Power Automate, or UIPath are to answer that question. All I can surmise from that is you're running on a Windows system. I've used Puppeteer to scrape some websites and it wasn't too bad. Whenever I mention headless browsers, most people say "Selenium" but I've not used it myself (I'm not a Python programmer). Puppeteer uses JavaScript, which I've written a bunch of code for, so it works for me. Node uses JavaScript. If I was to do this on a Windows system, I would use AutoHotKey because that's what I'm familiar with although I wouldn't be able to schedule that. Those are all personal preferences and it sounds like your tools don't overlap with mine.
Although my code has very little hardcoded into it (most of that is in a config file), it's not really packaged for me to release. I do a lot of hack programming that works for me but isn't usable by anyone else.