Developer Features in 21R1

We are pleased to bring you the following additions and enhancements to Developer Portal features in 21R1. REST API features added in 21R1 only affect API v21.1, unless otherwise noted.

Service Announcements

Veeva Vault TLS Cipher Suite Changes

Beginning with the 21R1 release, Vault will no longer support the following cipher:

All customers with affected integrations will be contacted directly by Veeva Services prior to any changes so that they can test their integrations. Testing can be performed in a limited release sandbox.

Learn more about Veeva Vault cipher suite changes.


Release Date: March 5, 2021


Role Permissions

With role permissions, application roles have a new permission set attribute. When a role is assigned to a user, the related permissions are assigned to the user in addition to security profile permissions.

Role permissions introduce the concept of a role assignment to a user, as opposed to roles applied only in the context of specific documents or object records. A new platform object user_role__sys is used to persist user role assignments.

User_role__sys Object records can be created, edited, or deleted by a user with the Object permissions and also require the Admin: Security: Users: Manage user object permission. The Object can be accessed using the standard Vault Object Rest APIs.

This feature introduces the Rolepermissionset MDL component type, which stores the relationship between a permission set and an application role. When updating user_role__sys object records, the Rolepermissionset component is updated accordingly. Conversely, user_role_sys object records are updated automatically when Rolepermissionset components are created or updated.

Delete Type for the Deleted Document API

The Retrieve Deleted Document IDs response now includes a deletion_type property, which denotes if it is a document deletion (document__sys), version deletion (document_version__sys), or if the version number no longer exists due to a Set new major version lifecycle entry action (version_change__sys).

Enhance Compare & Configuration Report to Provide Warnings

This feature enhances the Vault Compare and Configuration Reports to provide a list of potential MDL component and configuration issues in a separate error log for easier troubleshooting.


Web Sections for Object Page Layouts

With this release, Admins can add external web content into object page layouts using Web Sections, which are similar to Web tabs. You can specify the URL of external web content, and a set of dynamic tokens are available for usage. For example, you can configure Web Sections to display an address’s map location on an Organization record.

You can only add Web Sections through MDL by editing the page_markup attribute of the Pagelayout component.


Release Date: February 5, 2021


Enhancements to API Limits

As of 20R3.4, the Vault API no longer enforces daily limits, and no longer returns the Daily Limit HTTP Headers in responses for calls made using v21.1 and higher. Previous versions of the API will return static values for these headers:

Additionally, the burst limit has been enhanced to automatically delay all API calls for 500ms after a user reaches the burst limit and no longer returns an error.

Learn more about API Limits.

Rich Text Fields for Vault Objects

This release we’ve added a new Rich Text field type to Vault objects. This new field type allows for text values with formatting stored as HTML markup, such as bold and italic. Both the plain text field values and full markup values for this type of field are available through the usual APIs: Vault Object APIs, VQL, SDK, Loader, etc. It is not supported for Merge Fields. Learn more about Rich Text Fields.

Additionally, users can convert Long Text fields to Rich Text with MDL. This is a one-way conversion which cannot be undone and may affect your existing custom integrations. Learn more about conversion from Long Text to Rich Text.

File Staging for Loader CLI

This feature enables Vault Loader users with File Staging permissions to manage files and folders on Vault’s staging area. Users can view, create, move, rename, delete as well as upload and download to and from the file staging area.

Learn more about the Vault Loader File Staging CLI in Vault Help.

Replace Workflow Owner

This feature introduces the new replaceworkflowowner action, which allows Admins to replace the workflow owner of an in-progress object or multi-document workflow using single or bulk APIs. When a workflow owner is replaced, all current and future tasks assigned to the previous owner are reassigned to the new owner.

The replaceworkflowowner action is now included in the list of workflow actions returned by the object workflow APIs:

GET /api/{version}/objects/objectworkflows/{workflow_id}/actions

GET /api/{version}/object/workflow/actions

To replace the owner, API requires the new workflow owner ID. The new owner must be able to start the workflow.

POST /api/{version}/objects/objectworkflows/{workflow_id}/actions/replaceworkflowowner

To replace workflow owners in bulk, the Bulk API requires the current and new owner IDs and will replace the current owner with the new owner for all workflows.

POST /api/{version}/object/workflow/actions/replaceworkflowowner

Learn more in the v21.1 API Reference.

Object & Multi-Document Workflow: Capacity Without Requiring eSignature

This feature allows admins to configure capacity in an object or multi-document workflow task without requiring an eSignature. This feature also allows users to set capacity using the Initiate WorkflowTask Action API.

Developers can get capacity details:

GET /api/{version}/objects/objectworkflows/tasks/{task_id}/actions/complete

Then provide capacity values with key-value pair in body as capacity__c = {capacity value name}:

POST /api/{version}/objects/objectworkflows/tasks/{task_id}/actions/complete

Learn more in the v21.1 API Reference

Update to the Document Token API for Steady State document retrieval

This feature enhances the Document Token API with a new steadyState body parameter. If this parameter is set to true, the API returns the token for that latest steady state version of a document, even if you have access to a newer version. Previous versions will continue to return a “document not found” error.

Learn more in the v21.1 API Reference

Bulk Object Attachment Delete API Update

This feature updates the Delete Multiple Attachments API for both documents and Vault objects. Changes include:

Learn more in the v21.1 API Reference.

Log the Global ID in Deleted Document API

The deleted document API response now includes the Global ID of the deleted document or version.

Learn more in the v21.1 API Reference.

Document ID included in Audit History CSV

In previous API versions, retrieving a CSV from the Retrieve Complete Audit History for a Single Document endpoint did not include a Document ID column. As of API v21.1, the returned CSV now includes a Document ID column.

Content Module Combined API

In this release a new set of objects was added to Vault PromoMats to support the creation of Content Modules. As there are several objects and relationships to other assets, to simplify and optimize integrations with Content Modules, a single composite API has been added to extract the relevant fields and data for the content module and its child items.

GET /api/{version}/app/commercial/content_modules/{content_module_id}

Learn more in the v21.1 API Reference.

Safety Distribution Email Support

This feature updates the Send Safety Distribution API to support Study Sites which are not using SiteVault. Study Sites without active study Agreements will receive Safety Distributions via a deduplicated daily digest email.


VQL on Documents with Roles

This feature allows developers to query document roles and retrieve fields and filter by related documents, users, and groups. For example, developers can query for document owners in a specified group, or retrieve the current editors for a filtered set of documents.

Learn more about querying document roles.

Enable VQL Alias Support for Object Queries

The AS Clause is now supported on object queries when used with the LONGTEXT() and RICHTEXT() functions. These methods can only be used on Long Text and Rich Text fields, and aliased field names must be unique.

Learn more about aliases.

This feature adds the ability to specify criteria VQL filters to related document sections on object page layouts. In MDL for Pagelayout components, these filters are reflected in the xml value of the page_markup attribute.


Quality Teams: Team Role Restrictions & Enhancements

To support enhancements to Team Roles, this feature adds the exclusive_membership attribute to the Qualityteamrole subcomponent type. For specific team roles within the team, if exclusive_membership is true on a given team-enabled record, users in this role cannot be assigned to any other team role. If omitted, the default value is false.

See the Qualityteamrole subcomponent in the Component Type Reference.

Vault Java SDK

Inactivate Standard Integration Rules & Edit Field Defaults on Standard Field Rules

Standard integration Rules can now be delivered as inactive, enabling you to turn them on or off as needed. Additionally, you can now edit field defaults for Standard Field Rules.

Record UI Action Enhancements (Notification + Action Dialog)

An optional dialog can be shown in the UI before action execution for a class that implements the RecordAction interface. onPreExecute allows a confirmation dialog to be displayed to the user prior to the execution of a record action. A custom dialog title and message can be added.

Notification Banners can be shown in the UI after action execution. onPostExecute allows a post record action execution banner to be displayed to the user. A custom banner message can be added.

Learn more about pre-action and post-action UI behavior.

Enable User Exception Record Save on Message Processor Failure

Developers writing Spark message processor code for Spark-based integrations can now surface a User Exception without it being rolled back when a RollbackException is thrown.

Notification Template SDK

Developers can now use the Notification Token Resolver to more efficiently resolve token values, particularly if there are a large number of tokens to be resolved.

Separate Job Queue & Spark Queue Permissions

SDK Job Queues and Spark Queues serve different purposes and are often managed by different administrative users. These queues are now managed independently from each other and are controlled with separate permissions. Instead of one Queues permission, the queues are now controlled by the Spark Queues and SDK Job Queues permissions. Users who previously had the Queues permission and access to both queue types will automatically have both the Spark Queues and SDK Job Queues permissions.

Any MDL or VPKs generated prior to this change which include permission sets must be regenerated to accurately reflect permissions.

Query Object Rules Filter Clause Enhancements

In this release, we’ve modified the Criteria VQL available for a query object’s Filter Clause. Starting with this release, filter clauses only support the WHERE clause. The following clauses are no longer supported:

Additionally, you no longer need to enter the keyword WHERE in your filter clause. For example, in previous releases you’d enter your filter clause as WHERE status__v = 'active__v', but now you must only enter status__v = 'active__v'.

Any existing filter clauses which still have WHERE, ORDER BY, PAGESIZE, or PAGEOFFSET in them after this release must have these keywords removed for the integration to continue to work. We encourage users to make the appropriate changes as soon as 21R1 is released.

Deprecate VaultRuntimeException

In this release, we’ve deprecated VaultRunTimeException from the Vault Java SDK. This exception could not be swallowed or altered, and should have no impact on existing implementations.


Release Date: December 11, 2020


Vault Loader Bulk Document Attachment Load & Relationships Extract

This feature enhances the Vault Loader REST API endpoints and the Command Line tool (CLI) to support bulk document attachments creation and deletion. Additionally, we’ve enhanced bulk document relationship extract for both the REST API and CLI to support document relationships.

Learn more in the v21.1 API Reference.

Learn more about using Vault Loader to create and delete document attachments in Vault Help.

Vault Loader Bulk Object Attachments Load

This feature enhances the Vault Loader REST API endpoints and the Command Line tool (CLI) to support bulk object attachments creation and deletion.

Learn more about using Vault Loader to create and delete object attachments in Vault Help.

Learn more about the Vault Loader File Staging CLI in Vault Help.

Job API Enhancements

This release, we’ve added several new Vault Job APIs:

Learn more in the v21.1 API Reference.

Remove redundant parameters on File Staging API: Create File or Folder

The name and size parameters are no longer required when creating a file or folder.


Tags Supported in Report MDL

This feature adds the tags attribute to the report component. Tags may now be defined in sandbox vaults and migrated to production.

See the Report component in the Component Type Reference.

Vault Java SDK

Spark Integration Rule Support for Object Relationships

Spark integration rules which fetch and map data in Vault to Vault integrations now support object relationship from the source Vault. This allows field rules to natively support subqueries in the VQL call-back.

For example, there is a Spark integration which needs to retrieve a Product’s Manufacturer’s Incident Phone Number, where Manufacturer is represented as an object relationship field on the Product object. With this feature, integration rules can map the relationship between Product and Manufacturer. For example, the Vaccine product has a Manufacturer field with the value VeePharm, where VeePharm is a Manufacturer object record which has a text field labelled Incident Phone Number. Given the Vaccine product, this Spark integration can quickly grab the Incident Phone Number on the related VeePharm record.

Move Spark Queues to the Connection Tab

Administrators can now access Spark queues in one place under the Connection tab, alongside the other Spark componentry. This enhancement streamlines UI navigation when creating Spark integrations.

SDK Job Queues

Developers can now create custom SDK job queues which can be referenced from the Queue field for any custom SDK job metadata component. Prior to this release, it was not possible to create custom job queues and only System queues were available. If a queue is not specified, the System queue is used by default.

Vault Java SDK Service Account

A new Java SDK Service Account user appears in the Users & Groups tab. This system-managed, read-only user will support future Vault functionality. Vault does not include this user in license counts.