~bigbes/core-go

e22c3e1c — Conrad Hoffmann 9 months ago
Fix a bunch of linter complaints
20bcc757 — Conrad Hoffmann 9 months ago
webhooks: improve usage of slices.Contains

This was (rightfully) suggested by modernize [1], but the result can be
easily improved even further.

[1] https://pkg.go.dev/golang.org/x/tools/gopls/internal/analysis/modernize
39c3fd1e — Conrad Hoffmann 9 months ago
Run modernize

See https://pkg.go.dev/golang.org/x/tools/gopls/internal/analysis/modernize

It's mostly interface{} -> any, but also two quite useful applications
of slices.Contains.
3afc1a55 — Drew DeVault 9 months ago
auth/middleware: return semantic errors on auth failure

This time with a much simpler approach than the last one that caused
some authentication issues for chat.sr.ht.
c912a96a — Drew DeVault 9 months ago
Revert "auth: ensure semantic errors are bubbled up to user properly"

This reverts commit 0936891734e7f92b7ad724caea27715f2e3e7b5c.
e359a4d5 — Drew DeVault 9 months ago
gofmt
862728a4 — Drew DeVault 9 months ago
server: add error presenter to make context cancellation semantic
09368917 — Drew DeVault 9 months ago
auth: ensure semantic errors are bubbled up to user properly
038a9eb0 — Drew DeVault 10 months ago
auth: add error code on unauthorized request response
ccd2a4b8 — Drew DeVault 10 months ago
auth: handle edge case when fetching users from meta
33acd1b0 — Drew DeVault 10 months ago
feature: add submodule + middleware for feature flags
565df04e — Drew DeVault 10 months ago
model: introduce ID type

Based on UUIDv7 but represented to users in a more compact base32 form,
though all of that are internal implementation details.
898f2e95 — Drew DeVault 10 months ago
database: add WithReadOnlyTx
398f1a70 — Conrad Hoffmann 10 months ago
Refactor config loading and server initialization

As is, LoadConfig() does some things that are not strictly related to
the configuration, such as parsing command line arguments. This has led
to a proliferation of different ways to load the config based on various
needs and also prevents tools that need a config but are not services to
use custom command line arguments.

This commit aims to decouple config loading from everything else and
do nothing but loading the config files.

On a high level, this commit:
- renames server.NewServer() to server.New()
- moves config.Debug and config.Addr into the server package
- moves crypto.InitCrypto() call into server.New()
- moves command line parsing into server.New(), using passed-in values
  rather than os.Args

The only changes required for services would be changing

   cfg := config.LoadConfig(":5100")
   server := server.NewServer("meta.sr.ht", cfg)

to

   cfg := config.LoadConfig()
   server := server.New("meta.sr.ht", ":5100", cfg, os.Args)

All other tools will be switched to just LoadConfig() and, optionally, a
call to crypto.InitCrypto(). I managed to completely remove some global
state (addr) and at least make the rest private, so that users are
forced to use the designated functions.

The config module gained support for custom FS implementation, mainly
for testing.
3e875f28 — Conrad Hoffmann 10 months ago
objects: bring back support for plain HTTP

This got lost during the transition from minio to S3 client.
87bd2cb1 — Drew DeVault 10 months ago
client: improve user agent
304e09bb — Drew DeVault 10 months ago
config: don't log config path

This is kind of useful but it's also pretty noisy in a lot of places.
80be9ad7 — Conrad Hoffmann 11 months ago
server: enable GraphQL introspection
cc170f8f — Drew DeVault 11 months ago
Don't prevent suspended users from authenticating

With cookies or internal auth. The frontends already prevent users from
accessing services while suspended, and there are some complications if
we don't let the frontends access the backends at all if the
authenticated user is suspended.
44cf5e79 — Drew DeVault 11 months ago
auth: remove legacy OAuth support
Next