~bigbes/core-go

52237268 — Drew DeVault 8 months ago
errors: add errors.Is
e272a4cf — Conrad Hoffmann 8 months ago
config: add GetOwner and GetString

These patterns are used often enough to justify a little convenience.
Also fixes a few godoc comments while at it.
00f113a4 — Conrad Hoffmann 8 months ago
auth: update user type constants

Those need to be kept in sync with the database/GraphQL values. The ones
not in sync are not currently used, though.
c5355d17 — Conrad Hoffmann 8 months ago
server: let AUTH_INTERNAL access @anoninternal

Both methods enforce the internal aspect, but @anoninternal really just
means the resolver does not require an "authenticated user" context,
which means it's still perfectly safe if there is one.

With this in place, any resolver that may have to be called from an
anonymous context can be switched from @internal to @anoninternal
without breaking existing users. Of course it can only be switched if it
really does not require a user context.
50a876e1 — Maxwell G 9 months ago
webhooks: do not limit webhooks by token_hash

When a user re-authenticates with an OAuth2 app, the app would not be
able to query or delete webhooks it created with a previous session.
This was a problem for a tool I am developing and removing this
constraint fixes the issue.
77b64d23 — Conrad Hoffmann 9 months ago
server: allow setting ports for metrics, pprof

With an eye towards Kubernetes, it is desirable to avoid having the API
pick random ports for anything. This commit introduces additional flags
for the API server to specify the metrics and pprof ports. This change
is backwards-compatible insofar as the default behavior is preserved if
the flags are not used.

The log output is changed to include the full address that the
respective listeners are listening on.

Note that using "0.0.0.0:1234" might not quite work as expected, because
Go [1]. But that does not change the default behavior, so I guess it's
fine.

[1] https://github.com/golang/go/issues/48723
a72070e5 — Conrad Hoffmann 9 months ago
Run golangci-lint in CI

See https://golangci-lint.run

This has already helped uncover some issues, and we should make more use
of it. Currently we have to disable one of the default lints, as we have
a lot of issues it complains about. I plan to address those one by one
and enable it. Until then, put this in place to make sure we don't
re-introduce any of the issues we've eliminated so far.
20be483e — Conrad Hoffmann 9 months ago
Don't uppercase error messages
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.
Next