**Source URL:** https://general.veevavault.dev/vault-sdk/overview.md

# Vault Java SDK Overview



The Vault Java SDK is a powerful tool in the Vault Platform, allowing developers to extend Vault and deliver custom capabilities and experiences to Veeva customers. It provides a completely new experience in developing industry cloud applications, leveraging industry standard tools to develop and debug and integrating seamlessly with Vault in the cloud.

<ThemeImage srcLight="/images/sdk/sdk-overview.png" srcDark="/images/sdk/sdk-overview.png" alt="Vault Java SDK overview image: Develop, Upload, then Deploy your custom SDK extension to your Vault."></ThemeImage>

* **Develop**: Developers can code in Java and debug using their favorite IDE by simply attaching to a Vault in the cloud. There is no need to learn a proprietary programming language or use unfamiliar development tools.

* **Upload**: Developers or Vault Admins can easily upload source code to Vault with a familiar tool used in configuration migration. Source code is stored in Vault as metadata which is easily migrated from Sandbox to Production Vaults.

* **Deploy**: Once the source code is uploaded, it is compiled and loaded in real-time. Custom logic is applied immediately. Developers and Admins can use the *Debug Log* to monitor and troubleshoot issues in the deployed code, and both the *Admin UI* and Vault API to manage deployed code. Learn more about [deploying code to Vault](/vault-sdk/deploying-code/).

## Extending Vault {#Extending_Vault}

Developers can use the Vault Java SDK to extend Vault by implementing [entry points](/vault-sdk/entry-points/). Entry point implementations are also called Vault Extensions. Entry points define the types of custom features and logic you can develop with Vault Java SDK. For example:

* **[Triggers](/vault-sdk/entry-points/triggers/)**: Execute custom code when an operation (`INSERT`, `UPDATE`, or `DELETE`) occurs on a document type or object record. Developers can place custom logic `BEFORE` or `AFTER` the operation, such as creating related records or adding values to fields.

* **[Actions](/vault-sdk/entry-points/actions/)**: Execute custom code when a user invokes a user action.

* **[Custom APIs](/vault-sdk/entry-points/custom-api/)**: Create custom API endpoints to meet unique business needs.

## About the Java SDK Service Account {#about-the-java-sdk-service-account}

Custom Vault Java SDK code executes as the *Java SDK Service Account*, which has Vault Owner level access. By default, Vault sets the *Java SDK Service Account* as the owner of object records and documents created by custom SDK code. Audit log entries for documents and object records affected by vault extensions identify the change with *Java SDK Service Account on behalf of* the user initiating the request.

The *Java SDK Service Account* user appears in the *Users & Groups* Admin tab in all Vaults but does not affect license counts.



---

**Next:** [Getting Started](/vault-sdk/getting-started)