Massive rework of platform layer user/organization

The goal of this rework is to make it so I can pass around platform.User
instead of a pair of models.Organization and models.User. This is useful
for reason I kind of forget now, but it started with working on
notifications and ballooned massively from there into refactoring a
number of things that were bugging me.

This also includes a tiny amount of work on server-side events (SSE).

 * background stuff lives inside the platform now, which I need for
   having it push updates through SSE
 * userfile now lives in the platform, under file, so other platform
   functions can safely use it
 * oauth is broken into pieces and inside platform because other stuff
   was calling it already, but badly.
 * notifications go into the platform as well
This commit is contained in:
Eli Ribble 2026-03-12 23:49:16 +00:00
parent 32dcc50c94
commit 44c4f17f32
No known key found for this signature in database
85 changed files with 1492 additions and 1384 deletions

12
main.go
View file

@ -12,17 +12,17 @@ import (
"time"
"github.com/Gleipnir-Technology/nidus-sync/auth"
"github.com/Gleipnir-Technology/nidus-sync/background"
"github.com/Gleipnir-Technology/nidus-sync/config"
"github.com/Gleipnir-Technology/nidus-sync/db"
"github.com/Gleipnir-Technology/nidus-sync/html"
"github.com/Gleipnir-Technology/nidus-sync/llm"
"github.com/Gleipnir-Technology/nidus-sync/platform"
"github.com/Gleipnir-Technology/nidus-sync/platform/email"
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
"github.com/Gleipnir-Technology/nidus-sync/platform/geocode"
"github.com/Gleipnir-Technology/nidus-sync/platform/text"
"github.com/Gleipnir-Technology/nidus-sync/rmo"
nidussync "github.com/Gleipnir-Technology/nidus-sync/sync"
"github.com/Gleipnir-Technology/nidus-sync/userfile"
"github.com/getsentry/sentry-go"
sentryhttp "github.com/getsentry/sentry-go/http"
"github.com/getsentry/sentry-go/zerolog"
@ -107,9 +107,9 @@ func main() {
os.Exit(6)
}
err = userfile.CreateDirectories()
err = file.CreateDirectories()
if err != nil {
log.Error().Err(err).Msg("Failed to create userfile directories")
log.Error().Err(err).Msg("Failed to create file directories")
os.Exit(7)
}
@ -143,7 +143,7 @@ func main() {
// Start up background processes
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
background.Start(ctx)
platform.BackgroundStart(ctx)
openai_logger := log.With().Logger()
err = llm.CreateOpenAIClient(ctx, &openai_logger)
@ -176,7 +176,7 @@ func main() {
}
cancel()
background.WaitForExit()
platform.BackgroundWaitForExit()
log.Info().Msg("Shutdown complete")
}