From 3877a2b24f0b0ef00da6831d3e23954e0e2bf56d Mon Sep 17 00:00:00 2001 From: Will Andrews Date: Mon, 13 Apr 2026 06:17:52 +0100 Subject: [PATCH] appview: allow pub key name updating from atproto ingestion Signed-off-by: Will Andrews --- appview/db/pubkeys.go | 10 +++++++++- appview/ingester.go | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/appview/db/pubkeys.go b/appview/db/pubkeys.go index c62525f2..a40a2b99 100644 --- a/appview/db/pubkeys.go +++ b/appview/db/pubkeys.go @@ -1,8 +1,9 @@ package db import ( - "tangled.org/core/appview/models" "time" + + "tangled.org/core/appview/models" ) func AddPublicKey(e Execer, did, name, key, rkey string) error { @@ -13,6 +14,13 @@ func AddPublicKey(e Execer, did, name, key, rkey string) error { return err } +func UpdatePublicKey(e Execer, did, name, key, rkey string) error { + _, err := e.Exec( + `update public_keys set name = ? where did = ? and key = ? and rkey = ?`, + name, did, key, rkey) + return err +} + func DeletePublicKey(e Execer, did, name, key string) error { _, err := e.Exec(` delete from public_keys diff --git a/appview/ingester.go b/appview/ingester.go index ac9b3c24..d77e0564 100644 --- a/appview/ingester.go +++ b/appview/ingester.go @@ -211,7 +211,7 @@ func (i *Ingester) ingestPublicKey(e *jmodels.Event) error { l = l.With("nsid", e.Commit.Collection) switch e.Commit.Operation { - case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: + case jmodels.CommitOperationCreate: l.Debug("processing add of pubkey") raw := json.RawMessage(e.Commit.Record) record := tangled.PublicKey{} @@ -224,6 +224,19 @@ func (i *Ingester) ingestPublicKey(e *jmodels.Event) error { name := record.Name key := record.Key err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey) + case jmodels.CommitOperationUpdate: + l.Debug("processing update of pubkey") + raw := json.RawMessage(e.Commit.Record) + record := tangled.PublicKey{} + err = json.Unmarshal(raw, &record) + if err != nil { + l.Error("invalid record", "err", err) + return err + } + + name := record.Name + key := record.Key + err = db.UpdatePublicKey(i.Db, did, name, key, e.Commit.RKey) case jmodels.CommitOperationDelete: l.Debug("processing delete of pubkey") err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey) -- 2.51.2