syntaxis/shared/templates/examples/config.toml.template
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

238 lines
7.2 KiB
Plaintext

# {{TOOL_NAME}} Configuration
#
# This is the configuration file for {{TOOL_NAME}}.
#
# Configuration file search order (tool uses first found):
# 1. .project/{{tool_name_kebab}}.toml - Tools ecosystem (priority)
# 2. .vapora/{{tool_name_kebab}}.toml - VAPORA projects
# 3. .coder/{{tool_name_kebab}}.toml - Doc tracking projects
# 4. ./{{tool_name_kebab}}.toml - Current directory
#
# Copy this file to one of the locations above and customize as needed.
################################################################################
# MAIN SETTINGS
################################################################################
[{{tool_name_kebab}}]
# Setting 1: Description of what this setting does
# Type: string
# Default: "value1"
# Required: yes
setting1 = "value1"
# Setting 2: Another setting description
# Type: integer
# Default: 42
# Valid Range: 1-1000
# Required: no
setting2 = 42
# Enable Feature: Enable or disable feature
# Type: boolean
# Default: true
# Required: no
enable_feature = true
################################################################################
# ADVANCED SETTINGS
################################################################################
[{{tool_name_kebab}}.advanced]
# Maximum Items: Maximum number of items to process
# Type: integer
# Default: 1000
# Valid Range: 1-10000
# Recommendation: Increase for large datasets, decrease for limited memory
max_items = 1000
# Timeout Seconds: Operation timeout in seconds
# Type: integer
# Default: 30
# Valid Range: 1-300
# Recommendation: Increase for slow networks or large operations
timeout_seconds = 30
# Cache Enabled: Enable caching for better performance
# Type: boolean
# Default: true
# Recommendation: true for production, false for testing
cache_enabled = true
# Cache TTL: Cache time-to-live in seconds
# Type: integer
# Default: 3600 (1 hour)
# Valid Range: 60-86400
cache_ttl_seconds = 3600
################################################################################
# DATABASE CONFIGURATION
################################################################################
[database]
# Type: Which database backend to use
# Type: string
# Valid Values: "sqlite" (recommended), "postgres"
# Default: "sqlite"
# Recommendation: Use sqlite for single-user, postgres for production
type = "sqlite"
# SQLite Configuration (used when type = "sqlite")
#
# Path: Location of the SQLite database file
# Type: string
# Default: ".project/{{tool_name_kebab}}.db"
# Recommendation: Keep in .project/ for Tools ecosystem
# Note: Directory must exist and be writable
path = ".project/{{tool_name_kebab}}.db"
# PostgreSQL Configuration (used when type = "postgres")
#
# URL: PostgreSQL connection string
# Type: string
# Format: postgresql://[user[:password]@][host][:port][/database]
# Examples:
# postgresql://localhost/{{tool_name_kebab}}
# postgresql://user:pass@localhost:5432/{{tool_name_kebab}}
# postgresql://user:pass@prod.example.com/{{tool_name_kebab}}
# Note: Uncomment and configure only if using PostgreSQL
# url = "postgresql://user:password@localhost:5432/{{tool_name_kebab}}"
# Connection Pool Size (PostgreSQL only)
# Type: integer
# Default: 5
# Valid Range: 1-20
# Recommendation: Higher for concurrent workloads
# pool_size = 5
################################################################################
# LOGGING CONFIGURATION
################################################################################
[logging]
# Level: Logging verbosity level
# Type: string
# Valid Values: "trace", "debug", "info", "warn", "error"
# Default: "info"
# Recommendation: Use "debug" for development, "info" for production
level = "info"
# Format: Log message format
# Type: string
# Valid Values: "text", "json", "compact"
# Default: "text"
# Recommendation: "text" for terminal, "json" for systems (e.g., ELK stack)
format = "text"
# Output File: Optional log file path (in addition to console)
# Type: string
# Default: (no file logging)
# Example: "/var/log/{{tool_name_kebab}}/app.log"
# Uncomment to enable file logging:
# output_file = ".project/{{tool_name_kebab}}.log"
################################################################################
# ENVIRONMENT VARIABLE OVERRIDES
################################################################################
# You can also configure via environment variables.
# Environment variables take priority over this file.
#
# Format: {{TOOL_NAME}}_SECTION_SETTING=value
#
# Examples:
# export {{TOOL_NAME}}_SETTING1="override"
# export {{TOOL_NAME}}_SETTING2=100
# export {{TOOL_NAME}}_ADVANCED_MAX_ITEMS=5000
# export {{TOOL_NAME}}_DATABASE_TYPE=postgres
# export {{TOOL_NAME}}_DATABASE_URL=postgresql://localhost/{{tool_name_kebab}}
# export {{TOOL_NAME}}_LOGGING_LEVEL=debug
#
# Then run: {{tool_name_kebab}} list
# The tool will use the environment variable values instead of this file.
################################################################################
# COMMON CONFIGURATIONS
################################################################################
# DEVELOPMENT CONFIGURATION
# Uncomment the following lines to use development defaults:
# [{{tool_name_kebab}}]
# enable_feature = false
#
# [{{tool_name_kebab}}.advanced]
# cache_enabled = false
# timeout_seconds = 60
#
# [logging]
# level = "debug"
# PRODUCTION CONFIGURATION
# Uncomment the following lines to use production defaults:
# [{{tool_name_kebab}}]
# enable_feature = true
#
# [{{tool_name_kebab}}.advanced]
# max_items = 10000
# cache_enabled = true
# cache_ttl_seconds = 7200
#
# [database]
# type = "postgres"
# url = "postgresql://user:password@prod-db:5432/{{tool_name_kebab}}"
# pool_size = 20
#
# [logging]
# level = "warn"
# format = "json"
# output_file = "/var/log/{{tool_name_kebab}}/app.log"
################################################################################
# HELPFUL HINTS
################################################################################
# 1. This file uses TOML format (Tom's Obvious, Minimal Language)
# - Strings need double quotes: "value"
# - Numbers don't: 42
# - Booleans: true or false
# - Sections use [name] format
#
# 2. Configuration file search order:
# Tool automatically searches in this order and uses the first found:
# a) .project/{{tool_name_kebab}}.toml
# b) .vapora/{{tool_name_kebab}}.toml
# c) .coder/{{tool_name_kebab}}.toml
# d) ./{{tool_name_kebab}}.toml
#
# 3. To debug configuration:
# Run: {{tool_name_kebab}} -v list
# This shows which config file is being used
#
# 4. For sensitive data (passwords):
# Use environment variables instead of storing in this file:
# export {{TOOL_NAME}}_DATABASE_URL="postgresql://..."
# {{tool_name_kebab}} list
#
# 5. Directory must exist:
# If using SQLite with path = ".project/{{tool_name_kebab}}.db"
# Ensure .project/ directory exists:
# mkdir -p .project
#
# 6. File permissions:
# Ensure config file is readable:
# chmod 644 .project/{{tool_name_kebab}}.toml
#
# 7. Validate configuration:
# Run: {{tool_name_kebab}} validate-config
# This checks syntax and required fields without running commands
#
# 8. For more information:
# - See docs/configuration.md for complete guide
# - See README.md for all features
# - See QUICKSTART.md for 5-minute setup