Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add anomalyarmor/agents --skill "armor-connect"
Install specific skill from multi-skill repository
# Description
Connect a new data source to AnomalyArmor. Handles "connect my database", "add snowflake", "setup postgres", "connect warehouse".
# SKILL.md
name: armor-connect
description: Connect a new data source to AnomalyArmor. Handles "connect my database", "add snowflake", "setup postgres", "connect warehouse".
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "python ${CLAUDE_PLUGIN_ROOT}/scripts/ensure-auth.py"
once: true
Connect Data Source
Guide users through connecting a new data source (database, warehouse) to AnomalyArmor.
Prerequisites
- AnomalyArmor API key configured (
~/.armor/config.yamlorARMOR_API_KEYenv var) - Python SDK installed (
pip install anomalyarmor) - Database credentials ready
When to Use
- "Connect my Snowflake warehouse"
- "Add my PostgreSQL database"
- "Setup Databricks connection"
- "Connect a new data source"
Supported Data Sources
snowflake- Snowflake Data Cloudpostgresql- PostgreSQLdatabricks- Databricksbigquery- Google BigQueryredshift- Amazon Redshiftmysql- MySQLclickhouse- ClickHouse
Steps
- Ask user for data source type if not specified
- Collect connection configuration (credentials, host, database, etc.)
- Create the asset with
client.assets.create() - Test the connection with
client.assets.test_connection() - If successful, trigger schema discovery with
client.assets.trigger_discovery() - Track discovery progress with
client.jobs.status()
Example Usage
Connect Snowflake
from anomalyarmor import Client
import time
client = Client()
# Create the asset
asset = client.assets.create(
name="Analytics Warehouse",
source_type="snowflake",
connection_config={
"account": "abc123.us-east-1",
"warehouse": "COMPUTE_WH",
"database": "ANALYTICS",
"user": "anomalyarmor_user",
"password": "your_password", # Or use key pair auth
"role": "ANOMALYARMOR_ROLE" # Optional
},
description="Main analytics data warehouse"
)
print(f"Created asset: {asset.id}")
# Test connection
result = client.assets.test_connection(asset.id)
if result.success:
print("Connection successful!")
else:
print(f"Connection failed: {result.error_message}")
exit(1)
# Trigger schema discovery
job = client.assets.trigger_discovery(asset.id)
print(f"Discovery started: {job.job_id}")
# Wait for discovery to complete
while True:
status = client.jobs.status(job.job_id)
print(f"Discovery progress: {status.get('progress', 0)}%")
if status.get('status') in ('completed', 'failed'):
break
time.sleep(5)
if status.get('status') == 'completed':
print("Schema discovery complete!")
else:
print(f"Discovery failed: {status.get('error')}")
Connect PostgreSQL
from anomalyarmor import Client
client = Client()
asset = client.assets.create(
name="Production Database",
source_type="postgresql",
connection_config={
"host": "db.example.com",
"port": 5432,
"database": "production",
"user": "readonly_user",
"password": "your_password",
"sslmode": "require"
}
)
# Test and discover...
Connect Databricks
from anomalyarmor import Client
client = Client()
asset = client.assets.create(
name="Databricks Lakehouse",
source_type="databricks",
connection_config={
"host": "adb-1234567890.1.azuredatabricks.net",
"http_path": "/sql/1.0/warehouses/abc123",
"access_token": "dapi..."
}
)
Connection Config by Source Type
Snowflake
{
"account": "abc123.us-east-1",
"warehouse": "COMPUTE_WH",
"database": "ANALYTICS",
"user": "user",
"password": "password",
"role": "ROLE_NAME" # optional
}
PostgreSQL
{
"host": "hostname",
"port": 5432,
"database": "dbname",
"user": "user",
"password": "password",
"sslmode": "require" # optional
}
BigQuery
{
"project_id": "my-project",
"credentials_json": "{...}" # Service account JSON
}
Security Notes
- Never hardcode credentials in scripts
- Use environment variables or secure vaults
- Create read-only database users for AnomalyArmor
- Ensure network connectivity (whitelist IPs if needed)
Follow-up Actions
After connecting, use:
- /armor:monitor to set up freshness and schema monitoring
- /armor:analyze to generate AI intelligence
- /armor:status to verify health
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.