Projektid
Koht, kus projektid sünnivad ja nende volitused elavad: iga projekt kannab Live- ja Test-keskkonda, kummalgi oma vastuvõtuvõti ja allkirjasaladus. Rotatsioon tuleb armuajaga, et juurutus jõuaks järele, ja saladust näidatakse täpselt üks kord, selle loomise hetkel.


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.
Külastaja liitmine inimesega
Projekti kaardil on iga keskkonna kohta üks lüliti: säilita sisselogimiseelne tegevus. Sees jääb inimese tegevus enne sisselogimist temaga seotuks, selle asemel et lugeda eraldi külastajaks. See algab väljas, ja seda loeb olekutööline, mitte brauser, nii et mida iganes SDK saadab, projekti puhul, kes seda valinud ei ole, liitmist kunagi ei toimu. Väljalülitamine peatab järgmise liitmise ega võta lahti midagi juba liidetut. Liige, kellel puudub projekti kirjutamisõigus, näeb lülitit selles olekus, milles see on, ega saa seda liigutada.
Seadistuse kopeerimine
Kõike, mille ühes keskkonnas seadistad, saab kopeerida selle tööruumi mis tahes projekti mis tahes teise keskkonda, ühe toiminguga mitme sihtkoha peale. Projektide lehe Kopeeri seadistus avab dialoogi tühjana; kohordil, lipul, katsel, tahvlil, töövool või ühendusel olev Kopeeri kuhu… avab selle nii, et see objekt on juba märgitud. Vali puust, mida kopeerida (liik võtab kaasa kõik enda all oleva ja filter kitsendab valikut), vali kuhu, seejärel vaata sihtkohti ükshaaval üle: iga objekt ütleb, kas see luuakse, kirjutatakse üle, jääb muutumatuks, vajab midagi, mida sihtkohas ei ole (lisa see või jäta objekt välja), või on keeldutud, ja ülekirjutamine näitab iga muutuvat välja enne, kui midagi kirjutatakse. Lülitid (lipu serveerimislüliti, töövoo sees ja väljas, sõnumitooja lubatus, katse käimasolek, kohordi aktiivsuslüliti) rändavad kaasa ainult siis, kui ülevaates on Kopeeri ka lülitid sees. Sihtkoht, mis nõuab ülevaatust, muudab oma lipud muudatustaotlusteks. Iga sihtkoht rakendub omaette, nii et üks keeldumine ei pea kunagi teisi kinni.
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).