Library and cli to generate markdown for diagrams based on standard file formats, such as Swagger, OpenAPI, kubernetes, AWS and Azure templates.
Assists in the generatation of diagrams (png, svg, canvas, etc) based on standard file formats, such as Swagger, OpenAPI, AWS Cloud Formation Templates, Ansible Templates, by providing the text markdown for renderers to take advantage of.
Can be used either on the command line (CLI), Node.js or with JavaScript.
omskep <diagram type> [options (key/value pairs)] <input file> [<input file> <input file> ...]
Generate plantuml sequence markdown for an operation (GET /pets) from a Swagger file
omskep sequence -resource /pets -verb get petstore.json
If the input file (Swagger file here) is generated from some other process, it can be piped into omskep
cat petstore.json | omskep sequence -resource /pets -verb get
with OAS=https://raw.githubusercontent.com/bschwarz/omskep/master/petstore-openapi3.json
wget -qO- $OAS | omskep sequence -resource /pets -verb get
curl $OAS | omskep sequence -resource /pets -verb get
@startuml
!GET = "<color #009fdb>GET</color>"
!POST = "<color #007a3e>POST</color>"
!PUT = "<color #ea7400>PUT</color>"
!DELETE = "<color #cf2a2a>DELETE</color>"
!PATCH = "<color #b5bd00>PATCH</color>"
!HEAD = "<color #9012fe>HEAD</color>"
!OPTIONS = "<color #0d5aa7>OPTIONS</color>"
!if %not(%function_exists("$success"))
!function $success($msg)
<font color=green><b>$msg
!endfunction
!endif
!if %not(%function_exists("$failure"))
!function $failure($msg)
<font color=red><b>$msg
!endfunction
!endif
!if %not(%function_exists("$warning"))
!function $warning($msg)
<font color=orange><b>$msg
!endfunction
!endif
title findPets
participant "Client" as C
participant "API Gateway" as G
C->G: GET /pets
activate G
alt pet response
G-->C: HTTP $success(200)
else unexpected error
G-->C: HTTP $failure(default)
else
deactivate G
end
@enduml
Generate an image by piping the output to a local plantuml.jar
program.
omskep sequence -resource /pets -verb get -icons true petstore.json | java -jar plantuml.jar -pipe > getPets.png
Specifying the cerulean
theme from puml-themes with the -theme
option
omskep sequence -resource /pets -verb get -icons true -theme cerulean petstore.json | java -jar plantuml.jar -pipe > getPets-cerulean.png
Specifying the superhero
theme from puml-themes with the -theme
option
omskep sequence -resource /pets -verb get -icons true -theme superhero petstore.json | java -jar plantuml.jar -pipe > getPets-superhero.png
If you don’t have a local install of the plantuml.jar
program, you can use the -pumlurl
option to generate the url to send the markdown generated from omskep-cli
to fetch the image from the plantuml server, using either wget
or curl
Note: You will need to have the plantuml-encoder node package installed to use this option.
Using wget
with command substitution
wget $(omskep sequence -resource /pets -verb get -pumlurl png petstore.json) -O getPets.png
Using curl
with command substitution.
curl --url $(omskep sequence -resource /pets -verb get -theme cerulean -pumlurl png petstore.json) > getPets.png
Using curl
with xargs
omskep sequence -resource /pets -verb get -theme superhero -pumlurl svg petstore.json | xargs curl > getPets.svg