VettiGuard

Protect backend operations with the same VettiGuard contract.

Use an official server SDK for verification, Rate Limiting, Concurrency Control, Dependency Resilience, Trust Orchestration, and signed webhook handling. Keep private credentials on your trusted backend.

PHP, Node.js, Python, and Go.

These quickstarts demonstrate atomic Rate Limiting check-and-consume. The same clients expose the other supported server-side trust and traffic-control operations.

Official server SDK

PHP

Supported
composer require vettiguard/vettiguard-php:^1.0
$client = \VettiGuardSdk\VettiGuardVerifier::production($secret);
$decision = $client->checkRateLimit([
    'action' => 'payment.create',
    'method' => 'POST',
    'cost' => 1,
]);
Official server SDK

Node.js

Supported
npm install @vettiguard/node
const { checkRateLimit } = require('@vettiguard/node');
const decision = await checkRateLimit({
  secret, action: 'payment.create', method: 'POST', cost: 1
});
Official server SDK

Python

Supported
pip install vettiguard
from vettiguard import VettiGuardClient
client = VettiGuardClient(secret=secret)
decision = client.rate_limit(
    action="payment.create", method="POST", cost=1
)
Official server SDK

Go

Supported
go get github.com/vettiguard/vettiguard-go@v1.0.0
client, err := vettiguard.New(secret)
if err != nil { return err }
decision, err := client.RateLimit(ctx, map[string]any{
    "action": "payment.create", "method": "POST", "cost": 1,
})

Keep secrets server-side

Never embed a VettiGuard server secret, SCIM token, webhook secret, or private API credential in browser or mobile application code.

Use atomic decisions

Rate Limiting checks and token consumption happen in one operation. Concurrency and dependency services use signed, expiring admission credentials for their lifecycle operations.

Start in Observe

New production integrations should establish real traffic baselines before moving protection policies into Throttle, Wait, Challenge, or Enforce modes.