mirror of
https://github.com/Dvorinka/Trackeep.git
synced 2026-06-03 20:12:58 +00:00
feat: major feature updates and cleanup
- Add Redis architecture implementation - Update browser extension functionality - Clean up deprecated files and documentation - Enhance backend handlers for auth, messages, search - Add new configuration options and settings - Update Docker and deployment configurations
This commit is contained in:
+57
-10
@@ -22,19 +22,29 @@ func IsDemoMode() bool {
|
||||
}
|
||||
|
||||
func initializeSecuritySecrets() error {
|
||||
jwtSecret, err := utils.GetOrCreateJWTSecret()
|
||||
if err != nil {
|
||||
return err
|
||||
// Only set JWT_SECRET if not already provided in environment
|
||||
if os.Getenv("JWT_SECRET") == "" {
|
||||
jwtSecret, err := utils.GetOrCreateJWTSecret()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
os.Setenv("JWT_SECRET", jwtSecret)
|
||||
log.Println("JWT secret initialized from file")
|
||||
} else {
|
||||
log.Println("JWT secret found in environment variable")
|
||||
}
|
||||
os.Setenv("JWT_SECRET", jwtSecret)
|
||||
log.Println("JWT secret initialized successfully")
|
||||
|
||||
encryptionKey, err := utils.GetOrCreateEncryptionKey()
|
||||
if err != nil {
|
||||
return err
|
||||
// Only set ENCRYPTION_KEY if not already provided in environment
|
||||
if os.Getenv("ENCRYPTION_KEY") == "" {
|
||||
encryptionKey, err := utils.GetOrCreateEncryptionKey()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
os.Setenv("ENCRYPTION_KEY", encryptionKey)
|
||||
log.Println("Encryption key initialized from file")
|
||||
} else {
|
||||
log.Println("Encryption key found in environment variable")
|
||||
}
|
||||
os.Setenv("ENCRYPTION_KEY", encryptionKey)
|
||||
log.Println("Encryption key initialized successfully")
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -125,10 +135,17 @@ func main() {
|
||||
// Serve static files (frontend)
|
||||
r.Static("/assets", "../frontend/dist/assets")
|
||||
r.StaticFile("/", "../frontend/dist/index.html")
|
||||
|
||||
// Serve browser extension download
|
||||
r.GET("/browser-extension", handlers.DownloadBrowserExtension)
|
||||
|
||||
r.NoRoute(func(c *gin.Context) {
|
||||
c.File("../frontend/dist/index.html")
|
||||
})
|
||||
|
||||
// Version endpoint
|
||||
r.GET("/api/version", handlers.GetVersionHandler)
|
||||
|
||||
// Initialize handlers
|
||||
memberHandler := handlers.NewMemberHandler(config.GetDB())
|
||||
timeEntryHandler := handlers.NewTimeEntryHandler(config.GetDB())
|
||||
@@ -203,11 +220,23 @@ func main() {
|
||||
authProtected.GET("/ai/settings", handlers.GetAISettings)
|
||||
authProtected.PUT("/ai/settings", handlers.UpdateAISettings)
|
||||
authProtected.POST("/ai/test-connection", handlers.TestAIConnection)
|
||||
|
||||
// Search Settings routes
|
||||
authProtected.GET("/search/settings", handlers.GetSearchSettings)
|
||||
authProtected.PUT("/search/settings", handlers.UpdateSearchSettings)
|
||||
|
||||
// Update Settings routes
|
||||
authProtected.GET("/update/settings", handlers.GetUpdateSettings)
|
||||
authProtected.PUT("/update/settings", handlers.UpdateUpdateSettings)
|
||||
}
|
||||
|
||||
// Test AI settings without auth
|
||||
v1.GET("/test-ai-settings", handlers.GetAISettings)
|
||||
|
||||
// Test search and update settings without auth (for demo mode)
|
||||
v1.GET("/test-search-settings", handlers.GetTestSearchSettings)
|
||||
v1.GET("/test-update-settings", handlers.GetTestUpdateSettings)
|
||||
|
||||
// Dashboard routes (protected)
|
||||
dashboard := v1.Group("/dashboard")
|
||||
dashboard.Use(handlers.AuthMiddleware())
|
||||
@@ -721,6 +750,24 @@ func main() {
|
||||
performance.POST("/optimize", performanceHandler.OptimizeDatabase)
|
||||
performance.POST("/cleanup-audit-logs", performanceHandler.CleanupOldAuditLogs)
|
||||
}
|
||||
|
||||
// Browser Extension API routes
|
||||
browserExt := v1.Group("/browser-extension")
|
||||
browserExt.Use(handlers.AuthMiddleware())
|
||||
{
|
||||
// API Key management
|
||||
browserExt.POST("/api-keys/generate", handlers.GenerateAPIKey)
|
||||
browserExt.GET("/api-keys", handlers.GetAPIKeys)
|
||||
browserExt.DELETE("/api-keys/:id", handlers.RevokeAPIKey)
|
||||
|
||||
// Extension registration and validation
|
||||
browserExt.POST("/register", handlers.RegisterBrowserExtension)
|
||||
browserExt.GET("/extensions", handlers.GetBrowserExtensions)
|
||||
browserExt.DELETE("/extensions/:id", handlers.RevokeBrowserExtension)
|
||||
|
||||
// Public endpoints (for extension validation)
|
||||
browserExt.GET("/validate", handlers.ValidateAPIKey)
|
||||
}
|
||||
}
|
||||
|
||||
srv := &http.Server{
|
||||
|
||||
Reference in New Issue
Block a user