Проекты
Здесь создаются проекты и живут их учетные данные: каждый проект несет окружения Live и Test, у каждого свой ключ приема и секрет подписи. Ротация идет с льготным окном, чтобы деплой успел, а секрет показывается ровно один раз, в момент выпуска.


The grid
Each row is one project: its name, its identifier chip, which environments it carries, a masked glimpse of its ingest key and when it was made. The Active and Archived tabs split the population, the search narrows by name, and New project opens a dialog that creates the project and reveals both credentials for Live and Test in the dialog itself: the ingest keys, which stay readable on the Messenger Install tab, and the signing secret, which is shown only there.
Renaming and archiving live on the row. Archiving asks for the project identifier to be typed back, because an archived project stops accepting traffic; the Archived tab restores.
Opening a project


Selecting a row opens the project: a card for the environment the console is in, carrying both credentials labelled. Deliberately not both cards at once: showing the Test key while working in Live is a mix-up waiting to happen, so the other environment's card appears by switching environment. The ingest key is what SDKs send events with; rotating it offers a grace window (immediately, one hour, a day or a week) during which the old key still ingests, so a fleet mid-deploy does not drop events. The signing secret is what the Messenger's identity verification signs with; its action reads Create until one exists and Rotate after. Either mint prints the new value exactly once, and a replaced secret says it replaced one, so an accidental rotation is visible before it bites.
Объединение посетителя с человеком
На карточке проекта, по одному переключателю на окружение: сохранять активность до входа. Включено, и активность человека до входа остаётся связанной с ним, а не засчитывается как отдельный посетитель. Он начинает выключенным, и читает его воркер состояния, а не браузер, поэтому что бы ни отправил SDK, для проекта, который его не выбрал, объединение не происходит никогда. Выключение останавливает следующее объединение и не разъединяет ничего уже объединённого. Участник без права записи в проект видит переключатель в том состоянии, в каком тот есть, и не может его сдвинуть.
Копирование конфигурации
Всё, что вы настраиваете в одной среде, можно скопировать в любую другую среду любого проекта этого рабочего пространства, одной операцией сразу в несколько мест назначения. Пункт Копировать конфигурацию на странице «Проекты» открывает диалог пустым; пункт Копировать в… на когорте, флаге, эксперименте, доске, рабочем процессе или подключении открывает его с уже отмеченным объектом. Выберите в дереве, что копировать (вид забирает всё, что под ним, а фильтр сужает список), выберите куда, затем просматривайте места назначения по одному: каждый объект сообщает, будет ли он создан, перезаписан, останется без изменений, нуждается в том, чего в месте назначения нет (добавьте это или исключите объект), либо отклонён, а перезапись показывает каждое изменяемое поле до того, как что-либо будет записано. Переключатели (переключатель выдачи флага, включение и выключение рабочего процесса, включённость мессенджера, состояние запуска эксперимента, переключатель активности когорты) переносятся только тогда, когда в обзоре включено Копировать и переключатели. Место назначения, требующее проверки, превращает свои флаги в запросы на изменение. Каждое место назначения применяется само по себе, поэтому один отказ никогда не задерживает остальные.
Where this meets the API
What the keys are for is the Keys guide. On the wire: the listing is the projectGroups query, creation and lifecycle are createProject, renameProject and archiveProject, the credentials rotate through rotateProjectKey and rotateSigningSecret, and the Identity switch reads identityLinkEnabled and writes setIdentityLinkEnabled (GraphQL reference). The ingest key authenticates event ingestion; the signing secret backs Messenger identity verification (Messaging pillar).