// This is a graphviz file. To generate a diagram from this source, // you must first install graphviz (available from homebrew). Then run // the following command: // // dot -Tpng -o url_diagram.png url_diagram.dot digraph G { graph [fontsize = 14, penwidth = 0, rankdir = UD]; node [shape = "rect"]; edge [fontzize = 9, style = invis]; subgraph cluster_url { label = "dns-admin URL diagram"; color = black; subgraph cluster_urlmisc { label = "Miscellaneous"; penwidth = 1; subgraph cluster_urlmiscbase { label = "Default"; penwidth = 0; urlmisc_urlmiscbase [label = "GET /\n.base"]; } subgraph cluster_urlmisclocation { label = "Redirector"; penwidth = 0; urlmisc_urlmisclocation [label = "POST /location\n.location\nhandle-location"]; } } subgraph cluster_urldnsmisc { label = "DNS miscellaneous"; penwidth = 1; subgraph cluster_urldnsmiscbase { label = "Base layout"; penwidth = 0; urldnsmisc_urldnsmiscbase [label = "GET /dns\n.dns\nhandle-dns"]; } subgraph cluster_urldnsmischeaders { label = "Headers"; penwidth = 0; urldnsmisc_urldnsmischeaders [label = "GET /dns/headers\n.dns-headers\nhandle-dns-headers"]; } subgraph cluster_urldnsmiscloginget { label = "Login form"; penwidth = 0; urldnsmisc_urldnsmiscloginget [label = "GET /dns/login\n.dns-login-get\nhandle-dns-login-get"]; } subgraph cluster_urldnsmiscloginpost { label = "Login submit"; penwidth = 0; urldnsmisc_urldnsmiscloginpost [label = "POST /dns/login\n.dns-login-post\nhandle-dns-login-post"]; } } subgraph cluster_urldnsapi { label = "DNS API"; penwidth = 1; subgraph cluster_urldnsapisearchget { label = "Search form"; penwidth = 0; urldnsapi_urldnsapisearchget [label = "GET /dns/api/search\n.dns-api-search-get\nhandle-dns-api-search-get"]; } subgraph cluster_urldnsapisearchpost { label = "Search submit"; penwidth = 0; urldnsapi_urldnsapisearchpost [label = "POST /dns/api/search\n.dns-api-search-post\nhandle-dns-api-search-post"]; } subgraph cluster_urldnsapiaddget { label = "Add form"; penwidth = 0; urldnsapi_urldnsapiaddget [label = "GET /dns/api/add\n.dns-api-add-get\nhandle-dns-api-add-get"]; } subgraph cluster_urldnsapiaddpost { label = "Add submit"; penwidth = 0; urldnsapi_urldnsapiaddpost [label = "POST /dns/api/add\n.dns-api-add-post\nhandle-dns-api-add-post"]; } subgraph cluster_urldnsapimodifyget { label = "Modify form"; penwidth = 0; urldnsapi_urldnsapimodifyget [label = "GET /dns/api/modify\n.dns-api-modify-get\nhandle-dns-api-modify-get"]; } subgraph cluster_urldnsapimodifypost { label = "Modify submit"; penwidth = 0; urldnsapi_urldnsapimodifypost [label = "POST /dns/api/modify\n.dns-api-modify-post\nhandle-dns-api-modify-post"]; } subgraph cluster_urldnsapideletepost { label = "Delete submit"; penwidth = 0; urldnsapi_urldnsapideletepost [label = "POST /dns/api/delete\n.dns-api-delete-post\nhandle-dns-api-delete-post"]; } subgraph cluster_urldnsapittlget { label = "TTL form"; penwidth = 0; urldnsapi_urldnsapittlget [label = "GET /dns/api/ttl\n.dns-api-ttl-get\nhandle-dns-api-ttl-get"]; } subgraph cluster_urldnsapittlpost { label = "TTL submit"; penwidth = 0; urldnsapi_urldnsapittlpost [label = "POST /dns/api/ttl\n.dns-api-ttl-post\nhandle-dns-api-ttl-post"]; } } } urlmisc_urlmiscbase -> urlmisc_urlmisclocation; urldnsmisc_urldnsmiscbase -> urldnsmisc_urldnsmischeaders; urldnsmisc_urldnsmiscloginget -> urldnsmisc_urldnsmiscloginpost; urldnsapi_urldnsapisearchget -> urldnsapi_urldnsapisearchpost; urldnsapi_urldnsapiaddget -> urldnsapi_urldnsapiaddpost; urldnsapi_urldnsapimodifyget -> urldnsapi_urldnsapimodifypost; urldnsapi_urldnsapittlget -> urldnsapi_urldnsapittlpost; }