Skip to content

Commit 79caf8a

Browse files
updates package name for ui
1 parent 12b9e9a commit 79caf8a

34 files changed

+425
-202
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ private.*
88
.venv
99
bifrost-data
1010

11+
# Enterprise
12+
ui/app/enterprise
13+
ui/components/enterprise
14+
1115
# Temporary directories
1216
**/temp/
1317
/transports/ui

Makefile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ BLUE=\033[0;34m
1616
CYAN=\033[0;36m
1717
NC=\033[0m # No Color
1818

19-
.PHONY: all help dev build-ui build run install-air clean test install-ui setup-workspace work-init work-clean docs docker-build
19+
.PHONY: all help dev build-ui build run install-air clean test install-ui setup-workspace work-init work-clean docs docker-build cleanup-enterprise
2020

2121
all: help
2222

@@ -34,7 +34,13 @@ help: ## Show this help message
3434
@echo " LOG_LEVEL Logger level: debug|info|warn|error (default: info)"
3535
@echo " APP_DIR App data directory inside container (default: /app/data)"
3636

37-
install-ui:
37+
cleanup-enterprise: ## Clean up enterprise directories if present
38+
@echo "$(GREEN)Cleaning up enterprise...$(NC)"
39+
@if [ -d "ui/app/enterprise" ]; then rm -rf ui/app/enterprise; fi
40+
@if [ -d "ui/app/_fallbacks/enterprise" ]; then rm -rf ui/app/_fallbacks/enterprise; fi
41+
@echo "$(GREEN)Enterprise cleaned up$(NC)"
42+
43+
install-ui: cleanup-enterprise
3844
@which node > /dev/null || (echo "$(RED)Error: Node.js is not installed. Please install Node.js first.$(NC)" && exit 1)
3945
@which npm > /dev/null || (echo "$(RED)Error: npm is not installed. Please install npm first.$(NC)" && exit 1)
4046
@echo "$(GREEN)Node.js and npm are installed$(NC)"

transports/bifrost-http/handlers/cache.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ func NewCacheHandler(plugin schemas.Plugin, logger schemas.Logger) *CacheHandler
2424
}
2525
}
2626

27-
func (h *CacheHandler) RegisterRoutes(r *router.Router) {
28-
r.DELETE("/api/cache/clear/{requestId}", h.clearCache)
29-
r.DELETE("/api/cache/clear-by-key/{cacheKey}", h.clearCacheByKey)
27+
func (h *CacheHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
28+
r.DELETE("/api/cache/clear/{requestId}", ChainMiddlewares(h.clearCache, middlewares...))
29+
r.DELETE("/api/cache/clear-by-key/{cacheKey}", ChainMiddlewares(h.clearCacheByKey, middlewares...))
3030
}
3131

3232
func (h *CacheHandler) clearCache(ctx *fasthttp.RequestCtx) {

transports/bifrost-http/handlers/completions.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,13 +264,13 @@ func (h *CompletionHandler) validateAudioFile(fileHeader *multipart.FileHeader)
264264
}
265265

266266
// RegisterRoutes registers all completion-related routes
267-
func (h *CompletionHandler) RegisterRoutes(r *router.Router) {
267+
func (h *CompletionHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
268268
// Completion endpoints
269-
r.POST("/v1/text/completions", h.textCompletion)
270-
r.POST("/v1/chat/completions", h.chatCompletion)
271-
r.POST("/v1/embeddings", h.embeddings)
272-
r.POST("/v1/audio/speech", h.speechCompletion)
273-
r.POST("/v1/audio/transcriptions", h.transcriptionCompletion)
269+
r.POST("/v1/text/completions", ChainMiddlewares(h.textCompletion, middlewares...))
270+
r.POST("/v1/chat/completions", ChainMiddlewares(h.chatCompletion, middlewares...))
271+
r.POST("/v1/embeddings", ChainMiddlewares(h.embeddings, middlewares...))
272+
r.POST("/v1/audio/speech", ChainMiddlewares(h.speechCompletion, middlewares...))
273+
r.POST("/v1/audio/transcriptions", ChainMiddlewares(h.transcriptionCompletion, middlewares...))
274274
}
275275

276276
// textCompletion handles POST /v1/text/completions - Process text completion requests

transports/bifrost-http/handlers/config.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ func NewConfigHandler(client *bifrost.Bifrost, logger schemas.Logger, store *lib
3333

3434
// RegisterRoutes registers the configuration-related routes.
3535
// It adds the `PUT /api/config` endpoint.
36-
func (h *ConfigHandler) RegisterRoutes(r *router.Router) {
37-
r.GET("/api/config", h.getConfig)
38-
r.PUT("/api/config", h.updateConfig)
39-
r.GET("/api/version", h.getVersion)
36+
func (h *ConfigHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
37+
r.GET("/api/config", ChainMiddlewares(h.getConfig, middlewares...))
38+
r.PUT("/api/config", ChainMiddlewares(h.updateConfig, middlewares...))
39+
r.GET("/api/version", ChainMiddlewares(h.getVersion, middlewares...))
4040
}
4141

4242
// getVersion handles GET /api/version - Get the current version
43-
func (h *ConfigHandler) getVersion(ctx *fasthttp.RequestCtx) {
43+
func (h *ConfigHandler) getVersion(ctx *fasthttp.RequestCtx) {
4444
SendJSON(ctx, version, h.logger)
4545
}
4646

transports/bifrost-http/handlers/governance.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -120,27 +120,27 @@ type UpdateCustomerRequest struct {
120120
}
121121

122122
// RegisterRoutes registers all governance-related routes for the new hierarchical system
123-
func (h *GovernanceHandler) RegisterRoutes(r *router.Router) {
123+
func (h *GovernanceHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
124124
// Virtual Key CRUD operations
125-
r.GET("/api/governance/virtual-keys", h.getVirtualKeys)
126-
r.POST("/api/governance/virtual-keys", h.createVirtualKey)
127-
r.GET("/api/governance/virtual-keys/{vk_id}", h.getVirtualKey)
128-
r.PUT("/api/governance/virtual-keys/{vk_id}", h.updateVirtualKey)
129-
r.DELETE("/api/governance/virtual-keys/{vk_id}", h.deleteVirtualKey)
125+
r.GET("/api/governance/virtual-keys", ChainMiddlewares(h.getVirtualKeys, middlewares...))
126+
r.POST("/api/governance/virtual-keys", ChainMiddlewares(h.createVirtualKey, middlewares...))
127+
r.GET("/api/governance/virtual-keys/{vk_id}", ChainMiddlewares(h.getVirtualKey, middlewares...))
128+
r.PUT("/api/governance/virtual-keys/{vk_id}", ChainMiddlewares(h.updateVirtualKey, middlewares...))
129+
r.DELETE("/api/governance/virtual-keys/{vk_id}", ChainMiddlewares(h.deleteVirtualKey, middlewares...))
130130

131131
// Team CRUD operations
132-
r.GET("/api/governance/teams", h.getTeams)
133-
r.POST("/api/governance/teams", h.createTeam)
134-
r.GET("/api/governance/teams/{team_id}", h.getTeam)
135-
r.PUT("/api/governance/teams/{team_id}", h.updateTeam)
136-
r.DELETE("/api/governance/teams/{team_id}", h.deleteTeam)
132+
r.GET("/api/governance/teams", ChainMiddlewares(h.getTeams, middlewares...))
133+
r.POST("/api/governance/teams", ChainMiddlewares(h.createTeam, middlewares...))
134+
r.GET("/api/governance/teams/{team_id}", ChainMiddlewares(h.getTeam, middlewares...))
135+
r.PUT("/api/governance/teams/{team_id}", ChainMiddlewares(h.updateTeam, middlewares...))
136+
r.DELETE("/api/governance/teams/{team_id}", ChainMiddlewares(h.deleteTeam, middlewares...))
137137

138138
// Customer CRUD operations
139-
r.GET("/api/governance/customers", h.getCustomers)
140-
r.POST("/api/governance/customers", h.createCustomer)
141-
r.GET("/api/governance/customers/{customer_id}", h.getCustomer)
142-
r.PUT("/api/governance/customers/{customer_id}", h.updateCustomer)
143-
r.DELETE("/api/governance/customers/{customer_id}", h.deleteCustomer)
139+
r.GET("/api/governance/customers", ChainMiddlewares(h.getCustomers, middlewares...))
140+
r.POST("/api/governance/customers", ChainMiddlewares(h.createCustomer, middlewares...))
141+
r.GET("/api/governance/customers/{customer_id}", ChainMiddlewares(h.getCustomer, middlewares...))
142+
r.PUT("/api/governance/customers/{customer_id}", ChainMiddlewares(h.updateCustomer, middlewares...))
143+
r.DELETE("/api/governance/customers/{customer_id}", ChainMiddlewares(h.deleteCustomer, middlewares...))
144144
}
145145

146146
// Virtual Key CRUD Operations

transports/bifrost-http/handlers/logging.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ func NewLoggingHandler(logManager logging.LogManager, logger schemas.Logger) *Lo
3030
}
3131

3232
// RegisterRoutes registers all logging-related routes
33-
func (h *LoggingHandler) RegisterRoutes(r *router.Router) {
33+
func (h *LoggingHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
3434
// Log retrieval with filtering, search, and pagination
35-
r.GET("/api/logs", h.getLogs)
36-
r.GET("/api/logs/dropped", h.getDroppedRequests)
37-
r.GET("/api/logs/models", h.getAvailableModels)
35+
r.GET("/api/logs", ChainMiddlewares(h.getLogs, middlewares...))
36+
r.GET("/api/logs/dropped", ChainMiddlewares(h.getDroppedRequests, middlewares...))
37+
r.GET("/api/logs/models", ChainMiddlewares(h.getAvailableModels, middlewares...))
3838
}
3939

4040
// getLogs handles GET /api/logs - Get logs with filtering, search, and pagination via query parameters

transports/bifrost-http/handlers/mcp.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ func NewMCPHandler(client *bifrost.Bifrost, logger schemas.Logger, store *lib.Co
3030
}
3131

3232
// RegisterRoutes registers all MCP-related routes
33-
func (h *MCPHandler) RegisterRoutes(r *router.Router) {
33+
func (h *MCPHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
3434
// MCP tool execution endpoint
35-
r.POST("/v1/mcp/tool/execute", h.executeTool)
36-
r.GET("/api/mcp/clients", h.getMCPClients)
37-
r.POST("/api/mcp/client", h.addMCPClient)
38-
r.PUT("/api/mcp/client/{name}", h.editMCPClientTools)
39-
r.DELETE("/api/mcp/client/{name}", h.removeMCPClient)
40-
r.POST("/api/mcp/client/{name}/reconnect", h.reconnectMCPClient)
35+
r.POST("/v1/mcp/tool/execute", ChainMiddlewares(h.executeTool, middlewares...))
36+
r.GET("/api/mcp/clients", ChainMiddlewares(h.getMCPClients, middlewares...))
37+
r.POST("/api/mcp/client", ChainMiddlewares(h.addMCPClient, middlewares...))
38+
r.PUT("/api/mcp/client/{name}", ChainMiddlewares(h.editMCPClientTools, middlewares...))
39+
r.DELETE("/api/mcp/client/{name}", ChainMiddlewares(h.removeMCPClient, middlewares...))
40+
r.POST("/api/mcp/client/{name}/reconnect", ChainMiddlewares(h.reconnectMCPClient, middlewares...))
4141
}
4242

4343
// executeTool handles POST /v1/mcp/tool/execute - Execute MCP tool
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package handlers
2+
3+
import (
4+
"github.com/valyala/fasthttp"
5+
)
6+
7+
// ChainMiddlewares chains multiple middlewares together
8+
func ChainMiddlewares(handler fasthttp.RequestHandler, middlewares ...fasthttp.RequestHandler) fasthttp.RequestHandler {
9+
// If no middlewares, return the original handler
10+
if len(middlewares) == 0 {
11+
return handler
12+
}
13+
14+
return func(ctx *fasthttp.RequestCtx) {
15+
// Execute all middlewares in order
16+
for _, middleware := range middlewares {
17+
middleware(ctx)
18+
}
19+
// Execute the handler last
20+
handler(ctx)
21+
}
22+
}

transports/bifrost-http/handlers/plugins.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ type UpdatePluginRequest struct {
3434
Config map[string]interface{} `json:"config"`
3535
}
3636

37-
func (h *PluginsHandler) RegisterRoutes(r *router.Router) {
38-
r.GET("/api/plugins", h.getPlugins)
39-
r.GET("/api/plugins/{name}", h.getPlugin)
40-
r.POST("/api/plugins", h.createPlugin)
41-
r.PUT("/api/plugins/{name}", h.updatePlugin)
42-
r.DELETE("/api/plugins/{name}", h.deletePlugin)
37+
func (h *PluginsHandler) RegisterRoutes(r *router.Router, middlewares ...fasthttp.RequestHandler) {
38+
r.GET("/api/plugins", ChainMiddlewares(h.getPlugins, middlewares...))
39+
r.GET("/api/plugins/{name}", ChainMiddlewares(h.getPlugin, middlewares...))
40+
r.POST("/api/plugins", ChainMiddlewares(h.createPlugin, middlewares...))
41+
r.PUT("/api/plugins/{name}", ChainMiddlewares(h.updatePlugin, middlewares...))
42+
r.DELETE("/api/plugins/{name}", ChainMiddlewares(h.deletePlugin, middlewares...))
4343
}
4444

4545
func (h *PluginsHandler) getPlugins(ctx *fasthttp.RequestCtx) {

0 commit comments

Comments
 (0)