You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Key the Org Lens EasyCLA detail page on claGroupId. A card link also carries the signature so two list rows for the same group stay distinct. A URL with only the group id shows the newest signed agreement for that group on the selected organization.
return_url becomes /org/easycla/<claGroupId> plus the existing org query and a return flag (so a DocuSign return is not treated as a cold visit). Drop /org/easycla/new and the session stash used to hop from the list after sign. The picker opens /org/easycla/<claGroupId> — the same page as a card or a return. Do not add a reserved /signed return hop.
The list and the sign picker are organization-scoped. The picker already refuses a CLA group the organization has signed, and there is no signing-entity choice, so a new corporate sign on this path cannot create a second row for that group. The group id is known before the envelope exists, so it can be the return_url.
#1978 locked the path on signature id so two list rows for one group would not collide. Keep that by putting the signature on every card link. The bare group URL is the shareable / return address.
Today's shipped return (#2306) sends DocuSign to the list (/org/easycla?org=) and hops from a session stash. That hop goes away: new envelopes return to the group URL. No list-hop fallback — the feature is still flagged; there are no live envelopes on the old address.
#2293 already asks for this same group-id URL as the unsigned signing overview. This issue must not send an unsigned visit to the list or treat it as a signed detail.
What this page does
Visit
This ticket
Card (signature on the link)
That row's signed detail
Bare group URL, org has a signed row
Newest signed row for that group
Flagged DocuSign return
Retry the signed list until a row for that group exists, then newest
Picker → this URL, org has not signed
Unsigned preview. Names come from the picker's history state (what /new does today). Reload of that tab still works while the history entry is there.
Bare group URL, org has not signed, no picker state (paste / other session)
Stay on /org/easycla/<claGroupId>. Do not redirect to the list. Do not render signed detail. Show that this group cannot be previewed here yet. #2293 replaces that with a named preview (get-by-id or equivalent).
Scope
In
Detail route keyed on claGroupId
Card → /org/easycla/<claGroupId> plus signature
Bare group URL, signed row present → newest signed row for that group
Picker → /org/easycla/<claGroupId> (unsigned preview when the org has not signed; names from the picker's history state)
Pasted unsigned group URL with no picker state → stay on this URL; not the list; not signed detail
return_url is the group detail, with a return flag
After a flagged return, retry the org list until a signed row for that group exists (same retry budget as today's list hop), then newest
Remove /new and the post-sign stash / list hop
Adopt ?org= on this page the same way the list already does
Summary
Key the Org Lens EasyCLA detail page on
claGroupId. A card link also carries the signature so two list rows for the same group stay distinct. A URL with only the group id shows the newest signed agreement for that group on the selected organization.return_urlbecomes/org/easycla/<claGroupId>plus the existing org query and a return flag (so a DocuSign return is not treated as a cold visit). Drop/org/easycla/newand the session stash used to hop from the list after sign. The picker opens/org/easycla/<claGroupId>— the same page as a card or a return. Do not add a reserved/signedreturn hop.Parent: #1978
Why
The list and the sign picker are organization-scoped. The picker already refuses a CLA group the organization has signed, and there is no signing-entity choice, so a new corporate sign on this path cannot create a second row for that group. The group id is known before the envelope exists, so it can be the
return_url.#1978 locked the path on signature id so two list rows for one group would not collide. Keep that by putting the signature on every card link. The bare group URL is the shareable / return address.
Today's shipped return (#2306) sends DocuSign to the list (
/org/easycla?org=) and hops from a session stash. That hop goes away: new envelopes return to the group URL. No list-hop fallback — the feature is still flagged; there are no live envelopes on the old address.#2293 already asks for this same group-id URL as the unsigned signing overview. This issue must not send an unsigned visit to the list or treat it as a signed detail.
What this page does
/newdoes today). Reload of that tab still works while the history entry is there./org/easycla/<claGroupId>. Do not redirect to the list. Do not render signed detail. Show that this group cannot be previewed here yet. #2293 replaces that with a named preview (get-by-id or equivalent).Scope
In
claGroupId/org/easycla/<claGroupId>plus signature/org/easycla/<claGroupId>(unsigned preview when the org has not signed; names from the picker's history state)return_urlis the group detail, with a return flag/newand the post-sign stash / list hop?org=on this page the same way the list already doesOut
/signedreturn routesigned=false) signatures, or relaxing the signed-list filterreturn_urlsDo not
Test plan
/org/easycla/<claGroupId>for a signed group opens the newest signed row/org/easycla/<claGroupId>as the unsigned preview (no/new)/org/easycla/<claGroupId>(no picker state) stays on that URL and does not open the list or a signed page/newis gone; no/signedroute ships