When a user submits the first step of registration they will answer a question around their intent. This solution is needed for paths A and B listed in this issue and again below:
A. Setup a new team = (New organization & trial signup flow)
B. Setup a new personal account = (New organization & no trial)
This issue should handle the full cycle of user creation which includes dealing with errors such as an invalid Organization name.
If you are unsure about the correct group, please do not leave the issue without a group label, and refer to
GitLab's shared responsibility functionality guidelines
for more information on how to triage this kind of issue.
Alex Pooleychanged title from Forward trial with organization to secondary cell for creation to Forward trial user with organization to secondary cell for creation
changed title from Forward trial with organization to secondary cell for creation to Forward trial user with organization to secondary cell for creation
Alex Pooleychanged the descriptionCompare with previous version
@alexpooley any initial ideas about how this forwarding concept my work or look like? It is still really unclear to me how/what needs to happen in the backend/db level to separate creation of the organization on the cell db layer.
@dstull The backend changes will be minimal. The trick is mostly in the form submit / cell routing. Ideally the form POST can be identified by the router and forwarded to the secondary cell. @OmarQunsulGitlab@tkuah have you looked at this with your POC - and specifically what to use as the routing key from the HTTP form POST?
Once on the secondary cell, the user & organization are created and the cookie is tagged as from the secondary cell. Any subsequent HTTP flows should automagically by handled by the secondary cell.
@OmarQunsulGitlab@tkuah have you looked at this with your POC - and specifically what to use as the routing key from the HTTP form POST?
That's something I am looking into as part of #441113 (closed). I discussed it with @ayufan in a zoom call and have written the notes on the issue itself. Not much progress yet, because I am still working on the first part of the issue, which is not related to the login itself.
What we found by some basic testing is that, if a cell responds with status code 307 Temporary Redirect, the browser will resend the form again. So the plan is to use that to make sure we are sending the form to the right cell in the 2nd HTTP request.
@alexpooley that's the idea I had in mind in the beginning, but @ayufan raised some concerns regarding performance issues related to buffering on the worker side, if it tries to resend the request to another cell. I still need to read more to understand the details.
The solution that's based on sending 307 back to the client seems cleaner, because it will require less coding on the worker side. I still need to validate this via the POC
@alexpooley@lohrc this logic will also need to support new personal users that indicate they're signing up for a new personal account. This logic that will be added to step one of registration is documented here #442100 (closed)
1
Sam Awezecchanged title from Forward trial user with organization to secondary cell for creation to free or trial signup with company intent with organization to secondary cell for creation
changed title from Forward trial user with organization to secondary cell for creation to free or trial signup with company intent with organization to secondary cell for creation
Sam Awezecchanged the descriptionCompare with previous version
changed the description
Christina Lohrchanged title from free or trial signup with company intent with organization to secondary cell for creation to Free or trial signup with company intent with organization to secondary cell for creation
changed title from free or trial signup with company intent with organization to secondary cell for creation to Free or trial signup with company intent with organization to secondary cell for creation
The analytics instrumentation label is automatically applied when featureaddition and workflowready for development labels are applied. We encourage teams to plan for instrumentation at the time of feature development for new features. This label helps ~group::analytics instrumentation to proactively reach out to teams that require instrumentation support. In case instrumentation does not apply to this feature, please feel free to remove the label.