Find yourself in the middle of all the services you have. Bússola means compass in Portuguese.
Define your architecture in a yaml file, like the following:
units:
- name: avatar_service
type: service
metadata:
context: profile
location: kubernetes_cluster
team: user_profile_team
dependsOn:
- avatar_database
go build cmd/main.go
Get your graphviz result:
cat your_data.yaml | ./main -directives a,b,c > graph.dot
And convert your .dot file into png/svg/etc.
cat your_data.yaml | ./main -directives a,b,c | pbcopy
and throw your results to http:https://www.webgraphviz.com/ or something similar
In order to nest your units inside different contexts, you can use the -directives
option with d1,d2,d3
syntax.
You can filter your data by using the -filter
cli option. The syntax is k1:v1,v2;k2:v3
and will query your metadata.
go build api/main.go
This will spin a up a server based on your data, available on the 9999 port.
./main your_data.yaml
curl localhost:9999/params
curl -XPOST -d '{"Filters":{"location":["aws_rds"]}}' localhost:9999/render