vault-api-integration
Universal methodology for Vault API interaction. Includes Evidence-First mandate and Vault API CLI guide.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Universal methodology for Vault API interaction. Includes Evidence-First mandate and Vault API CLI guide.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Implementation patterns for the Vault Toolbox Browser Extension (Manifest V3).
Specialized design challenges for the Vault Toolbox Browser Extension, focusing on VQL prototyping.
Specialized audit for the Vault Toolbox Browser Extension, focusing on Island Architecture and UI visibility.
Specialized data grid implementation for the Vault Toolbox Browser Extension using TanStack Table/Virtual.
Specialized design requirements for the Vault Toolbox Browser Extension, focusing on UI visibility.
Specialized testing and dev-server protocol for the Vault Toolbox Browser Extension.
| name | vault-api-integration |
| description | Universal methodology for Vault API interaction. Includes Evidence-First mandate and Vault API CLI guide. |
| triggers | ["api","vql","fetch","authentication","evidence","fixture"] |
This skill provides the universal mandates and tools for interacting with Veeva Vault APIs across all Designer applications.
Before writing any parser for an external data source, you MUST obtain a real response sample.
vault_api.js to obtain a real sample (raw-dump log or real call) before writing transformation logic.console.log('[raw]', JSON.stringify(response, null, 2)) as the first line of any new integration hook.--fixture flag in vault_api.js to save real responses. Unit tests MUST load these fixtures.responseStatus === 'SUCCESS'. The Vault API may return WARNING with valid data. Always explicitly check for responseStatus === 'FAILURE' to handle errors; treat all other statuses as successful data retrieval.ApiService.query or queryByPage, explicitly note that the Vault response payload is wrapped inside a .queryResponse property.You MUST ONLY reference the vault-developer-mcp tools for API endpoints, VQL objects, and metadata. Never guess the API structure.
LIKE leading wildcard is banned. Vault rejects WHERE field LIKE '%term%'. Only trailing wildcards are allowed: WHERE field LIKE 'term%'.
FIND syntax: the entire clause including SCOPE goes inside the parentheses. FIND is case-insensitive. Vault automatically adds wildcards to most search terms.
-- Search document metadata (names, picklists) — default
SELECT … FROM documents FIND ('term') LIMIT n
-- Search document body/content only
SELECT … FROM documents FIND ('term' SCOPE CONTENT) LIMIT n
-- Search both metadata and content
SELECT … FROM documents FIND ('term' SCOPE ALL) LIMIT n
SCOPE must be inside the parentheses. FIND ('term') SCOPE CONTENT is a parse error. FIND ('term' SCOPE CONTENT) is correct.
CONTAINS is not a substring operator. WHERE field CONTAINS ('a', 'b') matches a field against a discrete value list, not substrings. Do not use it as a substitute for LIKE.
Before building a create/update form for any Vault object, always fetch the object metadata and identify which fields are editable: true. Fields that are editable: false are managed by Vault (auto-number, lifecycle state, derived relationships) and MUST NOT be sent in POST/PUT bodies — Vault will reject them as system fields. Required fields that are editable: false (e.g. name__v, status__v, lifecycle__v) are auto-assigned; do not add them to the form.
node .agents/scripts/vault_api.js vobject {object_name}
(vobject resolves the API version automatically — the version vault_api status stored, or --api <ver> to pin one. Never hard-code the version.)
Never assume a query syntax change is correct. Every fix to a VQL query or API endpoint MUST be verified with the Vault API Utility before the code is updated. Assumed fixes (e.g. SCOPE CONTENT, leading % in LIKE) have caused repeated regressions. The workflow is:
# 1. Test the fix in the Vault API Utility
node .agents/scripts/vault_api.js vql "SELECT … FIND('term*') LIMIT 5"
# 2. Only apply to code once the Vault API Utility confirms correct results
If the Vault API Utility returns a parse error or unexpected results, iterate in the Vault API Utility — not in the source code.
new Headers() objects when extending or calling internal Vault request builders. All header definitions must be plain JavaScript objects.If an API returns a job_id__sys, you MUST:
The Vault API CLI is the primary middleware for gathering evidence and testing queries.
Authenticate using one of the following commands:
A. Username & Password
node .agents/scripts/vault_api.js auth --username "your_user" --password "your_pass" --vaultdns "your-vault.veevavault.com"
B. Session ID / API Access Token
node .agents/scripts/vault_api.js auth --sessionid "YOUR_SESSION_ID_OR_TOKEN" --vaultdns "your-vault.veevavault.com"
VQL Queries:
node .agents/scripts/vault_api.js vql "SELECT name__v FROM document__v LIMIT 5"
Component Queries:
node .agents/scripts/vault_api.js component-query "SELECT name__v FROM vault_component__v WHERE component_type__v = 'Page__c'"
Evidence Collection (Fixtures):
node .agents/scripts/vault_api.js vql "SELECT ..." --fixture my_sample_data
Files are saved to test/fixtures/my_sample_data.json.
File Downloads: (<ver> = the version vault_api status stored / vault_api api-version reports — don't hard-code it)
node .agents/scripts/vault_api.js download "/api/<ver>/objects/documents/123/file" --output document.pdf