Skip to content

Commit 0a73534

Browse files
authored
feat: Add export support for session based filtering (#24)
1 parent 811f1b6 commit 0a73534

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

cli/export.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77
"os"
88

9+
"github.com/google/uuid"
910
"github.com/safedep/dry/log"
1011
"github.com/safedep/gryph/core/events"
1112
"github.com/spf13/cobra"
@@ -18,6 +19,7 @@ func NewExportCmd() *cobra.Command {
1819
until string
1920
agent string
2021
output string
22+
session string
2123
sensitive bool
2224
)
2325

@@ -73,6 +75,24 @@ for validation. Sensitive events are excluded by default.`,
7375
filter = filter.WithAgents(agent)
7476
}
7577

78+
if session != "" {
79+
sessionID, err := uuid.Parse(session)
80+
if err != nil {
81+
s, err := app.Store.GetSessionByPrefix(ctx, session)
82+
if err != nil {
83+
return fmt.Errorf("session not found: %s", session)
84+
}
85+
86+
if s == nil {
87+
return fmt.Errorf("session not found: %s", session)
88+
}
89+
90+
sessionID = s.ID
91+
}
92+
93+
filter = filter.WithSession(sessionID)
94+
}
95+
7696
// Query events
7797
evts, err := app.Store.QueryEvents(ctx, filter)
7898
if err != nil {
@@ -130,6 +150,7 @@ for validation. Sensitive events are excluded by default.`,
130150
cmd.Flags().StringVar(&until, "until", "", "export events until")
131151
cmd.Flags().StringVar(&agent, "agent", "", "filter by agent")
132152
cmd.Flags().StringVarP(&output, "output", "o", "", "write to file (default: stdout)")
153+
cmd.Flags().StringVar(&session, "session", "", "filter by session ID (prefix match)")
133154
cmd.Flags().BoolVar(&sensitive, "sensitive", false, "include sensitive events")
134155

135156
return cmd

0 commit comments

Comments
 (0)