database: Add crate_owner_invitations.expires_at column
#10553
Merged
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.
The
CrateOwnerInvitationmodel currently has a code dependency on the server configuration, since that is passed into every fn that checks whether an invitation is expired yet or not. Additionally, the "delete expired invitations" code is a lot more complicated than it needs to be, since the check is happening on the Rust side, instead of in the database itself.This PR introduces a new
expires_atcolumn in thecrate_owner_invitationsdatabase table. The column is set to "now + the expiry duration configured on the server" once the invitation is created. The column is not yet used to determine whether an invitation is expired or not, since the column is nullable for now until we've backfilled it for the existing invitations. Once that has happened a follow-up PR can be merged that changes the column tonot nulland simplifies the expiration checking logic.