Changeset 0.28.4 (#190)

This commit is contained in:
2026-03-14 19:36:33 +00:00
parent fa6b04434a
commit 85d5e3cc13
54 changed files with 7355 additions and 102 deletions

View File

@@ -368,7 +368,8 @@ func main() {
defer memScanner.Stop()
r := gin.Default()
r.Use(middleware.CORS())
userCache := middleware.NewUserStatusCache()
r.Use(middleware.CORS(cfg))
// ── Base path group ──────────────────────
base := r.Group(cfg.BasePath)
@@ -425,7 +426,7 @@ func main() {
})
// WebSocket endpoint
base.GET("/ws", middleware.Auth(cfg), hub.HandleWebSocket)
base.GET("/ws", middleware.Auth(cfg, stores.Users, userCache), hub.HandleWebSocket)
// ── Auth routes (rate limited) ──────────────
authMode, err := auth.ParseMode(cfg.AuthMode)
@@ -508,7 +509,8 @@ func main() {
// ── Protected routes ────────────────────
protected := api.Group("")
protected.Use(middleware.Auth(cfg))
protected.Use(middleware.Auth(cfg, stores.Users, userCache))
protected.Use(middleware.ValidatePathParams())
{
// Channels
channels := handlers.NewChannelHandler()
@@ -948,10 +950,12 @@ func main() {
// ── Admin routes ────────────────────────
admin := api.Group("/admin")
admin.Use(middleware.Auth(cfg))
admin.Use(middleware.Auth(cfg, stores.Users, userCache))
admin.Use(middleware.RequireAdmin())
admin.Use(middleware.ValidatePathParams())
{
adm := handlers.NewAdminHandler(stores, keyResolver, uekCache, objStore)
adm.OnUserChanged(userCache.Evict)
// User management
admin.GET("/users", adm.ListUsers)
@@ -1165,17 +1169,17 @@ func main() {
// v0.25.0: Surface routes generated from manifest registry.
// Replaces manual per-surface route blocks.
pageEngine.RegisterPageRoutes(base, pages.PageRouteMiddleware{
Authenticated: middleware.AuthOrRedirect(cfg),
Authenticated: middleware.AuthOrRedirect(cfg, stores.Users, userCache),
Admin: []gin.HandlerFunc{
middleware.AuthOrRedirect(cfg),
middleware.AuthOrRedirect(cfg, stores.Users, userCache),
middleware.RequireAdminPage(),
},
Session: middleware.AuthOrSession(cfg, stores),
Session: middleware.AuthOrSession(cfg, stores, userCache),
})
// Workflow API — session participants can send messages + trigger completions
wfAPI := base.Group("/api/v1/w")
wfAPI.Use(middleware.AuthOrSession(cfg, stores))
wfAPI.Use(middleware.AuthOrSession(cfg, stores, userCache))
{
wfMsgs := handlers.NewMessageHandler(keyResolver, stores, hub, objStore)
wfAPI.POST("/:id/messages", wfMsgs.CreateMessage)