diff --git a/internal/plugins/db/fsdb/patterns.go b/internal/plugins/db/fsdb/patterns.go index 0bbc315e..174f3553 100644 --- a/internal/plugins/db/fsdb/patterns.go +++ b/internal/plugins/db/fsdb/patterns.go @@ -50,6 +50,11 @@ func (o *PatternsEntity) GetWithoutVariables(source, input string) (pattern *Pat return } +// GetRaw returns a pattern from storage without applying variable processing. +func (o *PatternsEntity) GetRaw(name string) (*Pattern, error) { + return o.getFromDB(name) +} + func (o *PatternsEntity) loadPattern(source string) (pattern *Pattern, err error) { // Determine if this is a file path isFilePath := strings.HasPrefix(source, "\\") || diff --git a/internal/plugins/db/fsdb/patterns_test.go b/internal/plugins/db/fsdb/patterns_test.go index b1a5bc5c..417b169f 100644 --- a/internal/plugins/db/fsdb/patterns_test.go +++ b/internal/plugins/db/fsdb/patterns_test.go @@ -256,6 +256,11 @@ func TestPatternsEntity_CustomPatterns(t *testing.T) { require.NoError(t, err) assert.Equal(t, "Main pattern content", pattern.Pattern) + // Test GetRaw also respects custom patterns directory + rawPattern, err := entity.GetRaw("shared-pattern") + require.NoError(t, err) + assert.Equal(t, "Custom shared pattern", rawPattern.Pattern) + // Test that custom pattern is accessible pattern, err = entity.getFromDB("custom-pattern") require.NoError(t, err) diff --git a/internal/server/patterns.go b/internal/server/patterns.go index 5c4deeb1..5b75b67e 100644 --- a/internal/server/patterns.go +++ b/internal/server/patterns.go @@ -46,19 +46,11 @@ func NewPatternsHandler(r *gin.Engine, patterns *fsdb.PatternsEntity) (ret *Patt func (h *PatternsHandler) Get(c *gin.Context) { name := c.Param("name") - // Get the raw pattern content without any variable processing - content, err := h.patterns.Load(name + "/" + h.patterns.SystemPatternFile) + pattern, err := h.patterns.GetRaw(name) if err != nil { c.JSON(http.StatusInternalServerError, err.Error()) return } - - // Return raw pattern in the same format as the processed patterns - pattern := &fsdb.Pattern{ - Name: name, - Description: "", - Pattern: string(content), - } c.JSON(http.StatusOK, pattern) }