Versus Platform · Data Warehouse

Snowflake Data Integration

Versus is the operational system of record for your network, security, and service estate. The Snowflake integration puts that data — devices, ADC objects, tickets, vulnerabilities, alerts, workflow runs, licensing, and audit — in your data cloud, next to everything else, for BI, long-horizon trending, cross-system joins, regulatory retention, and ML. It runs in both directions: export Versus data out, and drive your managed-device inventory in from a Snowflake CMDB.

1. What the integration does

Four capabilities, each independently toggleable per connection:

  • Export — continuous or scheduled delivery of your Versus data into Snowflake.
  • Secure Data Share — expose a governed, read-only, zero-copy share to your own Snowflake account (no pipeline to build).
  • Inventory import — onboard and reconcile managed devices from a Snowflake CMDB/asset table.
  • Reverse-ETL — enrich Versus records with columns from Snowflake, and run governed analytics queries surfaced in the UI.

2. What data lands in Snowflake

Each dataset is a domain you switch on individually. Every row carries a stable canonical schema plus an envelope (tenant_id, change operation, source timestamp, ingest time), so it is decoupled from internal product changes and safe to build reports on.

  • Devices — inventory, lifecycle/EOL, datacenter, owner.
  • ADC objects — virtual servers, pools, nodes, monitors, iRules, certificates.
  • Metrics & alerts — pre-aggregated rollups and alert lifecycle from Observe.
  • Vulnerabilities — findings joined to devices, plus a global CVE catalog dimension.
  • Service desk — incidents, problems, changes, requests, SLAs, state history.
  • Workflow runs, licensing usage, IPAM, certificates, firewall policy, privileged sessions, and a tamper-evident audit stream.
NoteHigh-frequency raw telemetry stays in Versus Observe (the system of record for samples); only cost-efficient rollups are exported, so cardinality and credit burn stay predictable.

3. Three connection modes

Pick per connection based on who owns the Snowflake account and how much pipeline you want to run:

ModeWho owns the accountHow data movesBest for
A — Customer pushYouVersus writes into your account via an external stage + SnowpipeEnterprises already on Snowflake
B — Managed + ShareVersusVersus loads its own account; you read via a zero-copy Secure Data ShareTeams who want the data without building a pipeline
C — InternalVersusPlatform-internal analyticsFleet reporting

4. How data moves

Versus reads changed rows incrementally, maps them to their canonical shape, and writes compact files to an object stage (S3 / R2). Snowflake ingests those files, and native Streams + Tasks shape the raw landing into a clean analytics model (dimensions and facts) — no external orchestrator to run.

Ingestion latency is your choice, per connection or per domain:

  • Batch COPY — the cheapest default; hourly or nightly.
  • Snowpipe (auto-ingest) — near-real-time (~1 minute).
  • Snowpipe Streaming — seconds, for alerts and audit.

Loads are idempotent: a replay of the same file is a no-op, and the incremental cursor only advances after a confirmed load — so a hiccup safely re-sends rather than losing or duplicating data.

5. Multi-tenant isolation & security

Isolation is fail-closed at three layers:

  • Source — Versus reads through a tenant-scoped, row-level-security connection, so an export can only ever see its own tenant's rows.
  • Landing — one schema per tenant, plus a row access policy, so even a mis-scoped query is filtered. In Mode A the data only ever lands in your own account.
  • Consumption — Secure Data Shares and reverse-ETL reads are per-tenant.

Credentials never live in Versus's database. The Snowflake key or OAuth secret is held in the Versus Vault (envelope-encrypted, hash-chained audit) and resolved at connection time — never logged, never shown in the UI. Access uses least-privilege Snowflake roles, a network policy pinned to Versus egress (or PrivateLink), and storage-integration IAM trust rather than shared cloud keys.

CautionIf the Vault is unavailable, exports do not run — the integration fails closed rather than falling back to any less-protected credential path.

6. Snowflake as an inventory source

If your authoritative asset/CMDB inventory lives in Snowflake, Versus can onboard and reconcile managed devices from it — the same way it imports from ServiceNow, CI Discovery, or IPAM. You map source columns to device fields, choose match keys (serial, management IP, hostname), and run a dry-run first: Versus shows a per-row plan — create, update (with a field-level diff), conflict (needs a human), or retire — that you review before applying.

Apply is idempotent (re-running an unchanged source changes nothing), every device carries its import provenance, and a device imported from the CMDB can even be bound to a credential from your external vault automatically. Onboarded devices can be soft-retired when they disappear from the source — reversible, never a hard delete.

NoteInventory import writes only the inventory record (create / update / retire a device entry). It never performs a device action — no configuration push, upgrade, reboot, or discovery against the box. It is a catalog sync, not a control path into your network.

7. Enrichment & analytics back in Versus

Reverse-ETL reads from Snowflake for two things: enrichment — pulling designated columns (business owner, criticality, CMDB id, risk score) onto the matching Versus records — and governed query panels that show warehouse-scale trends (for example, a device's 12-month vulnerability history) right in the Versus UI. Enrichment is additive, restricted to an allow-list of fields, tenant-scoped, and audited; it never performs a control-plane action, and queries are a named, parameterised catalog — never raw SQL from the browser.

8. Governance & cost control

  • PII — masking is applied in the analytics views; audit and privileged-session data are append-only and long-retained for compliance.
  • Retention & residency — per-connection retention plus region selection (and on-prem Mode A) support data-residency requirements.
  • Cost — loads use a small auto-suspending warehouse; resource monitors cap monthly credits and alert before you overspend; rollups keep volume in check.

9. Setting it up

From Versus Platform → Integrations → Snowflake:

  1. Create a connection — account locator, warehouse, database, role, service user, and a Vault reference to the key (never the key itself). Pick the mode, ingest method, and domains.
  2. Test — validates auth, reachability, and permissions.
  3. Provision — creates the Snowflake objects idempotently (schemas, file format, stage, landing tables, and — when enabled — Snowpipe, ELT tasks, and the Secure Share).
  4. Run — trigger an export; the run history shows rows, files, lag, and any errors, with dead-letter replay.

10. SaaS & on-premises

On Versus SaaS, staging uses managed object storage with PrivateLink available, and the managed-account + Secure Share model is offered. On-premises, you connect your own Snowflake and your own storage bucket (Mode A) so data egress stays entirely under your control. The feature is licensed and inert until configured — installing it changes nothing until you create a connection.

11. What it deliberately does not do

  • It is analytics latency, not sub-minute alerting — Versus Observe remains your real-time alerting engine.
  • Reverse-ETL is read/enrich only. The one write-back is inventory onboarding (§6), which touches only device records, never device actions.
  • Secrets are never copied into Snowflake or the Versus database.