Now in Beta

The audit trail
that acts.

Provenance records every interaction across your distributed systems — then triggers notifications, fires alerts, and gives your AI agents live context to act on it. One API. Zero guesswork.

Free tier includedNo credit cardOpen source
terminal
# Install the CLI
$ npm install -g provenance-cli

# Configure your endpoint
$ provenance config set apiUrl https://api.provenance.dev
$ provenance config set apiKey $API_KEY

# Track a deployment
$ provenance track -r my-svc -t SERVICE -a DEPLOY
✔ Interaction recorded (14ms)

# Query recent activity
$ provenance search --type SERVICE --last 24h
┌──────────┬────────┬─────────┬────────────────────┐
│ Resource │ Action │ Type    │ Created            │
├──────────┼────────┼─────────┼────────────────────┤
│ my-svc   │ DEPLOY │ SERVICE │ 2 minutes ago      │
└──────────┴────────┴─────────┴────────────────────┘

The Problem

Logs are scattered. Events are fire-and-forget. Audit trails are an afterthought.

When something goes wrong — or right — you're piecing it together across five tools. Provenance is the single system that records, understands, and acts on everything.

the-problem
WITHOUT PROVENANCEWITH PROVENANCEWhat happened to order-4521?query 5 systems…CloudWatchreq_id: a8f3… 200 OKStripe Logsch_9xk… $49.99 succeededDatadogsku-330 reserved qty: 2App Logsorder-4521 created by usr-8SendGridmsg_id: m77… delivered5 queries · 5 formats · partial pictureWhat happened to order-4521?query Provenance…Provenance API14:23:01GATEWAYROUTE order-452114:23:02ORDERCREATE order-452114:23:03PAYMENTCHARGE pay-119014:23:04INVENTORYRESERVE sku-33014:23:05NOTIFSEND email-7721 query · 1 timeline · complete picture

How it works

Record. Understand. Act.

Every interface — CLI, SDK, API, MCP — feeds the same pipeline. Record interactions, analyze patterns, act in real time.

provenance-lifecycle
01 RECORD02 ANALYZE03 REACTCLIprovenance trackSDKprov.log()APIPOST /interactionsMCPAI agentProvenance API4 interactions recordedLast 7d1,247
Email sent
220ms
Slack posted
95ms
Webhook fired
180ms
Lambda invoked
340ms
✦ record → analyze → react — full audit trail
01

Record

Send interactions via REST API, CLI, SDK, or MCP. Every action, resource, and origin is captured with full context.

02

Analyze

Build dashboards with custom widgets. Query by time, resource type, action, or any custom field.

03

Act

Subscribe to events and get notified via email, webhook, Slack, or custom adapters. Set threshold-based alerts.

Single Source of Truth

One request.Every service. One timeline.

A single customer action can trigger a cascade across your entire backend — API gateway, order service, payment, inventory, notifications, analytics. Each service logs its interaction to Provenance as it processes. The result: a unified, correlated timeline of everything that happened to fulfill that request.

source-of-truth
Place Ordercustomer actionAPI GatewayOrder ServicePayment APIInventoryNotification SvcAnalyticsProvenanceAPIUnified Timelineorder-452114:23:01GATEWAYROUTE order-452114:23:02ORDERCREATE order-452114:23:03PAYMENTCHARGE pay-119014:23:04INVENTORYRESERVE sku-33014:23:05NOTIFSEND email-77214:23:06ANALYTICSTRACK evt-9981✦ 6 interactions · 1 unit of workDISTRIBUTED SERVICESSINGLE SOURCE OF TRUTH
Correlated

A single Unit of Work ID ties every service invocation back to the original customer request — across queues, APIs, and async jobs.

Complete

Every service logs its own interaction independently. Even if one fails, the rest of the trail is already recorded.

Queryable

Search by resource, transaction, service, time range, or any field from the payload. Reconstruct any request in seconds.

Capabilities

Everything you need to track, analyze, and act.

One platform for provenance tracking, analytics, event-driven notifications, and alerting — accessible through every interface you need.

See detailed breakdown|Why Provenance?

Interaction Tracking

Record every action on every resource with full context, metadata, and unit-of-work correlation across distributed systems.

Traces & Timeline

Visualize interaction flows and dependencies. Follow distributed transactions across services. See the full chronological history of any resource.

Analytics Dashboards

Build custom dashboards with bar, line, pie, stat, and table widgets. Drag-and-drop grid layout with real-time data and time range controls.

Event Notifications

Subscribe to resource + action combinations. Deliver via email, webhook, Slack, Lambda, or build your own adapter with the plugin system. Zero-latency DB triggers, not polling.

See how it works

Metric Alerts

Set thresholds on interaction patterns. Get alerted before problems become incidents. Configurable conditions, recipients, and retry logic.

Inbound Webhooks

Turn incoming webhooks into provenance interactions automatically. Validate signatures, match payloads to mappings, extract fields, and record — no integration code required.

See how it works

Secrets Management

Store API keys, tokens, and credentials encrypted in the database or fetch from AWS SM, Azure KV, GCP SM, or HashiCorp Vault. Reference in templates with {{secrets.path}} syntax.

See how it works

Deep Dive

Built for real-world provenance at scale.

Every feature is designed for production use — from the data model to the notification queue to the analytics engine.

Core

Interaction Tracking

Every action performed on every resource is recorded with full context. Define your own resource types, actions, and origins to model your domain exactly. Attach arbitrary JSON metadata to any interaction and correlate related operations across services with Unit of Work IDs.

  • Resource Typesdefine categories like User, Order, Deployment, Document
  • Actionstrack operations like Create, Update, Delete, Deploy, Login
  • Originsidentify source systems: WebApp, MobileApp, CI/CD, API
  • Custom metadataattach any JSON payload to an interaction
  • Unit of Workcorrelate related interactions across distributed transactions
  • Activity searchfilter by resource, type, action, origin, time range, or custom fields
interaction.json
1{2"resourceId": "order-789",3"resourceType": "ORDER",4"action": "CREATE",5"origin": "WEBAPP",6"uowId": "550e8400-e29b-41d4-a716...",7"interaction": {8"customerId": "cust-123",9"total": 149.99,10"currency": "USD",11"items": 3,12},13"createdDate": "2025-03-15T14:30:00Z"14}
Visualization

Analytics & Dashboards

Build custom dashboards with a step-by-step widget builder. Choose your resource type, action, time range, metrics, filters, and grouping — then pick a visualization. Drag widgets around the grid, resize them, and apply global time range overrides. Color overrides let you map specific values to specific colors across all charts.

  • Widget builderstep-by-step: context → time range → metrics → filters → group by → visualization
  • Chart typesbar (vertical/horizontal, stacked), line/area, pie/donut, stat, table
  • Time rangesrelative (1h, 24h, 7d, 30d, 90d) or absolute date ranges
  • Filtersequals, not equals, contains, greater than, less than on any field
  • Group byresource type, action, origin, custom fields, or time (hour/day/week/month)
  • Color overridesmap values to colors (e.g. "Error" → red, "Success" → green)
  • Drag-and-drop gridresize widgets, rearrange layout, auto-save
widget-preview
025507510080CREATE55UPDATE68VIEW22DELETE45LOGIN
Event-Driven

Subscriptions & Notifications

The subscription engine is the backbone of Provenance's event-driven architecture. When an interaction is recorded, a database trigger instantly finds all matching subscriptions and enqueues notifications — no polling, no delays. Subscribers define who gets notified, subscriptions define what triggers it, and adapters define how it's delivered.

  • Subscribersdefine notification endpoints: email addresses, webhook URLs, Slack channels, Lambda functions
  • Subscriptionsmatch on resource type + action, link to a subscriber, configure the adapter and template
  • Database triggerfires on every interaction, finds matching subscriptions, enqueues notifications instantly
  • Multi-subscriber fan-outone interaction can trigger multiple subscriptions to different subscribers simultaneously
  • Template variablesdynamic content substitution from interaction metadata: {{interaction.email}}, {{interaction.total}}
  • Pluggable adaptersemail (SendGrid), webhook, Slack, Lambda, or drop a custom JS file in plugins/adapters/
  • Reliable deliverydatabase-backed queue with exponential backoff retry (max 3 attempts)
  • Full audit trailevery notification attempt logged with status, response, timing, and errors
subscription-flow
POST/api/interactions{ type: "ORDER", action: "CREATE" }Subscription EngineORDER + CREATE → 4 subscriptions matched → enqueued
emailcustomer@co.com
webhookanalytics/ingest
slack#order-alerts
lambdaprocessOrder
Email sent220msWebhook delivered95msSlack posted180msLambda invoked340ms✦ full audit trail — status · timing · response
Delivery

Subscribers & Adapters

Subscribers are the destinations for your notifications — the people, services, and systems that need to know when something happens. Each subscriber is paired with an adapter that controls how the notification is delivered. Use the built-in adapters or build your own in minutes.

  • Email (SendGrid)send transactional emails with dynamic templates, personalization, and template variables from interaction data
  • WebhookPOST the full interaction payload to any URL: internal services, Zapier, Make, n8n, or custom endpoints
  • Slackpost formatted messages to channels or DMs via incoming webhooks
  • AWS Lambdainvoke Lambda functions with the interaction as the event payload for serverless processing
  • Custom adaptersdrop a JS file in plugins/adapters/ or publish as an npm package (provenance-adapter-*)
  • Global adapter settingsconfigure API keys and credentials once, shared across all subscribers using that adapter
  • Per-subscription configeach subscription can override adapter settings with its own template, recipients, and options
  • Adapter discoverybrowse available adapters, view documentation, and test connectivity from the Dashboard UI
adapters
Loading…
13 adapters · plugin system · npm packages · build your own
Observability

Traces & Timeline

See the complete history of any resource as a chronological timeline. Follow distributed transactions across services by tracing Unit of Work IDs. Visualize interaction flows and dependencies to understand exactly what happened, when, and where.

  • Resource traceevery interaction for a given resource ID, ordered by time
  • Unit of Work tracefollow correlated interactions across services
  • Timeline viewchronological display with action, type, origin, and timestamp
  • Network graphvisualize relationships between resources (in Dashboard UI)
  • Filter by action or originnarrow down to specific interaction types
  • Exportdownload trace data as JSON for further analysis
terminal
$ provenance trace order-789Trace: order-7893/15 14:30:00CREATEORDERvia WEBAPP3/15 14:30:01CREATEPAYMENTvia STRIPE_HOOK3/15 14:31:15UPDATEORDERvia WEBAPP└─ {"status": "confirmed"}3/15 15:00:00CREATESHIPMENTvia WAREHOUSE_API└─ {"status": "DHL", "1Z999..."}3/15 18:22:00UPDATEORDERvia WEBHOOK└─ {"status": "shipped"}3/16 09:15:00UPDATEORDERvia CARRIER_API└─ {"status": "delivered"}
Security

Secrets Management

Store sensitive credentials encrypted in the database or fetch them at runtime from your existing secrets manager. Reference secrets in notification templates, adapter settings, and webhook configs using {{secrets.path}} syntax — the actual value is never stored in configs, logs, or audit trails.

  • Provenance vaultencrypt secrets with AES-256-GCM using a server-side master key, stored directly in the database
  • AWS Secrets Managerfetch secrets at runtime using access keys or IAM roles
  • Azure Key Vaultconnect via client credentials or managed identity
  • GCP Secret Manageruse service account JSON or application default credentials
  • HashiCorp VaultKV v1/v2 with token auth and optional namespace support
  • Environment variablesmap to server env vars in self-hosted mode (disabled in multi-tenant)
  • Template integration{{secrets.sendgrid.apiKey}} resolved at runtime during notification processing
  • Provider connectionsconfigure credentials once, reuse across multiple secrets with encrypted storage
  • Test & verifyresolve any secret and see a masked preview without exposing the value
terminal
$ provenance secrets listSecretProviderStatus🔒 sendgrid.apiKeyprovenanceENC🔒 stripe.webhookSecretaws-smOK🔒 vault.db.passwordvaultOK🔒 slack.botTokenazure-kvOK🔒 github.appKeygcp-smOK🔓 {{secrets.sendgrid.apiKey}}SG.a1b2•••••••• (masked)
Monitoring

Metric Alerts & Queue

Alerts aren't just for failures. Define threshold-based alerts on any interaction pattern — catch error rate spikes, but also celebrate when your team hits a KPI target, track campaign milestones, monitor SLA compliance, or get notified when deployment frequency drops. Pair alerts with the subscription engine to email your team when a target is reached.

  • KPI milestone trackingalert when interaction counts cross business targets (e.g. 100K orders processed)
  • SLA monitoringdetect when a resource type stops receiving interactions within a time window
  • Error rate detectionfire when failure rates spike above acceptable thresholds
  • Campaign trackingmonitor signup or conversion interactions filtered by origin or custom fields
  • DORA metricstrack deployment frequency, alert when it drops below your team's target
  • Flexible deliveryroute alerts to email, Slack, PagerDuty, or any custom adapter
  • Queue managementmonitor pending, processing, and failed notification counts with full audit trail
terminal
$ provenance alerts listAlertStatusThreshold100K Orders MilestoneOK≥ 100,000Payment Processor SilentOK< 1 / 30mHigh Error RateFIRING> 50/hrDeploy Frequency (DORA)OK≥ 5/weekCampaign: 1K SignupsOK≥ 1,000High Error Rate triggered — notifying ops-pagerduty

Ecosystem

One platform. Every interface you need.

Use the REST API directly, build dashboards in the UI, automate with the CLI, chat with your data via MCP, integrate natively with SDKs — and receive events from any external service via inbound webhooks.

ecosystem-overview
YOUR TOOLSINBOUND WEBHOOKSCLITerminalSDKNativeREST APICoreAI / MCPIntelligenceDashboard UIVisualStripePOSTGitHubPOSTSlackPOSTSentryPOSTYour ServicePOSTProvenanceAPIvalidate · store · notify12,847interactions this month✦ one API — every direction — full coverage

REST API

Core

The foundation of Provenance. A complete REST API with Swagger documentation, rate limiting, and webhook-based notifications. Every feature is API-accessible.

  • Full OpenAPI/Swagger docs
  • Parameterized queries — no SQL injection
  • Pluggable notification adapters
  • Prometheus metrics endpoint
interactions.sh
# Record an interaction
$ curl -X POST https://api.provenance.dev/api/interactions \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"resourceId":"order-789","resourceTypeId":"...","actionId":"..."}'
 
# Query analytics
$ curl -X POST https://api.provenance.dev/api/analytics/query \
-H "x-api-key: $API_KEY" \
-d '{"metrics":["count"],"dimensions":["action"]}'

Dashboard UI

Visual

A full-featured Angular application for visual management. Build analytics dashboards, configure subscriptions, manage alerts, and explore traces — all without writing code.

  • Drag-and-drop dashboard grid
  • Widget builder with live preview
  • Activity search with JSON query builder
  • Trace visualization and timeline view
dashboard
◈ Provenance UIPizza Place ▾DashboardActivityTracesAlertsSettingsUser ActivityLast 7dSignupsRetention42%CREATEUPDATEVIEWDELETEActions over timeTotal1,247▲ 12% vs last week

CLI

Terminal

A command-line tool built for CI/CD pipelines, cron jobs, and shell scripts. Track deployments, search interactions, view traces, and manage alerts — all from the terminal.

  • Mnemonic resolution — names, not UUIDs
  • Unit of Work correlation
  • Pipe-friendly JSON output
  • GitHub Actions / GitLab CI / Jenkins ready
deploy-pipeline
api-v2.1.0 → productiontriggered by ci-bot · branch main · sha a3f8c01BUILD1.2sTEST3.4sDEPLOY2.8sTRACK0.4suowId: 550e8400-e29b-41d4 · correlates all 4 stepsBUILD api-v2 SERVICE via GITHUB_ACTIONS TEST api-v2 SERVICE via GITHUB_ACTIONS DEPLOY api-v2 SERVICE via GITHUB_ACTIONS

AI / MCP

Intelligence

Give any AI assistant live access to your operational data. Customer support bots resolve tickets with full interaction history. Fraud detection models query real-time patterns. DevOps copilots answer "what changed in production?" from actual data — not logs.

  • Customer support AI — full order/resource history in seconds
  • Fraud detection — query interaction patterns for anomalies
  • Operational copilots — "what changed in the last hour?"
  • Works with Claude, Amazon Q, and any MCP client
support-agent.txt
Customer: What happened to order #4521?AI queries Provenance via MCPMar 15 14:30CREATEORDERvia WEBAPPMar 15 14:31CREATEPAYMENTvia STRIPEMar 16 09:15UPDATESHIPMENTvia CARRIER└─ {"status": "delivery_failed"}Mar 16 10:00CREATEREFUNDvia SUPPORTAgent: Your order shipped Mar 15 but deliveryfailed. A refund was initiated on Mar 16.

Inbound Webhooks

Ingestion

Turn any incoming webhook into a provenance interaction — no integration code required. Register a source, define how payloads map to interactions, and every matching event is validated, transformed, and recorded automatically. Works with any service that sends webhooks: payment processors, source control, CI/CD, CRMs, monitoring tools, or your own internal services.

  • Signature verification — HMAC-SHA256, SHA1, or token
  • JSONPath field mappings with schema validation
  • Filter conditions for routing payloads to mappings
  • Deduplication via idempotency path
  • Test endpoint to preview without recording
inbound-pipeline
POST/api/inbound/acme/STRIPEx-signature: sha256=a1b2c3...Source ValidationSTRIPEsignature ✓ HMAC-SHA256 verifiedschema ✓ payload validMapping Match3 mappings evaluatedcheckout.completedP10← matchedpayment.createdP5catch-allP0Interaction CreatedresourceIdcs_8xKq7aresourceTypeORDERactionCREATEemailcustomer@co.comamount2999✓ recorded

SDKs

Native

Native client libraries with queue-based ingestion and a full REST API client. Type-safe interaction recording, analytics queries, trace lookups, and auto-pagination — without raw HTTP calls. Available for Node.js, TypeScript, Python, and Java, with C# coming soon.

  • Queue ingestion with automatic retries
  • Full REST API client — every endpoint covered
  • Auto-pagination with async generators
  • Node.js, TypeScript, Python, and Java available
  • C# coming soon
app.ts
import { create } from "@provenance/sdk-ts";
 
const provenance = await create({
apiKey: process.env.PROVENANCE_API_KEY,
origin: "my-service",
});
 
// Queue-based ingestion
await provenance.log({
resourceType: "order", resourceId: "order-789",
action: "create", uowId: crypto.randomUUID(),
interaction: { total: 149.99, currency: "USD" },
});
 
// Full REST API client
const api = await provenance.api();
const trace = await api.traces.get("order-789");

Use Cases

One platform.Three teams that ship faster.

Provenance gives every team a complete picture of what happened, why, and what to do next.

use-cases
DevOpsSERVICE+DEPLOYresourceId: api-v2.1.0"env": "production""sha": "a3f8c01""actor": "ci-bot"Subscription EngineSERVICE + DEPLOY → 3 subscriptions
Slack#deploys🚀 api-v2.1.0 → productionby {{interaction.actor}}
PagerDutyon-call: platform-teamDeploy watch — 30m
WebhookPOST metrics/ingest{ svc: "{{resourceId}}" }
3/3 delivered — audit trail logged
Engineering

Ship with confidence

Full deployment lineage from commit to production. Know exactly what changed, when, and who triggered it. Alert on-call when deploys fail, post to #releases automatically. Track DORA metrics without a separate tool.

Support

Resolve faster

Your AI agent knew the full order history before picking up the phone. Trace every customer touchpoint across systems. Auto-escalate SLA breaches, route tickets to the right team, and give agents full context — not a ticket queue.

Operations

Detect and respond

Monitor SLAs, catch anomalies, and get alerted before customers notice. When your payment processor goes silent for 30 minutes, you know immediately. When you hit 100K orders, your team celebrates in real time.

Pricing

Start free. Scale when ready.

No credit card required. Upgrade or downgrade anytime.

Now Open

Beta

Full Pro features, free while in beta.

$0during beta
  • 100,000 interactions/mo
  • 1-year retention
  • Unlimited dashboards & widgets
  • Email & webhook notifications
  • 5 team members
  • 3 invite codes to share
Join Beta

Pro

For growing teams and products.

$49/mo
  • 100,000 interactions/mo
  • 1-year retention
  • Unlimited dashboards
  • Email & webhook notifications
  • 5 team members
  • Priority support
Coming Soon

Business

For scaling organizations.

$199/mo
  • 1,000,000 interactions/mo
  • 2-year retention
  • Unlimited everything
  • Custom adapters & functions
  • Unlimited team members
  • Dedicated support & SLA
Coming Soon

Ready to stop just watching — and start acting?

Join the beta — full Pro features, free while in beta. Invite code required.

REST APIDashboard UICLIMCP / AISDK