Skip to main content

Configuration

Goblin uses a combination of CLI commands and database storage for configuration.

Project Configuration

Configure pipeline behavior per project:

# View all settings
goblin pipeline config -p PROJECT_ID --show

# Set bot user for auto-assignment
goblin pipeline config -p PROJECT_ID --assignee-id USER_ID

# Docker Compose file for preview environments
goblin pipeline config -p PROJECT_ID --docker-compose docker-compose.yml

# Test URLs for QA stage
goblin pipeline config -p PROJECT_ID --test-urls "http://localhost:3000,http://localhost:8080"

# Enable Playwright for visual testing
goblin pipeline config -p PROJECT_ID --playwright

# Cloud provider for preview environments
goblin pipeline config -p PROJECT_ID --config cloud_provider=ec2

Linear Notifications

Control what gets posted to Linear:

# Enable/disable notifications
goblin pipeline config -p PROJECT_ID --config linear_notifications_enabled=true

# Stage completion updates
goblin pipeline config -p PROJECT_ID --config linear_stage_updates=true

# Error notifications
goblin pipeline config -p PROJECT_ID --config linear_error_updates=true

# Tag users on blockers
goblin pipeline config -p PROJECT_ID --config linear_blocker_tagging=true

Static Analysis

Configure code analysis in the review stage:

# Enable static analysis (default: true)
goblin pipeline config -p PROJECT_ID --config static_analysis_enabled=true

# Enable mypy type checking (default: true)
goblin pipeline config -p PROJECT_ID --config static_analysis_mypy=true

Cloud Provider Settings

For EC2 preview environments:

# AWS region
goblin pipeline config -p PROJECT_ID --config aws_region=us-east-1

# Instance type
goblin pipeline config -p PROJECT_ID --config ec2_instance_type=t3.small

# SSH key name
goblin pipeline config -p PROJECT_ID --config ec2_key_name=your-key

# Security group
goblin pipeline config -p PROJECT_ID --config ec2_security_group=sg-xxxxx

# SSH key path (local)
goblin pipeline config -p PROJECT_ID --config ssh_key_path=~/.ssh/your-key.pem

Remote Daemon Management

Configure remote deployment for cloud daemon:

goblin remote set \
--name production \
--ip 3.16.148.197 \
--ssh-key ~/.ssh/key.pem \
--instance-id i-xxxxx \
--region us-east-2

Environment Variables

Some settings can be set via environment variables:

VariableDescription
GOBLIN_WORKSPACEOverride default workspace path
LINEAR_API_TOKENLinear API token (alternative to goblin auth)
AWS_PROFILEAWS profile for EC2 operations

Database Schema

Configuration is stored in SQLite:

-- Per-project settings
CREATE TABLE project_config (
project_id TEXT NOT NULL,
key TEXT NOT NULL,
value TEXT NOT NULL,
updated_at TEXT NOT NULL,
PRIMARY KEY (project_id, key)
);

Configuration Priority

  1. CLI flags (highest priority)
  2. Project-specific config (project_config table)
  3. Global config (~/.goblin/config.json)
  4. Environment variables
  5. Default values (lowest priority)

Full Configuration Reference

KeyTypeDefaultDescription
assignee_user_idstringnullLinear user ID for auto-assignment
docker_compose_filestringdocker-compose.ymlDocker Compose file path
test_urlsstringnullComma-separated test URLs
playwright_testingbooleanfalseEnable Playwright
cloud_providerstringlocallocal, ec2, or digitalocean
static_analysis_enabledbooleantrueRun static analysis in review
static_analysis_mypybooleantrueInclude mypy in static analysis
linear_notifications_enabledbooleantruePost to Linear
linear_stage_updatesbooleantruePost stage completion
linear_blocker_taggingbooleantrueTag users on blockers