ScopeIds

object ScopeIds

The rule for a tenant or owner id, which the starter checks on every path and the domain on a claimed owner: an id is what it displays as. It is not empty, and has no character that shows as nothing or as a blank:

  • whitespace (Unicode spaces included), control and format characters (such as U+200B, U+FEFF, U+00AD, U+2060, U+180E), surrogates, private-use and unassigned code points;

  • and INVISIBLE, invisible characters of other categories: the combining grapheme joiner, the variation selectors, the Mongolian free variation selectors, the Khmer inherent vowels, the Hangul fillers and the braille blank.

Without this rule owner/alice%E2%80%8B would be an owner that reads as alice, and owner/%20 a blank one (Wow before 9.3.0 read a blank one as missing). An id is a user or tenant id, not a display name, so the joiners (ZWJ U+200D, ZWNJ U+200C, format characters) are refused too, although some scripts and emoji sequences use them in text.

Unassigned is decided by the running JDK's Unicode version (Character.getType): a later JDK assigns more code points, so upgrading it only accepts more ids, and an id valid before stays valid. A code point assigned after the JDK's version is refused until the JDK knows it.

Functions

Link copied to clipboard