{
	"base_app_url": "http://localhost:3012",
	"email_from": "jobs@cronicle.com",
	"smtp_hostname": "localhost",
	"smtp_port": 25,
	"secret_key": "CHANGE_ME",
	
	"log_dir": "logs",
	"log_filename": "[component].log",
	"log_columns": ["hires_epoch", "date", "hostname", "pid", "component", "category", "code", "msg", "data"],
	"log_archive_path": "logs/archives/[yyyy]/[mm]/[dd]/[filename]-[yyyy]-[mm]-[dd].log.gz",
	"log_crashes": true,
	"copy_job_logs_to": "",
	"queue_dir": "queue",
	"pid_file": "logs/cronicled.pid",
	"debug_level": 9,
	"maintenance": "04:00",
	"list_row_max": 10000,
	"job_data_expire_days": 180,
	"child_kill_timeout": 10,
	"dead_job_timeout": 120,
	"master_ping_freq": 20,
	"master_ping_timeout": 60,
	"udp_broadcast_port": 3014,
	"scheduler_startup_grace": 10,
	"universal_web_hook": "",
	"track_manual_jobs": false,
	"max_jobs": 0,
	
	"server_comm_use_hostnames": false,
	"web_direct_connect": false,
	"web_socket_use_hostnames": false,
	
	"job_memory_max": 1073741824,
	"job_memory_sustain": 0,
	"job_cpu_max": 0,
	"job_cpu_sustain": 0,
	"job_log_max_size": 0,
	"job_env": {},
	
	"web_hook_text_templates": {
		"job_start": "Job started on [hostname]: [event_title] [job_details_url]",
		"job_complete": "Job completed successfully on [hostname]: [event_title] [job_details_url]",
		"job_failure": "Job failed on [hostname]: [event_title]: Error [code]: [description] [job_details_url]",
		"job_launch_failure": "Failed to launch scheduled event: [event_title]: [description] [edit_event_url]"
	},
	
	"client": {
		"name": "Cronicle",
		"debug": 0,
		"privilege_list": [
			{ "id": "admin", "title": "Administrator" },
			{ "id": "create_events", "title": "Create Events" },
			{ "id": "edit_events", "title": "Edit Events" },
			{ "id": "delete_events", "title": "Delete Events" },
			{ "id": "run_events", "title": "Run Events" },
			{ "id": "abort_events", "title": "Abort Events" },
			{ "id": "state_update", "title": "Toggle Scheduler" }
		],
		"new_event_template": { 
			"enabled": 1, 
			"params": {}, 
			"timing": { "minutes": [0] },
			"max_children": 1,
			"timeout": 3600,
			"catch_up": 0,
			"queue_max": 1000
		}
	},
	
	"Storage": {
		"engine": "Filesystem",
		"list_page_size": 50,
		"concurrency": 4,
		"log_event_types": { "get": 1, "put": 1, "head": 1, "delete": 1, "expire_set": 1 },
		
		"Filesystem": {
			"base_dir": "data",
			"key_namespaces": 1
		}
	},
	
	"WebServer": {
		"http_port": 3012,
		"http_htdocs_dir": "htdocs",
		"http_max_upload_size": 104857600,
		"http_static_ttl": 3600,
		"http_static_index": "index.html",
		"http_server_signature": "Cronicle 1.0",
		"http_gzip_text": true,
		"http_timeout": 30,
		"http_regex_json": "(text|javascript|js|json)",
		"http_response_headers": {
			"Access-Control-Allow-Origin": "*"
		},
		
		"https": false,
		"https_port": 3013,
		"https_cert_file": "conf/ssl.crt",
		"https_key_file": "conf/ssl.key",
		"https_force": false,
		"https_timeout": 30,
		"https_header_detect": {
			"Front-End-Https": "^on$",
			"X-Url-Scheme": "^https$",
			"X-Forwarded-Protocol": "^https$",
			"X-Forwarded-Proto": "^https$",
			"X-Forwarded-Ssl": "^on$"
		}
	},
	
	"User": {
		"session_expire_days": 30,
		"max_failed_logins_per_hour": 5,
		"max_forgot_passwords_per_hour": 3,
		"sort_global_users": true,
		"use_bcrypt": true,
		
		"email_templates": {
			"welcome_new_user": "conf/emails/welcome_new_user.txt",
			"changed_password": "conf/emails/changed_password.txt",
			"recover_password": "conf/emails/recover_password.txt"
		},

		"free_accounts": 1,
		"default_privileges": {
			"admin": 1,
			"create_events": 1,
			"edit_events": 1,
			"delete_events": 1,
			"run_events": 1,
			"abort_events": 1,
			"state_update": 1
		}
	}
	
}
