What an address book holds
A book is the join of three things:- Identity. A
guidthat identifies the book, a displayname, and the owning account, surfaced in the list as the owner’semail. The owner column shows—when no email is resolved for the owning account. - Peers. Zero or more peer entries. Each carries a
peer_id, and optionally ahostname, analias, aplatform, a list oftags, and anupdated_attimestamp. - Tags. The book’s own tag vocabulary, returned as a separate
tagsarray of tag objects with aname. This is the set of tags defined on the book, independent of which peers currently use them — which is why a book can report a tag count larger than the number of tags visible in the peer rows.
<n> peers · <n> tags and renders
the book’s tag vocabulary as chips beside the title.
Personal vs shared books
Every row carries a booleanpersonal flag, rendered in the Kind
column:
A personal book is created implicitly: the first time a user opens the
address book inside QuickDesk, a personal book appears for that account.
That is why a freshly provisioned tenant shows no rows at all — no user has
opened the feature yet — rather than showing empty placeholder books.
The Kind column is the only distinction the console draws between the
two. Both kinds expose the same fields and the same detail view.
How a peer entry is populated
The console does not create peer entries. They arrive from QuickDesk clients and are displayed as stored:
The
peer_id is the stable key — it is the React key for the row and the
fallback label — so it is always present. hostname, alias and
platform are all optional and each renders a dash independently when
missing. A peer whose hostname has never been reported therefore shows the
peer_id twice: once as the primary label, once as the subtitle.
updated_at tracks the peer entry, not the book. Use it to tell a
directory that clients still refresh from one that was populated once and
abandoned.
Tagging peers
Tags exist at two levels, and the detail view shows both:- Book-level tags — the
tagsarray fromaddressBooks.detail, rendered next to the book title. This is the vocabulary available within the book. - Peer-level tags — the
tagsarray on each peer, rendered in the Tags column of that peer’s row.
What the operator console can and cannot change
The address books screen is a read-only operator view. Its only interaction is selection: clicking a row in the list sets it as the selected book and renders the detail card below. There are no create, rename, delete, tag or reassign controls on this screen. Specifically, from this console you cannot:- create or delete an address book,
- change a book’s name, owner, or personal/shared kind,
- add, edit or remove a peer entry,
- set or clear a peer’s alias, hostname or platform,
- add or remove tags at either the book or peer level.
Retention and deletion
A book persists independently of its contents:addressBooks.list returns
rows whose peers count is zero, and the detail view renders an Empty
address book state for them rather than hiding the book. An empty book is
a normal state — typically a personal book created when a user first opened
the feature, before they saved any peer.
Removing a book is not an operator-console action. Because personal books
are created on first use, deleting one from the underlying account does not
prevent it from reappearing the next time that user opens QuickDesk’s
address book.
Related
- Telemetry — where per-tenant operational data is emitted
- Authentication — how console and client credentials are scoped

