mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-18 12:57:28 -06:00
[chore] Global server configuration overhaul (#575)
* move config flag names and usage to config package, rewrite config package to use global Configuration{} struct
Signed-off-by: kim <grufwub@gmail.com>
* improved code comment
Signed-off-by: kim <grufwub@gmail.com>
* linter
Signed-off-by: kim <grufwub@gmail.com>
* fix unmarshaling
Signed-off-by: kim <grufwub@gmail.com>
* remove kim's custom go compiler changes
Signed-off-by: kim <grufwub@gmail.com>
* generate setter and flag-name functions, implement these in codebase
Signed-off-by: kim <grufwub@gmail.com>
* update deps
Signed-off-by: kim <grufwub@gmail.com>
* small change
Signed-off-by: kim <grufwub@gmail.com>
* appease the linter...
Signed-off-by: kim <grufwub@gmail.com>
* move configuration into ConfigState structure, ensure reloading to/from viper settings to keep in sync
Signed-off-by: kim <grufwub@gmail.com>
* lint
Signed-off-by: kim <grufwub@gmail.com>
* update code comments
Signed-off-by: kim <grufwub@gmail.com>
* fix merge issue
Signed-off-by: kim <grufwub@gmail.com>
* fix merge issue
Signed-off-by: kim <grufwub@gmail.com>
* improved version string (removes time + go version)
Signed-off-by: kim <grufwub@gmail.com>
* fix version string build to pass test script + consolidate logic in func
Signed-off-by: kim <grufwub@gmail.com>
* add license text, update config.Defaults comment
Signed-off-by: kim <grufwub@gmail.com>
* add license text to generated config helpers file
Signed-off-by: kim <grufwub@gmail.com>
* defer unlock on config.Set___(), to ensure unlocked on panic
Signed-off-by: kim <grufwub@gmail.com>
* make it more obvious which cmd flags are being attached
Signed-off-by: kim <grufwub@gmail.com>
This commit is contained in:
parent
ae5402ada6
commit
43ac0cdb9c
90 changed files with 2450 additions and 1125 deletions
|
|
@ -29,7 +29,6 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
|
||||
"github.com/go-fed/httpsig"
|
||||
"github.com/superseriousbusiness/activity/pub"
|
||||
|
|
@ -168,8 +167,7 @@ func (f *federator) AuthenticateFederatedRequest(ctx context.Context, requestedU
|
|||
requestingRemoteAccount := >smodel.Account{}
|
||||
requestingLocalAccount := >smodel.Account{}
|
||||
requestingHost := requestingPublicKeyID.Host
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if strings.EqualFold(requestingHost, host) {
|
||||
if host := config.GetHost(); strings.EqualFold(requestingHost, host) {
|
||||
// LOCAL ACCOUNT REQUEST
|
||||
// the request is coming from INSIDE THE HOUSE so skip the remote dereferencing
|
||||
l.Tracef("proceeding without dereference for local public key %s", requestingPublicKeyID)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import (
|
|||
"net/url"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/ap"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/uris"
|
||||
|
|
@ -45,8 +44,7 @@ func (d *deref) DereferenceThread(ctx context.Context, username string, statusIR
|
|||
l.Debug("entering DereferenceThread")
|
||||
|
||||
// if it's our status we already have everything stashed so we can bail early
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if statusIRI.Host == host {
|
||||
if statusIRI.Host == config.GetHost() {
|
||||
l.Debug("iri belongs to us, bailing")
|
||||
return nil
|
||||
}
|
||||
|
|
@ -80,8 +78,7 @@ func (d *deref) iterateAncestors(ctx context.Context, username string, statusIRI
|
|||
l.Debug("entering iterateAncestors")
|
||||
|
||||
// if it's our status we don't need to dereference anything so we can immediately move up the chain
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if statusIRI.Host == host {
|
||||
if statusIRI.Host == config.GetHost() {
|
||||
l.Debug("iri belongs to us, moving up to next ancestor")
|
||||
|
||||
// since this is our status, we know we can extract the id from the status path
|
||||
|
|
@ -132,8 +129,7 @@ func (d *deref) iterateDescendants(ctx context.Context, username string, statusI
|
|||
l.Debug("entering iterateDescendants")
|
||||
|
||||
// if it's our status we already have descendants stashed so we can bail early
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if statusIRI.Host == host {
|
||||
if statusIRI.Host == config.GetHost() {
|
||||
l.Debug("iri belongs to us, bailing")
|
||||
return nil
|
||||
}
|
||||
|
|
@ -209,8 +205,7 @@ pageLoop:
|
|||
continue
|
||||
}
|
||||
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if itemURI.Host == host {
|
||||
if itemURI.Host == config.GetHost() {
|
||||
// skip if the reply is from us -- we already have it then
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import (
|
|||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/superseriousbusiness/activity/streams"
|
||||
"github.com/superseriousbusiness/activity/streams/vocab"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
|
|
@ -80,7 +79,7 @@ func (f *federatingDB) SetInbox(c context.Context, inbox vocab.ActivityStreamsOr
|
|||
// The library makes this call only after acquiring a lock first.
|
||||
func (f *federatingDB) InboxesForIRI(c context.Context, iri *url.URL) (inboxIRIs []*url.URL, err error) {
|
||||
// check if this is a followers collection iri for a local account...
|
||||
if iri.Host == viper.GetString(config.Keys.Host) && uris.IsFollowersPath(iri) {
|
||||
if iri.Host == config.GetHost() && uris.IsFollowersPath(iri) {
|
||||
localAccountUsername, err := uris.ParseFollowersPath(iri)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("couldn't extract local account username from uri %s: %s", iri, err)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import (
|
|||
"net/url"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/db"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||||
|
|
@ -44,8 +43,7 @@ func (f *federatingDB) Owns(ctx context.Context, id *url.URL) (bool, error) {
|
|||
l.Debug("entering Owns")
|
||||
|
||||
// if the id host isn't this instance host, we don't own this IRI
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if id.Host != host {
|
||||
if host := config.GetHost(); id.Host != host {
|
||||
l.Tracef("we DO NOT own activity because the host is %s not %s", id.Host, host)
|
||||
return false, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/superseriousbusiness/activity/streams/vocab"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/ap"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
|
|
@ -125,8 +124,7 @@ func (f *federatingDB) Update(ctx context.Context, asType vocab.Type) error {
|
|||
return fmt.Errorf("UPDATE: error converting to account: %s", err)
|
||||
}
|
||||
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
if updatedAcct.Domain == host {
|
||||
if updatedAcct.Domain == config.GetHost() {
|
||||
// no need to update local accounts
|
||||
// in fact, if we do this will break the shit out of things so do NOT
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import (
|
|||
"net/url"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/superseriousbusiness/activity/streams"
|
||||
"github.com/superseriousbusiness/activity/streams/vocab"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/ap"
|
||||
|
|
@ -209,9 +208,7 @@ func (f *federatingDB) NewID(ctx context.Context, t vocab.Type) (idURL *url.URL,
|
|||
return nil, err
|
||||
}
|
||||
|
||||
protocol := viper.GetString(config.Keys.Protocol)
|
||||
host := viper.GetString(config.Keys.Host)
|
||||
return url.Parse(fmt.Sprintf("%s://%s/%s", protocol, host, newID))
|
||||
return url.Parse(fmt.Sprintf("%s://%s/%s", config.GetProtocol(), config.GetHost(), newID))
|
||||
}
|
||||
|
||||
// ActorForOutbox fetches the actor's IRI for the given outbox IRI.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue