# download_vault_v1.2 — Stažení source file z Veeva Vault (J&J V-TMF) **Verze:** 1.2 · **Datum:** 2026-06-12 **Změny v1.1:** přihlašovací údaje se čtou ze souboru `.env` v rootu projektu Janssen (`U:\PythonProject\Janssen\.env`, sekce Veeva Vault). **Změny v1.2:** když údaje chybí (typicky nový počítač — `.env` se přes Giteu nepřenáší), skript `.env` sám založí, případně do něj doplní chybějící řádky `VAULT_USER=`/`VAULT_PASS=`, vyzve k doplnění a skončí. Playwright skript pro stažení source-file dokumentů z Veeva Vault (vtmf.veevavault.com) s perzistentní session, ručním potvrzením 2FA na telefonu a přejmenováním staženého souboru podle VTMF čísla. ## Co skript dělá 1. Otevře viditelný maximalizovaný Chromium s perzistentním profilem (`vault_profile/` vedle skriptu) — session přežije běhy, takže po prvním přihlášení už se obvykle přihlašovat nemusí. 2. Otevře J&J SSO login URL a vyplní jméno + heslo. 3. Pokud SSO vyžaduje mobilní ověření (2FA), skript se **zastaví** a čeká, až ho potvrdíte v mobilní aplikaci a stisknete ENTER. 4. Ověří, že jsme uvnitř Vaultu (URL `vtmf.veevavault.com/ui`), a zavře případné informační okno o údržbě. 5. Otevře stránku dokumentu, klikne na ikonu **Source File** (vpravo nahoře, list papíru se šipkou dolů) a stažený soubor uloží do `U:\Dropbox\!!!Days\Downloads Z230\` pod názvem `původní název [VTMF-XXXXXXXX].přípona`, např. `42847922MDD3003---Ongoing Third Party Oversight-31 May 2026 [VTMF-25690359].zip` ## Instalace ```powershell pip install -r requirements.txt playwright install chromium ``` ## Přihlašovací údaje Heslo **není** ve skriptu. Údaje se čtou v tomto pořadí: 1. **`.env` v rootu projektu** — `U:\PythonProject\Janssen\.env`, sekce Veeva Vault (doplňte hodnoty za `=`): ``` VAULT_USER=vbuzalka VAULT_PASS=vaše-heslo ``` Soubor je v `.gitignore`, do gitu se nedostane. 2. Env proměnné `VAULT_USER` / `VAULT_PASS` (mají přednost před `.env`). Pokud údaje chybí, skript `.env` založí / doplní v něm prázdné řádky `VAULT_USER=` a `VAULT_PASS=`, vypíše výzvu k doplnění a skončí — doplňte hodnoty a spusťte skript znovu. ## Spuštění ```powershell & "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\download_vault_v1.2.py" ``` **První běh:** zobrazí se login formulář, skript vyplní údaje, vy potvrdíte 2FA na telefonu a stisknete ENTER. Profil se uloží do `vault_profile/`, takže **další běhy** by měly jet rovnou bez přihlášení (dokud session nevyprší — pak se login + 2FA zopakuje). Na konci běhu skript čeká na ENTER, teprve pak zavře prohlížeč (abyste si mohli stav zkontrolovat). ## Konfigurace (konstanty nahoře ve skriptu) - `LOGIN_URL` — J&J SSO startSSO.ping URL cílící na vtmf.veevavault.com - `PROFILE_DIR` — perzistentní Chromium profil (`vault_profile/`) - `DOWNLOAD_DIR` — `U:\Dropbox\!!!Days\Downloads Z230` - `DOCUMENTS` — seznam dvojic `(url_dokumentu, vtmf_cislo)`; zatím jeden testovací dokument, připraveno na fázi 2 (načítání seznamu z Excelu) ## Známé body k dořešení (fáze 2) - Ověřit selektor `[title='Source File']` na různých typech dokumentů. - Dokumenty s dropdownem (Source File + Viewable Rendition) — základní ošetření přes `menuitem` je ve skriptu, chce ověřit na reálném případu. - Načítání seznamu URL + VTMF čísel z Excelu (`openpyxl`) a smyčka přes všechny dokumenty (struktura `DOCUMENTS` je na to připravená).