diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index c2325f5f..00000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: ci -on: - push: - branches: - - main - pull_request: - branches: - - main -jobs: - build_and_publish: - runs-on: docker - container: - image: ghcr.io/catthehacker/ubuntu:runner-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v6 - with: - go-version: '1.23.linux-arm64' diff --git a/README.md b/README.md index 0bb8a044..2bae96fe 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,5 @@ # Dendrite -## Dendrite is now maintained at [element-hq/dendrite](https://github.com/element-hq/dendrite) - -Dendrite is an open-source [Matrix](https://matrix.org/) homeserver developed from 2019 through 2023 as part of the Matrix.org Foundation. -The Matrix.org Foundation is not able to resource maintenance of Dendrite and it [continues to be developed by Element](https://github.com/element-hq/dendrite) -additionally you have the choice of [other Matrix homeservers](https://matrix.org/ecosystem/servers/) - -See [The future of Synapse and Dendrite](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) blog post for more information. - [](https://github.com/matrix-org/dendrite/actions/workflows/dendrite.yml) [](https://matrix.to/#/#dendrite:matrix.org) [](https://matrix.to/#/#dendrite-dev:matrix.org) Dendrite is a second-generation Matrix homeserver written in Go. diff --git a/contrib/dendrite-demo-i2p/main.go b/contrib/dendrite-demo-i2p/main.go deleted file mode 100644 index 92cfab49..00000000 --- a/contrib/dendrite-demo-i2p/main.go +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "flag" - "os" - "time" - - "github.com/getsentry/sentry-go" - "github.com/matrix-org/dendrite/internal" - "github.com/matrix-org/dendrite/internal/caching" - "github.com/matrix-org/dendrite/internal/httputil" - "github.com/matrix-org/dendrite/internal/sqlutil" - "github.com/matrix-org/dendrite/setup/jetstream" - "github.com/matrix-org/dendrite/setup/process" - "github.com/matrix-org/gomatrixserverlib/fclient" - "github.com/prometheus/client_golang/prometheus" - "github.com/sirupsen/logrus" - - "github.com/matrix-org/dendrite/appservice" - "github.com/matrix-org/dendrite/federationapi" - "github.com/matrix-org/dendrite/roomserver" - "github.com/matrix-org/dendrite/setup" - basepkg "github.com/matrix-org/dendrite/setup/base" - "github.com/matrix-org/dendrite/setup/config" - "github.com/matrix-org/dendrite/setup/mscs" - "github.com/matrix-org/dendrite/userapi" -) - -var ( - samAddr = flag.String("samaddr", "127.0.0.1:7656", "Address to connect to the I2P SAMv3 API") - _, skip = os.LookupEnv("CI") -) - -func main() { - cfg := setup.ParseFlags(true) - if skip { - return - } - - configErrors := &config.ConfigErrors{} - cfg.Verify(configErrors) - if len(*configErrors) > 0 { - for _, err := range *configErrors { - logrus.Errorf("Configuration error: %s", err) - } - logrus.Fatalf("Failed to start due to configuration errors") - } - processCtx := process.NewProcessContext() - - internal.SetupStdLogging() - internal.SetupHookLogging(cfg.Logging) - internal.SetupPprof() - - basepkg.PlatformSanityChecks() - - logrus.Infof("Dendrite version %s", internal.VersionString()) - if !cfg.ClientAPI.RegistrationDisabled && cfg.ClientAPI.OpenRegistrationWithoutVerificationEnabled { - logrus.Warn("Open registration is enabled") - } - - // create DNS cache - var dnsCache *fclient.DNSCache - if cfg.Global.DNSCache.Enabled { - dnsCache = fclient.NewDNSCache( - cfg.Global.DNSCache.CacheSize, - cfg.Global.DNSCache.CacheLifetime, - ) - logrus.Infof( - "DNS cache enabled (size %d, lifetime %s)", - cfg.Global.DNSCache.CacheSize, - cfg.Global.DNSCache.CacheLifetime, - ) - } - - // setup tracing - closer, err := cfg.SetupTracing() - if err != nil { - logrus.WithError(err).Panicf("failed to start opentracing") - } - defer closer.Close() // nolint: errcheck - - // setup sentry - if cfg.Global.Sentry.Enabled { - logrus.Info("Setting up Sentry for debugging...") - err = sentry.Init(sentry.ClientOptions{ - Dsn: cfg.Global.Sentry.DSN, - Environment: cfg.Global.Sentry.Environment, - Debug: true, - ServerName: string(cfg.Global.ServerName), - Release: "dendrite@" + internal.VersionString(), - AttachStacktrace: true, - }) - if err != nil { - logrus.WithError(err).Panic("failed to start Sentry") - } - go func() { - processCtx.ComponentStarted() - <-processCtx.WaitForShutdown() - if !sentry.Flush(time.Second * 5) { - logrus.Warnf("failed to flush all Sentry events!") - } - processCtx.ComponentFinished() - }() - } - - federationClient := basepkg.CreateFederationClient(cfg, dnsCache) - httpClient := basepkg.CreateClient(cfg, dnsCache) - - // prepare required dependencies - cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions) - routers := httputil.NewRouters() - - caches := caching.NewRistrettoCache(cfg.Global.Cache.EstimatedMaxSize, cfg.Global.Cache.MaxAge, caching.EnableMetrics) - natsInstance := jetstream.NATSInstance{} - rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.EnableMetrics) - fsAPI := federationapi.NewInternalAPI( - processCtx, cfg, cm, &natsInstance, federationClient, rsAPI, caches, nil, false, - ) - - keyRing := fsAPI.KeyRing() - - // The underlying roomserver implementation needs to be able to call the fedsender. - // This is different to rsAPI which can be the http client which doesn't need this - // dependency. Other components also need updating after their dependencies are up. - rsAPI.SetFederationAPI(fsAPI, keyRing) - - userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, federationClient, caching.EnableMetrics, fsAPI.IsBlacklistedOrBackingOff) - asAPI := appservice.NewInternalAPI(processCtx, cfg, &natsInstance, userAPI, rsAPI) - - rsAPI.SetAppserviceAPI(asAPI) - rsAPI.SetUserAPI(userAPI) - - monolith := setup.Monolith{ - Config: cfg, - Client: httpClient, - FedClient: federationClient, - KeyRing: keyRing, - - AppserviceAPI: asAPI, - // always use the concrete impl here even in -http mode because adding public routes - // must be done on the concrete impl not an HTTP client else fedapi will call itself - FederationAPI: fsAPI, - RoomserverAPI: rsAPI, - UserAPI: userAPI, - } - monolith.AddAllPublicRoutes(processCtx, cfg, routers, cm, &natsInstance, caches, caching.EnableMetrics) - - if len(cfg.MSCs.MSCs) > 0 { - if err := mscs.Enable(cfg, cm, routers, &monolith, caches); err != nil { - logrus.WithError(err).Fatalf("Failed to enable MSCs") - } - } - - upCounter := prometheus.NewCounter(prometheus.CounterOpts{ - Namespace: "dendrite", - Name: "up", - ConstLabels: map[string]string{ - "version": internal.VersionString(), - }, - }) - upCounter.Add(1) - prometheus.MustRegister(upCounter) - - // Expose the matrix APIs directly rather than putting them under a /api path. - go func() { - SetupAndServeHTTPS(processCtx, cfg, routers) //, httpsAddr, nil, nil) - }() - - // We want to block forever to let the HTTP and HTTPS handler serve the APIs - basepkg.WaitForShutdown(processCtx) -} diff --git a/contrib/dendrite-demo-i2p/main_i2p.go b/contrib/dendrite-demo-i2p/main_i2p.go deleted file mode 100644 index 72fed656..00000000 --- a/contrib/dendrite-demo-i2p/main_i2p.go +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "bytes" - "context" - "crypto/tls" - "embed" - "net" - "net/http" - "net/url" - "strings" - "sync/atomic" - "text/template" - - "github.com/cretz/bine/tor" - "github.com/eyedeekay/goSam" - "github.com/eyedeekay/onramp" - sentryhttp "github.com/getsentry/sentry-go/http" - "github.com/gorilla/mux" - "github.com/kardianos/minwinsvc" - "github.com/matrix-org/dendrite/internal" - "github.com/matrix-org/dendrite/internal/httputil" - "github.com/matrix-org/dendrite/setup/process" - "github.com/prometheus/client_golang/prometheus/promhttp" - "github.com/sirupsen/logrus" - - basepkg "github.com/matrix-org/dendrite/setup/base" - "github.com/matrix-org/dendrite/setup/config" -) - -func client() (*goSam.Client, error) { - if skip { - return nil, nil - } - return goSam.NewClient(*samAddr) -} - -var sam, samError = client() - -func start() (*tor.Tor, error) { - if skip { - return nil, nil - } - return tor.Start(context.Background(), nil) -} - -func dialer() (*tor.Dialer, error) { - if skip { - return nil, nil - } - return t.Dialer(context.TODO(), nil) -} - -var ( - t, terr = start() - tdialer, tderr = dialer() -) - -// Dial a network connection to an I2P server or a unix socket. Use Tor, or Fail for clearnet addresses. -func DialContext(ctx context.Context, network, addr string) (net.Conn, error) { - if samError != nil { - return nil, samError - } - if network == "unix" { - return net.Dial(network, addr) - } - - // convert the addr to a full URL - url, err := url.Parse(addr) - if err != nil { - return nil, err - } - if strings.HasSuffix(url.Host, ".i2p") { - return sam.DialContext(ctx, network, addr) - } - if terr != nil { - return nil, terr - } - if (tderr != nil) || (tdialer == nil) { - return nil, tderr - } - return tdialer.DialContext(ctx, network, addr) -} - -//go:embed static/*.gotmpl -var staticContent embed.FS - -// SetupAndServeHTTPS sets up the HTTPS server to serve client & federation APIs -// and adds a prometheus handler under /_dendrite/metrics. -func SetupAndServeHTTPS( - processContext *process.ProcessContext, - cfg *config.Dendrite, - routers httputil.Routers, -) { - // create a transport that uses SAM to dial TCP Connections - httpClient := &http.Client{ - Transport: &http.Transport{ - DialContext: DialContext, - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - }, - }, - } - - http.DefaultClient = httpClient - - garlic, err := onramp.NewGarlic("dendrite", *samAddr, onramp.OPT_HUGE) - if err != nil { - logrus.WithError(err).Fatal("failed to create garlic") - } - defer garlic.Close() // nolint: errcheck - listener, err := garlic.ListenTLS() - if err != nil { - logrus.WithError(err).Fatal("failed to serve HTTPS") - } - defer listener.Close() // nolint: errcheck - - externalHTTPSAddr := config.ServerAddress{} - https, err := config.HTTPAddress("https://" + listener.Addr().String()) - if err != nil { - logrus.WithError(err).Fatalf("Failed to parse http address") - } - externalHTTPSAddr = https - - externalRouter := mux.NewRouter().SkipClean(true).UseEncodedPath() - - externalServ := &http.Server{ - Addr: externalHTTPSAddr.Address, - WriteTimeout: basepkg.HTTPServerTimeout, - Handler: externalRouter, - BaseContext: func(_ net.Listener) context.Context { - return processContext.Context() - }, - } - - // Redirect for Landing Page - externalRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - http.Redirect(w, r, httputil.PublicStaticPath, http.StatusFound) - }) - - if cfg.Global.Metrics.Enabled { - externalRouter.Handle("/metrics", httputil.WrapHandlerInBasicAuth(promhttp.Handler(), cfg.Global.Metrics.BasicAuth)) - } - - basepkg.ConfigureAdminEndpoints(processContext, routers) - - // Parse and execute the landing page template - tmpl := template.Must(template.ParseFS(staticContent, "static/*.gotmpl")) - landingPage := &bytes.Buffer{} - if err := tmpl.ExecuteTemplate(landingPage, "index.gotmpl", map[string]string{ - "Version": internal.VersionString(), - }); err != nil { - logrus.WithError(err).Fatal("failed to execute landing page template") - } - - routers.Static.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write(landingPage.Bytes()) - }) - - var clientHandler http.Handler - clientHandler = routers.Client - if cfg.Global.Sentry.Enabled { - sentryHandler := sentryhttp.New(sentryhttp.Options{ - Repanic: true, - }) - clientHandler = sentryHandler.Handle(routers.Client) - } - var federationHandler http.Handler - federationHandler = routers.Federation - if cfg.Global.Sentry.Enabled { - sentryHandler := sentryhttp.New(sentryhttp.Options{ - Repanic: true, - }) - federationHandler = sentryHandler.Handle(routers.Federation) - } - externalRouter.PathPrefix(httputil.DendriteAdminPathPrefix).Handler(routers.DendriteAdmin) - externalRouter.PathPrefix(httputil.PublicClientPathPrefix).Handler(clientHandler) - if !cfg.Global.DisableFederation { - externalRouter.PathPrefix(httputil.PublicKeyPathPrefix).Handler(routers.Keys) - externalRouter.PathPrefix(httputil.PublicFederationPathPrefix).Handler(federationHandler) - } - externalRouter.PathPrefix(httputil.SynapseAdminPathPrefix).Handler(routers.SynapseAdmin) - externalRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(routers.Media) - externalRouter.PathPrefix(httputil.PublicWellKnownPrefix).Handler(routers.WellKnown) - externalRouter.PathPrefix(httputil.PublicStaticPath).Handler(routers.Static) - - externalRouter.NotFoundHandler = httputil.NotFoundCORSHandler - externalRouter.MethodNotAllowedHandler = httputil.NotAllowedHandler - - if externalHTTPSAddr.Enabled() { - go func() { - var externalShutdown atomic.Bool // RegisterOnShutdown can be called more than once - logrus.Infof("Starting external listener on https://%s", externalServ.Addr) - processContext.ComponentStarted() - externalServ.RegisterOnShutdown(func() { - if externalShutdown.CompareAndSwap(false, true) { - processContext.ComponentFinished() - logrus.Infof("Stopped external HTTPS listener") - } - }) - addr := listener.Addr() - externalServ.Addr = addr.String() - if err := externalServ.Serve(listener); err != nil { - if err != http.ErrServerClosed { - logrus.WithError(err).Fatal("failed to serve HTTPS") - } - } - - logrus.Infof("Stopped external listener on %s", externalServ.Addr) - }() - } - - minwinsvc.SetOnExit(processContext.ShutdownDendrite) - <-processContext.WaitForShutdown() - - logrus.Infof("Stopping HTTPS listeners") - _ = externalServ.Shutdown(context.Background()) - logrus.Infof("Stopped HTTPS listeners") -} diff --git a/contrib/dendrite-demo-i2p/main_test.go b/contrib/dendrite-demo-i2p/main_test.go deleted file mode 100644 index cc70ddba..00000000 --- a/contrib/dendrite-demo-i2p/main_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package main - -import ( - "os" - "os/signal" - "strings" - "syscall" - "testing" -) - -// This is an instrumented main, used when running integration tests (sytest) with code coverage. -// Compile: go test -c -race -cover -covermode=atomic -o monolith.debug -coverpkg "github.com/matrix-org/..." ./cmd/dendrite -// Run the monolith: ./monolith.debug -test.coverprofile=/somewhere/to/dump/integrationcover.out DEVEL --config dendrite.yaml -// Generate HTML with coverage: go tool cover -html=/somewhere/where/there/is/integrationcover.out -o cover.html -// Source: https://dzone.com/articles/measuring-integration-test-coverage-rate-in-pouchc -func TestMain(t *testing.T) { - var args []string - - for _, arg := range os.Args { - switch { - case strings.HasPrefix(arg, "DEVEL"): - case strings.HasPrefix(arg, "-test"): - default: - args = append(args, arg) - } - } - - // only run the tests if there are args to be passed - if len(args) <= 1 { - return - } - t.Log(args) - - waitCh := make(chan int, 1) - os.Args = args - go func() { - main() - close(waitCh) - }() - - signalCh := make(chan os.Signal, 1) - signal.Notify(signalCh, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGHUP) - - select { - case <-signalCh: - return - case <-waitCh: - return - } -} diff --git a/contrib/dendrite-demo-i2p/static/index.gotmpl b/contrib/dendrite-demo-i2p/static/index.gotmpl deleted file mode 100644 index b3c5576e..00000000 --- a/contrib/dendrite-demo-i2p/static/index.gotmpl +++ /dev/null @@ -1,63 +0,0 @@ - - -
-Your Dendrite server is listening on this port and is ready for messages.
-To use this server you'll need a Matrix client. -
-Welcome to the Matrix universe :)
-- - - matrix.org - - -
- - diff --git a/contrib/dendrite-demo-tor/main.go b/contrib/dendrite-demo-tor/main.go deleted file mode 100644 index f82d6d53..00000000 --- a/contrib/dendrite-demo-tor/main.go +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "os" - "time" - - "github.com/getsentry/sentry-go" - "github.com/matrix-org/dendrite/internal" - "github.com/matrix-org/dendrite/internal/caching" - "github.com/matrix-org/dendrite/internal/httputil" - "github.com/matrix-org/dendrite/internal/sqlutil" - "github.com/matrix-org/dendrite/setup/jetstream" - "github.com/matrix-org/dendrite/setup/process" - "github.com/matrix-org/gomatrixserverlib/fclient" - "github.com/prometheus/client_golang/prometheus" - "github.com/sirupsen/logrus" - - "github.com/matrix-org/dendrite/appservice" - "github.com/matrix-org/dendrite/federationapi" - "github.com/matrix-org/dendrite/roomserver" - "github.com/matrix-org/dendrite/setup" - basepkg "github.com/matrix-org/dendrite/setup/base" - "github.com/matrix-org/dendrite/setup/config" - "github.com/matrix-org/dendrite/setup/mscs" - "github.com/matrix-org/dendrite/userapi" -) - -var _, skip = os.LookupEnv("CI") - -func main() { - cfg := setup.ParseFlags(true) - if skip { - return - } - configErrors := &config.ConfigErrors{} - cfg.Verify(configErrors) - if len(*configErrors) > 0 { - for _, err := range *configErrors { - logrus.Errorf("Configuration error: %s", err) - } - logrus.Fatalf("Failed to start due to configuration errors") - } - processCtx := process.NewProcessContext() - - internal.SetupStdLogging() - internal.SetupHookLogging(cfg.Logging) - internal.SetupPprof() - - basepkg.PlatformSanityChecks() - - logrus.Infof("Dendrite version %s", internal.VersionString()) - if !cfg.ClientAPI.RegistrationDisabled && cfg.ClientAPI.OpenRegistrationWithoutVerificationEnabled { - logrus.Warn("Open registration is enabled") - } - - // create DNS cache - var dnsCache *fclient.DNSCache - if cfg.Global.DNSCache.Enabled { - dnsCache = fclient.NewDNSCache( - cfg.Global.DNSCache.CacheSize, - cfg.Global.DNSCache.CacheLifetime, - ) - logrus.Infof( - "DNS cache enabled (size %d, lifetime %s)", - cfg.Global.DNSCache.CacheSize, - cfg.Global.DNSCache.CacheLifetime, - ) - } - - // setup tracing - closer, err := cfg.SetupTracing() - if err != nil { - logrus.WithError(err).Panicf("failed to start opentracing") - } - defer closer.Close() // nolint: errcheck - - // setup sentry - if cfg.Global.Sentry.Enabled { - logrus.Info("Setting up Sentry for debugging...") - err = sentry.Init(sentry.ClientOptions{ - Dsn: cfg.Global.Sentry.DSN, - Environment: cfg.Global.Sentry.Environment, - Debug: true, - ServerName: string(cfg.Global.ServerName), - Release: "dendrite@" + internal.VersionString(), - AttachStacktrace: true, - }) - if err != nil { - logrus.WithError(err).Panic("failed to start Sentry") - } - go func() { - processCtx.ComponentStarted() - <-processCtx.WaitForShutdown() - if !sentry.Flush(time.Second * 5) { - logrus.Warnf("failed to flush all Sentry events!") - } - processCtx.ComponentFinished() - }() - } - - federationClient := basepkg.CreateFederationClient(cfg, dnsCache) - httpClient := basepkg.CreateClient(cfg, dnsCache) - - // prepare required dependencies - cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions) - routers := httputil.NewRouters() - - caches := caching.NewRistrettoCache(cfg.Global.Cache.EstimatedMaxSize, cfg.Global.Cache.MaxAge, caching.EnableMetrics) - natsInstance := jetstream.NATSInstance{} - rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.EnableMetrics) - fsAPI := federationapi.NewInternalAPI( - processCtx, cfg, cm, &natsInstance, federationClient, rsAPI, caches, nil, false, - ) - - keyRing := fsAPI.KeyRing() - - // The underlying roomserver implementation needs to be able to call the fedsender. - // This is different to rsAPI which can be the http client which doesn't need this - // dependency. Other components also need updating after their dependencies are up. - rsAPI.SetFederationAPI(fsAPI, keyRing) - - userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, federationClient, caching.EnableMetrics, fsAPI.IsBlacklistedOrBackingOff) - asAPI := appservice.NewInternalAPI(processCtx, cfg, &natsInstance, userAPI, rsAPI) - - rsAPI.SetAppserviceAPI(asAPI) - rsAPI.SetUserAPI(userAPI) - - monolith := setup.Monolith{ - Config: cfg, - Client: httpClient, - FedClient: federationClient, - KeyRing: keyRing, - - AppserviceAPI: asAPI, - // always use the concrete impl here even in -http mode because adding public routes - // must be done on the concrete impl not an HTTP client else fedapi will call itself - FederationAPI: fsAPI, - RoomserverAPI: rsAPI, - UserAPI: userAPI, - } - monolith.AddAllPublicRoutes(processCtx, cfg, routers, cm, &natsInstance, caches, caching.EnableMetrics) - - if len(cfg.MSCs.MSCs) > 0 { - if err := mscs.Enable(cfg, cm, routers, &monolith, caches); err != nil { - logrus.WithError(err).Fatalf("Failed to enable MSCs") - } - } - - upCounter := prometheus.NewCounter(prometheus.CounterOpts{ - Namespace: "dendrite", - Name: "up", - ConstLabels: map[string]string{ - "version": internal.VersionString(), - }, - }) - upCounter.Add(1) - prometheus.MustRegister(upCounter) - - // Expose the matrix APIs directly rather than putting them under a /api path. - go func() { - SetupAndServeHTTPS(processCtx, cfg, routers) //, httpsAddr, nil, nil) - }() - - // We want to block forever to let the HTTP and HTTPS handler serve the APIs - basepkg.WaitForShutdown(processCtx) -} diff --git a/contrib/dendrite-demo-tor/main_test.go b/contrib/dendrite-demo-tor/main_test.go deleted file mode 100644 index cc70ddba..00000000 --- a/contrib/dendrite-demo-tor/main_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package main - -import ( - "os" - "os/signal" - "strings" - "syscall" - "testing" -) - -// This is an instrumented main, used when running integration tests (sytest) with code coverage. -// Compile: go test -c -race -cover -covermode=atomic -o monolith.debug -coverpkg "github.com/matrix-org/..." ./cmd/dendrite -// Run the monolith: ./monolith.debug -test.coverprofile=/somewhere/to/dump/integrationcover.out DEVEL --config dendrite.yaml -// Generate HTML with coverage: go tool cover -html=/somewhere/where/there/is/integrationcover.out -o cover.html -// Source: https://dzone.com/articles/measuring-integration-test-coverage-rate-in-pouchc -func TestMain(t *testing.T) { - var args []string - - for _, arg := range os.Args { - switch { - case strings.HasPrefix(arg, "DEVEL"): - case strings.HasPrefix(arg, "-test"): - default: - args = append(args, arg) - } - } - - // only run the tests if there are args to be passed - if len(args) <= 1 { - return - } - t.Log(args) - - waitCh := make(chan int, 1) - os.Args = args - go func() { - main() - close(waitCh) - }() - - signalCh := make(chan os.Signal, 1) - signal.Notify(signalCh, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGHUP) - - select { - case <-signalCh: - return - case <-waitCh: - return - } -} diff --git a/contrib/dendrite-demo-tor/main_tor.go b/contrib/dendrite-demo-tor/main_tor.go deleted file mode 100644 index 8f889c41..00000000 --- a/contrib/dendrite-demo-tor/main_tor.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "bytes" - "context" - "crypto/tls" - "embed" - "net" - "net/http" - "net/url" - "sync/atomic" - "text/template" - - "github.com/cretz/bine/tor" - "github.com/eyedeekay/onramp" - sentryhttp "github.com/getsentry/sentry-go/http" - "github.com/gorilla/mux" - "github.com/kardianos/minwinsvc" - "github.com/matrix-org/dendrite/internal" - "github.com/matrix-org/dendrite/internal/httputil" - "github.com/matrix-org/dendrite/setup/process" - "github.com/prometheus/client_golang/prometheus/promhttp" - "github.com/sirupsen/logrus" - - basepkg "github.com/matrix-org/dendrite/setup/base" - "github.com/matrix-org/dendrite/setup/config" -) - -func start() (*tor.Tor, error) { - if skip { - return nil, nil - } - return tor.Start(context.Background(), nil) -} - -func dialer() (*tor.Dialer, error) { - if skip { - return nil, nil - } - return t.Dialer(context.TODO(), nil) -} - -var ( - t, terr = start() - tdialer, tderr = dialer() -) - -// Dial either a unix socket address, or connect to a remote address over Tor. Always uses Tor. -func DialContext(ctx context.Context, network, addr string) (net.Conn, error) { - if terr != nil { - return nil, terr - } - if (tderr != nil) || (tdialer == nil) { - return nil, tderr - } - if network == "unix" { - return net.Dial(network, addr) - } - // convert the addr to a full URL - url, err := url.Parse(addr) - if err != nil { - return nil, err - } - return tdialer.DialContext(ctx, network, url.Host) -} - -//go:embed static/*.gotmpl -var staticContent embed.FS - -// SetupAndServeHTTPS sets up the HTTPS server to serve client & federation APIs -// and adds a prometheus handler under /_dendrite/metrics. -func SetupAndServeHTTPS( - processContext *process.ProcessContext, - cfg *config.Dendrite, - routers httputil.Routers, -) { - // create a transport that uses SAM to dial TCP Connections - httpClient := &http.Client{ - Transport: &http.Transport{ - DialContext: DialContext, - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - }, - }, - } - - http.DefaultClient = httpClient - - onion, err := onramp.NewOnion("dendrite-onion") - if err != nil { - logrus.WithError(err).Fatal("failed to create onion") - } - defer onion.Close() // nolint: errcheck - listener, err := onion.ListenTLS() - if err != nil { - logrus.WithError(err).Fatal("failed to serve HTTPS") - } - defer listener.Close() // nolint: errcheck - - externalHTTPSAddr := config.ServerAddress{} - https, err := config.HTTPAddress("https://" + listener.Addr().String()) - if err != nil { - logrus.WithError(err).Fatalf("Failed to parse http address") - } - externalHTTPSAddr = https - - externalRouter := mux.NewRouter().SkipClean(true).UseEncodedPath() - - externalServ := &http.Server{ - Addr: externalHTTPSAddr.Address, - WriteTimeout: basepkg.HTTPServerTimeout, - Handler: externalRouter, - BaseContext: func(_ net.Listener) context.Context { - return processContext.Context() - }, - } - - // Redirect for Landing Page - externalRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - http.Redirect(w, r, httputil.PublicStaticPath, http.StatusFound) - }) - - if cfg.Global.Metrics.Enabled { - externalRouter.Handle("/metrics", httputil.WrapHandlerInBasicAuth(promhttp.Handler(), cfg.Global.Metrics.BasicAuth)) - } - - basepkg.ConfigureAdminEndpoints(processContext, routers) - - // Parse and execute the landing page template - tmpl := template.Must(template.ParseFS(staticContent, "static/*.gotmpl")) - landingPage := &bytes.Buffer{} - if err := tmpl.ExecuteTemplate(landingPage, "index.gotmpl", map[string]string{ - "Version": internal.VersionString(), - }); err != nil { - logrus.WithError(err).Fatal("failed to execute landing page template") - } - - routers.Static.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write(landingPage.Bytes()) - }) - - var clientHandler http.Handler - clientHandler = routers.Client - if cfg.Global.Sentry.Enabled { - sentryHandler := sentryhttp.New(sentryhttp.Options{ - Repanic: true, - }) - clientHandler = sentryHandler.Handle(routers.Client) - } - var federationHandler http.Handler - federationHandler = routers.Federation - if cfg.Global.Sentry.Enabled { - sentryHandler := sentryhttp.New(sentryhttp.Options{ - Repanic: true, - }) - federationHandler = sentryHandler.Handle(routers.Federation) - } - externalRouter.PathPrefix(httputil.DendriteAdminPathPrefix).Handler(routers.DendriteAdmin) - externalRouter.PathPrefix(httputil.PublicClientPathPrefix).Handler(clientHandler) - if !cfg.Global.DisableFederation { - externalRouter.PathPrefix(httputil.PublicKeyPathPrefix).Handler(routers.Keys) - externalRouter.PathPrefix(httputil.PublicFederationPathPrefix).Handler(federationHandler) - } - externalRouter.PathPrefix(httputil.SynapseAdminPathPrefix).Handler(routers.SynapseAdmin) - externalRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(routers.Media) - externalRouter.PathPrefix(httputil.PublicWellKnownPrefix).Handler(routers.WellKnown) - externalRouter.PathPrefix(httputil.PublicStaticPath).Handler(routers.Static) - - externalRouter.NotFoundHandler = httputil.NotFoundCORSHandler - externalRouter.MethodNotAllowedHandler = httputil.NotAllowedHandler - - if externalHTTPSAddr.Enabled() { - go func() { - var externalShutdown atomic.Bool // RegisterOnShutdown can be called more than once - logrus.Infof("Starting external listener on https://%s", externalServ.Addr) - processContext.ComponentStarted() - externalServ.RegisterOnShutdown(func() { - if externalShutdown.CompareAndSwap(false, true) { - processContext.ComponentFinished() - logrus.Infof("Stopped external HTTPS listener") - } - }) - addr := listener.Addr() - externalServ.Addr = addr.String() - if err := externalServ.Serve(listener); err != nil { - if err != http.ErrServerClosed { - logrus.WithError(err).Fatal("failed to serve HTTPS") - } - } - - logrus.Infof("Stopped external listener on %s", externalServ.Addr) - }() - } - - minwinsvc.SetOnExit(processContext.ShutdownDendrite) - <-processContext.WaitForShutdown() - - logrus.Infof("Stopping HTTPS listeners") - _ = externalServ.Shutdown(context.Background()) - logrus.Infof("Stopped HTTPS listeners") -} diff --git a/contrib/dendrite-demo-tor/static/index.gotmpl b/contrib/dendrite-demo-tor/static/index.gotmpl deleted file mode 100644 index b3c5576e..00000000 --- a/contrib/dendrite-demo-tor/static/index.gotmpl +++ /dev/null @@ -1,63 +0,0 @@ - - - -Your Dendrite server is listening on this port and is ready for messages.
-To use this server you'll need a Matrix client. -
-Welcome to the Matrix universe :)
-- - - matrix.org - - -
- - diff --git a/docs/FAQ.md b/docs/FAQ.md index 7a941e60..2ef9e6c2 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -4,8 +4,6 @@ nav_order: 1 permalink: /faq --- -{% include deprecation.html %} - # FAQ ## Why does Dendrite exist? diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 786735c5..8e72da97 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -1,6 +1,3 @@ - -{% include deprecation.html %} - # Installation Please note that new installation instructions can be found diff --git a/docs/_includes/deprecation.html b/docs/_includes/deprecation.html deleted file mode 100644 index cb7073b1..00000000 --- a/docs/_includes/deprecation.html +++ /dev/null @@ -1,6 +0,0 @@ -{: .warning-title } -> This documentation is out of date! -> -> This documentation site is for the versions of Dendrite maintained by the Matrix.org Foundation (github.com/matrix-org/dendrite), available under the Apache 2.0 licence. -> -> If you are interested in the documentation for a later version of Dendrite, please refer to https://element-hq.github.io/dendrite/. \ No newline at end of file diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss new file mode 100644 index 00000000..8a5ed3d8 --- /dev/null +++ b/docs/_sass/custom/custom.scss @@ -0,0 +1,3 @@ +footer.site-footer { + opacity: 10%; +} \ No newline at end of file diff --git a/docs/administration.md b/docs/administration.md index 15add5b3..08ad7803 100644 --- a/docs/administration.md +++ b/docs/administration.md @@ -5,8 +5,6 @@ nav_order: 4 permalink: /administration --- -{% include deprecation.html %} - # Administration This section contains documentation on managing your existing Dendrite deployment. diff --git a/docs/administration/1_createusers.md b/docs/administration/1_createusers.md index 7052004d..cbdccd18 100644 --- a/docs/administration/1_createusers.md +++ b/docs/administration/1_createusers.md @@ -5,8 +5,6 @@ permalink: /administration/createusers nav_order: 1 --- -{% include deprecation.html %} - # Creating user accounts User accounts can be created on a Dendrite instance in a number of ways. diff --git a/docs/administration/2_registration.md b/docs/administration/2_registration.md index 8599e614..66949f2c 100644 --- a/docs/administration/2_registration.md +++ b/docs/administration/2_registration.md @@ -5,8 +5,6 @@ permalink: /administration/registration nav_order: 2 --- -{% include deprecation.html %} - # Enabling registration Enabling registration allows users to register their own user accounts on your diff --git a/docs/administration/3_presence.md b/docs/administration/3_presence.md index 22c22c9e..85802537 100644 --- a/docs/administration/3_presence.md +++ b/docs/administration/3_presence.md @@ -5,8 +5,6 @@ permalink: /administration/presence nav_order: 3 --- -{% include deprecation.html %} - # Enabling presence Dendrite supports presence, which allows you to send your online/offline status diff --git a/docs/administration/4_adminapi.md b/docs/administration/4_adminapi.md index 1e840d62..40d02622 100644 --- a/docs/administration/4_adminapi.md +++ b/docs/administration/4_adminapi.md @@ -5,8 +5,6 @@ nav_order: 4 permalink: /administration/adminapi --- -{% include deprecation.html %} - # Supported admin APIs Dendrite supports, at present, a very small number of endpoints that allow diff --git a/docs/administration/5_optimisation.md b/docs/administration/5_optimisation.md index 9bcfb658..57b7924d 100644 --- a/docs/administration/5_optimisation.md +++ b/docs/administration/5_optimisation.md @@ -6,8 +6,6 @@ nav_order: 5 permalink: /administration/optimisation --- -{% include deprecation.html %} - # Optimise your installation Now that you have Dendrite running, the following tweaks will improve the reliability diff --git a/docs/administration/6_troubleshooting.md b/docs/administration/6_troubleshooting.md index 27916b64..5f11f993 100644 --- a/docs/administration/6_troubleshooting.md +++ b/docs/administration/6_troubleshooting.md @@ -5,8 +5,6 @@ nav_order: 6 permalink: /administration/troubleshooting --- -{% include deprecation.html %} - # Troubleshooting If your Dendrite installation is acting strangely, there are a few things you should diff --git a/docs/development.md b/docs/development.md index 2ed616c3..cf296fb5 100644 --- a/docs/development.md +++ b/docs/development.md @@ -4,10 +4,6 @@ has_children: true permalink: /development --- -{% include deprecation.html %} - -{% include deprecation.html %} - # Development This section contains documentation that may be useful when helping to develop diff --git a/docs/development/CONTRIBUTING.md b/docs/development/CONTRIBUTING.md index 0529071d..caab1e74 100644 --- a/docs/development/CONTRIBUTING.md +++ b/docs/development/CONTRIBUTING.md @@ -5,8 +5,6 @@ nav_order: 1 permalink: /development/contributing --- -{% include deprecation.html %} - # Contributing to Dendrite Everyone is welcome to contribute to Dendrite! We aim to make it as easy as diff --git a/docs/development/PROFILING.md b/docs/development/PROFILING.md index d9141628..dc4eca7b 100644 --- a/docs/development/PROFILING.md +++ b/docs/development/PROFILING.md @@ -5,8 +5,6 @@ nav_order: 4 permalink: /development/profiling --- -{% include deprecation.html %} - # Profiling Dendrite If you are running into problems with Dendrite using excessive resources (e.g. CPU or RAM) then you can use the profiler to work out what is happening. diff --git a/docs/development/coverage.md b/docs/development/coverage.md index 3ae92c9c..1b15f71a 100644 --- a/docs/development/coverage.md +++ b/docs/development/coverage.md @@ -5,8 +5,6 @@ nav_order: 3 permalink: /development/coverage --- -{% include deprecation.html %} - ## Running unit tests with coverage enabled Running unit tests with coverage enabled can be done with the following commands, this will generate a `integrationcover.log` diff --git a/docs/development/sytest.md b/docs/development/sytest.md index 274412ba..2f681f3e 100644 --- a/docs/development/sytest.md +++ b/docs/development/sytest.md @@ -5,8 +5,6 @@ nav_order: 2 permalink: /development/sytest --- -{% include deprecation.html %} - # SyTest Dendrite uses [SyTest](https://github.com/matrix-org/sytest) for its diff --git a/docs/index.md b/docs/index.md index d6070226..64836152 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,8 +3,6 @@ layout: home nav_exclude: true --- -{% include deprecation.html %} - # Dendrite Dendrite is a second-generation Matrix homeserver written in Go! Following the microservice diff --git a/docs/installation.md b/docs/installation.md index 142d2a68..c38a6dbb 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -5,8 +5,6 @@ nav_order: 2 permalink: /installation --- -{% include deprecation.html %} - # Installation This section contains documentation on installing a new Dendrite deployment. diff --git a/docs/installation/1_planning.md b/docs/installation/1_planning.md index 9174d372..e113ca2d 100644 --- a/docs/installation/1_planning.md +++ b/docs/installation/1_planning.md @@ -5,8 +5,6 @@ nav_order: 1 permalink: /installation/planning --- -{% include deprecation.html %} - # Planning your installation ## Database diff --git a/docs/installation/2_domainname.md b/docs/installation/2_domainname.md index f658b0f7..d86a664c 100644 --- a/docs/installation/2_domainname.md +++ b/docs/installation/2_domainname.md @@ -5,8 +5,6 @@ nav_order: 2 permalink: /installation/domainname --- -{% include deprecation.html %} - # Setting up the domain Every Matrix server deployment requires a server name which uniquely identifies it. For diff --git a/docs/installation/docker.md b/docs/installation/docker.md index 2066f83d..1ecc7c6e 100644 --- a/docs/installation/docker.md +++ b/docs/installation/docker.md @@ -6,8 +6,6 @@ nav_order: 4 permalink: /docker --- -{% include deprecation.html %} - # Installation using Docker This section contains documentation how to install Dendrite using Docker diff --git a/docs/installation/docker/1_docker.md b/docs/installation/docker/1_docker.md index 4d082d9c..f3399972 100644 --- a/docs/installation/docker/1_docker.md +++ b/docs/installation/docker/1_docker.md @@ -7,8 +7,6 @@ nav_order: 1 permalink: /installation/docker/install --- -{% include deprecation.html %} - # Installing Dendrite using Docker Compose Dendrite provides an [example](https://github.com/matrix-org/dendrite/blob/main/build/docker/docker-compose.yml) diff --git a/docs/installation/helm.md b/docs/installation/helm.md index b9bf3f3c..dd20e026 100644 --- a/docs/installation/helm.md +++ b/docs/installation/helm.md @@ -6,8 +6,6 @@ nav_order: 3 permalink: /helm --- -{% include deprecation.html %} - # Helm This section contains documentation how to use [Helm](https://helm.sh/) to install Dendrite on a [Kubernetes](https://kubernetes.io/) cluster. diff --git a/docs/installation/helm/1_helm.md b/docs/installation/helm/1_helm.md index 992b418f..00fe4fdc 100644 --- a/docs/installation/helm/1_helm.md +++ b/docs/installation/helm/1_helm.md @@ -7,8 +7,6 @@ nav_order: 1 permalink: /installation/helm/install --- -{% include deprecation.html %} - # Installing Dendrite using Helm To install Dendrite using the Helm chart, you first have to add the repository using the following commands: diff --git a/docs/installation/manual.md b/docs/installation/manual.md index f5989354..3ab1fd62 100644 --- a/docs/installation/manual.md +++ b/docs/installation/manual.md @@ -6,8 +6,6 @@ nav_order: 5 permalink: /manual --- -{% include deprecation.html %} - # Manual Installation This section contains documentation how to manually install Dendrite diff --git a/docs/installation/manual/1_build.md b/docs/installation/manual/1_build.md index f54b1ac4..73a62688 100644 --- a/docs/installation/manual/1_build.md +++ b/docs/installation/manual/1_build.md @@ -7,8 +7,6 @@ nav_order: 1 permalink: /installation/manual/build --- -{% include deprecation.html %} - # Build all Dendrite commands Dendrite has numerous utility commands in addition to the actual server binaries. diff --git a/docs/installation/manual/2_database.md b/docs/installation/manual/2_database.md index e1991275..1be602c6 100644 --- a/docs/installation/manual/2_database.md +++ b/docs/installation/manual/2_database.md @@ -7,8 +7,6 @@ grand_parent: Installation permalink: /installation/manual/database --- -{% include deprecation.html %} - # Preparing database storage Dendrite uses SQL databases to store data. Depending on the database engine being used, you diff --git a/docs/installation/manual/3_signingkey.md b/docs/installation/manual/3_signingkey.md index 6a62fa5e..91289fd6 100644 --- a/docs/installation/manual/3_signingkey.md +++ b/docs/installation/manual/3_signingkey.md @@ -6,8 +6,6 @@ nav_order: 3 permalink: /installation/manual/signingkeys --- -{% include deprecation.html %} - # Generating signing keys All Matrix homeservers require a signing private key, which will be used to authenticate diff --git a/docs/installation/manual/4_configuration.md b/docs/installation/manual/4_configuration.md index ea00c665..624cc415 100644 --- a/docs/installation/manual/4_configuration.md +++ b/docs/installation/manual/4_configuration.md @@ -6,8 +6,6 @@ nav_order: 4 permalink: /installation/manual/configuration --- -{% include deprecation.html %} - # Configuring Dendrite A YAML configuration file is used to configure Dendrite. A sample configuration file is diff --git a/docs/installation/manual/5_starting_dendrite.md b/docs/installation/manual/5_starting_dendrite.md index 92d59895..d1350437 100644 --- a/docs/installation/manual/5_starting_dendrite.md +++ b/docs/installation/manual/5_starting_dendrite.md @@ -6,8 +6,6 @@ nav_order: 5 permalink: /installation/manual/start --- -{% include deprecation.html %} - # Starting Dendrite Once you have completed all preparation and installation steps, diff --git a/docs/other/p2p.md b/docs/other/p2p.md index 558ceb1c..9f104f02 100644 --- a/docs/other/p2p.md +++ b/docs/other/p2p.md @@ -3,8 +3,6 @@ title: P2P Matrix nav_exclude: true --- -{% include deprecation.html %} - # P2P Matrix These are the instructions for setting up P2P Dendrite, current as of May 2020. There's both Go stuff and JS stuff to do to set this up. diff --git a/docs/other/peeking.md b/docs/other/peeking.md index 940729f9..c4ae8981 100644 --- a/docs/other/peeking.md +++ b/docs/other/peeking.md @@ -2,8 +2,6 @@ nav_exclude: true --- -{% include deprecation.html %} - ## Peeking Local peeking is implemented as per [MSC2753](https://github.com/matrix-org/matrix-doc/pull/2753). diff --git a/go.mod b/go.mod index 4add5ae1..a36bc471 100644 --- a/go.mod +++ b/go.mod @@ -7,12 +7,9 @@ require ( github.com/Masterminds/semver/v3 v3.1.1 github.com/blevesearch/bleve/v2 v2.4.0 github.com/codeclysm/extract v2.2.0+incompatible - github.com/cretz/bine v0.2.0 github.com/dgraph-io/ristretto v0.1.1 github.com/docker/docker v25.0.6+incompatible github.com/docker/go-connections v0.4.0 - github.com/eyedeekay/goSam v0.32.54 - github.com/eyedeekay/onramp v0.33.8 github.com/getsentry/sentry-go v0.14.0 github.com/gologme/log v1.3.0 github.com/google/go-cmp v0.6.0 @@ -37,19 +34,19 @@ require ( github.com/prometheus/client_golang v1.19.1 github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.9.0 - github.com/tidwall/gjson v1.17.0 + github.com/tidwall/gjson v1.17.1 github.com/tidwall/sjson v1.2.5 github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/uber/jaeger-lib v2.4.1+incompatible github.com/yggdrasil-network/yggdrasil-go v0.5.6 github.com/yggdrasil-network/yggquic v0.0.0-20240802104827-b4e97a928967 go.uber.org/atomic v1.11.0 - golang.org/x/crypto v0.27.0 + golang.org/x/crypto v0.26.0 golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 golang.org/x/image v0.18.0 golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b golang.org/x/sync v0.8.0 - golang.org/x/term v0.24.0 + golang.org/x/term v0.23.0 gopkg.in/h2non/bimg.v1 v1.1.9 gopkg.in/yaml.v2 v2.4.0 gotest.tools/v3 v3.4.0 @@ -89,8 +86,6 @@ require ( github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/eyedeekay/i2pkeys v0.33.8 // indirect - github.com/eyedeekay/sam3 v0.33.8 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -140,9 +135,9 @@ require ( go.opentelemetry.io/otel/trace v1.28.0 // indirect go.uber.org/mock v0.4.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.24.0 // indirect + golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/protobuf v1.34.2 // indirect diff --git a/go.sum b/go.sum index b64125e3..6f8e01d4 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,6 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cretz/bine v0.2.0 h1:8GiDRGlTgz+o8H9DSnsl+5MeBK4HsExxgl6WgzOCuZo= -github.com/cretz/bine v0.2.0/go.mod h1:WU4o9QR9wWp8AVKtTM1XD5vUHkEqnf2vVSo6dBqbetI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -95,33 +93,12 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eyedeekay/goSam v0.32.54 h1:Uq1F9rePGi5aiHZ8J8ZC0HRpf4hvTUR+PJvmcCBpmWU= -github.com/eyedeekay/goSam v0.32.54/go.mod h1:R+prG/Xans0bG87LhtbbLSx40YiHtJNovhTHL2mEwPE= -github.com/eyedeekay/i2pkeys v0.0.0-20220310055120-b97558c06ac8/go.mod h1:W9KCm9lqZ+Ozwl3dwcgnpPXAML97+I8Jiht7o5A8YBM= -github.com/eyedeekay/i2pkeys v0.33.8 h1:f3llyruchFqs1QwCacBYbShArKPpMSSOqo/DVZXcfVs= -github.com/eyedeekay/i2pkeys v0.33.8/go.mod h1:W9KCm9lqZ+Ozwl3dwcgnpPXAML97+I8Jiht7o5A8YBM= -github.com/eyedeekay/onramp v0.33.8 h1:nc2ZGwWkeLf/GcijOMDdzI53q2mA8hCjepMyGHstcF0= -github.com/eyedeekay/onramp v0.33.8/go.mod h1:YYMgClC/ck/+3lHHAdsYzmDCSmsU8tn5WMkiSy9fcLo= -github.com/eyedeekay/sam3 v0.33.8 h1:emuSZ4qSyoqc1EDjIBFbJ3GXNHOXw6hjbNp2OqdOpgI= -github.com/eyedeekay/sam3 v0.33.8/go.mod h1:ytbwLYLJlW6UA92Ffyc6oioWTKnGeeUMr9CLuJbtqSA= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.0.0/go.mod h1:R98jIehRai+d1/3Hv2//jOVCTJhW1VBavT6B6CuGq2k= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= -github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= -github.com/getlantern/errors v1.0.1/go.mod h1:l+xpFBrCtDLpK9qNjxs+cHU6+BAdlBaxHqikB6Lku3A= -github.com/getlantern/fdcount v0.0.0-20210503151800-5decd65b3731/go.mod h1:XZwE+iIlAgr64OFbXKFNCllBwV4wEipPx8Hlo2gZdbM= -github.com/getlantern/go-socks5 v0.0.0-20171114193258-79d4dd3e2db5/go.mod h1:kGHRXch95rnGLHjER/GhhFiHvfnqNz7KqWD9kGfATHY= -github.com/getlantern/golog v0.0.0-20201105130739-9586b8bde3a9/go.mod h1:ZyIjgH/1wTCl+B+7yH1DqrWp6MPJqESmwmEQ89ZfhvA= -github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7/go.mod h1:dD3CgOrwlzca8ed61CsZouQS5h5jIzkK9ZWrTcf0s+o= -github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55/go.mod h1:6mmzY2kW1TOOrVy+r41Za2MxXM+hhqTtY3oBKd2AgFA= -github.com/getlantern/mockconn v0.0.0-20200818071412-cb30d065a848/go.mod h1:+F5GJ7qGpQ03DBtcOEyQpM30ix4BLswdaojecFtsdy8= -github.com/getlantern/mtime v0.0.0-20200417132445-23682092d1f7/go.mod h1:GfzwugvtH7YcmNIrHHizeyImsgEdyL88YkdnK28B14c= -github.com/getlantern/netx v0.0.0-20190110220209-9912de6f94fd/go.mod h1:wKdY0ikOgzrWSeB9UyBVKPRhjXQ+vTb+BPeJuypUuNE= -github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= -github.com/getlantern/ops v0.0.0-20200403153110-8476b16edcd6/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= github.com/getsentry/sentry-go v0.14.0 h1:rlOBkuFZRKKdUnKO+0U3JclRDQKlRu5vVQtkWSQvC70= github.com/getsentry/sentry-go v0.14.0/go.mod h1:RZPJKSw+adu8PBNygiri/A98FqVr2HtRckJk9XVxJ9I= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= @@ -147,7 +124,6 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= @@ -291,7 +267,6 @@ github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3 github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= @@ -330,14 +305,13 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= -github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.17.1 h1:wlYEnwqAHgzmhNUFfw7Xalt2JzQvsMx2Se4PcoFCT/U= +github.com/tidwall/gjson v1.17.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -390,12 +364,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -424,13 +397,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -447,7 +419,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -463,27 +434,26 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= +golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= diff --git a/helm/dendrite/Chart.yaml b/helm/dendrite/Chart.yaml index 9613b504..915d8af5 100644 --- a/helm/dendrite/Chart.yaml +++ b/helm/dendrite/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: dendrite -version: "0.14.6" +version: "0.14.4" appVersion: "0.13.8" description: Dendrite Matrix Homeserver type: application diff --git a/helm/dendrite/templates/deployment.yaml b/helm/dendrite/templates/deployment.yaml index 3952f4a7..6496b269 100644 --- a/helm/dendrite/templates/deployment.yaml +++ b/helm/dendrite/templates/deployment.yaml @@ -56,9 +56,6 @@ spec: args: - '--config' - '/etc/dendrite/dendrite.yaml' - {{- with .Values.extraArgs }} - {{- toYaml . | nindent 10 }} - {{- end }} ports: - name: http containerPort: 8008 @@ -116,16 +113,4 @@ spec: imagePullSecrets: {{- with .Values.imagePullSecrets }} {{ . | toYaml | nindent 6 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} {{- end }} \ No newline at end of file diff --git a/helm/dendrite/templates/jobs.yaml b/helm/dendrite/templates/jobs.yaml index 7f96f269..c10f358b 100644 --- a/helm/dendrite/templates/jobs.yaml +++ b/helm/dendrite/templates/jobs.yaml @@ -54,10 +54,6 @@ metadata: spec: template: spec: - imagePullSecrets: - {{- with .Values.imagePullSecrets }} - {{ . | toYaml | nindent 6 }} - {{- end }} restartPolicy: "Never" serviceAccount: {{ $name }} containers: @@ -98,18 +94,6 @@ spec: volumes: - name: signing-key emptyDir: {} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} parallelism: 1 completions: 1 backoffLimit: 1 diff --git a/helm/dendrite/values.yaml b/helm/dendrite/values.yaml index 02cd1aa1..f9d82965 100644 --- a/helm/dendrite/values.yaml +++ b/helm/dendrite/values.yaml @@ -77,9 +77,6 @@ persistence: # GKE, AWS & OpenStack) storageClass: -# -- Add additional arguments to the dendrite command -extraArgs: [] - # -- Add additional volumes to the Dendrite Pod extraVolumes: [] # ex. @@ -103,15 +100,6 @@ strategy: # -- Maximum number of pods that can be scheduled above the desired number of pods maxSurge: 25% -# -- Node selector configuration -nodeSelector: {} - -# -- Tolerations configuration -tolerations: {} - -# -- Affinity configuration -affinity: {} - dendrite_config: version: 2 global: diff --git a/internal/httputil/httpapi.go b/internal/httputil/httpapi.go index 034f19f1..0559fbb7 100644 --- a/internal/httputil/httpapi.go +++ b/internal/httputil/httpapi.go @@ -210,12 +210,6 @@ func MakeExternalAPI(metricsName string, f func(*http.Request) util.JSONResponse // This is used to serve HTML alongside JSON error messages func MakeHTTPAPI(metricsName string, userAPI userapi.QueryAcccessTokenAPI, enableMetrics bool, f func(http.ResponseWriter, *http.Request), checks ...AuthAPIOption) http.Handler { withSpan := func(w http.ResponseWriter, req *http.Request) { - if req.Method == http.MethodOptions { - util.SetCORSHeaders(w) - w.WriteHeader(http.StatusOK) // Maybe http.StatusNoContent? - return - } - trace, ctx := internal.StartTask(req.Context(), metricsName) defer trace.EndTask() req = req.WithContext(ctx) diff --git a/setup/base/base.go b/setup/base/base.go index 26615fc0..82068aa9 100644 --- a/setup/base/base.go +++ b/setup/base/base.go @@ -52,7 +52,6 @@ var staticContent embed.FS //go:embed static/client/login var loginFallback embed.FS -var StaticContent = staticContent const HTTPServerTimeout = time.Minute * 5 @@ -236,6 +235,7 @@ func SetupAndServeHTTP( logrus.WithError(err).Fatal("failed to serve unix socket") } } + } else { if err := externalServ.ListenAndServe(); err != nil { if err != http.ErrServerClosed {