Diff

mod_export_skeletons/README.md @ 4815:9c2af2146ee2

mod_export_skeletons: Command to aid in analysis of archive contents
author Kim Alvefur <zash@zash.se>
date Thu, 09 Dec 2021 23:48:25 +0100
child 4816:e7d1d68f0279
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_export_skeletons/README.md	Thu Dec 09 23:48:25 2021 +0100
@@ -0,0 +1,41 @@
+---
+summary: Export message archives in sanitized minimal form for analysis
+---
+
+Exports message archives in a format stripped from private information
+and message content.
+
+# Usage
+
+    prosodyctl mod_export_skeletons [options] user@host*
+
+Multiple user JIDs can be given.
+
+Some storage drivers such as [SQL][doc:modules:mod_storage_sql] allows
+exporting all users at once by giving the special username `*`, i.e.
+`prosodyctl mod_export_skeletons \*@example.com`.
+
+`--start=timestamp`
+:	Start of time span to export in [XEP-0082] format
+
+`--end=timestamp`
+:	End of time span to export in [XEP-0082] format
+
+# Output
+
+All content is stripped, leaving only the basic XML structure, with
+child tags sorted.
+
+Top level attributes are given special treatment since they carry
+protocol semantics. Notably the `@to` and `@from` JIDs are replaced by
+symbolic labels to convey what form (bare, full or host) they had. The
+`@id` attribute is replaced with a string of the same length.
+
+## Example
+
+```xml
+<message from='full' id='xxxxxxxxxxxxxxxx' type='chat' to='bare'><body/><x xmlns='jabber:x:oob'><url/></x></message>
+<message from='bare' id='xxxxxxxxxxxxxxxx' type='error' to='full'><error><remote-server-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></message>
+<message from='full' id='xxxxxxxxxxxxxxxx' type='chat' to='bare'><body/><x xmlns='jabber:x:oob'><url/></x></message>
+<message from='full' id='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' type='normal' to='bare'><x xmlns='jabber:x:conference'/></message>
+```