Monorepo for Tangled tangled.org

appview, knotserver: add didAssign event and PDS rewrite on login #1143

open opened by oyster.cafe targeting master from oyster.cafe/tangled-core: master
Labels

None yet.

assignee

None yet.

Participants 2
AT URI
at://did:plc:3fwecdnvtcscjnrx2p4n7alz/sh.tangled.repo.pull/3mgprvt2evm22
+6 -38
Interdiff #9 #10
appview/db/repos.go

This file has not been changed.

-6
appview/oauth/handler.go
··· 337 337 return fmt.Errorf("unexpected type for issue record") 338 338 } 339 339 rec.RepoDid = &repoDid 340 - rec.Repo = nil 341 340 342 341 case tangled.RepoPullNSID: 343 342 rec, ok := val.(*tangled.RepoPull) ··· 346 345 } 347 346 if rec.Target != nil { 348 347 rec.Target.RepoDid = &repoDid 349 - rec.Target.Repo = nil 350 348 } 351 349 if rec.Source != nil && rec.Source.Repo != nil && *rec.Source.Repo == rw.OldRepoAt { 352 350 rec.Source.RepoDid = &repoDid 353 - rec.Source.Repo = nil 354 351 } 355 352 356 353 case tangled.RepoCollaboratorNSID: ··· 359 356 return fmt.Errorf("unexpected type for collaborator record") 360 357 } 361 358 rec.RepoDid = &repoDid 362 - rec.Repo = nil 363 359 364 360 case tangled.RepoArtifactNSID: 365 361 rec, ok := val.(*tangled.RepoArtifact) ··· 367 363 return fmt.Errorf("unexpected type for artifact record") 368 364 } 369 365 rec.RepoDid = &repoDid 370 - rec.Repo = nil 371 366 372 367 case tangled.FeedStarNSID: 373 368 rec, ok := val.(*tangled.FeedStar) ··· 375 370 return fmt.Errorf("unexpected type for star record") 376 371 } 377 372 rec.SubjectDid = &repoDid 378 - rec.Subject = nil 379 373 380 374 case tangled.ActorProfileNSID: 381 375 rec, ok := val.(*tangled.ActorProfile)
appview/state/knotstream.go

This patch was likely rebased, as context lines do not match.

knotserver/db/didassign.go

This file has not been changed.

+2 -4
knotserver/db/events.go
··· 5 5 "fmt" 6 6 "time" 7 7 8 - "github.com/bluesky-social/indigo/atproto/syntax" 9 8 "tangled.org/core/notifier" 9 + "tangled.org/core/tid" 10 10 ) 11 11 12 - var tidClock = syntax.NewTIDClock(0) 13 - 14 12 type Event struct { 15 13 Rkey string `json:"rkey"` 16 14 Nsid string `json:"nsid"` ··· 47 45 } 48 46 49 47 return d.InsertEvent(Event{ 50 - Rkey: tidClock.Next().String(), 48 + Rkey: tid.TID(), 51 49 Nsid: RepoDIDAssignNSID, 52 50 EventJson: string(eventJson), 53 51 }, n)
knotserver/events.go

This file has not been changed.

knotserver/git.go

This file has not been changed.

knotserver/internal.go

This file has not been changed.

+4 -28
knotserver/xrpc/xrpc.go
··· 4 4 "encoding/json" 5 5 "log/slog" 6 6 "net/http" 7 - "os" 8 - "path/filepath" 9 7 "strings" 10 8 11 - securejoin "github.com/cyphar/filepath-securejoin" 12 - "github.com/go-chi/chi/v5" 13 9 "tangled.org/core/api/tangled" 14 10 "tangled.org/core/idresolver" 15 11 "tangled.org/core/jetstream" ··· 19 15 "tangled.org/core/rbac" 20 16 xrpcerr "tangled.org/core/xrpc/errors" 21 17 "tangled.org/core/xrpc/serviceauth" 18 + 19 + "github.com/go-chi/chi/v5" 22 20 ) 23 21 24 22 type Xrpc struct { ··· 87 85 ) 88 86 } 89 87 88 + repoPath, _, _, err := x.Db.ResolveRepoDIDOnDisk(x.Config.Repo.ScanPath, repo) 89 + if err != nil { 90 - if !strings.Contains(repo, "/") { 91 - repoPath, _, _, err := x.Db.ResolveRepoDIDOnDisk(x.Config.Repo.ScanPath, repo) 92 - if err != nil { 93 - return "", xrpcerr.RepoNotFoundError 94 - } 95 - return repoPath, nil 96 - } 97 - 98 - parts := strings.SplitN(repo, "/", 2) 99 - ownerDid, repoName := parts[0], parts[1] 100 - 101 - repoDid, err := x.Db.GetRepoDid(ownerDid, repoName) 102 - if err == nil { 103 - repoPath, _, _, resolveErr := x.Db.ResolveRepoDIDOnDisk(x.Config.Repo.ScanPath, repoDid) 104 - if resolveErr == nil { 105 - return repoPath, nil 106 - } 107 - } 108 - 109 - repoPath, joinErr := securejoin.SecureJoin(x.Config.Repo.ScanPath, filepath.Join(ownerDid, repoName)) 110 - if joinErr != nil { 111 - return "", xrpcerr.RepoNotFoundError 112 - } 113 - if _, statErr := os.Stat(repoPath); statErr != nil { 114 90 return "", xrpcerr.RepoNotFoundError 115 91 } 116 92 return repoPath, nil
rbac/rbac.go

This file has not been changed.

rbac/rbac_test.go

This file has not been changed.

History

12 rounds 1 comment
sign up or login to add to the discussion
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
merge conflicts detected
expand
  • go.mod:34
  • go.sum:339
expand 0 comments
oyster.cafe submitted #10
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 1 comment

everything else lgtm!

1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments
1 commit
expand
appview, knotserver: add didAssign event and PDS rewrite on login
expand 0 comments