App Context API for PubNub Ruby SDK
App Context provides easy-to-use, serverless storage for user and channel data you need to build innovative, reliable, scalable applications. Use App Context to easily store metadata about your application users and channels, and their membership associations, without the need to stand up your own databases.
PubNub also triggers events when object data is set or removed from the database. Clients can receive these events in real time and update their front-end application accordingly.
User
Get Metadata for All Users
Returns a paginated list of UUID Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All UUID Metadata
you can use the following method(s) in the Ruby V4 SDK:
get_all_uuid_metadata(
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_all_uuid_metadata(
limit: 5,
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:metadata => [
{
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
],
show all 24 linesGet User Metadata
Returns metadata for the specified UUID, optionally including the custom data object for each.
Method(s)
To Get UUID Metadata
you can use the following method(s) in the Ruby V4 SDK:
get_uuid_metadata(
uuid: uuid,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier for which associated metadata should be fetched. Default: configured PubNub client uuid . |
include | Object | Optional | { custom: true } | Additional information which should be included in response. Available options:
|
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_uuid_metadata(include: { custom: true }) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
},
@status = {
:code => 200
show all 17 linesSet User Metadata
Set metadata for a UUID in the database, optionally including the custom data object for each.
Method(s)
To Set UUID Metadata
you can use the following method(s) in the Ruby V4 SDK:
set_uuid_metadata(
uuid: uuid,
metadata: metadata,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier with which new metadata should be associated. Default: configured PubNub client uuid . |
metadata | Object | Yes | Metadata information which should be associated with UUID . Available options:
| |
include | Object | Optional | { custom: true } | Additional information which should be included in response. Available options:
|
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.set_uuid_metadata(
uuid: 'mg',
metadata: { name: 'magnum', custom: { XXX: 'YYYY' } },
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
},
@status = {
:code => 200
show all 17 linesRemove User Metadata
Removes the metadata from a specified UUID.
Method(s)
To Remove UUID Metadata
you can use the following method(s) in the Ruby V4 SDK:
remove_uuid_metadata(
uuid: uuid,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier for which associated metadata should be removed. Default: configured PubNub client uuid . |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.remove_uuid_metadata(uuid: 'mg') do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@status = {
:code => 200,
:operation => :remove_uuid_metadata,
:category => :ack,
:error => false,
# [...]
},
# [...]
>
Channel
Get Metadata for All Channels
Returns a paginated list of Channel Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All Channel Metadata
you can use the following method(s) in the Ruby V4 SDK:
get_all_channels_metadata(
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_all_channels_metadata(
limit: 5,
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:metadata => [
{
:id => "rb_channel1",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
},
# {...}
],
:totalCount => 2,
show all 23 linesGet Channel Metadata
Returns metadata for the specified Channel, optionally including the custom data object for each.
Method(s)
To Get Channel Metadata
you can use the following method(s) in the Ruby V4 SDK:
get_channel_metadata(
channel: channel,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel for which associated metadata should be fetched. | |
include | Object | Optional | { custom: true } | Additional information which should be included in response. Available options:
|
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_channel_metadata(
channel: 'channel',
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "channel",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
}
},
@status = {
:code => 200
}
>
Set Channel Metadata
Set metadata for a Channel in the database, optionally including the custom data object for each.
Method(s)
To Set Channel Metadata
you can use the following method(s) in the Ruby V4 SDK:
set_channel_metadata(
channel: channel,
metadata: metadata,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel with which new metadata should be associated. | |
metadata | Object | Yes | Metadata information which should be associated with channel . Available options:
| |
include | Object | Optional | { custom: true } | Additional information which should be included in response. Available options:
|
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.set_channel_metadata(
channel: 'channel',
metadata: { name: 'some_name', custom: { XXX: 'YYYY' } }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "channel",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
}
},
@status = {
:code => 200
}
>
Remove Channel Metadata
Removes the metadata from a specified channel.
Method(s)
To Remove Channel Metadata
you can use the following method(s) in the Ruby V4 SDK:
remove_channel_metadata(
channel: channel,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel with which the metadata should be removed. | |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.remove_channel_metadata(channel: 'channel') do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@status = {
:code => 200,
:operation => :remove_channel_metadata,
:category => :ack,
:error => false,
# [...]
},
# [...]
>
Channel Memberships
Get Channel Memberships
The method returns a list of channel memberships for a user. This method doesn't return a user's subscriptions.
Method(s)
To Get Memberships
you can use the following method(s) in the Ruby V4 SDK:
get_memberships(
uuid: uuid,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier for which memberships in channels should be fetched. Default: configured PubNub client uuid . |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_memberships(
uuid: 'mg',
include: { count: true, custom: true, channel_metadata: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-identifier1",
:name => "Channel1",
:description => nil,
# {...}
},
:custom => { "membership-custom" => "custom-data-1" },
:updated => <Date>,
:eTag => "AYbepevg39XeDA"
},
show all 26 linesSet Channel Memberships
Set channel memberships for a UUID.
Method(s)
To Set Memberships
you can use the following method(s) in the Ruby V4 SDK:
set_memberships(
uuid: uuid,
channels: channels,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier for which memberships in channels should be set. Default: configured PubNub client uuid . |
channels | Array | Yes | List of channels for which metadata associated with each of them in context of UUID should be set. Each entry is dictionary with channel and optional custom fields. custom should be dictionary with simple objects: String and Integer . | |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.set_memberships(
uuid: 'mg',
channels: [
{ channel: 'channel-1' }
],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-1",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesRemove Channel Memberships
Remove channel memberships for a UUID.
Method(s)
To Remove Memberships
you can use the following method(s) in the Ruby V4 SDK:
remove_memberships(
uuid: uuid,
channels: channels,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
uuid | String | Optional | Client UUID | Identifier for which memberships in channels should be removed. Default: configured PubNub client uuid . |
channels | Array | Yes | List of channels from which UUID should be removed as member . | |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.remove_memberships(
uuid: 'mg',
channels: [ 'channel-1' ],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-2",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesChannel Members
Get Channel Members
The method returns a list of members in a channel. The list will include user metadata for members that have additional metadata stored in the database.
Method(s)
To Get Channel Members
you can use the following method(s) in the Ruby V4 SDK:
get_channel_members(
channel: channel,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel from which members should be fetched. | |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.get_channel_members(
channel: 'channel-1',
include: { count: true, custom: true, uuid_metadata: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members => [
{
:uuid => {
:id => "uuid-identifier1",
:name => "uuid1",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:updated => <Date>,
:eTag => "AYfwuq+u+4C01gE",
# {...}
},
show all 30 linesSet Channel Members
This method sets members in a channel.
Method(s)
To Set Channel Members
you can use the following method(s) in the Ruby V4 SDK:
set_channel_members(
channel: channel,
uuids: uuids,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel for which members should be set. | |
uuids | Array | Yes | List of UUIDs for which metadata associated with each of them in context of channel should be set. Each entry is dictionary with UUID and optional custom fields. custom should be dictionary with simple objects: String and Integer . | |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.set_channel_members(
channel: 'channel',
uuids: [
{ uuid: 'uuid1' }
],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members=>[
{
:uuid => {
:id => "mg2",
# {...}
},
:custom => nil,
:updated=><Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesRemove Channel Members
Remove members from a Channel.
Method(s)
To Remove Channel Members
you can use the following method(s) in the Ruby V4 SDK:
remove_channel_members(
channel: channel,
uuids: uuids,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channel | String | Yes | Name of channel from which members should be removed. | |
uuids | Array | Yes | List of UUIDs which should be removed from channel's list. | |
sort | Array | Optional | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. | |
include | Object | Optional | { count: true } | Additional information which should be included in response. Available options:
|
filter | String | Optional | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here | |
start | String | Optional | Previously-returned cursor bookmark for fetching the next page. | |
end | String | Optional | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. | |
limit | Integer | Optional | 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync | Boolean | Optional | false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback | Lambda accepting one parameter | Optional | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Basic Usage
pubnub.remove_channel_members(
channel: 'channel',
uuids: [ 'mg1' ],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members=>[
{
:uuid => {
:id => "uuid-identifier",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesApp Context Filtering Language Definition
The filtering language for App Context is similar to the stream filtering language.
Note the following:
Date/time properties, such as
updated
, must be compared to valid date/time strings formatted according to ISO 8601.The LIKE operator supports wildcards denoted by the
*
character. A wildcard matches any sequence of arbitrary Unicode characters, including the empty sequence. The literal asterisk is matched when escaped using the backslash (\
) character.Values used with LIKE must be properly encoded just like any other string value. Thus, in order to escape an asterisk, the raw value must contain
\\*
.The entire expression must be properly URL-encoded when used in the query string.
Custom property filtering
You can't filter by custom properties.
<expression> ::= <and_expression> ( "||" <and_expression> )*
<and_expression> ::= <binary_condition> ( "&&" <binary_condition> )*
<binary_condition> ::= "!" <binary_condition> | "(" <expression> ")" | <relational_condition>
<relational_condition> ::= <property_path> <relational_operator> <value>
<property_path> ::= <property_name> ( "." <property_name> )*
<property_name> ::= <identifier> | "[" <string> "]"
<value> ::= <string> | <number> | "true" | "false" | "null"
Tokens
<identifier> ::= <letter> | "$" | "_" ( <letter> | "$" | "_" | <digit> )*
<relational_operator> ::= "==" | "!=" | "<=" | ">=" | "<" | ">" | "LIKE"
<string> ::= <double_quote> ( "\" <double_quote> | "\" <special_char>
| "\" "u" <hex_digit> <hex_digit> <hex_digit> <hex_digit>
| <unicode_char> - <double_quote> - "\" )* <double_quote>
show all 26 linesSample object filtering operations
The following date/time comparison returns results that were modified on or after August 31st, 2019 (UTC):
updated >= "2019-08-31T00:00:00Z"
The following wildcard expression returns results whose name starts with the letter X:
name LIKE 'X*'
The following escaped wildcard expression returns results whose name contains an asterisk:
name LIKE '*\\**'