/rabbit-mermaid-cli

A cli that turns your RabbitMQ definition files into markdown compatible flowcharts.

Primary LanguageJavaScriptMIT LicenseMIT

rabbit-mermaid-cli NPM version Build Status Dependency Status

CLI to generate markdown graphs of your rabbitmq topology.

The cli for rabbit-mermaid 🐰🐟. Turn your rabbitmq topology files into markdown compatible dependency graphs. Direct, fanout, and topic-based exchanges are supported.

Installation

npm install -g rabbit-mermaid-cli

Usage

definitions.json

{
    exchanges: [
        {
            name: "images",
            vhost: "/",
            type: "direct",
            durable: true,
            auto_delete: false,
            internal: false,
            arguments: {}
        }
    ],
    queues: [
        {
            name: "archiver1",
            vhost: "/",
            durable: true,
            auto_delete: false,
            arguments: {}
        },
        {
            name: "archiver2",
            vhost: "/",
            durable: true,
            auto_delete: false,
            arguments: {}
        },
        {
            name: "cropper",
            vhost: "/",
            durable: true,
            auto_delete: false,
            arguments: {}
        },
        {
            name: "resizer",
            vhost: "/",
            durable: true,
            auto_delete: false,
            arguments: {}
        }
    ],
    bindings: [
        {
            source: "images",
            vhost: "/",
            destination: "archiver1",
            destination_type: "queue",
            routing_key: "images.archive",
            arguments: {}
        },
        {
            source: "images",
            vhost: "/",
            destination: "archiver2",
            destination_type: "queue",
            routing_key: "images.archive",
            arguments: {}
        },
        {
            source: "images",
            vhost: "/",
            destination: "cropper",
            destination_type: "queue",
            routing_key: "images.crop",
            arguments: {}
        },
        {
            source: "images",
            vhost: "/",
            destination: "resizer",
            destination_type: "queue",
            routing_key: "images.resize",
            arguments: {}
        }
    ]
}
rabdg -f ./definitions.json

/** Output:
graph LR
subgraph Images
Images(("Images<br/>(direct)"))
Images --routing_key=images.archive--> archiver1("archiver1")
Images --routing_key=images.archive--> archiver2("archiver2")
Images --routing_key=images.crop--> cropper("cropper")
Images --routing_key=images.resize--> resizer("resizer")
end
**/

When put into a markdown file that supports mermaid will generate

test

Options

File

Specify the json file that contains the topology definitions. This is required.

Default CLI Override
None -f <file>

Exchanges

Specify the exclusive list of exchanges that you want in your output. All other exchanges will be ignored.

Default CLI Override
ALL -e <ex1,ex2>

Show exchange to exchange bindings

Whether or not to display exchange to exchange bindings in the generated output. This is disabled by default to reduce noise in large topologies with many dependencies.

Default CLI Override
false -x

License

MIT © David Salas