Contents

[edit] Data Store Architecture

The bongo Store is a repository of user data stores which are managed by the bongo Store Agent. Each store is essentially a miniature file system, organized in a hierarchy of collections.

Permissions in the store are governed by Store ACLs, which are simply properties stored using PROPGET and PROPSET.

The Store also understands a relatively simple query language, which can be used to supplement a number of commands with extra specificity. In this regard, you can think of some of the commands - LIST, MESSAGES, etc. - as being akin to SQL queries against a database server.

[edit] Documents

A document can be considered to be a "file" in the store. A document is uniquely identified by its name and by its GUID (which aren't actually globally unique -- see below). A document's fully qualified name can be up to 384 bytes long, and must be a valid utf-8 string.

Documents are typed:

  • Untyped 0x1 An untyped document.
  • Mail 0x2 An email message.
  • Event 0x3 A calendar event, represented in "jcal" format.
  • Address Book Entry 0x4 An address book contact, represented in "jcard" format.
  • Conversation 0x5 A type of document that represents an email conversation.
  • Calendar 0x6 (UNKNOWN: a reference to an external calendar? or does it contain events?)
  • Config 0x7 An agent's configuration, simply a JSON document.

[edit] Collections

A collection is a container of documents and collections. Collections are essentially documents themselves, and are identified by names and GUIDs.

[edit] GUIDs

A GUID is a "Globally Unique IDentifier" for documents that is automatically generated whenever they are created in the store. Currently, GUIDs are not actually globally unique - they are only unique within each data store.

[edit] Flags

Any document or collection in the store has a set of flags associated with it, which is a 32-bit bitfield. The lower 16-bits are specific to a type of document (e.g., mail message, calendar event), the upper 16-bits have the same meaning for any document.

Currently, the only global bits are bits 17 and 16, which indicate the number of stars against a document (and is a simple two-bit value).

The mail flags are Purged (0x1), Seen (0x2), Answered (0x4), Flagged (0x8), Deleted (0x16), Draft (0x32), Recent (0x64), Junk (0x128) and Sent (0x256).

Collection flags are Hierarchy Only (0x1) and Non-subscribed (0x2).

Other types of document currently do not have any flag types defined.

[edit] Session Commands

Some of the information in this protocol specification below may be incomplete or inaccurate. Any help in editing this information and making it better would be greately appreciated.

[edit] AUTH COOKIE

Description: Verifies the user's cookie, and enables user level access for the client.
Syntax: AUTH COOKIE <username> <token> [NOUSER]

If the 'NOUSER' argument is given, the user isn't actually selected. If you're not a store manager client, that is probably not very useful.

[edit] AUTH SYSTEM

Description: Verifies the system password and enables manager level access for the client.
Restrictions: none
Syntax: AUTH SYSTEM <MD5 hash of system password>
Response: none
Results:
  1. 1000 OK
  2. 3242 Bad Authentication
Example:
   auth 0376AF4B57CE88147693730583947830
   1000 OK

[edit] AUTH USER

Description: Verifies the user's password, adds the IDENTITY flag to the client session, and binds the userid to the session. See comments on the AUTH COOKIE command, the two basically do the same thing via different data.
Restrictions:
Syntax: AUTH USER <username> <password> [NOUSER]
Response: none
Results:
  1. 1000 OK
  2. 3010 Invalid Arguments
  3. 3242 Bad Authentication
Example:
   auth user john bongo
   1000 OK

[edit] COOKIE BAKE

Description: Creates a cookie for the user.
Syntax: COOKIE BAKE <timeout>

[edit] COOKIE CRUMBLE

Description: Destroys a cookie.
Syntax: COOKIE CRUMBLE <token>

[edit] QUIT

Description: Causes the server to close the current connection and clean up resources associated with it.
Restrictions: none
Syntax: QUIT
Response: none
Results:
  1. 1000 OK
Example:
   QUIT
   1000 OK Signing Off

[edit] STORE

Description: Binds the session to requested user store. If <storename> is omitted, the session will be unbound from any currently selected store.
Syntax: STORE [<storename>]
Results:
  1. 1000 OK
  2. 3010 Invalid Arguments
  3. 4100 Store not found

[edit] TOKEN

Description: Adds a token to the user session. Tokens are used for access control at the document level.
Syntax: TOKEN <token>

[edit] TOKENS

Description: List the tokens available for the current user.
Syntax: TOKENS

[edit] USER

Description: Binds the session to the requested user. If a user has already been selected, then any user resources (for example, tokens) will be released.
Restrictions: Requires the session to have manager level access.
Syntax: USER <username>
Results:
  1. 1000 OK
  2. 3010 Invalid Arguments
  3. 3241 Requires MANAGE flag
Example:
   USER jane
   1000 OK

[edit] Collection Commands

[edit] COLLECTIONS

Description: Recursively lists the collections tree rooted at <collection>. If no collection is specified, all collections are displayed.
Syntax: COLLECTIONS [<collection>]
Arguments:
<collection> 
Results:
  1. 2001 <collection guid> <type> <flags> <name>
  2. 3011 Invalid GUID
  3. 3242 No store selected.
  4. 4224 Collection doesn't exist

[edit] CREATE

Description: Creates a new collection.
Restrictions: The collection name must be UTF-8.
Syntax: CREATE <collection name> [<collection guid>]
Arguments:
<collection name> 
Designates the name of the collection to create.
<collection guid> 
Backup and Restore utilities can use this argument to recreate a collection that previously existed.
Response: none
Results:
  1. 1000 <collection guid> <create time> Created
  2. 3010 Bad Arguments
  3. 3014 Illegal Name
  4. 3242 No store selected.
  5. 4226 Collection Exists
  6. 4227 GUID Exists
  7. 5005 DB Library Error

[edit] LIST

Description: Lists the documents in a collection.
Syntax: LIST <collection> [R<xx-xx>] [P<proplist>] [M<flags mask>] [F<flags>]
Arguments:
<collection> 
The collection name or guid.
<xx-xx> 
The range of documents to return.
<proplist> 
A list of properties to be displayed for each document.
<flags>, <flags mask> 
If provided, the listing will be restricted to those documents whose masked flags exactly match the provided set.
Response:
2002 <guid> <type> <flags> <imapuid> <store time> <document size> <filename>

[edit] MAILINGLISTS

This definition is divined from what little code uses this function - it could be wrong!

Description: Get a list of mailing list subscriptions
Syntax: MAILINGLISTS <source>
Arguments:
<source> 
The Collection we want to look at
Response:
  1. 2001 <list>
Results:
  1. 1000 OK
Example:

[edit] REMOVE

Description: Removes a collection. All sub-collections and their contents will be removed.
Syntax: REMOVE <collection>
Arguments:
<collection> 
The collection to be removed.
Response: none
Results:
  1. 1000 OK
  2. 3010 Bad Argument
  3. 3242 No store selected.
  4. 4221 Collection shared
  5. 4224 Collection does not exist
  6. 4227 Collection In Use
Example:
   REMOVE PartyCalendar
   1000 OK

[edit] RENAME

Description: Renames a collection. The Collection GUID remains the same. New collections will be created to parent the new name if required.
Restrictions: The Collection can not be under watch or shared.
Syntax: RENAME <collection> <new name>
Arguments:
<collection> 
Designates the collection to rename.
<new name> 
Designates the new name of the collection.
Response: none
Results:
  1. 1000 OK
  2. 3010 Bad Argument
  3. 3242 No store selected.
  4. 4221 Collection shared
  5. 4224 Collection does not exist
  6. 4227 Collection In Use
Example:
   RENAME PartyCalendar SocialCalendar
   1000 OK

[edit] SEARCH

Description: Searches a document or a collection for a text string. For mail items, specific parts of the message can be searched.
Syntax: SEARCH <item> [TEXT|BODY|HEADERS] <query>
Syntax: SEARCH <item> HEADER <header> <query>
Arguments:
<item> 
Document or collection to search
<query> 
What to look for
Response: GUIDs of the documents which match the search query
Results:
  1. 1000 OK
  2. 2001 <guid> <imapid>
  3. 4120 Database locked
  4. 4220 No such guid
  5. 4224 Can't read the document
  6. 5004 Internal database error
Example:

TODO

[edit] WATCH

Description: Puts a watch on the specified collection. Only one collection can be watched at a time. The watch will notify you asynchronously if the collection is renamed, removed, or if its flags are altered.

Asynchronous notifications of events on documents within the collection can be be requested by specifying the event names at the end of the command. Asynchronous notification lines always begin with 6000 and may come before the first command response of any command.

Syntax: WATCH <collection> [DELETED] [FLAGS] [MODIFIED] [NEW]
Arguments:
<collection> 
Designates the collection to watch.
DELETED 
Requests an asynchronous event response when a document in the collection is deleted.
FLAGS 
Requests an asynchronous event response when the flags change for member document.
MODIFIED 
Requests an asynchronous event response when a document in the collection is modified.
NEW 
Requests an asynchronous event response when a new document is stored in the collection.
Response: none
Results:
  1. 1000 OK
  2. 3010 Bad Argument
  3. 3242 No store selected.
  4. 4224 Collection does not exist
Asynchronous Results (received when events happen)
  1. 6000 RENAMED <collection guid>
  2. 6000 REMOVED <collection guid>
  3. 6000 FLAGS <collection guid> <uid> <flags>

When additional notifications are requested in the WATCH, these asynchronous results on documents within the collection can also occur:

  1. 6000 NEW <document guid> <uid>
  2. 6000 DELETED <document guid> <uid>
  3. 6000 MODIFIED <document guid> <uid>
  4. 6000 FLAGS <document guid> <uid> <flags>
  5. 6000 ERROR <document uid> <uid>
Example:
   WATCH /mail/INBOX NEW MODIFIED FLAGS DELETED
   1000 OK
   NOOP
   6000 DELETED 0000000000000015 00000015
   6000 NEW 000000000000001c 0000001c
   6000 FLAGS 000000000000001c 0000001c
   1000 OK
   WATCH /mail/INBOX
   1000 OK
   NOOP
   6000 FLAGS 000000000000000a 0000001c
   1000 OK
   WATCH /mail/INBOX
   1000 OK
   NOOP
   6000 RENAMED 000000000000000a
   1000 OK

[edit] Document Commands

[edit] COPY

Description: Copy a document into the given collection
Syntax: COPY <document> <collection>
Arguments:
<document> 
The document to copy.
<collection> 
The destination collection.

[edit] DELETE

[edit] PURGE

Description: Remove a document. PURGE is a synonym for DELETE.
Syntax: DELETE <document>
Arguments:
<document> 
The document to delete.

[edit] FLAG

Description: Used to retrieve or modify a document's flags.
Syntax: FLAG <document> [[+|-]<value>]
Arguments:
<document> 
The document.
<value> 
The value used to modify the flag. If no value is provided, the flag will remain unchanged. If it is preceded by a plus sign, the new value of the document flag will be equal to (flag | value). If it is preceded by a minus sign, the new value of the document flag will be equal to (flag & ~value). If a value is provided and it is not preceded by a plus or minus sign, flag will be set equal to value.
Results:
  1. 1000 <document flag before> <document flag after>
  2. 4225 Document does not exist
Example:
   FLAG 35200125
   1000 11 11
   FLAG 35200125 +5
   1000 11 15
   FLAG 35200125 -2
   1000 15 13
   FLAG 35200125 -2
   1000 13 13
   FLAG 35200125 7
   1000 13 7

[edit] INFO

Description: Responds with common meta data for the requested document.
Syntax: INFO <document> [P<proplist>]
Arguments:
<document> 
The document to examine.
<proplist> 
A comma separated list of document properties to display.
Response:
2002 <guid> <type> <flags> <uid> <store time> <document size> <filename>
Results:
  1. 1000 OK
  2. 4225 Document does not exist
Example:
   INFO 000000000000000c
   2001 000000000000000c 2 0 0000000c 1139948624 232 bongo-000000000000000c
   1000 OK

[edit] LINK

Description: Links one document to another. These are not like "symlinks"; rather they are used to express some kind of relationship. For example, mail documents are linked to conversation documents to indicate that they are part of that conversation. Any document or collection may be linked to any other. The link is one-way; that is, it is not a bi-directional relationship.
Syntax: LINK <document> <related_document>
Arguments:
<document> 
The document being linked to
<related_document> 
The document we wish to 'link' to the first
Response:
Results:
Example:

[edit] LINKS

Description: List documents which are linked to/from a given document.
Syntax: LINKS <TO|FROM> <document>
Arguments:
<TO|FROM> 
'Direction' of the links we're interested in.
<document> 
the document we're interested in
Response: A (potentially empty) list of documents

[edit] MESSAGES

TODO

Description: Get a list of mail messages which meet certain criteria
Syntax: MESSAGES [Ssource] [H<headerlist>] [Q<query>] [F<flags>] [M<flags mask>] [Rxx-xx] [C<center document>] [T] [P<proplist>]

Arguments:

Response:
Results:
  1. 1000 OK
  2. 3022 Bad Syntax
Example:

[edit] MFLAG

Description: Used to modify multiple documents' flags.
Syntax: MFLAG [[+|-]<value>]
Arguments:
<value> 
The value used to modify the flag, as used in the FLAG command.
Response:
2054 Send Documents
Arguments:
   <document>
   A blank line indicates the end of the list.

This command is OBSOLETE and is removed from current Bongo

[edit] MIME

Description: Returns the MIME structure of the designated document. A 2002 line is returned for every MIME part. A 2003 line is return to mark the end of a part that contains multiple sub-parts. A 2004 line is returned to mark the end of RFC822 Message parts.
Syntax: MIME <document>
Response:
  1. 2002 <type> <subtype> <charset> <encoding> <name> <header start> <header len> <part start> <part size> <part header size> <lines in part>
  2. 2003 Multipart End
  3. 2004 RFC822 End
Results:
  1. 1000 OK
  2. 4225 Document does not exist
Example:
   MIME 35200125ABF06CCD29659ED8630FEE8145F4E3C70000BA
   2002 multipart mixed - - "" 0 821 821 51021 0 0
   2002 text plain US-ASCII 7bit "" 1033 108 1141 146 0 8
   2002 message rfc822 - - "" 1311 32 1343 50499 1459 1078
   2002 multipart alternative - - "" 1311 1491 2802 48989 0 0
   2002 text plain us-ascii 7bit "" 2895 83 2978 7176 0 164
   2002 text html us-ascii quoted-printable "" 10199 94 10293 41498 0 872
   2003 Multipart End
   2004 RFC822 End
   2003 Multipart End
   1000 OK
The above example represents the following structure:
   multipart/mixed
       text/plain
       message/rfc822
           multipart/alternative
               text/plain
               text/html
           end of multipart
       end of message
   end of multipart

[edit] MOVE

Description: Move a document into a collection, and possibly rename it.
Syntax: MOVE <document> <collection> [<filename>]
Arguments:
<document> 
The document to be moved.
<collection> 
The destination collection.
<filename> 
The new filename.
Known Bugs: If a document with <filename> exists, it will be deleted silently.

[edit] MWRITE

Description: Write multiple documents to a collection
Syntax: MWRITE <collection> <type>
Arguments:
<collection> 
The destination collection.
<type>
The type of the new documents.
Response: 2054 Send Documents
Arguments:
<length> [F<filename>] [G<guid>] [T<time created>] [Z<flags>] [L<link document>] [P<proplist>]
A blank line indicates the end of the list.

[edit] PROPGET

Description: Read the value of a property.
Syntax: PROPGET <document> [<proplist>]
Arguments:
<document> 
The document to examine.
<proplist> 
A comma separated list of properties to display
Results:
  1. 2001 <prop> <return size>
<data>
Example:
   PROPGET 0000000000000464 nmap.mail.headersize
   2001 nmap.mail.headersize 4
   1024
   PROPGET 0000000000000465 nmap.mail.headersize
   2001 nmap.mail.headersize 3
   534
In the above example, the number at the end of the 2001 line represents the number of characters on the next line, so that a buffer may be allocated.

The next line contains the actual value of the property.

Properties may have any name, but the Bongo store automatically provides and recognizes some specific ones - see Store Properties.

[edit] PROPSET

Description: Write the value for a property.
Syntax: PROPSET <document> <property name> <length>
Arguments:
<document> 
The document to modify.
<property name> 
The target property.
<property value> 
The length of the property value.
Response: 2002 Send value.

[edit] READ

Description: Display a document's contents.
Syntax: READ <document> [<start> [<length>]]
Arguments:
<document> 
The document to read.
<start> 
The read offset. (default: 0)
<count> 
The number of bytes to read. (default: docsize - offset)
Results:
  • 2001 nmap.document <length>
  • <data>\r\n
Example:
READ /config/manager 10 10
2001 nmap.document 10
: 1, "agent

QUIT

[edit] REPLACE

Description: Replace the contents of a document.
Syntax: REPLACE <document> <length> [R<xx-xx>] [V<version>] [L<link document>]
Arguments:
<document> 
The document to replace.
<length> 
The length of the new data.
<xx-xx> 
The range of bytes to be replaced. By default, the entire document will be replaced.
<version> 
If supplied, the document will not be replaced unless its version matches this number.
<link document> 
If supplied, the new document will be linked to this conversation or calendar.

[edit] UNLINK

Description: Undoes a link created by the LINK command; see LINK for further information
Syntax: UNLINK <document> <related_document>
Arguments:
<document> 
The document linked to
<related_document> 
The document we wish to 'unlink' from the first
Response:
Results:
Example:


[edit] WRITE

Description: Write a document to the store.
Syntax: WRITE <collection> <type> <length> [F<filename>] [G<guid>] [T<timeCreated>] [Z<flags>] [L<link document>] [N]
Arguments:
<collection> 
The destination collection.
<type> 
The type of document to store.
<length> 
The size of the document being stored.
F<filename> 
The file name. If not specified, a unique filename will be generated by the store.
G<guid> 
The document guid.
T<timeCreated> 
The time the document was created
Z<flags> 
Initial flags for the document
L<link document> 
The document's conversation or calendar.
Whether or not to process the document. Setting this flag is mainly of interest to backup/restore programs that understand Bongo, not for general use.
Response: 1000 <GUID> <type>
Results:
  1. 1000 <document guid> <version>
  2. 5221 Free disk space too low
  3. 3015 Document type not allowed
  4. 2002 Send document
  5. 4120 Index currently locked, try later!
  6. 4220 No document with that GUID
  7. 4224 Mailbox doesn't exist
  8. 4226 Unable to parse email
  9. 4226 Unable to parse event
  10. 4228 Can't write to mailbox
  11. 5005 DB library error
  12. 5007 Index library error
  13. 5220 User Quota exceeded
Example:
WRITE /mail/drafts 1 10
2002 Send document.
0123456789
1000 0000000000000019 1

[edit] Delivery Commands

[edit] DELIVER FILE

Description: Deliver a document to recipients from a local file.
Restrictions: Requires the session to have the MANAGE flag. FIXME
Syntax:
  1. DELIVER FILE <type> <sender> <authSender> <filename>
<filename> must be relative to the configured spool directory.
Response:
  1. 2053 Send Recipients
Arguments:
<recipient> <mailbox> <flags>
Blank line denotes end of list
Response:
  1. 1000 OK
  2. 5260 Delivery Failed
Example:
   DELIVER FILE 2 dave@bongo.com dave d123123.msg
   2053 Send Recipients
   cyrus INBOX 0
   1000 OK
   rodney WorkStuff 0 
   1000 OK
   jacob Spam 0
   5260 -14 Quota exceeded
   
   1000 OK

[edit] DELIVER STREAM

Description: Deliver a document to recipients from data sent over the connection.
Restrictions: Requires the session to have the MANAGE flag. FIXME
Syntax:
  1. DELIVER STREAM <type> <sender> <authSender> <count>
  2. (<count> bytes of data)
Response:
  1. 2053 Send Recipients
Arguments:
  1. <recipient> <mailbox> <flags>
  2. Blank line denotes end of list
Response:
  1. 1000 OK
  2. 5260 Delivery Failed <code>
Example:
   DELIVER STREAM 2 dave@bongo.com dave 5043
   (5043 bytes of data)
   2053 Send Recipients
   cyrus INBOX 0
   1000 OK
   rodney WorkStuff 0 
   1000 OK
   jacob Spam 0
   5260 -14 Quota exceeded
   
   1000 OK


[edit] Conversation Commands

[edit] CONVERSATION

List the mail documents associated with a conversation document

Syntax: CONVERSATION <conversation>
Example:
Results:
  1. 1000 OK
  2. 3010 Bad Argument
  3. 3242 No store selected.
  4. 4221 Collection shared
  5. 4224 Collection does not exist
  6. 4227 Collection In Use

[edit] CONVERSATIONS

Summary: Lists the conversations within a collection?
Arguments: CONVERSATIONS S<collection> R<returnindex> P<properties> F<??> M<??> <T??>

<code>returnindex refers to a range of indexes of the items that you want to return (eg 0-15 returns the first 15 items, 10-20 returns items 10 to 20).

Results:
  1. 1000 OK
  2. 3010 Bad Argument
  3. 3022 Syntax error

[edit] ISEARCH

TODO

[edit] Calendar Commands

[edit] CALENDARS

TODO : This command may also be DEPRECATED

Description:
Syntax: CALENDARS [<Fflags>] [<Pproplist>]
Arguments:
Response:
Results:
Example:

[edit] EVENTS

TODO

Description: Get a list of events which meet certain criteria
Syntax: EVENTS [D<daterange>] [C<calendar> | U<uid>] [F<mask>] [Q<query>] [P<proplist>]
Arguments:
Response:
Results:
Example:

[edit] Alarm Commands

[edit] ALARMS

TODO

Description: Get a list of any alarms which go off during a specific time period
Syntax: ALARMS <starttime> <endtime>
Arguments:
Response:
Results:
Example:

[edit] Miscellaneous Commands

[edit] NOOP

Description: Refreshes session timeout and gives the server an opportunity to send asynchronous responses.
Restrictions: none
Syntax: NOOP
Response: none
Results:
1000 OK
Example:
   NOOP
   1000 OK

[edit] TIMEOUT

Description: Get or set the timeout timer for this session
Syntax: TIMEOUT [<timeoutms>]
Arguments:
<timeoutms> The length of time in milliseconds to set the timeout to
Response:
Results:
  1. 1000 OK
  2. 1000 <timeout>
Examples:
 TIMEOUT
 1000 10000
 TIMEOUT 10000
 1000 OK

[edit] Unimplemented Commands

WARNING: most of this section is probably unimplemented.

[edit] CAPABILITY

Description: Lists the protocol extensions supported by this instance of the store
Restrictions: none
Syntax: CAPABILITY
Response:
2001 <private or public extension>
Results:
1000 OK
Example:
   CAPABILITY
   2001 VSCAN Foo Virus Scanner Extension
   2001 BACKUP FooBar Backup Extension
   1000 OK

[edit] CONFIGURATION

Description: Returns configuration data the store agent is currently using.
Restrictions: Requires the session to have the MANAGE flag.
Syntax: CONFIGURATION
Response:
Results:
1000 OK
Example:
   CONFIGURATION
   Document Store Path: /var/bongo/users
   1000 OK

[edit] HELP

Description: Without an argument, the HELP command displays a listing of all NMAP commands. With an argument, the HELP command returns a basic description of the given command.
Restrictions: none
Syntax: HELP [<command name>]
Response:
2001 <command name> | <command description>
Results:
1000 OK
Example:
   HELP
   2001 AUTH SYSTEM
   2001 AUTH USER
   . . .
   2001 VERSION
   1000 OK
   HELP VERSION
   2001 Returns the protocol version.
   1000 OK

[edit] NVER

Description: Alias to the VERSION command.

[edit] QUOTA

Description: Displays the session user's disk usage and disk quota. A "0" for the quota value indicates the user has no disk usage restrictions.
Restrictions: Requires the session to have the IDENTITY flag.
Syntax: QUOTA
Response: none
Results:
1000 <disk space used> <disk quota>
Example:
   QUOTA
   1000 1982365891 2147483647

[edit] USERS

Description: Lists all users that are hosted by the store server.
Restrictions: Requires the session to have the MANAGE flag.
Syntax: USERS
Response:
2001 <username 1>
2001 <username 2>
2001 <username n>
Results:
1000 <disk space used> <disk quota>
Example:
   USERS
   2001 petert
   2001 wskinut
   2001 boc
   2001 boyd
   2001 brady
   2001 dcamp
   2001 dvshelley
   2001 eward
   2001 penduin
   2001 proby
   2001 rlyon
   2001 rprice
   1000 OK

[edit] VERIFY

Description: Validates that a user exists in the system and indicates what servers owns the user's store.
Restrictions: Requires the session to have the MANAGE flag.
Syntax: VERIFY <username>
Response: none
Results:
  1. 1000 <local ip address>
  2. 1001 <remote ip address>
  3. 5244 User does not exist
Example:
   VERIFY cadv
   1000 137.65.47.151
   VERIFY rprice
   1001 151.155.5.202
   VERIFY bogus
   5244 User does not exist

[edit] VERSION

Description: Returns the protocol version.
Restrictions: none
Syntax: VERSION
Response: none
Results:
1000 3.0.0 [comment]
Example:
   VERSION
   1000 OK 3.0.0 debug build 2005-12-20

[edit] Debugging Commands

[edit] REINDEX

[edit] RESET

Description: Resets the current session.