Merge pull request #5755 from element-hq/feature/bma/cleanupDb
Remove unused `slidingSyncProxy` from DB.
This commit is contained in:
commit
b54b077125
14 changed files with 43 additions and 37 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,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ import io.element.android.libraries.matrix.test.A_SECRET
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
import io.element.android.libraries.sessionstorage.api.LoginType
|
import io.element.android.libraries.sessionstorage.api.LoginType
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.SlidingSyncVersion
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class SessionKtTest {
|
class SessionKtTest {
|
||||||
|
|
@ -38,7 +37,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 +68,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 +83,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 +108,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),
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue