*** menesis has quit IRC | 02:31 | |
*** menesis has joined #schooltool | 02:35 | |
*** menesis has quit IRC | 02:49 | |
*** menesis has joined #schooltool | 10:40 | |
*** khildin has joined #schooltool | 12:11 | |
*** yvl has joined #schooltool | 12:49 | |
*** khildin has quit IRC | 13:13 | |
*** khildin has joined #schooltool | 13:58 | |
*** menesis has quit IRC | 14:56 | |
*** menesis has joined #schooltool | 15:15 | |
*** yvl has quit IRC | 16:57 | |
*** replaceafill has joined #schooltool | 17:25 | |
th1a | hi replaceafill. | 17:34 |
---|---|---|
replaceafill | hey th1a | 17:34 |
th1a | I don't know if I mentioned I was in Pittsburgh all weekend. | 17:34 |
th1a | So I'm getting a slow start. | 17:34 |
replaceafill | no | 17:34 |
replaceafill | ok | 17:34 |
th1a | Forwarding an email from Niswonger. | 17:35 |
replaceafill | ok | 17:35 |
th1a | I guess it is just about the subdomain. | 17:36 |
th1a | OK, I can answer that. | 17:36 |
replaceafill | ok | 17:37 |
th1a | So otherwise, I've got nothing new other than Karl was feeling a little better than when I saw him last month. | 17:39 |
replaceafill | ah | 17:39 |
replaceafill | glad to hear | 17:39 |
th1a | He's having more chemotherapy. | 17:40 |
th1a | Otherwise I guess you should just work on Proximity. I'll send Fran the new invoice. | 17:42 |
replaceafill | ok | 17:42 |
replaceafill | i have a couple of questions/comments from my initial research/work | 17:43 |
th1a | Go ahead. | 17:44 |
replaceafill | 1. when a person is added in the SchoolTool side | 17:44 |
replaceafill | any person (teacher, student, admin, etc) | 17:44 |
replaceafill | i think we need at least two canvas api calls, right? | 17:45 |
replaceafill | one for searching if the person exists | 17:45 |
replaceafill | (in canvas) | 17:45 |
replaceafill | and the other for creating it (if it's not there) or updating it (if it's found) | 17:46 |
th1a | Presumably, depending on how Canvas handles those two cases in the API. | 17:46 |
th1a | I mean, it might be 1) try to add > if exists return error > then just try to update. | 17:47 |
replaceafill | ah ok | 17:47 |
th1a | You don't know what Canvas does if a person exists. | 17:47 |
replaceafill | no, i'll test that | 17:48 |
th1a | It is so much easier to deal with an API that has a canonical running version. | 17:49 |
replaceafill | :) | 17:50 |
replaceafill | ok | 17:50 |
replaceafill | 2. the canvas person id | 17:50 |
replaceafill | in the api you reference people by their ids, right? | 17:50 |
th1a | Yes? | 17:51 |
replaceafill | these are not the logins that we'll match with the ST username | 17:51 |
replaceafill | they're integer numbers | 17:51 |
th1a | OK. | 17:51 |
replaceafill | so if i want to update douglas@sielibre.com (ST username) | 17:51 |
replaceafill | we either need to look for it first and get the id | 17:51 |
replaceafill | or store the id in the ST side | 17:52 |
replaceafill | to make calls directly | 17:52 |
th1a | I'd say we should store it. | 17:52 |
replaceafill | cool, me too | 17:52 |
replaceafill | demographics field? | 17:52 |
replaceafill | or custom hidden/readonly annotation | 17:53 |
replaceafill | i'd go with a custom annotation | 17:53 |
th1a | Sure. | 17:53 |
replaceafill | kk | 17:53 |
replaceafill | 3. user/principal for the remote task | 17:54 |
th1a | Ah, yes. | 17:54 |
replaceafill | so i was reading the oauth section the api docs | 17:54 |
replaceafill | and i need your help with a section | 17:55 |
replaceafill | not technical help, but legal help :D | 17:55 |
replaceafill | hold on | 17:55 |
replaceafill | https://canvas.instructure.com/doc/api/file.oauth.html | 17:55 |
replaceafill | OAuth2 Token Request Flow | 17:55 |
replaceafill | i understand this is more for like mobile apps | 17:56 |
replaceafill | oh sorry | 17:56 |
th1a | OK, so we need a client ID? | 17:56 |
replaceafill | wrong paragraph | 17:57 |
replaceafill | Manual Token Generation | 17:57 |
replaceafill | "Note that asking any other user to manually generate a token and enter it into your application is a violation of Canvas' terms of service" | 17:57 |
replaceafill | and so far, i've been doing the test calls with a token access attached to my douglas@sielibre.com account | 17:58 |
th1a | So Proximity should generate that? | 17:58 |
th1a | We should in theory be using their token? | 17:58 |
replaceafill | i think we should generate a token for each call? | 17:59 |
replaceafill | for example | 17:59 |
replaceafill | if Myken imports the xls | 17:59 |
replaceafill | adding people | 17:59 |
replaceafill | all the "add person" calls | 17:59 |
replaceafill | should be "invoked" under Myken's user? | 17:59 |
th1a | Ideally. | 18:00 |
replaceafill | if Jana edits someone info in ST | 18:00 |
replaceafill | same? | 18:00 |
replaceafill | ok | 18:00 |
th1a | Let me know if that is a problem, because I'm sure in many cases of this kind of integration that does not happen. | 18:00 |
th1a | But obviously it is a desirable feature. | 18:00 |
replaceafill | ok | 18:01 |
th1a | Basically, don't get the whole project behind to make that work. | 18:02 |
th1a | Is there an additional "legal" question? | 18:02 |
replaceafill | no, i don't think so | 18:02 |
th1a | OK. | 18:03 |
replaceafill | i also checked the docs about cost | 18:03 |
replaceafill | performance cost | 18:03 |
replaceafill | of calls | 18:03 |
th1a | Ah. | 18:03 |
replaceafill | i *think* we're ok in that regard | 18:04 |
replaceafill | there's a limit | 18:04 |
replaceafill | and i tested a few different calls | 18:04 |
th1a | A cap per minute or something? | 18:04 |
th1a | A rate? | 18:04 |
replaceafill | yes, a rate | 18:04 |
replaceafill | https://canvas.instructure.com/doc/api/file.throttling.html | 18:04 |
replaceafill | cost of simple calls is < 1 | 18:04 |
replaceafill | and there's a limit of about 700 | 18:05 |
replaceafill | i did think about the response headers | 18:05 |
th1a | Well, we've got a task scheduler that seems to work pretty well. | 18:05 |
replaceafill | when you make a call, you get the response, right? | 18:05 |
th1a | So some of these may take a while to unwind. | 18:05 |
replaceafill | it has some useful headers | 18:05 |
replaceafill | like the links header | 18:06 |
replaceafill | https://canvas.instructure.com/doc/api/file.pagination.html | 18:06 |
th1a | We might need a "pending" state rather than just "in sync" boolean. | 18:06 |
replaceafill | that you use for paginated results | 18:06 |
th1a | OK. | 18:06 |
replaceafill | i was thinking of tracking the cost/limit headers | 18:07 |
replaceafill | i mean, not a priority | 18:08 |
replaceafill | i'm just not sure if it's worth | 18:08 |
replaceafill | we'll need to link with paginated results | 18:08 |
replaceafill | (someday) | 18:08 |
th1a | Can you save that until we see how it is going? | 18:09 |
th1a | I would like to get as much infrastructure in this iteration as possible. | 18:09 |
*** khildin has quit IRC | 18:09 | |
th1a | So that subsequent iterations are pretty quick and functionality focused. | 18:09 |
replaceafill | save as in "don't do it yet"? | 18:09 |
th1a | Don't do it first. | 18:09 |
replaceafill | ok | 18:10 |
replaceafill | sure | 18:10 |
replaceafill | hhmm | 18:10 |
replaceafill | i think that's it... | 18:11 |
replaceafill | i'm much more confortable with our whole remote task/celery story | 18:11 |
replaceafill | it took me a while... | 18:11 |
replaceafill | but i could explain a little better how everything relates | 18:11 |
th1a | Good. There are a lot of moving parts. | 18:12 |
replaceafill | can you explain this: | 18:12 |
replaceafill | <th1a> We might need a "pending" state rather than just "in sync" boolean. | 18:12 |
th1a | I mean, if there is going to be a delay in, say, a big import. | 18:13 |
replaceafill | ah | 18:13 |
th1a | If someone does the import, then lists unsyced, then trys to sync all the ones that are still waiting to sync... etc. | 18:13 |
replaceafill | good point | 18:13 |
replaceafill | we could track pending tasks on that person | 18:14 |
replaceafill | and report accordingly | 18:14 |
th1a | Yeah. I'd say the main thing is it shouldn't just be a bool, and we can add pending also as a "nice to have" depending on what we get done this week. | 18:15 |
*** khildin has joined #schooltool | 18:15 | |
replaceafill | so we just start with a bool? | 18:16 |
replaceafill | and evolve it later? | 18:16 |
th1a | I'd say. | 18:16 |
replaceafill | kk | 18:16 |
th1a | Er | 18:16 |
th1a | no | 18:16 |
th1a | I'd say don't start with a bool so we don't have to evolve it. | 18:16 |
th1a | That was my point. | 18:16 |
replaceafill | ah, the "nice to have" threw me off | 18:17 |
th1a | Start with "u" and "s" and then add "p" on Thursday or Friday if possible. | 18:17 |
replaceafill | got it | 18:17 |
th1a | Definitely this is a "we want the basics to work for them on Friday" job. | 18:18 |
th1a | And the main thing that can go wrong is putting in some unnecessary bits early and getting behind. | 18:18 |
replaceafill | right | 18:18 |
replaceafill | ok | 18:19 |
* replaceafill done | 18:19 | |
th1a | But in practice, even if the basics go really fast, there is two more days of things which we should get out of the way. | 18:19 |
replaceafill | sure | 18:19 |
th1a | I don't want the next iteration to be "well, this will be a week, because there is a lot of plumbing we didn't get to..." | 18:19 |
th1a | OK, I'll let you get to it. | 18:19 |
th1a | Thanks replaceafill. | 18:20 |
replaceafill | i understand | 18:20 |
replaceafill | ok | 18:20 |
replaceafill | thanks th1a | 18:20 |
th1a | replaceafill: ayt? | 19:06 |
replaceafill | hey th1a | 19:07 |
th1a | Ah, is there any particular reason that Niswonger couldn't host themselves -- you did regular packaging for them anyhow? | 19:11 |
replaceafill | yes | 19:11 |
replaceafill | other than initial configuration | 19:11 |
replaceafill | i don't see any problem | 19:11 |
th1a | OK. | 19:12 |
replaceafill | package is at: https://launchpad.net/~sielibre/+archive/ubuntu/niswonger | 19:12 |
replaceafill | they want to host it? | 19:12 |
th1a | I just wanted to know if I could point that out. | 19:13 |
th1a | Since we're now talking to IT. | 19:13 |
th1a | Emailing to IT. | 19:14 |
replaceafill | ok | 19:14 |
*** menesis has quit IRC | 19:38 | |
replaceafill | th1a, canvas sends http errors when you try to add someone with existing pseudonym[unique_id] or pseudonym[sis_user_id] | 19:40 |
replaceafill | so we can detect it | 19:40 |
th1a | OK. | 19:57 |
replaceafill | th1a, you there? | 20:20 |
th1a | Yes, replaceafill. | 20:20 |
replaceafill | quick question: | 20:20 |
replaceafill | "When a user is added or edited in SchoolTool, either through the web interface or .xls import" | 20:20 |
replaceafill | which xls import? | 20:21 |
replaceafill | standard or proximity? | 20:21 |
replaceafill | or both? | 20:21 |
th1a | Ah... I guess proximity. | 20:21 |
replaceafill | ah ok | 20:21 |
th1a | You could make the standard one a low priority item. | 20:22 |
replaceafill | web interface means "all person add views" right? | 20:22 |
replaceafill | ok | 20:22 |
th1a | Basically, yes. | 20:23 |
replaceafill | cool | 20:23 |
replaceafill | thanks | 20:23 |
*** menesis has joined #schooltool | 21:42 | |
*** menesis has quit IRC | 21:52 | |
*** menesis has joined #schooltool | 22:08 | |
*** khildin has quit IRC | 22:45 | |
*** menesis has quit IRC | 23:53 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!