Mike Cannon-Brookes: I know a few people have mentioned addition to the existing Confluence XML-RPC/SOAP remote API, so let's add them all to this page.
These are rough methods for things that might be wanted, the arguments are by no means fixed yet.
Space Management
void grantSpacePermission(String token, String spaceKey, String what, String userOrGroupIdentifier) - grants a specific permission (read, comment, modify, admin) for the specified principal (user or group).
void denySpacePermission(String token, String spaceKey, String what, String userOrGroupIdentifier) - denies a specific permission (read, comment, modify, admin) for the specified user or group.
Discussion
The other thing most projects want to do is to integrate Confluence into our release build process so that we can export HTML or PDF to include in the release distribution or to deploy on the main website. (Personally I would like to export to XML so it seems stupid not to include that functionality too while we're at it.)
- Base64 exportPage(String token, String page, String format) - exports page (and subpages) in specified format (XML, PDF or HTML) returning the base64 encoded binary content.
If XML-RPC is flaky about handling large binary stuff an option would be to put the exported thing on the actual server (in your home-directory for example) where it can be fetched using a more stable protocol (scp, for example):- void exportPage(String token, String page, String format, String serverPath) - exports page putting the file at the specified path on the server that Confluence is installed.
That's about it for now.
The user/space management additions look good. As for the exportPage i dont quite see the point.
why not use confluence as the presentation layer for your site ?
you can generate the content using the API , all that is perhaps missing is marking a page a generated and therefore non editable....
Well, as I said: we want to be able to suck out the documentation out of Confluence so that we can distribute it as part of a release of one of our projects. I know it's a bit trendy to not co-distribute documentation with an open-source projects distribution, but a lot of people still like to get one. If you're for example on a plane, a hotel room, or whatever. Personally I get kinda frustrated when documentation isn't included in a distribution.
- Jon Tirsen
A lot of these funtions have been migrated over to the actual API now. I'll keep this page open a space to discuss more methods to add before they are actually added.- Mike Cannon-Brookes
Request: Fine-grained editing of the attributes of a page, for example, who edited it and the time/date. This is important for writing wiki-to-wiki converters. My current workaround to do this is to add the page via API, then directly modify the SQL database to fixup the usernames and edit timestamps. Which leads to my next request....
Request: API call for ClearAllCaches.... When modifying the SQL database directly, the in memory cached information doesn't get updated. My current workaround is to restart Confluence.
Request: Per user permissions on use of the API.

Comments (3)
Aug 31, 2004
Stefan Kleineikenscheidt says:
Jon, Zohar, i'm currently implementing a Maven Confluence Plugin. This plugin re...Jon, Zohar,
i'm currently implementing a Maven Confluence Plugin. This plugin retrieves pages from Confluence (based on the project's navigation.xml) and generates XDoc files. From whereon Maven's XDoc or PDF plugins can take over. The plugin is not ready for prime time yet, but i will try to get a preview working on the weekend.
Feel free to email me, if you are interested.
-Stefan
Oct 30, 2006
Garnet R. Chaney says:
Someone should create a link fromSomeone should create a link from http://confluence.atlassian.com/display/DOC/Remote+API+Specification to this page, so it's easier to find this page.....
Oct 30, 2006
Garnet R. Chaney says:
Ooops, the above demonstrates the ever present phantom nonbreak space that gets ...Ooops, the above demonstrates the ever present phantom non-break space that gets added to the end of URLs cut and pasted into the wysiwyg editor. Link s/b http://confluence.atlassian.com/display/DOC/Remote+API+Specification