Skip to main content
Backend Developmentjeremylongshore

veeva-local-dev-loop

'Veeva Vault local dev loop for REST API and clinical operations.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--veeva-local-dev-loop
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/veeva-pack/skills/veeva-local-dev-loop/SKILL.md -o .claude/skills/veeva-local-dev-loop.md

Drops the SKILL.md into .claude/skills/veeva-local-dev-loop.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Veeva Vault Local Dev Loop

Overview

Guidance for local dev loop with Veeva Vault REST API, VQL queries, and VAPIL Java SDK.

Instructions

Key Vault API Concepts

  • Authentication: Session-based (username/password or OAuth 2.0)
  • Base URL: https://{vault}.veevavault.com/api/v24.1/
  • VQL: SQL-like query language for Vault data
  • VAPIL: Open-source Java SDK covering all Platform APIs
  • Lifecycle: Documents flow through states (Draft > In Review > Approved)

Common VQL Patterns

-- List documents by type
SELECT id, name__v FROM documents WHERE type__v = 'Trial Document'

-- Find objects
SELECT id, name__v FROM site__v WHERE status__v = 'active__v'

-- Join related objects
SELECT id, name__v, study__vr.name__v FROM study_country__v

Error Handling

Error Cause Solution
INVALID_SESSION_ID Session expired Re-authenticate
INSUFFICIENT_ACCESS Missing permissions Check security profile
INVALID_DATA Bad VQL or field name Validate against metadata
OPERATION_NOT_ALLOWED Lifecycle state conflict Check document state

Resources

Next Steps

See related Veeva Vault skills for more patterns.