SDK Configuration
The Veriproof SDK is configured via VeriproofRestOptions at application startup.
DeploymentMode Enum
public enum DeploymentMode
{
SaaS = 0, // Full data to Veriproof cloud (default)
EnterpriseHybrid = 1, // Local storage + hash-only sync to Veriproof
LocalFirst = 2, // Local storage + buffered sync
Disconnected = 3 // Local storage only, no Veriproof connection
}VeriproofRestOptions Reference
| Property | Type | Default | Modes | Description |
|---|---|---|---|---|
Mode | DeploymentMode | SaaS | All | Deployment mode |
IngestEndpoint | string? | null | SaaS | Veriproof ingest API URL |
ApiKey | string? | null | SaaS, Hybrid, LocalFirst | API key (vp_live_* or vp_enterprise_*) |
LocalDatabaseConnectionString | string? | null | Hybrid, LocalFirst, Disconnected | PostgreSQL connection string to your DB |
CommitmentOnlyEndpoint | string? | null | Hybrid, LocalFirst | Veriproof enterprise commitment API URL |
LocalKeyVaultUri | string? | null | Hybrid, LocalFirst, Disconnected | Your Azure Key Vault URI |
TimeoutSeconds | int | 30 | All | HTTP timeout for API calls |
RetryCount | int | 3 | All | Number of retry attempts on transient failures |
EnableMetrics | bool | true | All | Emit OpenTelemetry metrics from the SDK |
SyncIntervalSeconds | int | 300 | LocalFirst | How often the sync worker flushes the queue |
SyncBatchSize | int | 500 | LocalFirst | Max hashes per batch commitment request |
MaxQueueDepth | int | 100,000 | LocalFirst | Alert threshold for queue depth monitoring |
Configuration Examples
.NET
SaaS Mode
builder.Services.AddVeriproof(options =>
{
options.Mode = DeploymentMode.SaaS;
options.IngestEndpoint = "https://api.veriproof.app/v1/ingest";
options.ApiKey = Environment.GetEnvironmentVariable("VERIPROOF_API_KEY");
});Enterprise Hybrid Mode
builder.Services.AddVeriproof(options =>
{
options.Mode = DeploymentMode.EnterpriseHybrid;
options.LocalDatabaseConnectionString =
Environment.GetEnvironmentVariable("POSTGRES_CONNECTION_STRING");
options.LocalKeyVaultUri =
Environment.GetEnvironmentVariable("KEY_VAULT_URI");
options.CommitmentOnlyEndpoint =
"https://api.veriproof.app/v1/enterprise/commitments";
options.ApiKey =
Environment.GetEnvironmentVariable("VERIPROOF_ENTERPRISE_API_KEY");
});Local First Mode
builder.Services.AddVeriproof(options =>
{
options.Mode = DeploymentMode.LocalFirst;
options.LocalDatabaseConnectionString =
Environment.GetEnvironmentVariable("POSTGRES_CONNECTION_STRING");
options.LocalKeyVaultUri =
Environment.GetEnvironmentVariable("KEY_VAULT_URI");
options.CommitmentOnlyEndpoint =
"https://api.veriproof.app/v1/enterprise/commitments";
options.ApiKey =
Environment.GetEnvironmentVariable("VERIPROOF_ENTERPRISE_API_KEY");
options.SyncIntervalSeconds = 300;
options.SyncBatchSize = 500;
});Disconnected Mode
builder.Services.AddVeriproof(options =>
{
options.Mode = DeploymentMode.Disconnected;
options.LocalDatabaseConnectionString =
Environment.GetEnvironmentVariable("POSTGRES_CONNECTION_STRING");
options.LocalKeyVaultUri =
Environment.GetEnvironmentVariable("KEY_VAULT_URI");
});Never embed API keys or connection strings directly in your source code. Always read them from environment variables or a secrets manager.
Last updated on