Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: stable
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
uses: golangci/golangci-lint-action@v9
with:
version: v2.4
version: v2.12
15 changes: 1 addition & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ With SwimPeek you can browse relationships between resources and answer question
go install github.com/just-oblivious/swimpeek@latest
```

1. Create a Personal Access Token for your Swimlane account ([docs](https://docs.swimlane.com/docs/introduction/customize-your-user-profile.htm))
1. Create a Personal Access Token for your Swimlane account ([docs](https://docs.swimlane.com/customize-your-user-profile#creating-a-personal-access-token))

1. Configure SwimPeek:
```sh
Expand Down Expand Up @@ -62,16 +62,3 @@ Run `swimpeek cmd -help` to learn more about the usage of each subcommand
## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.


## Roadmap

Features to be added soon™:

- Filtering in list views
- Navigation between flow nodes and references
- Support for triggers (view all playbook triggers and track flow events)
- Support for assets (see what assets exists and where they are used)
- SUpport for connector actions (list available connectors and see where they are used)
- Configuration details for individual action nodes (i.e. the input parameters)
- Global search
2 changes: 1 addition & 1 deletion cmd/swimpeek/swimpeek.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
)

var logger *log.Logger = config.GetLogger("swimpeek")
var version string = "0.2"
var version string = "0.3"

func printUsage() {
fmt.Println("Usage: swimpeek <command> [options]")
Expand Down
8 changes: 7 additions & 1 deletion internal/graph/actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func createActionNode(warns *Warnings, graph *Graph, action laneclient.PlaybookA
sensNode, exists := graph.Resources.TriggersById[sensorName]
if !exists {
warns.Add(fmt.Errorf("emitEvent action %s references unknown sensor %s", actId, sensorName))
return sensNode, nil
return emitNode, nil
}
newEdge(sensNode, emitNode, EmittedByEdge, nil)
return emitNode, nil
Expand Down Expand Up @@ -133,6 +133,12 @@ func createActionNode(warns *Warnings, graph *Graph, action laneclient.PlaybookA
}
newEdge(appNode, recNode, AccessedByEdge, nil)
return recNode, nil

case "heroAI":
return newNode(newMeta(actId, HeroAIActionNode, action.Title, action.Description)), nil

case "fileUtilities":
return newNode(newMeta(actId, CSVGetRowsActionNode, action.Title, action.Description)), nil
}

return newNode(newMeta(actId, UnknownActionNode, action.Title, action.Description)), fmt.Errorf("unknown action type %s", action.Type)
Expand Down
2 changes: 2 additions & 0 deletions internal/graph/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ const (
ConditionalActionNode NodeType = "condition_action"
HTTPActionNode NodeType = "http_action"
NotificationActionNode NodeType = "notification_action"
HeroAIActionNode NodeType = "heroai_action"
CSVGetRowsActionNode NodeType = "csv_get_rows_action"
)

type EdgeType string
Expand Down
6 changes: 6 additions & 0 deletions internal/tui/app/labels.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ var NodeIcons map[graph.NodeType]string = map[graph.NodeType]string{
graph.WorkflowNode: "▶",
graph.PlaybookNode: "⎔",

graph.HeroAIActionNode: "♾",
graph.CSVGetRowsActionNode: "☷",

graph.RecordCreateActionNode: "✚",
graph.RecordUpdateActionNode: "✎",
graph.RecordSearchActionNode: "☌",
Expand Down Expand Up @@ -49,6 +52,9 @@ var NodeLabels map[graph.NodeType]string = map[graph.NodeType]string{
graph.RecordEventNode: "record event",
graph.CronEventNode: "cron event",
graph.WebhookNode: "incoming webhook",
graph.NotificationActionNode: "notification",
graph.HeroAIActionNode: "hero ai",
graph.CSVGetRowsActionNode: "csv get rows",
}

// edgeLabels provides human-readable labels for different edge types.
Expand Down