Monorepo for Tangled tangled.org
2

Configure Feed

Select the types of activity you want to include in your feed.

knotserver/xrpc: register member/collaborator routes & shared ACL

Lewis: May this revision serve well! <lewis@tangled.org>

author
Lewis
committer
Tangled
date (Jun 16, 2026, 9:04 PM +0300) commit 3f44f8e5 parent 4052b430 change-id qnxtulps
+14 -6
+1 -1
knotserver/xrpc/delete_repo.go
··· 99 99 return 100 100 } 101 101 102 - if rbacErr := x.Enforcer.RemoveRepo(did, rbac.ThisServer, repoDid); rbacErr != nil { 102 + if rbacErr := x.Enforcer.WipeRepoPolicies(rbac.ThisServer, repoDid); rbacErr != nil { 103 103 l.Error("failed to delete repo from enforcer", "error", rbacErr.Error()) 104 104 writeError(w, xrpcerr.GenericError(rbacErr), http.StatusInternalServerError) 105 105 return
-2
knotserver/xrpc/set_default_branch.go
··· 17 17 xrpcerr "tangled.org/core/xrpc/errors" 18 18 ) 19 19 20 - const ActorDid string = "ActorDid" 21 - 22 20 func (x *Xrpc) SetDefaultBranch(w http.ResponseWriter, r *http.Request) { 23 21 l := x.Logger 24 22 fail := func(e xrpcerr.XrpcError) {
+5 -1
knotserver/xrpc/version.go
··· 6 6 "runtime/debug" 7 7 8 8 "tangled.org/core/api/tangled" 9 + "tangled.org/core/consts" 9 10 ) 10 11 11 12 // version is set during build time. 12 13 var version string 14 + 15 + var knotCapabilities = []string{string(consts.CapKnotACL)} 13 16 14 17 func (x *Xrpc) Version(w http.ResponseWriter, r *http.Request) { 15 18 if version == "" { ··· 45 48 } 46 49 47 50 response := tangled.KnotVersion_Output{ 48 - Version: version, 51 + Version: version, 52 + Capabilities: knotCapabilities, 49 53 } 50 54 51 55 x.writeJson(w, response)
+8 -2
knotserver/xrpc/xrpc.go
··· 14 14 "github.com/go-chi/chi/v5" 15 15 "tangled.org/core/api/tangled" 16 16 "tangled.org/core/idresolver" 17 - "tangled.org/core/jetstream" 18 17 "tangled.org/core/knotserver/config" 19 18 "tangled.org/core/knotserver/db" 20 19 "tangled.org/core/knotserver/sandbox" ··· 24 23 "tangled.org/core/xrpc/serviceauth" 25 24 ) 26 25 26 + const ActorDid = serviceauth.ActorDid 27 + 28 + type DidIngester interface { 29 + AddDid(did string) 30 + RemoveDid(did string) 31 + } 32 + 27 33 type Xrpc struct { 28 34 Config *config.Config 29 35 Db *db.DB 30 - Ingester *jetstream.JetstreamClient 36 + Ingester DidIngester 31 37 Enforcer *rbac.Enforcer 32 38 Logger *slog.Logger 33 39 Notifier *notifier.Notifier