diff --git a/services/web/app/src/models/OauthAccessToken.js b/services/web/app/src/models/OauthAccessToken.js index 2ebe10cfcc..aa54352a63 100644 --- a/services/web/app/src/models/OauthAccessToken.js +++ b/services/web/app/src/models/OauthAccessToken.js @@ -12,6 +12,7 @@ const OauthAccessTokenSchema = new Schema( refreshTokenExpiresAt: Date, scope: String, user_id: { type: ObjectId, ref: 'User' }, + expiresAt: Date, }, { collection: 'oauthAccessTokens', diff --git a/services/web/migrations/20230406125632_oauth_tokens_ttl.js b/services/web/migrations/20230406125632_oauth_tokens_ttl.js new file mode 100644 index 0000000000..64b1e423e7 --- /dev/null +++ b/services/web/migrations/20230406125632_oauth_tokens_ttl.js @@ -0,0 +1,35 @@ +const Helpers = require('./lib/helpers') + +exports.tags = ['server-ce', 'server-pro', 'saas'] + +const ACCESS_TOKENS_INDEX = { + name: 'expiresAt_1', + key: { expiresAt: 1 }, + partialFilterExpression: { expiresAt: { $exists: true } }, + expireAfterSeconds: 0, +} + +const AUTHORIZATION_CODES_INDEX = { + name: 'expiresAt_1', + key: { expiresAt: 1 }, + partialFilterExpression: { expiresAt: { $exists: true } }, + expireAfterSeconds: 0, +} + +exports.migrate = async ({ db }) => { + await Helpers.addIndexesToCollection(db.oauthAccessTokens, [ + ACCESS_TOKENS_INDEX, + ]) + await Helpers.addIndexesToCollection(db.oauthAuthorizationCodes, [ + AUTHORIZATION_CODES_INDEX, + ]) +} + +exports.rollback = async ({ db }) => { + await Helpers.dropIndexesFromCollection(db.oauthAccessTokens, [ + ACCESS_TOKENS_INDEX, + ]) + await Helpers.dropIndexesFromCollection(db.oauthAuthorizationCodes, [ + AUTHORIZATION_CODES_INDEX, + ]) +}