[history-v1] add endpoint for downloading latest zip (#33181)

* [history-v1] add endpoint for downloading latest zip

* [web] address review feedback

* [web] tests: do not overwrite db.projects.overleaf, extend it

* [web] set includeReferer flag from downloading zip

GitOrigin-RevId: e63e549f004230086f82eccf03b43fd62bde6071
This commit is contained in:
Jakob Ackermann
2026-05-13 08:06:53 +00:00
committed by Copybot
parent b1931d0b3b
commit 7c50dc9990
13 changed files with 319 additions and 63 deletions
@@ -333,6 +333,30 @@ async function getOneTimeAssignment(splitTestName) {
}
}
/**
* Checks if a feature flag is enabled for a specific user
*
* Retrieves the feature flag assignment for a user and determines if the assigned variant is 'enabled'
*
* @param req the request
* @param res the Express response object
* @param {string} splitTestName - The unique name of the feature flag
* @param {Object} options
* @param {boolean} options.includeReferer For ajax requests and downloads include the split test overrides of the page
* @returns {Promise<boolean>} True if the user's assigned variant is 'enabled', false otherwise
*/
async function featureFlagEnabled(
req,
res,
splitTestName,
{ includeReferer = false } = { includeReferer: false }
) {
const { variant } = await getAssignment(req, res, splitTestName, {
includeReferer,
})
return variant === 'enabled'
}
/**
* Checks if a feature flag is enabled for a specific user
*
@@ -997,6 +1021,7 @@ export default {
getPercentile,
getAssignment: callbackify(getAssignment),
getAssignmentForUser: callbackify(getAssignmentForUser),
featureFlagEnabled: callbackify(featureFlagEnabled),
featureFlagEnabledForUser: callbackify(featureFlagEnabledForUser),
getOneTimeAssignment: callbackify(getOneTimeAssignment),
getActiveAssignmentsForUser: callbackify(getActiveAssignmentsForUser),
@@ -1006,6 +1031,7 @@ export default {
promises: {
getAssignment,
getAssignmentForUser,
featureFlagEnabled,
featureFlagEnabledForUser,
getOneTimeAssignment,
getActiveAssignmentsForUser,