Files
janssen/VTMFDownloadFiles/TRASH/download_vault_v1.1.md
T
2026-06-12 15:29:57 +02:00

81 lines
3.2 KiB
Markdown

# download_vault_v1.1 — Stažení source file z Veeva Vault (J&J V-TMF)
**Verze:** 1.1 · **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).
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`).
3. Pokud nic z toho není nastaveno, skript se zeptá interaktivně
(heslo přes `getpass`, nezobrazuje se).
## Spuštění
```powershell
python download_vault_v1.0.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á).