diff --git a/knotserver/xrpc/delete_repo.go b/knotserver/xrpc/delete_repo.go --- a/knotserver/xrpc/delete_repo.go +++ b/knotserver/xrpc/delete_repo.go @@ -99,7 +99,7 @@ return } - if rbacErr := x.Enforcer.RemoveRepo(did, rbac.ThisServer, repoDid); rbacErr != nil { + if rbacErr := x.Enforcer.WipeRepoPolicies(rbac.ThisServer, repoDid); rbacErr != nil { l.Error("failed to delete repo from enforcer", "error", rbacErr.Error()) writeError(w, xrpcerr.GenericError(rbacErr), http.StatusInternalServerError) return diff --git a/knotserver/xrpc/set_default_branch.go b/knotserver/xrpc/set_default_branch.go --- a/knotserver/xrpc/set_default_branch.go +++ b/knotserver/xrpc/set_default_branch.go @@ -17,8 +17,6 @@ xrpcerr "tangled.org/core/xrpc/errors" ) -const ActorDid string = "ActorDid" - func (x *Xrpc) SetDefaultBranch(w http.ResponseWriter, r *http.Request) { l := x.Logger fail := func(e xrpcerr.XrpcError) { diff --git a/knotserver/xrpc/version.go b/knotserver/xrpc/version.go --- a/knotserver/xrpc/version.go +++ b/knotserver/xrpc/version.go @@ -6,10 +6,13 @@ "runtime/debug" "tangled.org/core/api/tangled" + "tangled.org/core/consts" ) // version is set during build time. var version string + +var knotCapabilities = []string{string(consts.CapKnotACL)} func (x *Xrpc) Version(w http.ResponseWriter, r *http.Request) { if version == "" { @@ -45,7 +48,8 @@ } response := tangled.KnotVersion_Output{ - Version: version, + Version: version, + Capabilities: knotCapabilities, } x.writeJson(w, response) diff --git a/knotserver/xrpc/xrpc.go b/knotserver/xrpc/xrpc.go --- a/knotserver/xrpc/xrpc.go +++ b/knotserver/xrpc/xrpc.go @@ -14,7 +14,6 @@ "github.com/go-chi/chi/v5" "tangled.org/core/api/tangled" "tangled.org/core/idresolver" - "tangled.org/core/jetstream" "tangled.org/core/knotserver/config" "tangled.org/core/knotserver/db" "tangled.org/core/knotserver/sandbox" @@ -24,10 +23,17 @@ "tangled.org/core/xrpc/serviceauth" ) +const ActorDid = serviceauth.ActorDid + +type DidIngester interface { + AddDid(did string) + RemoveDid(did string) +} + type Xrpc struct { Config *config.Config Db *db.DB - Ingester *jetstream.JetstreamClient + Ingester DidIngester Enforcer *rbac.Enforcer Logger *slog.Logger Notifier *notifier.Notifier