# Portál pro nahlašující (https://docs.vitrinka.ai/cs/qa/portal)



## Kde portál je [#where]

Každý projekt má portál pro lidi, kteří mu hlásí problémy. Na hostované službě je na `https://portal.vitrinka.ai/<workspace>/<project>`; na vaší vlastní instalaci pod originem portálu, který nastaví provozovatel ([provoz portálu](#operator)). Tým, který chce vlastní adresu, třeba `support.example.com`, si ji může nechat navázat na portál jednoho projektu a ta doména pak portál servíruje od kořene.

Portál je samostatný veřejný povrch. Odpovídá jen na své stránky — nikdy na aplikaci týmu, její API ani její přihlášení — takže cesta dovnitř pro nahlašující nikdy není cestou do workspace. Mluví česky nebo anglicky podle prohlížeče.

Vlastní domény navazuje ten, kdo má pravomoc nad instalací, protože každá potřebuje nejdřív DNS, nastavení na okraji sítě a certifikát: na hostované službě se ozvěte nám; na vlastní instalaci ji provozovatel naváže v **Nastavení → Workspace → Reporters → Portal domains**, jakmile ji okraj sítě servíruje — [portál pro provozovatele](/cs/operator/install#portal).

## Přihlášení [#signin]

Bez hesla, vždycky.

* **Z vaší aplikace.** Pokud vaše aplikace ručí za své uživatele v [Nahlásit problém](/cs/qa/report-a-problem#identity), tentýž podepsaný token otevře portál rovnou přihlášený: odkažte na kteroukoli stránku portálu s tokenem ve fragmentu, `#host=<token>`. Fragment nikdy necestuje v řádku požadavku; stránka ho vymění za relaci portálu.
* **E-mailem.** Kdokoli jiný napíše svou adresu a dostane šestimístný kód a odkaz. Opsáním kódu se přihlásí tato karta. Otevřením odkazu v jiné kartě téhož prohlížeče se přihlášení potvrdí na vlastní stránce a karta, která na kód čeká, se za okamžik přihlásí sama, bez opisování čehokoli. Na jiném zařízení odkaz přihlásí jen to zařízení — tuto kartu přihlásíte opsáním kódu. Kód platí 15 minut a dovolí pět pokusů. Odkaz sám nikoho nepřihlásí, takže poštovní skener, který ho otevře, nic nezpůsobí.

Přihlášení e-mailem potřebuje na instalaci odchozí poštu; bez ní to portál řekne a přihlásit lidi umí jen token vaší aplikace.

Relace portálu vydrží v daném prohlížeči 30 dní a platí jen pro ten portál. Hlášení, která někdo poslal pod svou adresou dřív, než ji prokázal — z aplikace, která předala jen jeho e-mail — se stanou jeho ve chvíli, kdy se poprvé přihlásí.

## Moje hlášení [#reports]

**Moje hlášení** je přehled novinek, nejnovější nahoře: hlášení se posunulo o krok, tým odpověděl, něco jste napsali. **Všechna moje hlášení** vypíše všechno, co jste sem poslali.

Každé hlášení se čte jako příběh po těchto krocích:

| Krok        | Kdy                                        |
| ----------- | ------------------------------------------ |
| Přijato     | Tým ho má a ještě ho nenaplánoval.         |
| Naplánováno | Je ve sprintu.                             |
| Řeší se     | Někdo na něm pracuje, nebo je v revizi.    |
| Opraveno    | Oprava je hotová a tým čeká na vaše slovo. |
| Hotovo      | Potvrdili jste, že to funguje.             |

Hlášení, které tým odmítne nebo sloučí s jiným, má stav **Uzavřeno**. Pod kroky je to, co jste napsali; **Před** — místa, která jste označili, jako obrázky; **Po** — obrázek opravy, pokud ho tým přiložil; a průběh.

* **Pošlete mi e-mail, až to bude opravené** — přepínač u každého hlášení. Jakmile dojde do stavu Opraveno, dostanete jeden e-mail s odkazem zpět.
* **Už to funguje** nebo **Pořád to nefunguje** — když hlášení říká Opraveno, odpovíte. **Už to funguje** ho posune do stavu Hotovo. **Pořád to nefunguje**, případně s větou o tom, co pořád nefunguje, ho vrátí týmu mezi úkoly k práci a znovu nastaví e-mail pro příští opravu.
* **Napsat týmu** — zpráva k hlášení. Odpovědi týmu se objeví ve vašem přehledu a přijdou e-mailem.
* **Nahlásit problém** — vlastní tlačítko portálu pošle nové hlášení jen slovy. Do Inboxu týmu dorazí hned, pod vaším jménem.

Otevřené stránky se aktualizují samy.

## Soukromí [#privacy]

* **Jen vaše vlastní.** Nahlašující vidí hlášení jen tehdy, když je jeho a patří k projektu, který tento portál obsluhuje. Cizí hlášení i takové, které neexistuje, vypadají stejně: nenalezeno. Nahlašující čte odpovědi týmu adresované jemu, nikdy vnitřní diskusi týmu u úkolu.
* **Žádní členové, žádné místo.** Nahlašující není členem workspace a nikdy nezabírá placené místo. Nedosáhne na něj žádná role, nástěnka, vyhledávání, nástroj agenta ani týmové API a aplikace relaci portálu nikdy nepřijme — ani takovou, která je podepsaná na adresu člena týmu.
* **Odebrání nahlašujícího.** Admini workspace vidí všechny nahlašující v **Nastavení → Workspace → Reporters** — kdo za ně ručil (aplikace, nebo kód z e-mailu) a kdy byli naposledy vidět — a mohou kohokoli odebrat (**remove**). Jeho relace na portálu okamžitě skončí a pozdější ručení vaší aplikace ho nevrátí. Odebrání se audituje jako `reporter.revoke`.

## Pro tým [#team]

* Každé hlášení z portálu nebo z widgetu přistane v [Inboxu](/cs/pm/inbox); **Reply to reporter** tam napíše přímo nahlašujícímu — [odpovídání](/cs/pm/inbox#reply).
* Záložka projektu **Report a problem** v **Nastavení → Projects** ukazuje adresu portálu vedle podpisového klíče hostitele a profilu záznamu.

## Provoz portálu [#operator]

Na vlastní instalaci portál potřebuje `VITRINKA_PORTAL_ORIGIN`, veřejný hostname na vaší reverzní proxy a odchozí poštu — [portál pro nahlašující](/cs/operator/install#portal). Bez toho portál není a Nahlásit problém funguje bez odkazu **Zobrazit hlášení**.
