mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-28 06:32:32 +02:00
* Updated the 'Rivendell Notification Protocol' API document. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
334 lines
7.9 KiB
XML
334 lines
7.9 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<article xmlns="http://docbook.org/ns/docbook" version="5.0">
|
|
<info>
|
|
<title>Rivendell Notification Protocol</title>
|
|
<author>
|
|
<personname>
|
|
<firstname>Fred</firstname>
|
|
<surname>Gleason</surname>
|
|
<email>fredg@paravelsystems.com</email>
|
|
</personname>
|
|
</author>
|
|
</info>
|
|
|
|
<sect1 xml:id="overview">
|
|
<title>Overview</title>
|
|
<para>
|
|
This defines the IP protocol used to notify Rivendell components of
|
|
changes to the state of database objects. Messages are send by means
|
|
of multicast UDP packets to port 20539.
|
|
</para>
|
|
<para>
|
|
Update messages are textual, formatted as follows:
|
|
</para>
|
|
<para>
|
|
NOTIFY <replaceable choice='req'>keyword</replaceable>
|
|
<replaceable choice='req'>action</replaceable>
|
|
<replaceable choice='req'>id</replaceable>
|
|
</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
<replaceable>keyword</replaceable>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
The object type to which the message pertains.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
<replaceable>action</replaceable>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
The action being reported. The following actions are defined:
|
|
</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
ADD
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
The referenced object has just been added to the database.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
DELETE
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
The referenced object has just been deleted from the database.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
MODIFY
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
The reference object has just been modified in the database.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
<replaceable>id</replaceable>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Unique id of the object.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="sect.object_types">
|
|
<title>Object Types</title>
|
|
<para>
|
|
The following object types are defined:
|
|
</para>
|
|
<sect2 xml:id="sect.object_types.cart">
|
|
<title>Carts</title>
|
|
<table xml:id="table.object_types.carts" frame="all" pgwide="0">
|
|
<title>Cart Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>CART</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>CART.NUMBER</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>Unsigned Integer</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::CartType [1]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.log">
|
|
<title>Logs</title>
|
|
<table xml:id="table.object_types.logs" frame="all" pgwide="0">
|
|
<title>Log Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>LOG</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>LOGS.NAME</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>String</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::LogType [2]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.pypad">
|
|
<title>Pypad Instances</title>
|
|
<table xml:id="table.object_types.pypad" frame="all" pgwide="0">
|
|
<title>Pypad Instance Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>PYPAD</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>PYPAD_INSTANCES.ID</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>Integer</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::PypadType [3]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.dropbox">
|
|
<title>Dropbox Instances</title>
|
|
<table xml:id="table.object_types.dropbox" frame="all" pgwide="0">
|
|
<title>Dropbox Instance Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>DROPBOX</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>DROPBOXES.ID</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>Integer</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::DropboxType [4]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.catch_event">
|
|
<title>RDCatch Event Instances</title>
|
|
<table xml:id="table.object_types.catch_event" frame="all" pgwide="0">
|
|
<title>RDCatch Event Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>CATCH_EVENT</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>RECORDINGS.ID</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>Integer</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::CatchEventType [5]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.feed_item">
|
|
<title>RSS Feed Items</title>
|
|
<table xml:id="table.object_types.feed_item" frame="all" pgwide="0">
|
|
<title>RSS Feed Item Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>FEED_ITEM</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>PODCASTS.ID</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>Unsigned Integer</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::FeedItemType [6]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="sect.object_types.feed">
|
|
<title>RSS Feeds</title>
|
|
<table xml:id="table.object_types.feed" frame="all" pgwide="0">
|
|
<title>RSS Feed Fields</title>
|
|
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
|
<colspec colname="Field" colwidth="2.0*"/>
|
|
<colspec colname="Value" colwidth="2.0*"/>
|
|
<tbody>
|
|
<row>
|
|
<entry>Field</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Keyword</entry>
|
|
<entry>FEED</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Database Field</entry>
|
|
<entry>FEEDS.KEY_NAME</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Id Data Type</entry>
|
|
<entry>String</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RDNotification::Type Value</entry>
|
|
<entry>RDNotification::FeedType [7]</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
</article>
|