Valid Channel Names


What are the complete valid channel names or characters?
It says here :

Valid channel names consist of text letters [A–Z, a–z], digits [0–9], and a few special characters [= + / . , _ @]. The empty string is not allowed. The special channel name * denotes all channels. Channel names are compared literally—the comparison is case and diacritical sensitive.

Currently we’ve tried dash and it’s working - no issues encounterred, but it’s not included in the documentation.

We’ve also tried channels with double colon (ex. USER::uuidtestID ) as we’ve seen in other couchbase tutorials but with issues encounterred:

  1. in ios, we can’t pull all data.
  2. in android, for example, we have three types of documents. user, distributor,and book. we can pull all data from user and distributor, but we can’t pull the documents with book type. So for book channel,we just remove the double colon.

Can we have all characters that can be use as channel?
Thanks :slight_smile:

One for you @andy :slight_smile: If there’s something missing here, the documentation will need to get updated.

For Sync Gateway the only invalid character that is checked for in a channel name is ‘,’ (comma).

The empty string “” is also regarded as an invalid channel name.

The following valid names are taken from out unit tests:

"*", "**", "a", "a ", "a b", "a*b", "FOO", "123", "-z", "foo_bar", "Éclær", "z7_", "!", "Z∫•", "*!"

All other channel names are treated as valid.

I don’t know if any of the CBL platforms have additional restrictions.