summaryrefslogtreecommitdiff
path: root/internal/cache
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2025-03-03 16:03:36 +0100
committerLibravatar GitHub <noreply@github.com>2025-03-03 15:03:36 +0000
commit1b37944f8b8eccc2afcfb0f603786209a3b7402d (patch)
tree2bc0be27cf0405e16ac3e14efc3b6973eb096b8b /internal/cache
parentbumps go-ffmpreg to v0.6.6 (#3866) (diff)
downloadgotosocial-1b37944f8b8eccc2afcfb0f603786209a3b7402d.tar.xz
[feature] Refactor tokens, allow multiple app redirect_uris (#3849)
* [feature] Refactor tokens, allow multiple app redirect_uris * move + tweak handlers a bit * return error for unset oauth2.ClientStore funcs * wrap UpdateToken with cache * panic handling * cheeky little time optimization * unlock on error
Diffstat (limited to 'internal/cache')
-rw-r--r--internal/cache/cache.go2
-rw-r--r--internal/cache/db.go29
-rw-r--r--internal/cache/invalidate.go8
-rw-r--r--internal/cache/size.go31
4 files changed, 10 insertions, 60 deletions
diff --git a/internal/cache/cache.go b/internal/cache/cache.go
index 5771b4e95..e57fbb569 100644
--- a/internal/cache/cache.go
+++ b/internal/cache/cache.go
@@ -69,7 +69,6 @@ func (c *Caches) Init() {
c.initBlock()
c.initBlockIDs()
c.initBoostOfIDs()
- c.initClient()
c.initConversation()
c.initConversationLastStatusIDs()
c.initDomainAllow()
@@ -161,7 +160,6 @@ func (c *Caches) Sweep(threshold float64) {
c.DB.Block.Trim(threshold)
c.DB.BlockIDs.Trim(threshold)
c.DB.BoostOfIDs.Trim(threshold)
- c.DB.Client.Trim(threshold)
c.DB.Conversation.Trim(threshold)
c.DB.ConversationLastStatusIDs.Trim(threshold)
c.DB.Emoji.Trim(threshold)
diff --git a/internal/cache/db.go b/internal/cache/db.go
index 180d81907..695b19b8f 100644
--- a/internal/cache/db.go
+++ b/internal/cache/db.go
@@ -52,9 +52,6 @@ type DBCaches struct {
// BoostOfIDs provides access to the boost of IDs list database cache.
BoostOfIDs SliceCache[string]
- // Client provides access to the gtsmodel Client database cache.
- Client StructCache[*gtsmodel.Client]
-
// Conversation provides access to the gtsmodel Conversation database cache.
Conversation StructCache[*gtsmodel.Conversation]
@@ -489,32 +486,6 @@ func (c *Caches) initBoostOfIDs() {
c.DB.BoostOfIDs.Init(0, cap)
}
-func (c *Caches) initClient() {
- // Calculate maximum cache size.
- cap := calculateResultCacheMax(
- sizeofClient(), // model in-mem size.
- config.GetCacheClientMemRatio(),
- )
-
- log.Infof(nil, "cache size = %d", cap)
-
- copyF := func(c1 *gtsmodel.Client) *gtsmodel.Client {
- c2 := new(gtsmodel.Client)
- *c2 = *c1
- return c2
- }
-
- c.DB.Client.Init(structr.CacheConfig[*gtsmodel.Client]{
- Indices: []structr.IndexConfig{
- {Fields: "ID"},
- },
- MaxSize: cap,
- IgnoreErr: ignoreErrors,
- Copy: copyF,
- Invalidate: c.OnInvalidateClient,
- })
-}
-
func (c *Caches) initConversation() {
cap := calculateResultCacheMax(
sizeofConversation(), // model in-mem size.
diff --git a/internal/cache/invalidate.go b/internal/cache/invalidate.go
index 555c73cd7..949238ec6 100644
--- a/internal/cache/invalidate.go
+++ b/internal/cache/invalidate.go
@@ -62,8 +62,7 @@ func (c *Caches) OnInvalidateAccount(account *gtsmodel.Account) {
}
func (c *Caches) OnInvalidateApplication(app *gtsmodel.Application) {
- // Invalidate cached client of this application.
- c.DB.Client.Invalidate("ID", app.ClientID)
+ // TODO: invalidate tokens?
}
func (c *Caches) OnInvalidateBlock(block *gtsmodel.Block) {
@@ -79,11 +78,6 @@ func (c *Caches) OnInvalidateBlock(block *gtsmodel.Block) {
c.DB.BlockIDs.Invalidate(block.AccountID)
}
-func (c *Caches) OnInvalidateClient(client *gtsmodel.Client) {
- // Invalidate any tokens under this client.
- c.DB.Token.Invalidate("ClientID", client.ID)
-}
-
func (c *Caches) OnInvalidateConversation(conversation *gtsmodel.Conversation) {
// Invalidate owning account's conversation list.
c.DB.ConversationLastStatusIDs.Invalidate(conversation.AccountID)
diff --git a/internal/cache/size.go b/internal/cache/size.go
index c96a3cd2e..1c8c5fe2e 100644
--- a/internal/cache/size.go
+++ b/internal/cache/size.go
@@ -302,15 +302,14 @@ func sizeofAccountStats() uintptr {
func sizeofApplication() uintptr {
return uintptr(size.Of(&gtsmodel.Application{
- ID: exampleID,
- CreatedAt: exampleTime,
- UpdatedAt: exampleTime,
- Name: exampleUsername,
- Website: exampleURI,
- RedirectURI: exampleURI,
- ClientID: exampleID,
- ClientSecret: exampleID,
- Scopes: exampleTextSmall,
+ ID: exampleID,
+ Name: exampleUsername,
+ Website: exampleURI,
+ RedirectURIs: []string{exampleURI},
+ ClientID: exampleID,
+ ClientSecret: exampleID,
+ Scopes: exampleTextSmall,
+ ManagedByUserID: exampleID,
}))
}
@@ -325,17 +324,6 @@ func sizeofBlock() uintptr {
}))
}
-func sizeofClient() uintptr {
- return uintptr(size.Of(&gtsmodel.Client{
- ID: exampleID,
- CreatedAt: exampleTime,
- UpdatedAt: exampleTime,
- Secret: exampleID,
- Domain: exampleURI,
- UserID: exampleID,
- }))
-}
-
func sizeofConversation() uintptr {
return uintptr(size.Of(&gtsmodel.Conversation{
ID: exampleID,
@@ -752,8 +740,7 @@ func sizeofThreadMute() uintptr {
func sizeofToken() uintptr {
return uintptr(size.Of(&gtsmodel.Token{
ID: exampleID,
- CreatedAt: exampleTime,
- UpdatedAt: exampleTime,
+ LastUsed: exampleTime,
ClientID: exampleID,
UserID: exampleID,
RedirectURI: exampleURI,