mirror of
https://github.com/grafana/grafana.git
synced 2024-12-01 13:09:22 -06:00
b00f3216c1
* fix: revoked tokens within last hours adds check for unlimited sessions out of index adds a function for specifing the hours to look back when revoking users tokens, otherwise we "assume" the clean up takes care of them adds a index for the `user_auth_token` - `revoked_at` for faster queries when using `revoked_at` * fix: sqllite datetime conversion with unixtimestamps * fix: postgres dialect * fix: mysql dialect * fix: mysql dialect missing closing ) * refactor: delete revoked tokens directly * fix: tests for sqlite * AuthToken: Simplify DeleteUserRevokedTokens and add test * fix: linting newline * Reset get time after test * fix: test order by revoked * fix: order by different db * ascending * test with seen at --------- Co-authored-by: Karl Persson <kalle.persson@grafana.com>
52 lines
1.9 KiB
Go
52 lines
1.9 KiB
Go
package migrations
|
|
|
|
import (
|
|
. "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
|
)
|
|
|
|
func addUserAuthTokenMigrations(mg *Migrator) {
|
|
userAuthTokenV1 := Table{
|
|
Name: "user_auth_token",
|
|
Columns: []*Column{
|
|
{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
|
|
{Name: "user_id", Type: DB_BigInt, Nullable: false},
|
|
{Name: "auth_token", Type: DB_NVarchar, Length: 100, Nullable: false},
|
|
{Name: "prev_auth_token", Type: DB_NVarchar, Length: 100, Nullable: false},
|
|
{Name: "user_agent", Type: DB_NVarchar, Length: 255, Nullable: false},
|
|
{Name: "client_ip", Type: DB_NVarchar, Length: 255, Nullable: false},
|
|
{Name: "auth_token_seen", Type: DB_Bool, Nullable: false},
|
|
{Name: "seen_at", Type: DB_Int, Nullable: true},
|
|
{Name: "rotated_at", Type: DB_Int, Nullable: false},
|
|
{Name: "created_at", Type: DB_Int, Nullable: false},
|
|
{Name: "updated_at", Type: DB_Int, Nullable: false},
|
|
},
|
|
Indices: []*Index{
|
|
{Cols: []string{"auth_token"}, Type: UniqueIndex},
|
|
{Cols: []string{"prev_auth_token"}, Type: UniqueIndex},
|
|
{Cols: []string{"user_id"}, Type: IndexType},
|
|
},
|
|
}
|
|
|
|
mg.AddMigration("create user auth token table", NewAddTableMigration(userAuthTokenV1))
|
|
mg.AddMigration("add unique index user_auth_token.auth_token", NewAddIndexMigration(userAuthTokenV1, userAuthTokenV1.Indices[0]))
|
|
mg.AddMigration("add unique index user_auth_token.prev_auth_token", NewAddIndexMigration(userAuthTokenV1, userAuthTokenV1.Indices[1]))
|
|
|
|
mg.AddMigration("add index user_auth_token.user_id", NewAddIndexMigration(userAuthTokenV1, userAuthTokenV1.Indices[2]))
|
|
|
|
mg.AddMigration(
|
|
"Add revoked_at to the user auth token",
|
|
NewAddColumnMigration(
|
|
userAuthTokenV1,
|
|
&Column{
|
|
Name: "revoked_at",
|
|
Type: DB_Int,
|
|
Nullable: true,
|
|
},
|
|
),
|
|
)
|
|
|
|
mg.AddMigration("add index user_auth_token.revoked_at", NewAddIndexMigration(userAuthTokenV1, &Index{
|
|
Cols: []string{"revoked_at"},
|
|
}))
|
|
}
|