Implement short entity IDs (RFD 69)
Implement db/short-id as a first-class entity attribute per RFD 69 (PR #113).
Scope
- Short-id allocation on entity create — Take last 3 chars of Base58 portion of
db/id, check global uniqueness, grow by 1 char on collision. Random Base58 fallback for entities without high-entropy IDs (e.g.http_route). - Global uniqueness constraint —
db/id,db/name, anddb/short-idshare a single uniqueness namespace. No value can appear across more than one entity. - Extend
db/refresolution — Resolve refs by checkingdb/id→db/name→db/short-id. Reference storage always uses fulldb/id. - Display helpers —
BriefId(entity)(shortest: short-id → name → id) andFriendlyId(entity)(most readable: name → short-id → id). - CLI output updates — Default table output uses short-ids.
--verbose/-vshows fulldb/id. - Boot-time migration — Backfill
db/short-idfor existing entities in batched etcd transactions (50-100 per txn). Non-blocking, no-op on subsequent boots.
Out of scope (follow-on)
- Auto-generated
db/namefor unnamed entities (fun names like "keen-finch") - Converting legacy ID formats to Base58