Security

Built for teams who take security seriously

Gelida applies the same rigour to protecting your credentials and data that you apply to your Snowflake environment. Here is exactly how.

๐Ÿ”

Credential encryption

โ–ธ

Snowflake passwords encrypted with AES-256-GCM before being written to the database

โ–ธ

Encryption key stored as a server-side environment variable โ€” never logged, never in source code

โ–ธ

Credentials decrypted only in-memory at query time, never returned to the browser

โ–ธ

If the database were compromised, encrypted credentials are useless without the key

๐Ÿข

Org isolation

โ–ธ

Every database row is scoped to an org_id โ€” enforced at the query level, not just application logic

โ–ธ

Supabase Row Level Security (RLS) ensures users can only access their own organisation's data

โ–ธ

Cached analytics data stored per-org โ€” one org cannot read another's cache

โ–ธ

API routes validate session on every request before touching any data

๐Ÿ‘๏ธ

Read-only access

โ–ธ

Gelida connects to Snowflake with a dedicated read-only service user

โ–ธ

Queries run only against SNOWFLAKE.ACCOUNT_USAGE and INFORMATION_SCHEMA metadata views

โ–ธ

No SELECT on your business databases, schemas, or tables โ€” ever

โ–ธ

No INSERT, UPDATE, DELETE, or CREATE operations are possible with Gelida's credentials

๐Ÿ›ก๏ธ

Transport security

โ–ธ

All traffic between users and Gelida served over HTTPS/TLS 1.3

โ–ธ

Snowflake SDK connections use TLS by default โ€” data in transit is always encrypted

โ–ธ

Vercel edge network handles certificate management and renewal automatically

โ–ธ

No plain-text credentials or sensitive data in query strings or logs

โšก

Rate limiting & abuse prevention

โ–ธ

AI query advisor rate-limited to 20 requests per hour per user

โ–ธ

Cache invalidation endpoint rate-limited to 10 requests per hour (admin only)

โ–ธ

All errors logged to a dedicated audit table for incident review

โ–ธ

Session validation on every API route โ€” unauthenticated requests rejected immediately

๐Ÿ—๏ธ

Infrastructure

โ–ธ

Hosted on Vercel โ€” SOC 2 Type II certified, global edge network

โ–ธ

Database on Supabase โ€” SOC 2 Type II, ISO 27001, GDPR compliant

โ–ธ

No raw Snowflake query data or business data stored by Gelida at any point

โ–ธ

Function timeouts enforced at 60 seconds to prevent runaway compute costs

Security checklist โ€” what we do for you by default

โœ“

AES-256-GCM credential encryption

โœ“

Read-only Snowflake access

โœ“

Org-level row isolation (RLS)

โœ“

HTTPS/TLS on all traffic

โœ“

Session auth on every API route

โœ“

Rate limiting on sensitive endpoints

โœ“

No raw data stored

โœ“

Error audit logging

โœ“

Vercel SOC 2 hosting

โœ“

Supabase SOC 2 database

โœ“

Auto-expiring cache (1-12hr)

โœ“

60s function timeout enforcement

Security FAQ

What data does Gelida store from my Snowflake account?

Only aggregated cost metadata โ€” warehouse names, credit totals, query durations, and cost estimates derived from ACCOUNT_USAGE. We never store your actual query results, table data, or any business data.

Can Gelida modify anything in my Snowflake account?

No. The service user Gelida uses has read-only privileges. It cannot INSERT, UPDATE, DELETE, or CREATE anything in your Snowflake account. It can only read from ACCOUNT_USAGE and INFORMATION_SCHEMA metadata views.

Where is my data stored?

User account data and encrypted Snowflake credentials are stored in Supabase (AWS US East region by default). Cached analytics data is stored in the same Supabase instance and expires automatically between 1 and 12 hours depending on the feature.

Who can see my Snowflake cost data?

Only authenticated members of your organisation. Row Level Security is enforced at the database level โ€” not just in application code. Gelida staff do not access your data except in response to a support request with your explicit permission.

How do I revoke Gelida's access?

Drop the GELIDA_USER and GELIDA_ROLE in Snowflake at any time. This immediately prevents Gelida from connecting to your account. You can also delete your Gelida account from Settings โ†’ Billing, which removes all stored data within 30 days.

Have a security concern?

If you discover a vulnerability or have a security question, email us directly. We respond within 24 hours.

Contact security team โ†’