skills/database-tycoon/snowtower-user/SKILL.md
Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
npx skillsauth add aiskillstore/marketplace snowtower-userInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A skill for helping end-users navigate the SnowTower platform to get Snowflake access and start working with data.
Step 1: Generate RSA Keys → Step 2: Submit Request → Step 3: Connect
(on your machine) (GitHub issue) (after approval)
You MUST do this BEFORE requesting access.
# Generate RSA key pair (run on your local machine)
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -nocrypt -out ~/.ssh/snowflake_rsa_key.p8
openssl rsa -in ~/.ssh/snowflake_rsa_key.p8 -pubout -out ~/.ssh/snowflake_rsa_key.pub
# Secure your private key (IMPORTANT!)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Display your PUBLIC key (copy this for the access request)
cat ~/.ssh/snowflake_rsa_key.pub
Output looks like:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
...many lines of characters...
-----END PUBLIC KEY-----
| Key Type | File | Share? |
|----------|------|--------|
| Private key | ~/.ssh/snowflake_rsa_key.p8 | NEVER share this |
| Public key | ~/.ssh/snowflake_rsa_key.pub | Safe to share |
Typical approval time: 3-5 business days
After your account is approved, you'll receive:
# Add your connection
snow connection add \
--connection-name prod \
--account YOUR_ACCOUNT \
--user YOUR_USERNAME \
--authenticator SNOWFLAKE_JWT \
--private-key-path ~/.ssh/snowflake_rsa_key.p8
# Test the connection
snow sql -c prod -q "SELECT CURRENT_USER(), CURRENT_ROLE()"
import snowflake.connector
conn = snowflake.connector.connect(
account='YOUR_ACCOUNT',
user='YOUR_USERNAME',
private_key_file_pwd=None,
private_key_file='~/.ssh/snowflake_rsa_key.p8',
warehouse='MAIN_WAREHOUSE',
role='YOUR_ROLE'
)
New users typically receive a role like SNOWTOWER_USERS__T_ROLE which grants:
You get your own database: DEV_YOURNAME
-- Switch to your database
USE DATABASE DEV_YOURNAME;
-- Create schemas and tables freely
CREATE SCHEMA my_analysis;
CREATE TABLE my_analysis.test_data (id INT, value VARCHAR);
Usually MAIN_WAREHOUSE:
-- 1. Check your current context
SELECT CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE();
-- 2. See what databases you can access
SHOW DATABASES;
-- 3. See what roles you have
SHOW ROLES;
-- 4. Switch to your dev database
USE DATABASE DEV_YOURNAME;
-- 5. Create your first schema
CREATE SCHEMA IF NOT EXISTS sandbox;
USE SCHEMA sandbox;
-- 6. Test creating a table
CREATE TABLE test (id INT);
INSERT INTO test VALUES (1), (2), (3);
SELECT * FROM test;
DROP TABLE test;
Cause: RSA key mismatch or incorrect setup
Solution:
# Verify your private key is readable
ls -la ~/.ssh/snowflake_rsa_key.p8
# Check permissions (should be 400 or 600)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Verify the public key matches what was submitted
cat ~/.ssh/snowflake_rsa_key.pub
Cause: You don't have access to that object
Solution:
SELECT CURRENT_ROLE();Cause: Warehouse auto-suspended to save costs
Solution:
-- Just run a query - it auto-resumes
SELECT 1;
Checklist:
Need access to additional databases, schemas, or roles?
| Method | Use For | How | |--------|---------|-----| | RSA Key | CLI, scripts, applications | Private key file | | Password | Web UI only | Provided by IT |
Best Practice: Always use RSA key authentication for programmatic access. Only use password for the web interface.
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.