Merge remote branch 'smcv/ready/transient-recentchanges'
[ikiwiki] / doc / plugins / graphviz.mdwn
1 [[!template id=plugin name=graphviz author="[[JoshTriplett]]"]]
2 [[!tag type/widget]]
3
4 This plugin provides the [[ikiwiki/directive/graph]] [[ikiwiki/directive]].
5 This directive allows embedding [graphviz](http://www.graphviz.org/) graphs in a
6 page.
7
8 Security implications: graphviz does not seem to have any syntax exploitable to
9 perform file access or shell commands on the server.  However, the graphviz
10 plugin does make denial of service attacks somewhat easier: any user with edit
11 privileges can use this plugin to create large files without the need to send
12 large amounts of data, allowing them to more quickly fill the disk, run the
13 server out of memory, or use up large amounts of bandwidth.  Any user can
14 already do these things with just the core of ikiwiki, but the graphviz plugin
15 allows for an amplification attack, since users can send less data to use large
16 amounts of processing time and disk usage.
17
18 [[!if test="enabled(graphviz)" then="""
19 Some example graphs:
20
21 [[!graph src="a -> b -> c; a -> b;"]]
22 [[!graph src="a -- b -- c -- a;" prog="circo" type="graph"]]
23 """]]
24
25 This plugin uses the [[!cpan Digest::SHA]] perl module.