Coming Soon — This page describes an architecture that is currently in development and not yet generally available. Contact us to learn more.
How It Works
User authenticates
User authenticates with AstroBee and delegates credentials for their data warehouses (via OAuth).
User builds ontology
User defines business entities (Customer, Order, Product) mapped to warehouse tables.
User asks questions
User asks questions in natural language — “Show me top customers by revenue last quarter.”
AI agent translates
AstroBee’s AI agent translates the question into SQL targeting the customer’s warehouse dialect.
Results stream back
Results stream back to AstroBee UI (limited to reasonable sizes, e.g., 10,000 rows).
Credential Delegation Model
The security foundation is per-user credential delegation — each individual user’s warehouse access tokens are stored encrypted and used exclusively for that user’s queries.Key Security Properties
- User credentials never shared — Alice’s Snowflake token is never used for Bob’s queries (even in same organization)
- Native access control enforced — If Alice can’t see
sensitive_customerstable in Snowflake, her AstroBee queries also can’t access it - Token encryption at rest — AES-256 encryption in database, decrypted only in-memory during query execution
- Automatic token refresh — Background jobs refresh OAuth tokens before expiry (no manual re-authentication)
- Audit trail — Every query logged with user identity for compliance reviews
Virtual Semantic Layer
Unlike traditional AstroBee (which ingests CSV files), the zero-ingestion model uses virtual entities — business objects mapped to external warehouse tables without data copying.Ontology Definition
- Entities map to external tables (e.g., Customer →
snowflake://prod_analytics.ecommerce.customers) - Properties define columns, data types, business meanings (e.g.,
revenueis a measure,customer_nameis a dimension) - Relationships define joins across tables (e.g.,
Customer.id→Order.customer_id) - Virtual derived entities can be defined via SQL queries (computed on-the-fly)
Example: Snowflake-Only Deployment
Customer Context: Company has all data in Snowflake (sales, marketing, product analytics). They want natural language analytics without moving data to AstroBee.Query Execution Flow
Query executor retrieves token
User’s encrypted Snowflake OAuth token is retrieved and decrypted in-memory
Permission Enforcement Example
Scenario: Alice is a marketing analyst, Bob is a finance analyst. Snowflake has role-based table permissions:prod_analytics.ecommerce.customers— accessible to MARKETING_ROLE (Alice) and FINANCE_ROLE (Bob)prod_analytics.finance.salaries— accessible only to FINANCE_ROLE (Bob)
Alice asks “Show customer demographics”
- AstroBee generates SQL querying customers table
- Snowflake RBAC check: Alice’s role has SELECT on customers
- Query succeeds, results displayed
Alice asks “Show average employee salaries”
- AstroBee generates SQL querying salaries table
- Snowflake RBAC check: Alice’s role lacks SELECT on salaries
- Query fails with Snowflake error: Insufficient privileges to operate on table
- AstroBee displays: “You don’t have access to the required data. Contact your Snowflake administrator.”

