Skip to main content

Superset Application Guide

Apache Superset is a data exploration and visualization platform for building charts and dashboards.

Status: Available (not yet verified end to end)


Quick Reference​

PropertyValue
Application IDsuperset
CategoryAnalytics
Default Imageapache/superset:latest
Application Port8088
Default CPU1024 (Fargate)
Default Memory2048 MB (Fargate)
Default Instancet3.small (EC2)
Health Check Path/
Health Check Grace300 seconds
Supports FargateYes
Supports EC2Yes
Supported Auth Modesnone
Database RequiredYes (PostgreSQL)

Upstream Features​

  • SQL Lab for ad hoc queries
  • Chart builder and dashboards
  • Role-based access control
  • Connectors for many SQL databases
  • Alerts and scheduled reports (require additional worker and cache configuration)

Database Requirements​

Superset requires a PostgreSQL database for metadata storage. CloudForge provisions Amazon RDS for PostgreSQL when provisionDatabase is set.

PropertyValue
EnginePostgreSQL 13 or later
Instance Classdb.t3.small (default)
Storage20 GB (default)
Database Namesuperset
Backup Retention14 days

Authentication​

ModeDescription
noneSuperset local accounts

Superset declares only the none auth mode. When a context is prepared for a deployment target (the interactive deployer or CloudForgeDeployment), an unsupported authMode such as alb-oidc is replaced with none and a warning is printed. Compliance frameworks that require CloudForge-managed authentication, such as the SOC 2 CC6.2 rule, report a failure when authMode is none.

Native OIDC in Superset requires a custom superset_config.py, which CloudForge does not generate.


Environment Variables​

VariableValue
SUPERSET_SECRET_KEYFixed placeholder value. Replace it with a long random string before storing real data.
ENABLE_PROXY_FIXTrue
PROXY_FIX_X_FOR, PROXY_FIX_X_PROTO, PROXY_FIX_X_HOST, PROXY_FIX_X_PORT, PROXY_FIX_X_PREFIX1
DATABASE_DIALECTpostgresql
DATABASE_HOST, DATABASE_PORT, DATABASE_DB, DATABASE_USERRDS connection
SUPERSET_DATABASE_PASSWORDInjected from the database secret in Secrets Manager
SQLALCHEMY_DATABASE_URIpostgresql://<user>:${SUPERSET_DATABASE_PASSWORD}@<host>:<port>/<db>

ECS does not expand ${...} references inside environment variable values, so SQLALCHEMY_DATABASE_URI contains the literal text ${SUPERSET_DATABASE_PASSWORD} unless the container's entrypoint expands it.


Storage Configuration​

Container (Fargate)​

PropertyValue
Data Path/app/superset_home
EFS Path/superset
Volume NamesupersetData
Container User0:0 (root)
EFS Permissions755

Deployment Context Examples​

Development​

{
"stackName": "Superset-Dev",
"applicationId": "superset",
"applicationName": "Superset Dev",
"environment": "dev",

"runtime": "fargate",
"securityProfile": "dev",
"topology": "application-service",

"networkMode": "private-with-nat",
"region": "us-east-1",

"authMode": "none",

"cpu": 1024,
"memory": 2048,

"provisionDatabase": true,
"databaseEngine": "postgres",
"databaseVersion": "15",
"databaseInstanceClass": "db.t3.micro",
"databaseAllocatedStorageGB": 20,
"databaseName": "superset",

"enableMonitoring": true,
"logRetentionDays": "7"
}

Production​

{
"stackName": "Superset-Production",
"applicationId": "superset",
"applicationName": "Superset Analytics",
"environment": "prod",

"runtime": "ec2",
"securityProfile": "production",
"topology": "application-service",

"domain": "example.com",
"subdomain": "data",
"enableSsl": true,

"networkMode": "private-with-nat",
"region": "us-east-1",

"authMode": "none",

"instanceType": "t3.medium",
"minInstanceCapacity": 2,
"maxInstanceCapacity": 4,
"enableAutoScaling": true,

"provisionDatabase": true,
"databaseEngine": "postgres",
"databaseVersion": "15",
"databaseInstanceClass": "db.t3.medium",
"databaseAllocatedStorageGB": 50,
"databaseMultiAz": true,
"databaseName": "superset",
"databaseBackupRetentionDays": 30,

"awsConfigEnabled": true,
"guardDutyEnabled": true,
"wafEnabled": true,

"enableMonitoring": true,
"enableEncryption": true,
"logRetentionDays": "730",
"retainStorage": true
}

Post-Deployment Tasks​

CloudForge does not run Superset's initialization commands. Run them in the container after the first deployment:

  1. Initialize Database:
    superset db upgrade
  2. Create Admin User:
    superset fab create-admin
  3. Load Examples (optional):
    superset load_examples
  4. Initialize Superset:
    superset init
  5. Connect data sources in the UI.

Compliance Use Cases​

Superset can present dashboards used as evidence for monitoring controls (for example security-event metrics or transaction monitoring). Deploying Superset does not by itself satisfy any framework's requirements.