Documentation
¶
Overview ¶
Package generatedid — форма идентификатора, который порождает продукт (задача PRO-Robotech/kaname#908).
Предмет ¶
Продукт чеканит идентификаторы одной общей формы: короткий префикс вида (два — четыре строчных латинских знака), необязательный разделитель `-` или `_` и тело из 17 знаков crockford-base32 в нижнем регистре, без `i`, `l`, `o`, `u` (`usr…`, `sva…`, `sva_…`, `ak-…`, `cag_…`).
Зачем публичный пакет ¶
Форма — предмет двух сторон, и у каждой она решает о доступе:
- страж старта службы: публичный принципал анонимного чтения не вправе иметь эту форму, иначе анонимный токен стал бы токеном настоящей учётки;
- приёмная сторона реестра платформы: форму субъекта, пришедшего в токене, она обязана судить ЭТИМ определением, а не своей копией выражения.
Второе выражение разошлось бы с этим молча, и неверной была бы их разница. Поэтому определение одно, здесь: страж службы читает его отсюда, а потребитель вне модуля обязан подключать пакет пином модуля. Единственность определения в этом модуле держит проба пакета `TestGeneratedIDForm_HasOneHomeInThePublicPackage`.
Чего предикат не утверждает ¶
Совпадение формы — не существование учётки и не её вид: о том и другом судит служба доступа по своим строкам. Формы одного вида (`^usr…`, `^ak-…`) — сужения этой, и предмет их валидаторов свой. Идентификаторы, посеянные продуктом не чеканкой (служебные учётки модулей по имени), этой формы не имеют и предикатом не опознаются.
Index ¶
Constants ¶
const Pattern = `^[a-z]{2,4}[-_]?[0-9a-hjkmnp-tv-z]{17}$`
Pattern — объявленная форма порождённого идентификатора: текст для отказа, который называет форму, и выражение, которым судит Matches.
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.