-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add WebServer as a device #458
Conversation
I can dive a bit deeper later, but wanted to give some quick initial feedback already now. I think two requirements are confounded here:
We considered these use case during early design, and I'm fairly certain it was on a backlog somewhere. I suspect an iMotions backlog which also contained larger overarching design discussions (crossing core/front-end/back-end). @ltj can maybe help refresh my memory. For (1), I think we concluded this is mostly an infrastructure concern, if not, my suspicion would be this should be managed somewhere in the studies subsystem. For (2), I think we had a similar idea of exposing this as a "web server", or "web service". It makes sense; the "study runtime" in this case is a web server. It will have to know which deployment it is collecting data for, etc., though, so it will have to act as a full "client". P.s. I think you'll also have to add a JSON schema file. I thought I added tests that fail if you forgot to do that. 🤔 |
I kind of want to avoid the last one. We can do the first one as a workaround for now, but it feels a little clunky.
|
I probably need to hear more about the exact use case, but this makes me believe this has more to do with an alternative to A user can retrieve study invitations based on their account ID. They get access to that by being authenticated using an account identity they have access to. Email is the predominant one CARP was designed for. But, you can see alternatives were considered in the form of Maybe this is also relevant/related. 🤔
It sounds like you want this service to generate identities for the users, and then forward that via email/eboks. I.e., the identity is no longer email; it is just submitted via email. You could generate unique identities (maybe |
@bardram @xelahalo I created an issue for one part of what I understood is being asked for in this PR, in addition with some background of the original design/what is currently in place. Could you provide answers the the questions asked there? And as per my first response, I think there are two asks here. The second relates to "browser devices". I definitely think there is something there, but putting the The logical place to put a URL would be the
Putting things together, I thus think the real ask here is to:
If the goal is to make a more generic solution in CAWS, a CAWS front-end could create participant URLs in the same vain. When the user "logs in" using that URL, an overview of studies they are part of could be shown (or skipped if there is just one). For "website studies" (studies using a |
@xelahalo Regarding JSON schemas, it seems like it is at least documented in the checklist on how to add new device configurations.
So #404 would be the task to pick up if you want to write that test. ;) |
This is correct. However, you write:
I'm not sure this is what we want @xelahalo ? Generating anonymous (or "magic") links for participants applies to ALL studies (which are marked as "anonymous"), also non-ICAT ones. This is a feature we also plan to use in our mobile sensing studies - the user would simply get a QR code and can start uploading data w/o the need for the awful login procedure (the largest usability problem we have in all our studies is that users (think: very old woman) can't log in). So - CAWS should be able to generate such anonymous accounts at "its core".
This is exactly the goal and we have already designed this "front-end" where researchers can generate a number of anonymous accounts. |
@Whathecode I see this point, but then what about WebTasks? They are also serialized into the protocol, and they also contain a url.
In the first mental draft of this pr I also considered this, but then I would only be able to access what I need once I actually have a studyDeployment. For that I need
before I create the link, so that I have an identity that I can turn into a participant. But if I do that and let ICAT generate the url, then it is technically an open study as anyone would be able to get a link. If we, however, let a client with appropriate access control, like the portal, request the link generation, then what we basically have is my first point:
Since we still need to know which client/study to initiate the generation for. That means that I don't actually need a new device, or a new device registration. Okay so I think my conclusion is that for now we will:
@Whathecode as always, thanks for the input, much appreciated 😄 |
From the
There is thus very limited integration with CARP's domain model, and the full description of the task is the URL. It was introduced to integrate with external survey websites, like Google Forms. That's also why it expects to pass participant, deployment, and trigger ID to the URL. So that when you extract data from the external website, you can manually link things back together. In contrast, ICAT (at least the impression I have) is intended to become a CARP client. We can move towards modeling the subtasks of ICAT as tasks, or at a minimum have a If you don't do this, there is really no point of integrating ICAT in CARP. tldr; |
Not certain I follow. It is definitely clear, however, you expect the CAWS portal to manage ICAT studies (context I was missing). That means that the CAWS portal needs to set up the URL indeed, instead of ICAT. My suggestion for the generic solution was you don't create study-specific URLs. You create CAWS URLs for participants, and when visiting the URL (hosted by CAWS webserver) you either present a study overview (theoretically, the participant could be part of multiple studies), or simply redirect to ICAT (if/assuming there is only one study).
This in contrast, would couple participant creation to a study. That seems undesirable to me. Furthermore, you can't pass all the information ICAT needs to upload data for that participant, like the You still need to configure the URL somewhere, though, and this will need to be done through CAWS then. My suggestion was to use the existing CARP endpoints for this. You can create a And, ICAT will need to be CARP-aware (unless you want an implementation like |
Replaced by: #465 |
A little background information:
We are trying to add a feature in @cph-cachet/carp-webservcies-spring, which would allow for a study to be hosted in an anonymous mode, meaning that participants would only receive a link in their inbox, and they wouldn't have to bother with the onboarding process.
When we are generating the links with the help of our authorization service, we need to have a url that we can redirect users. At the time of creating the accounts and links we don't have any deployed groups and devices so I can really only rely on the protocol to contain some sort of information about where the study is hosted.
Do you think this is the right way to approach this @Whathecode? Or do you have any other ideas? Right now we would only be using anonymous invitations for ICAT, but in the future there may be other studies where we want to avoid using accounts and I also don't want to hardcode it on the CAWS level.