From c476196653658dc872b93458e9385a606f778a70 Mon Sep 17 00:00:00 2001 From: Pascal Fischer <32096965+pascal-fischer@users.noreply.github.com> Date: Thu, 22 Oct 2026 19:12:17 +0200 Subject: [PATCH] [management] Add additional indexes for groups, events, pats and access logs (#8289) --- .../modules/reverseproxy/accesslogs/accesslogentry.go | 4 ++-- management/server/activity/event.go | 4 ++-- management/server/types/group.go | 2 +- management/server/types/personal_access_token.go | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/management/internals/modules/reverseproxy/accesslogs/accesslogentry.go b/management/internals/modules/reverseproxy/accesslogs/accesslogentry.go index 6705eab1a..a0b6c60df 100644 --- a/management/internals/modules/reverseproxy/accesslogs/accesslogentry.go +++ b/management/internals/modules/reverseproxy/accesslogs/accesslogentry.go @@ -22,9 +22,9 @@ const ( type AccessLogEntry struct { ID string `gorm:"primaryKey"` - AccountID string `gorm:"index"` + AccountID string `gorm:"index;index:idx_access_log_entries_account_timestamp,priority:1,option:CONCURRENTLY"` ServiceID string `gorm:"index"` - Timestamp time.Time `gorm:"index"` + Timestamp time.Time `gorm:"index;index:idx_access_log_entries_account_timestamp,priority:2"` GeoLocation peer.Location `gorm:"embedded;embeddedPrefix:location_"` SubdivisionCode string Method string `gorm:"index"` diff --git a/management/server/activity/event.go b/management/server/activity/event.go index 8fd5e3371..2d66418a3 100644 --- a/management/server/activity/event.go +++ b/management/server/activity/event.go @@ -17,7 +17,7 @@ type ActivityDescriber interface { //nolint:revive // Event represents a network/system activity event. type Event struct { // Timestamp of the event - Timestamp time.Time + Timestamp time.Time `gorm:"index:idx_events_account_timestamp,priority:2"` // Activity that was performed during the event Activity Activity `gorm:"type:integer"` // ID of the event (can be empty, meaning that it wasn't yet generated) @@ -31,7 +31,7 @@ type Event struct { // TargetID is the ID of an object that was effected by the event (e.g., a peer) TargetID string // AccountID is the ID of an account where the event happened - AccountID string `gorm:"index"` + AccountID string `gorm:"index;index:idx_events_account_timestamp,priority:1,option:CONCURRENTLY"` // Meta of the event, e.g. deleted peer information like name, IP, etc Meta map[string]any `gorm:"serializer:json"` diff --git a/management/server/types/group.go b/management/server/types/group.go index ac0a2a7f2..84fcda828 100644 --- a/management/server/types/group.go +++ b/management/server/types/group.go @@ -40,7 +40,7 @@ type Group struct { type GroupPeer struct { AccountID string `gorm:"index"` GroupID string `gorm:"primaryKey"` - PeerID string `gorm:"primaryKey"` + PeerID string `gorm:"primaryKey;index:idx_group_peers_peer_id,option:CONCURRENTLY"` } func (g *Group) LoadGroupPeers() { diff --git a/management/server/types/personal_access_token.go b/management/server/types/personal_access_token.go index 0aa6b152b..8351928b5 100644 --- a/management/server/types/personal_access_token.go +++ b/management/server/types/personal_access_token.go @@ -31,7 +31,7 @@ type PersonalAccessToken struct { // User is a reference to Account that this object belongs UserID string `gorm:"index"` Name string - HashedToken string + HashedToken string `gorm:"index:idx_personal_access_tokens_hashed_token"` ExpirationDate *time.Time // scope could be added in future CreatedBy string