General

Developers

Legal

The Pinefore Query Engine

Almost all UI for Pinefore surrounds the query engine. The query expression is specified in the URL, like where=<expr>.

The most basic usage of the query engine is <col><oper><val>. Different expressions work on different columns.

For instance, &where=title=hello, or where=public.

Parentheses can be used to group expressions. Expressions are joined with + for AND and | for logical OR. For instance, where=(title=hello+desc=world)|tags=tag1. You must use exclusively use + or | in a group.

You can also use ! for NOT. For instance, where=!(title=hello+desc=world)|tags=tag1.

If you wish, you may view the implementation here

Pins

TypeColumnsNotes
Texttitle, descText types may be quoted. Please ensure the string is URL encoded. To use the following chars: +|&(), wrap the entire string in '
DatedateDates must be in the format YYYY-MM-DD
Number
Boolprivate, public, read, unreadTo represent true, omit the expr and value. For instance, just state private.
Text[]tagsText arrays must be in the format tag1,tag2,tag3. Commas mean AND. = denotes strict equality.

Notes

TypeColumnsNotes
Textcolour, url, domain

Feeds

The filter engine only works on the /posts endpoint, not on the feeds list. This is because the feeds list is short.

TypeColumnsNotes
Numberfeed_id
Text[]tags

Expressions

ExpressionDescription
=Strict equality, unless in the case of text
==Strict equality for text
!=Not equal
>Greater than
>=Greater than or equal
<Less than
<=Less than or equal
^=Starts with (use !(col^=...) to invert)
$=Ends with

Implementation Notes

!$&'()*+,-./:;=?@_~ are valid.

"<>[\]^{|} are not valid HOWEVER chrome and firefox do not encode \^{|}[] (and the backtick)

Browsers encode '