Snowflake Native App

For teams already on Snowflake — install directly from the Marketplace with full data sovereignty.

Overview

Prometheux is available as a Snowflake Native App that runs entirely within your Snowflake environment. All processing happens inside your account, and the app leverages Snowflake’s compute, security, and access controls natively. Key advantages:
  • Data sovereignty — data is processed within Snowflake
  • Snowflake-native security — leverages Snowflake’s access controls
  • Elastic compute — scales with Snowflake warehouses and compute pools
  • Marketplace distribution — easy installation and updates

Prerequisites

  • Snowflake Account: Any tier (Standard, Enterprise, Business Critical)
  • Privileges: ACCOUNTADMIN role for initial setup, or specific grants for non-admin users
  • Compute Resources: Access to create or use compute pools
  • Warehouse: Any warehouse for database operations
The Snowflake Native Apps framework automatically handles privilege granting for application database access, service management, snapshot operations, and configuration storage.

Quick Start

Install directly from the Snowflake Marketplace, then launch from the Snowsight UI:
  1. Navigate to Snowsight — Go to your Snowflake web interface
  2. Find the App — Navigate to Data > Apps > Prometheux
  3. Launch — Click the “Launch App” button
  4. Initialize — The app will auto-configure and provide a launch URL
The platform will automatically create required databases and schemas, set up default configuration, and provide a platform access URL.

View Configuration

USE DATABASE prometheux;
USE SCHEMA v1;

CALL get_app_configuration();

Warehouse Configuration

Prometheux automatically creates a dedicated warehouse called PROMETHEUX_WAREHOUSE for read/write operations on your Snowflake databases.
SettingValue
SizeSMALL
Auto-suspend180 seconds (3 minutes)
Auto-resumeEnabled
Approximate cost$0.0023/hour when active
Prometheux minimizes warehouse usage costs by storing application data in an internal PostgreSQL database within the compute pool, only using the Snowflake warehouse for operations on your Snowflake databases.
To use an existing warehouse alongside the app warehouse:
GRANT USAGE ON WAREHOUSE YOUR_EXISTING_WH TO APPLICATION prometheux;

Essential Procedures

Core Platform Management

USE DATABASE prometheux;
USE SCHEMA v1;

-- Initialize/restart platform with stored configuration
CALL init();

-- Get platform access URL
CALL platform_url();

-- Stop platform (automatically creates snapshot)
CALL stop_platform();

Configuration Management

-- View current configuration
CALL get_app_configuration();

-- Set compute pool
CALL set_compute_pool('prometheux_compute_pool');

-- Add external access integrations (comma-separated list)
CALL add_external_access_integrations('integration1,integration2');

-- Remove external access integrations
CALL remove_external_access_integrations('integration1');

Monitoring

-- Check snapshot status
CALL check_snapshots();
View application logs via Snowflake’s telemetry events:
SELECT
    TIMESTAMP                      AS time_utc,
    VALUE::string                  AS message
FROM SNOWFLAKE.TELEMETRY.EVENTS
WHERE RECORD_TYPE = 'LOG'
  AND (
        RESOURCE_ATTRIBUTES['snow.application.name'] = 'PROMETHEUX'
        OR RESOURCE_ATTRIBUTES['snow.database.name'] = 'PROMETHEUX'
      )
ORDER BY time_utc DESC;

Uploading Data

Snowflake’s shared file system for Native Apps does not support filenames with spaces. Use underscores (_) or hyphens (-) instead.
Via Snowsight UI: Navigate to Catalog > Database Explorer > PROMETHEUX > APP_PUBLIC > STAGES > USER_UPLOADS and use the upload button. Via SQL:
USE DATABASE prometheux;
USE SCHEMA app_public;

PUT file://path/to/your.csv @user_uploads AUTO_COMPRESS=FALSE;
The system automatically transfers your file to the internal block volume and makes it available to all back-end components.

Granting Access to Existing Databases

Prometheux needs different levels of access depending on your use case.

Read-Only Access

USE ROLE ACCOUNTADMIN;

GRANT USAGE ON DATABASE YOUR_DATABASE TO APPLICATION prometheux;
GRANT USAGE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT SELECT ON ALL TABLES IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT SELECT ON ALL VIEWS IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

SHOW GRANTS TO APPLICATION prometheux;

Read-Write Access

USE ROLE ACCOUNTADMIN;

-- Database and schema access
GRANT USAGE ON DATABASE YOUR_DATABASE TO APPLICATION prometheux;
GRANT USAGE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

-- Schema-level DDL privileges
GRANT CREATE TABLE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT CREATE VIEW ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT CREATE SEQUENCE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT CREATE FUNCTION ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT CREATE PROCEDURE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

-- Table-level DML privileges
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

-- View, sequence, function, and procedure access
GRANT SELECT ON ALL VIEWS IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT USAGE ON ALL FUNCTIONS IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;
GRANT USAGE ON ALL PROCEDURES IN SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

SHOW GRANTS TO APPLICATION prometheux;

Granular Access (Specific Tables)

USE ROLE ACCOUNTADMIN;

GRANT USAGE ON DATABASE YOUR_DATABASE TO APPLICATION prometheux;
GRANT USAGE ON SCHEMA YOUR_DATABASE.YOUR_SCHEMA TO APPLICATION prometheux;

GRANT SELECT ON TABLE YOUR_DATABASE.YOUR_SCHEMA.CUSTOMERS TO APPLICATION prometheux;
GRANT SELECT ON TABLE YOUR_DATABASE.YOUR_SCHEMA.ORDERS TO APPLICATION prometheux;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE YOUR_DATABASE.YOUR_SCHEMA.ANALYSIS_RESULTS TO APPLICATION prometheux;

SHOW GRANTS TO APPLICATION prometheux;

External Access Configuration

To enable Prometheux to connect to external services, create and configure external access integrations in Snowflake. Create the integrations first, then add them to the app. Once integrations are created, add them to the app and restart:
USE DATABASE prometheux;
USE SCHEMA v1;

CALL add_external_access_integrations('prometheux_outbound,azure_openai_outbound');
CALL init();

Modifying Compute Pool Settings

By default, the platform starts with 1 node using the CPU_X64_M instance family. You can change this based on your performance requirements.

Available Instance Families

CPU-Optimized:
Instance FamilyvCPUsMemoryCost
CPU_X64_M (default)628 GB$0.59/hr (0.22 credits/hr)
CPU_X64_SL1454 GB$1.11/hr (0.41 credits/hr)
CPU_X64_L28116 GB$2.24/hr (0.83 credits/hr)
High-Memory:
Instance FamilyvCPUsMemoryCostAvailability
HIGHMEM_X64_S658 GB$0.76/hr (0.28 credits/hr)All clouds
HIGHMEM_X64_M28240–244 GB$3.00/hr (1.11 credits/hr)All clouds
HIGHMEM_X64_SL92654 GB$7.91/hr (2.93 credits/hr)Azure/GCP only
HIGHMEM_X64_L124984 GB$11.99/hr (4.44 credits/hr)AWS only

Changing Compute Pool

USE ROLE ACCOUNTADMIN;

CREATE COMPUTE POOL high_performance_pool FOR APPLICATION prometheux
    MIN_NODES = 1
    MAX_NODES = 1
    INSTANCE_FAMILY = CPU_X64_L
    AUTO_RESUME = TRUE;

GRANT USAGE ON COMPUTE POOL high_performance_pool TO APPLICATION prometheux;
USE DATABASE prometheux;
USE SCHEMA v1;

CALL set_compute_pool('high_performance_pool');
CALL init();

Next Steps

For feedback or enterprise use cases, contact the Prometheux team at support@prometheux.co.uk.