Primitive
Functions

Serverless functions for processing encrypted data

Highly secure Evervault-hosted functions that allow you to run logic on encrypted data, without exposing your infrastructure to sensitive information in plaintext.

ServerYour codeFunction

Run logic on sensitive data securely

When you pass encrypted data to a Function, it is automatically decrypted by the Function’s runtime. You can then process this data by running custom logic written in Node.js or Python.

Playground
1const isValid = await ev.run('validateEmail', { encrypted });
2console.log(isValid ? 'Valid Email' : 'Invalid Email')
1// Encrypted payloads are automatically decrypted
2exports.handler = async function({ encrypted }){
3  const regex = new RegExp('[a-z0-9]+@[a-z]+.[a-z]');
4  return regex.test(encrypted.emailAddress);
5};

Get started with the Functions Primitive

Deploy your first Evervault Function and start running logic on encrypted data.

Step 1

Auth with GitHub

To create a Function, you first need to authenticate with GitHub in the Evervault Dashboard. Alternatively, you can use the Evervault CLI to create a Function from your terminal or CI/CD pipeline.

Create a Function
Auth with GitHub
Step 2

Import a Repository or Choose a Template

To deploy a Function using your own code, you can import a repository from GitHub. Alternatively, you can choose a Function template. Functions are written in Node.js or Python.

Create a Function
Import a Repository
Choose a Template
Acme Co.
Select a Repository...
Step 3

Run the Function

Functions can be invoked using our server-side SDKs, our CLI or using our REST API. Encrypted data in the payload is decrypted before being passed to your Function code.

1// Import and initialize the Evervault SDK
2const Evervault = require('@evervault/sdk');
3const evervault = new Evervault('<APP_ID>', '<API_KEY>');
4
5// When you pass encrypted data to a Function
6// it gets decrypted by the Function’s runtime,
7// allowing you to process the data in plaintext
8const result = await evervault.run("function-id", {
9  data: encryptedData
10});

Flexible, performant and compliant

Functions were built with developers in mind. They're flexible enough to support any use case, with compliance, performance and security built in.

Multi-language Support

Write and deploy Evervault Functions in Node.js or Python.

Effortless Deployments

Automatically deploy Functions when changes are pushed to your GitHub repository, or via your CI/CD pipeline.

Auto-scaling by Default

Functions scale automatically to thousands of requests per second without affecting throughput or latency.

Network Whitelists

Limit which IPs can invoke your Functions, as well as the domains that Functions can make requests to.

Fine-grain Access Control

Use Data Policies to define rules that dictate how and when Functions can access encrypted data.

Fully Compliant

Functions are fully compliant with standards like PCI DSS, HIPAA and GDPR.

Adapt Functions for any security workflow

You're in control of how data gets processed in a Function. Use them to validate, fetch, transform or analyze encrypted data — without ever handling it in plaintext.

ServerValidationEncryptedPlaintext

Compatible with each Evervault Primitive

Primitives are building blocks for developers. They're fundamental, interoperable products for constructing any data security or compliance workflow.

Read the docs

Meet compliance requirements. Build customer trust.

Use Evervault’s flexible building blocks to keep your customers’ data secure and compliant at all times.