updated dash

This commit is contained in:
2026-05-17 14:12:06 +00:00
parent 317a7f3f13
commit 72c71bb95d
14 changed files with 369 additions and 93 deletions
+15 -5
View File
@@ -3,6 +3,7 @@ package handlers
import (
"context"
"fmt"
"log"
"net"
"net/http"
"regexp"
@@ -45,6 +46,13 @@ func (h *DecisionsHandler) List(w http.ResponseWriter, r *http.Request) {
page = 1
}
if !h.deps.CLIAvailable {
pd := NewPageData(r, "Decisions", h.deps.CLIAvailable, h.deps.PollInterval)
pd = pd.WithFlash("error", "cscli is required for decisions management but is not available.")
h.deps.Renderer.Render(w, "decisions", DecisionsData{PageData: pd})
return
}
filter := crowdsec.DecisionFilter{
Limit: decisionsPerPage + 1,
Offset: (page - 1) * decisionsPerPage,
@@ -54,9 +62,12 @@ func (h *DecisionsHandler) List(w http.ResponseWriter, r *http.Request) {
Origin: r.URL.Query().Get("origin"),
}
decisions, err := h.deps.LAPI.ListDecisions(ctx, filter)
decisions, err := h.deps.CLI.ListDecisions(ctx, filter)
if err != nil {
h.deps.Renderer.RenderError(w, http.StatusBadGateway, "failed to fetch decisions")
log.Printf("decisions: CLI error: %v", err)
pd := NewPageData(r, "Decisions", h.deps.CLIAvailable, h.deps.PollInterval)
pd = pd.WithFlash("error", "Failed to fetch decisions via cscli.")
h.deps.Renderer.Render(w, "decisions", DecisionsData{PageData: pd})
return
}
@@ -112,9 +123,8 @@ func (h *DecisionsHandler) Add(w http.ResponseWriter, r *http.Request) {
ctx, cancel := context.WithTimeout(r.Context(), 15*time.Second)
defer cancel()
if err := h.deps.LAPI.AddDecision(ctx, crowdsec.DecisionInput{
if err := h.deps.CLI.AddDecision(ctx, crowdsec.DecisionInput{
Duration: duration,
Origin: "cscli",
Scenario: scenario,
Scope: scope,
Type: decType,
@@ -157,7 +167,7 @@ func (h *DecisionsHandler) Delete(w http.ResponseWriter, r *http.Request) {
errs = append(errs, fmt.Sprintf("invalid id: %q", s))
continue
}
if err := h.deps.LAPI.DeleteDecision(ctx, id); err != nil {
if err := h.deps.CLI.DeleteDecision(ctx, id); err != nil {
errs = append(errs, fmt.Sprintf("id %d: %v", id, err))
continue
}