Remove unused slidingSyncProxy from DB.

This commit is contained in:
Benoit Marty
2025-11-18 15:48:36 +01:00
parent 21ced9e105
commit a9ae55703a
14 changed files with 43 additions and 36 deletions
@@ -39,7 +39,6 @@ class DefaultMessageParser(
accessToken = accessToken, accessToken = accessToken,
deviceId = deviceId, deviceId = deviceId,
refreshToken = null, refreshToken = null,
slidingSyncProxy = null
) )
} }
} }
@@ -84,5 +84,4 @@ internal fun anExternalSession(
accessToken = "access_token", accessToken = "access_token",
deviceId = "device_id", deviceId = "device_id",
refreshToken = null, refreshToken = null,
slidingSyncProxy = null
) )
@@ -37,7 +37,6 @@ private fun aSessionData(
refreshToken = "aRefreshToken", refreshToken = "aRefreshToken",
homeserverUrl = "aHomeserverUrl", homeserverUrl = "aHomeserverUrl",
oidcData = null, oidcData = null,
slidingSyncProxy = null,
loginTimestamp = null, loginTimestamp = null,
isTokenValid = isTokenValid, isTokenValid = isTokenValid,
loginType = LoginType.UNKNOWN, loginType = LoginType.UNKNOWN,
@@ -17,5 +17,4 @@ data class ExternalSession(
val accessToken: String, val accessToken: String,
val refreshToken: String?, val refreshToken: String?,
val homeserverUrl: String, val homeserverUrl: String,
val slidingSyncProxy: String?
) )
@@ -28,7 +28,6 @@ internal fun Session.toSessionData(
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = homeserverUrl ?: this.homeserverUrl, homeserverUrl = homeserverUrl ?: this.homeserverUrl,
oidcData = oidcData, oidcData = oidcData,
slidingSyncProxy = null,
loginTimestamp = Date(), loginTimestamp = Date(),
isTokenValid = isTokenValid, isTokenValid = isTokenValid,
loginType = loginType, loginType = loginType,
@@ -54,7 +53,6 @@ internal fun ExternalSession.toSessionData(
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = homeserverUrl, homeserverUrl = homeserverUrl,
oidcData = null, oidcData = null,
slidingSyncProxy = slidingSyncProxy,
loginTimestamp = Date(), loginTimestamp = Date(),
isTokenValid = isTokenValid, isTokenValid = isTokenValid,
loginType = loginType, loginType = loginType,
@@ -38,7 +38,6 @@ class SessionKtTest {
assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL) assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL)
assertThat(result.isTokenValid).isTrue() assertThat(result.isTokenValid).isTrue()
assertThat(result.oidcData).isNull() assertThat(result.oidcData).isNull()
assertThat(result.slidingSyncProxy).isNull()
assertThat(result.loginType).isEqualTo(LoginType.PASSWORD) assertThat(result.loginType).isEqualTo(LoginType.PASSWORD)
assertThat(result.loginTimestamp).isNotNull() assertThat(result.loginTimestamp).isNotNull()
assertThat(result.passphrase).isEqualTo(A_SECRET) assertThat(result.passphrase).isEqualTo(A_SECRET)
@@ -70,20 +69,6 @@ class SessionKtTest {
assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL_2) assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL_2)
} }
@Test
fun `toSessionData copy the sliding sync url if present`() {
val result = aRustSession(
proxy = SlidingSyncVersion.NATIVE
).toSessionData(
isTokenValid = true,
loginType = LoginType.PASSWORD,
passphrase = A_SECRET,
sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")),
homeserverUrl = A_HOMESERVER_URL_2,
)
assertThat(result.slidingSyncProxy).isNull()
}
@Test @Test
fun `ExternalSession toSessionData compute the expected result`() { fun `ExternalSession toSessionData compute the expected result`() {
val result = anExternalSession().toSessionData( val result = anExternalSession().toSessionData(
@@ -99,7 +84,6 @@ class SessionKtTest {
assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL) assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL)
assertThat(result.isTokenValid).isTrue() assertThat(result.isTokenValid).isTrue()
assertThat(result.oidcData).isNull() assertThat(result.oidcData).isNull()
assertThat(result.slidingSyncProxy).isNull()
assertThat(result.loginType).isEqualTo(LoginType.PASSWORD) assertThat(result.loginType).isEqualTo(LoginType.PASSWORD)
assertThat(result.loginTimestamp).isNotNull() assertThat(result.loginTimestamp).isNotNull()
assertThat(result.passphrase).isEqualTo(A_SECRET) assertThat(result.passphrase).isEqualTo(A_SECRET)
@@ -125,12 +109,10 @@ private fun anExternalSession(
accessToken: String = "accessToken", accessToken: String = "accessToken",
refreshToken: String? = null, refreshToken: String? = null,
homeserverUrl: String = A_HOMESERVER_URL, homeserverUrl: String = A_HOMESERVER_URL,
slidingSyncProxy: String? = null,
) = ExternalSession( ) = ExternalSession(
userId = userId, userId = userId,
deviceId = deviceId, deviceId = deviceId,
accessToken = accessToken, accessToken = accessToken,
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = homeserverUrl, homeserverUrl = homeserverUrl,
slidingSyncProxy = slidingSyncProxy,
) )
@@ -26,8 +26,6 @@ data class SessionData(
val homeserverUrl: String, val homeserverUrl: String,
/** The Open ID Connect info for this session, if any. */ /** The Open ID Connect info for this session, if any. */
val oidcData: String?, val oidcData: String?,
/** The Sliding Sync Proxy URL for this session, if any. */
val slidingSyncProxy: String?,
/** The timestamp of the last login. May be `null` in very old sessions. */ /** The timestamp of the last login. May be `null` in very old sessions. */
val loginTimestamp: Date?, val loginTimestamp: Date?,
/** Whether the [accessToken] is valid or not. */ /** Whether the [accessToken] is valid or not. */
@@ -21,7 +21,6 @@ internal fun SessionData.toDbModel(): DbSessionData {
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = homeserverUrl, homeserverUrl = homeserverUrl,
oidcData = oidcData, oidcData = oidcData,
slidingSyncProxy = slidingSyncProxy,
loginTimestamp = loginTimestamp?.time, loginTimestamp = loginTimestamp?.time,
isTokenValid = if (isTokenValid) 1L else 0L, isTokenValid = if (isTokenValid) 1L else 0L,
loginType = loginType.name, loginType = loginType.name,
@@ -43,7 +42,6 @@ internal fun DbSessionData.toApiModel(): SessionData {
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = homeserverUrl, homeserverUrl = homeserverUrl,
oidcData = oidcData, oidcData = oidcData,
slidingSyncProxy = slidingSyncProxy,
loginTimestamp = loginTimestamp?.let { Date(it) }, loginTimestamp = loginTimestamp?.let { Date(it) },
isTokenValid = isTokenValid == 1L, isTokenValid = isTokenValid == 1L,
loginType = LoginType.fromName(loginType ?: LoginType.UNKNOWN.name), loginType = LoginType.fromName(loginType ?: LoginType.UNKNOWN.name),
@@ -14,7 +14,6 @@ CREATE TABLE SessionData (
accessToken TEXT NOT NULL, accessToken TEXT NOT NULL,
refreshToken TEXT, refreshToken TEXT,
homeserverUrl TEXT NOT NULL, homeserverUrl TEXT NOT NULL,
slidingSyncProxy TEXT,
-- added in version 2 -- added in version 2
loginTimestamp INTEGER, loginTimestamp INTEGER,
-- added in version 3 -- added in version 3
@@ -0,0 +1,43 @@
-- Migrate DB from version 10
-- Remove field slidingSyncProxy
-- Equivalent to (DROP not supported by sqldelight):
-- ALTER TABLE SessionData DROP slidingSyncProxy;
CREATE TABLE SessionData_bak (
userId TEXT NOT NULL PRIMARY KEY,
deviceId TEXT NOT NULL,
accessToken TEXT NOT NULL,
refreshToken TEXT,
homeserverUrl TEXT NOT NULL,
loginTimestamp INTEGER,
oidcData TEXT,
isTokenValid INTEGER NOT NULL DEFAULT 1,
loginType TEXT,
passphrase TEXT,
sessionPath TEXT NOT NULL DEFAULT "",
cachePath TEXT NOT NULL DEFAULT "",
position INTEGER NOT NULL DEFAULT 0,
lastUsageIndex INTEGER NOT NULL DEFAULT 0,
userDisplayName TEXT,
userAvatarUrl TEXT
);
INSERT INTO SessionData_bak SELECT
userId,
deviceId,
accessToken,
refreshToken,
homeserverUrl,
loginTimestamp,
oidcData,
isTokenValid,
loginType,
passphrase,
sessionPath,
cachePath,
position,
lastUsageIndex,
userDisplayName,
userAvatarUrl FROM SessionData;
DROP TABLE SessionData;
ALTER TABLE SessionData_bak RENAME TO SessionData;
@@ -220,7 +220,6 @@ class DatabaseSessionStoreTest {
accessToken = "accessToken", accessToken = "accessToken",
refreshToken = "refreshToken", refreshToken = "refreshToken",
homeserverUrl = "homeserverUrl", homeserverUrl = "homeserverUrl",
slidingSyncProxy = "slidingSyncProxy",
loginTimestamp = 1, loginTimestamp = 1,
oidcData = "aOidcData", oidcData = "aOidcData",
isTokenValid = 1, isTokenValid = 1,
@@ -239,7 +238,6 @@ class DatabaseSessionStoreTest {
accessToken = "accessTokenAltered", accessToken = "accessTokenAltered",
refreshToken = "refreshTokenAltered", refreshToken = "refreshTokenAltered",
homeserverUrl = "homeserverUrlAltered", homeserverUrl = "homeserverUrlAltered",
slidingSyncProxy = "slidingSyncProxyAltered",
loginTimestamp = 2, loginTimestamp = 2,
oidcData = "aOidcDataAltered", oidcData = "aOidcDataAltered",
isTokenValid = 1, isTokenValid = 1,
@@ -266,7 +264,6 @@ class DatabaseSessionStoreTest {
assertThat(alteredSession.accessToken).isEqualTo(secondSessionData.accessToken) assertThat(alteredSession.accessToken).isEqualTo(secondSessionData.accessToken)
assertThat(alteredSession.refreshToken).isEqualTo(secondSessionData.refreshToken) assertThat(alteredSession.refreshToken).isEqualTo(secondSessionData.refreshToken)
assertThat(alteredSession.homeserverUrl).isEqualTo(secondSessionData.homeserverUrl) assertThat(alteredSession.homeserverUrl).isEqualTo(secondSessionData.homeserverUrl)
assertThat(alteredSession.slidingSyncProxy).isEqualTo(secondSessionData.slidingSyncProxy)
// Check that alteredSession.loginTimestamp is not altered, so equal to firstSessionData.loginTimestamp // Check that alteredSession.loginTimestamp is not altered, so equal to firstSessionData.loginTimestamp
assertThat(alteredSession.loginTimestamp).isEqualTo(firstSessionData.loginTimestamp) assertThat(alteredSession.loginTimestamp).isEqualTo(firstSessionData.loginTimestamp)
assertThat(alteredSession.oidcData).isEqualTo(secondSessionData.oidcData) assertThat(alteredSession.oidcData).isEqualTo(secondSessionData.oidcData)
@@ -286,7 +283,6 @@ class DatabaseSessionStoreTest {
accessToken = "accessToken", accessToken = "accessToken",
refreshToken = "refreshToken", refreshToken = "refreshToken",
homeserverUrl = "homeserverUrl", homeserverUrl = "homeserverUrl",
slidingSyncProxy = "slidingSyncProxy",
loginTimestamp = 1, loginTimestamp = 1,
oidcData = "aOidcData", oidcData = "aOidcData",
isTokenValid = 1, isTokenValid = 1,
@@ -305,7 +301,6 @@ class DatabaseSessionStoreTest {
accessToken = "accessTokenAltered", accessToken = "accessTokenAltered",
refreshToken = "refreshTokenAltered", refreshToken = "refreshTokenAltered",
homeserverUrl = "homeserverUrlAltered", homeserverUrl = "homeserverUrlAltered",
slidingSyncProxy = "slidingSyncProxyAltered",
loginTimestamp = 2, loginTimestamp = 2,
oidcData = "aOidcDataAltered", oidcData = "aOidcDataAltered",
isTokenValid = 1, isTokenValid = 1,
@@ -19,7 +19,6 @@ internal fun aDbSessionData(
accessToken = "accessToken", accessToken = "accessToken",
refreshToken = "refreshToken", refreshToken = "refreshToken",
homeserverUrl = "homeserverUrl", homeserverUrl = "homeserverUrl",
slidingSyncProxy = null,
loginTimestamp = null, loginTimestamp = null,
oidcData = "aOidcData", oidcData = "aOidcData",
isTokenValid = 1, isTokenValid = 1,
@@ -31,7 +31,6 @@ fun aSessionData(
refreshToken = refreshToken, refreshToken = refreshToken,
homeserverUrl = "aHomeserverUrl", homeserverUrl = "aHomeserverUrl",
oidcData = null, oidcData = null,
slidingSyncProxy = null,
loginTimestamp = null, loginTimestamp = null,
isTokenValid = isTokenValid, isTokenValid = isTokenValid,
loginType = LoginType.UNKNOWN, loginType = LoginType.UNKNOWN,