Skip to main content

Specifier Syntax

Specifiers are objects which specify schema or data elements.

In general a specifier is an object with a type property indicating the type of the specifier. Some specifiers provide a shorthand version by substituting a different JSON data type.

Common

There are several common specifiers used by multiple components.

All

Specifies all elements in the current context (for example, as a records specifier all would include all records in the selected database).

Property Value
type "all"

Example

{ "type": "all" }

ID

Specifies an element by numeric ID. The value is provided directly as a JSON number.

Example (JSON number)

123

Name

Specifies an element by name. The value is provided directly as a JSON string.

Example (JSON string)

"foo"

Where

Specifies element(s) meeting a condition provided by an expression.

The source against which the expression is used depends on the context, but in general can be represented as SELECT [elements] FROM [source] WHERE [expression], where source is the table containing the element.

Property Value
type "where"
where expression

Array

Specifies elements using an array of singular specifiers. The value is provided directly as a JSON array.

The types of the individual specifiers depend on the element, but in general unless otherwise noted all singular specifier types for the element may be used. Specifier types may also be intermingled.

Example (JSON array)

[ 123, "foo", {"type": "where", "where", "..."} ]

Schema Elements

Groups

Specifies one or more groups. Group specifiers are also valid groups specifiers.

Group

Specifies a single group.

Databases

Specifies one or more databases. Database specifiers are also valid databases specifiers.

Database

Specifies a single database.

Fields

Specifies one or more fields. Field specifiers are also valid fields specifiers.

Field

Specifies a single field.


Walls

Specifies one or more walls. Wall specifiers are also valid walls specifiers.


Wall

Specifies a single wall.

Group Wall

Specifies the wall of single group.

Property Value
type "group"
group group specifier

Example

{
 "type"  : "group",
 "group" : "foo"
}

Database Wall

Specifies the wall of single database.

Property Value
type "database"
database database specifier

Example

{
 "type"     : "database",
 "database" : "foo"
}

Record Wall

Specifies the wall of single record.

Property Value
type "record"
database database specifier
record record specifier

Example

{
 "type"     : "database",
 "database" : "foo",
 "record"   : 123
}

User Wall

Specifies the wall of single user.

Property Value
type "user"
user user specifier

Example

{
 "type" : "user",
 "user" : "foo"
}

Data Elements

Records

Specifies a set of records in a single database. Record specifiers are also valid records specifiers.


Record

Specifies a single record in a database.

Key

Specifies a single record by a set of key value(s).

{ "type" : "key", "key" : <[[XINA API :: Data Syntax#Fields|fields]]> }

Each key must specify a non-null value for each key field of the database.

Posts

Specifies a set of posts. Post specifiers are also valid posts specifiers.


Post

Specifies a single post.

Administrative

Users

Specifies a set of users. User specifiers are also valid users specifiers.


User

Specifies a single user. Note that name in this case refers to the username, not the user's full name.


Group Privileges

Specifies a set of group privileges.


Group Privilege

Specifies a single group privilege as a JSON string. The valid group privileges are:

  • "select"
  • "post"
  • "reply"
  • "alter"
  • "grant"

Database Privileges

Specifies a set of database privileges.


Database Privilege

Specifies a single database privilege as a JSON string. The valid database privileges are:

  • "select"
  • "post"
  • "reply"
  • "update"
  • "insert"
  • "trash"
  • "delete"
  • "lock"
  • "alter"
  • "grant"