Repository navigation
server: redeem recipient activation URLs into a profile - #100
Merged
Merged
Conversation
littlegrasscao
marked this pull request as ready for review
September 18, 2026 23:16
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
September 22, 2026 16:42
7d19494 to
42ed727
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
September 25, 2026 22:19
42ed727 to
dd93e92
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
September 25, 2026 22:27
dd93e92 to
d3d04ad
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
September 25, 2026 22:32
d3d04ad to
5aa6db2
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
September 25, 2026 22:38
5aa6db2 to
dd5f143
Compare
zhu-tom
added this pull request to stack #111
October 1, 2026 18:55
littlegrasscao
removed this pull request from stack #111
October 1, 2026 20:19
littlegrasscao
added this pull request to stack #112
October 1, 2026 20:20
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 2, 2026 16:16
dd5f143 to
378692d
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 2, 2026 16:40
378692d to
420e233
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 5, 2026 20:57
420e233 to
666be9f
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 5, 2026 21:25
666be9f to
9152783
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 5, 2026 23:59
9152783 to
b12d3a8
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 6, 2026 00:06
b12d3a8 to
746498e
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 6, 2026 00:15
746498e to
5085ad9
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 13, 2026 23:55
aab5443 to
93ebcea
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
4 times, most recently
from
October 14, 2026 00:42
dfb2522 to
6c1752f
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 14, 2026 00:56
6c1752f to
dbe4568
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 14, 2026 19:24
dbe4568 to
3032ff4
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 15, 2026 16:46
3032ff4 to
e4f917d
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 15, 2026 18:13
e4f917d to
847f241
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 15, 2026 23:34
847f241 to
d75b5a4
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 15, 2026 23:38
d75b5a4 to
85594a5
Compare
littlegrasscao
force-pushed
the
server/split2/11-recipient-activation
branch
from
October 16, 2026 00:41
85594a5 to
bdc29b0
Compare
This was referenced Oct 19, 2026
added 5 commits
October 21, 2026 10:13
zhu-tom
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ActivationServiceredeems activation links:GET {activation.base-path}/{code}, with no provider token, turns a one-time activation code into a Delta Sharing profile file (shareCredentialsVersion,bearerToken,endpoint,expirationTime)TokenHashes); the token row is locked, so a concurrent redemption of the same code failsRESOURCE_DOES_NOT_EXIST; once the code is redeemed, the recipient'sactivationUrlis omittedendpointisserver.public-urlplus the newprotocol.base-path(default/api/1.0/opensharing), not the address the activation request arrived ontokenExpirationDaysis required on create and must be positive; the token expires that many days after it is issuedPOST /recipients/{recipient}/rotate-tokenissues a replacement token with a new activation URL. Existing tokens stop working immediately unlessexistingTokenExpireInSecondssets a grace window. Owner onlyTesting
mvn clean install: 112 tests passedActivationServiceTest: an unknown code is 404; redeeming a link returns the profile and stores only the token hash, and redeeming it again is 404RecipientAdminServiceTest: create requirestokenExpirationDaysand puts the expiration on the profile; rotation is owner-only, invalidates the old pending activation, requires a lifetime, and without a grace window expires the activated token immediatelyProfileEndpointTest: withserver.public-urlset to another address, the redeemed profile points at itRecipientRotationConcurrencyTest: after 8 concurrent rotations of one recipient, exactly one returned activation URL can be redeemedtokenExpirationDaysStacked on #99.