--- name: veeva-install-auth description: 'Veeva Vault install auth with REST API and VQL. Use when integrating with Veeva Vault for life sciences document management. Trigger: "veeva install auth". ' allowed-tools: Read, Write, Edit, Bash(npm:*), Grep version: 1.0.0 license: MIT author: Jeremy Longshore tags: - saas - life-sciences - crm - veeva compatibility: Designed for Claude Code --- # Veeva Vault Install & Auth ## Overview Authenticate with Veeva Vault REST API using session-based auth. Base URL: `https://{vault}.veevavault.com/api/{version}/`. All requests require a session ID obtained via username/password or OAuth 2.0. ## Instructions ### Step 1: Install VAPIL (Java) or HTTP Client ```bash # Java (VAPIL - Vault API Library) # Add to pom.xml or gradle # https://github.com/veeva/vault-api-library # Python/Node.js -- use HTTP client pip install requests # or npm install axios ``` ### Step 2: Obtain Session ID ```python import requests vault_url = "https://myvault.veevavault.com/api/v24.1" auth_response = requests.post(f"{vault_url}/auth", data={ "username": os.environ["VEEVA_USERNAME"], "password": os.environ["VEEVA_PASSWORD"], }) session_id = auth_response.json()["sessionId"] print(f"Session ID: {session_id[:20]}...") ``` ### Step 3: Make Authenticated Request ```python headers = {"Authorization": session_id} response = requests.get(f"{vault_url}/metadata/objects", headers=headers) print(f"Objects: {len(response.json()['objects'])}") ``` ### Step 4: VQL Query ```python query = "SELECT id, name__v, status__v FROM documents WHERE status__v = 'Approved'" response = requests.post(f"{vault_url}/query", headers=headers, data={"q": query}) for doc in response.json().get("data", []): print(f" {doc['name__v']} (ID: {doc['id']})") ``` ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | `INVALID_SESSION_ID` | Session expired | Re-authenticate | | `INSUFFICIENT_ACCESS` | Missing permissions | Check security profile | | `INVALID_DATA` | Bad VQL syntax | Validate query syntax | ## Resources - [Vault API Reference](https://developer.veevavault.com/api/) - [VQL Reference](https://developer.veevavault.com/vql/) - [VAPIL Java SDK](https://developer.veevavault.com/sdk/) - [Developer Portal](https://developer.veevavault.com/) ## Next Steps Proceed to `veeva-hello-world` for document operations.