Protocol

The server offers a RESTful HTTP interface secured by HTTPS.

Authentication

  1. Client aquires client certificate from certificate store
  2. Client initiates secured HTTPS connection to localhost port 12984
  3. Server authenticates client by client certificate. If the client certificate is not in the allowed list, server prompts user to allow or deny the client
    1. If user denies the client, the server aborts the connection
    2. If user allows the client, the client certificate is added to the allowed list and the connection is authenticated
  4. Client sends requests

RESTful API

The server expects and returns data formatted with JSON.

Get

Returns entry identified by uuid

Uri: /entry/{uuid}

Method: GET

Returns the entry object.

Update

Updates existing entry identified by uuid

Uri: /entry/{uuid}

Method: PUT

Returns the updated entry object.

Delete

Deletes entry identified by uuid

Uri: /entry/{uuid}

Method: DELETE

If the delete is successful, you get the following return.

DescriptionType
If the delete succeededBoolean

Create

Creates new entry.

Uri: /entry

Method: POST

Parameters:

NameDescriptionTypeRequired
GroupNameGroup name. If not set use root groupStringNo
EntryName/Value pairs of new entryEntryYes

Returns the newly created entry object.

List

List entries

Uri: /entry/list

Method: POST

Parameters:

NameDescriptionTypeRequired
querysearch queryQuery ObjectYes

Returns array of matching entries.

Types

Entry Object

NameDescriptionType
Uuidunique id of entryUuid encoded as hex string
UserNameUserNameString
PasswordPasswordString
TitleTitleString
NotesNotesString
URLUrlString

And any other variable fields of the entry.

Query Object

NameDescriptionTypeRequired
ComparisonModeNumberNo
ExcludeExpiredBooleanNo
RegularExpressionBooleanNo
SearchInGroupNamesBooleanNo
SearchInNotesBooleanNo
SearchInOtherBooleanNo
SearchInPasswordsBooleanNo
SearchInTagsBooleanNo
SearchInTitlesBooleanNo
SearchInUrlsBooleanNo
SearchInUserNamesBooleanNo
SearchInUuidsBooleanNo
SearchStringStringYes (for Search only)