nuwax-cli 1.0.123

Docker service management and upgrade CLI
Documentation
[�Xg+��hDUCK@v1.3.12063dda3e6r|bB�j *,�|Go��|�-���ꍙ%�d+cddfmaini����cddeduck_clientfmaini�auto_upgrade_tasks_seq�����������������cddeduck_clientfmaini�backup_records_seq�����������������cddeduck_clientfmaini�download_chunks_seq�����������������cddeduck_clientfmaini�download_tasks_seq�����������������cddeduck_clientfmaini�performance_metrics_seq�����������������cddeduck_clientfmaini�service_status_history_seq�����������������cddeduck_clientfmaini�system_checks_seq�����������������cddeduck_clientfmaini�upgrade_history_seq�����������������cddeduck_clientfmaini�user_actions_seq�����������������cddeduck_clientfmaini�
app_config�dd
config_keyed��gh��dconfig_valueededeJSON����gh��dconfig_typeed��gh��dcategoryed��fdeKg��dd��efgeneral����gh��ddescriptioned��gh��dis_system_configed
��fde�deKg��dd��eff�����d
����gh��dis_user_editableed
��fde�deKg��dd��eft�����d
����gh��dvalidation_ruleed��gh��d
default_valueededeJSON����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���
config_key��d���d���d���d�	��d�
��d�����ed��������e�	��f.ghdPRIMARY_app_config_0e��������fdefd��gSh�i��d0��d(efde���gh�i��d�efde�%��gh�i��d���d�����didx_app_config_categorye��������fdefd��gh�i��d0efde���gh�i��d(efde���gh�i��d�efde� ��gh�i��d���d�����didx_app_config_editablee��������fd��d0efd��gh�	i��d(efde�	��gh�i��d���d���d�����didx_app_config_systeme��������fd��d0efd��g
h�
i��d(efde�
��gh�i��d���d���d�������cddeduck_clientfmaini�	app_state�ddided
��fdeKg��dd
��ef����gh��d
current_stateed��fdeKg��dd��ef
UNINITIALIZED����gh��d
state_dataededeJSON����gh��d
last_errored��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d���d�deg��de�g��id���deKg��dd
��ef��������d�����ed��������e���fghdPRIMARY_app_state_0e��������fdefd
��gh�
i��d0��d(��d���d���d�������cddeduck_clientfmaini�auto_upgrade_tasks�ddided
��fd	e�gS�nextval�deKg[�dd��efauto_upgrade_tasks_seq�����d����gh��dtask_ided��gh��d	task_nameed��gh��d
schedule_timeed��gh��dupgrade_typeed��gh��dtarget_versioned��gh��dstatused��fdeKg��dd��efpending����gh��dprogressed
��fdeKg��dd
��ef����gh��d
error_messageed��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����
d���id��d���d��task_id��d���d���d���d���d�	��d�
��d�����ed��������
e���fghdPRIMARY_auto_upgrade_tasks_0fd��d0��d(��d���d���d�����dUNIQUE_auto_upgrade_tasks_2fd��d0��d(��d���d���d�����didx_auto_upgrade_tasks_schedulefd��d0��d(��d���d���d�����didx_auto_upgrade_tasks_statusfd��d0��d(��d���d���d�������cddeduck_clientfmaini�backup_records�d
dided
��fd	e�gO�nextval�deKgW�dd��efbackup_records_seq�����d����gh��dbackup_nameed��gh��dbackup_typeed��gh��dsource_versioned��gh��dbackup_pathed��gh��dbackup_sizeed��gh��d
file_counted
��de.fd��ghdefg�app.firs�upgrade.���,������ede.fd��ghdefg����������de.fd��ghdefg�""�{}���������ede.fd��ghdefg����������de.fde���ghdefg�BOOLEAN�STRING���������ede.fd��ghdefg����������de.fde���ghdefg�backup�upgrade���������ede.fd��ghdefg����������de.fde���ghdefg�Docker C�验证SS���.������ede.fd��ghdefg����������de.fde���ghdefg�de���de��������ede.fd��ghdefg����������de.fde���ghdefg�de���de��������ede.fd��ghdefg����������de.fde���ghdefg�������������������ede.fd��ghdefg����������de.fde�
��ghdefg�""�{}���������ede.fd��ghdefg����������de.fde���ghdefg�de���ς�����de���ς����������ede.fd��ghdefg����������de.fde���ghdefg�de���ς�����de���ς����������ede.fd��ghdefg����������dddefg�app.firs�upgrade.���,����ed.e.fde�HYLL	AAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAA������ddefg�""�{}�������ed.e.fde�HYLL������ddefg�BOOLEAN�STRING�������ed.e.fde�HYLL������ddefg�backup�upgrade�������ed.e.fde�HYLL������ddefg�Docker C�验证SS���.����ed.e.fde�HYLLAAAAAAAAAAAAAAAA������ddefg�de���de��������ddefg�de���de��������ddefg�����������������ed.e.fde�HYLL������ddefg�""�{}�������ed.e.fde�HYLL������ddefg�de���ς�����de���ς��������ed.e.fde�HYLL������ddefg�de���ς�����de���ς��������ed.e.fde�HYLL	������ede��e������de.fd��������e��d��������es��d��������e���d��������e���d��������e���d��������e���d��������e���d��������e���d��������e���d��������e���d��������e���g��defd��ghdefg�de���de��������edefd��ghdefg����������defd	��ghdefg�UNINITIA�UNINITIA���
������edefd��ghdefg����������defde ��ghdefg�������������������edefd��ghdefg����������defde0��ghdefg�������������������edefd��ghdefg����������defd��ghdefg�de�����de����������edefd��ghdefg����������defd��ghdefg�de�����de����������edefd��ghdefg����������dddefg�de���de������edefde�HYLL
������ddefg�UNINITIA�UNINITIA���
����edefde�HYLL������ddefg�����������������edefde�HYLL������ddefg�����������������edefde�HYLL������ddefg�de�����de��������edefde�HYLL
������ddefg�de�����de��������edefde�HYLL������ede��e������defd��������e���d��������e���d��������e���d��������e�
��d��������e���d��������e���g��dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ede��e������d
ddefg�de�������de����x������efde�HYLLgh��dcompression_typeed��fdeKg��dd��efgzip����gh��dbackup_hashed��gh��ddescriptioned��gh��dbackup_metadataededeJSON����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
expires_ated��gh�����d���id��d���d��backup_name��d���d���d���d���d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	����ed��������e���fghdPRIMARY_backup_records_0fd��d0��d(��d���d���d�����dUNIQUE_backup_records_2fd��d0��d(��d���d���d�����didx_backup_records_created_atfd��d0��d(��d���d���d�����didx_backup_records_typefd��d0��d(��d���d���d�������cddeduck_clientfmaini�current_service_status�ddservice_nameed��gh��dcontainer_ided��gh��dstatused��gh��d
health_statused��gh��dlast_updateded��fde�g��CURRENT_TIMESTAMP��gh��duptime_secondsed
��fdeKg��dd
��ef����gh��d
restart_counted
��fdeKg��dd
��ef����gh�����d���service_name��d���d���d�����ed�������� e���fghd PRIMARY_current_service_status_0fd��d0��d(��d���d���d�������cddeduck_clientfmaini�download_chunks�d
dided
��fd	e�gP�nextval�deKgX�dd��efdownload_chunks_seq�����d����gh��dtask_ided
��gh��dchunk_indexed
��gh��d
start_byteed��gh��dend_byteed��gh��ddownloaded_bytesed��fdeKg��dd
��ef����gh��dstatused��fdeKg��dd��efPENDING����gh��d
error_messageed��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����
d���id��d���d���d���d���d���d���d�	��d�����������task_idchunk_index��d�����ed��������&e���fghdPRIMARY_download_chunks_0fd��d0��d(��d���d���d�����dUNIQUE_download_chunks_8fd��d0��d(��d���d���d�����didx_download_chunks_task_idfd��d0��d(��d���d���d�������cddeduck_clientfmaini�download_tasks�ddided
��fd	e�g��nextval�deKg��dd��efdownload_tasks_seq�����d����gh��d	task_nameed��gh��ddownload_urled��gh��d
total_sizeed��gh��ddownloaded_sizeed��fdeKg��dd
��ef����gh��dtarget_pathed��gh��d	file_hashed��gh��dstatused��fdeKg��dd��efPENDING����gh��d
error_messageed��gh��dretry_counted
��fdeKg��dd
��ef����gh��dmax_retry_counted
��fdeKg��dd
��ef����gh��d
average_speeded��fdeKg��dd
��ef����gh��dtotal_duration_secondsed
��fdeKg��dd
��ef����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g�	�CURRENT_TIMESTAMP��gh��dcompleted_ated��gh�����	d���id��d���d���d���d���d���d�
��d���d�����ed��������-e���fghdPRIMARY_download_tasks_0fd��d0��d(��d���d���d�����didx_download_tasks_statusfd��d0��d(��d���d���d�������cddeduck_clientfmaini�performance_metrics�ddided
��fd	e�gT�nextval�deKg\�dd��efperformance_metrics_seq�����d����gh��dmetric_nameed��gh��dmetric_valueed��gh��dmetric_united��gh��dtagsededeJSON����gh��drecorded_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d���d�����ed��������:e�������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL ������ddefg�de������������de���쵀���������efde�HYLL!������ddefg�de������������de���쵀���������efde�HYLL������ede��e������dddefg�����������������efde�HYLL"������ddefg�����������������efde�HYLL#������ddefg�����������������efde�HYLL$������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL%������ddefg�de�������de����x������efde�HYLL&������ddefg�de�������de����x������efde�HYLL'������ede��e������d
ddefg�de�������de����x������efde�HYLL������ddefg�de���(����de����x������efde�HYLL������ddefg�de�������de����x������efde�HYLL)������ddefg�de������������de���������������efde�HYLL*������ddefg�de������������de���������������efde�HYLL+������ddefg�de������������de���������������efde�HYLL������ddefg�����������������efde�HYLL,������ddefg�����������������efde�HYLL-������ddefg�de������������de���쵀���������efde�HYLL.������ddefg�de������������de���쵀���������efde�HYLL������ede��e������dddefg�de�������de����x������efde�HYLL/������ddefg�����������������efde�HYLL0������ddefg�����������������efde�HYLL1������ddefg�de������������de���������������efde�HYLL2������ddefg�de������������de���������������efde�HYLL������ddefg�����������������efde�HYLL3������ddefg�����������������efde�HYLL4������ddefg�����������������efde�HYLL5������ddefg�����������������efde�HYLL������ddefg�de�������de����x������efde�HYLL6������ddefg�de�������de����x������efde�HYLL7������ddefg�de������������de���������������efde�HYLL8������ddefg�de�������de����x������efde�HYLL9������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL:������ddefg�de������������de���쵀���������efde�HYLL;������ede��e������dddefg�de�������de����x������efde�HYLL<������ddefg�����������������efde�HYLL������ddefg�de����������de��������������efde�HYLL=������ddefg�����������������efde�HYLL>������ddefg�����������������efde�HYLL?������ddefg�de������������de���쵀���������efde�HYLL������ede��e������defd��ghdefg�de���de��������edefd��ghdefg����������defd��ghdefg�初始��初始����0������edefd��ghdefg����������defd��ghdefg�deؙ�ς�����deؙ�ς����������edefd��ghdefg����������dddefg�de���de������edefde�HYLL������ddefg�初始��初始����0����edefde�HYLL��U�T5s�*� -5@O_r�����8Ldx������*?Vq�����#4Uu���	*maintenance.auto_optimize_enabledmaintenance.vacuum_schedulemaintenance.cleanup_performance_metrics_daysmaintenance.cleanup_user_actions_daysmaintenance.cleanup_service_history_dayssecurity.verify_ssl_certificatessecurity.allow_insecure_downloadslogging.max_fileslogging.max_file_sizelogging.levelnetwork.connection_timeoutnetwork.proxy_confignetwork.proxy_enabledupgrade.check_interval_hoursupgrade.auto_check_updateupgrade.rollback_enabledupgrade.auto_backup_enabledauto_backup_last_statusauto_backup_last_timeauto_backup_directoryauto_backup_retention_daysauto_backup_scheduleauto_backup_enabledbackup.verify_after_backupbackup.compression_enabledbackup.auto_cleanupbackup.retention_daysdownload.auto_resumedownload.timeout_secondsdownload.retry_countdownload.max_concurrent_chunksdownload.chunk_sizedocker.health_check_intervaldocker.auto_start_on_bootdocker.compose_file_pathui.show_detailed_progressui.confirm_dangerous_actionsui.minimize_to_trayui.window_maximizedui.window_heightui.window_widthui.languageui.themeapp.first_runapp.working_directoryapp.version�(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"Y,��M��m�&IYI�M�
OBJECTNUMBERBOOLEANSTRINGD�4!"""23DDTUUUUefvw�����#*19DmaintenancesecurityloggingnetworkupgradebackupdownloaddockeruisystemC);Yeq}�����'E`r������#;Me}������7ay����.C自动数据库优化数据库VACUUM计划(每周日凌晨2点)性能监控数据保留天数用户操作历史保留天数服务状态历史保留天数验证SSL证书允许不安全的下载连接最大日志文件数量单个日志文件最大大小(字节)日志级别:DEBUG/INFO/WARN/ERROR网络连接超时(秒)代理配置是否启用代理更新检查间隔(小时)自动检查更新升级失败自动回滚升级前自动备份上次自动备份状态上次自动备份时间自动备份目录自动备份保留天数自动备份计划(cron表达式)自动备份开关备份后文件校验备份文件压缩自动清理过期备份备份保留天数自动断点续传下载超时时间(秒)下载重试次数最大并发下载分片数下载分片大小(字节)健康检查间隔(秒)开机自动启动服务Docker Compose文件路径显示详细进度信息危险操作二次确认最小化到系统托盘是否最大化窗口窗口高度窗口宽度界面语言主题设置:light/dark/auto是否首次运行当前工作目录Duck Client应用版本�����?�(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"�z�)898��)89)�z�)898��)89)�4WqҐ)��(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"Y,��M��m�&IYI�M�
OBJECTNUMBERBOOLEANSTRINGC);Yeq}�����'E`r������#;Me}������7ay����.C自动数据库优化数据库VACUUM计划(每周日凌晨2点)性能监控数据保留天数用户操作历史保留天数服务状态历史保留天数验证SSL证书允许不安全的下载连接最大日志文件数量单个日志文件最大大小(字节)日志级别:DEBUG/INFO/WARN/ERROR网络连接超时(秒)代理配置是否启用代理更新检查间隔(小时)自动检查更新升级失败自动回滚升级前自动备份上次自动备份状态上次自动备份时间自动备份目录自动备份保留天数自动备份计划(cron表达式)自动备份开关备份后文件校验备份文件压缩自动清理过期备份备份保留天数自动断点续传下载超时时间(秒)下载重试次数最大并发下载分片数下载分片大小(字节)健康检查间隔(秒)开机自动启动服务Docker Compose文件路径显示详细进度信息危险操作二次确认最小化到系统托盘是否最大化窗口窗口高度窗口宽度界面语言主题设置:light/dark/auto是否首次运行当前工作目录Duck Client应用版本�(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"�|bh�)
�*U������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������grade�curity
�	ocker�kernload�ackup�	�etwork	�ogging�stem�aintenance�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?
$%&)*+,-!"#'(
	
 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������eysucwip�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������bdlmnsu	
�l3+��	�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?	

 !"#$%&'	()*+,-������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
�7!��A7�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?	

 !"#	$%&'
()*+,-�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%����

UNINITIALIZED?4��Z�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������grade.auto_back	ersionorking_directoryirst_run	to_backup_enabl
hemeanguageindow_widthidtheightaximized	inimize_to_tray
onfirm_dangerous_actions
	how_detailed_progress
ocker.compose_futo_start_on_boompose_file_pathotealth_check_interval
ker.nload.chunk_sizax_concurrent_chunk_size
hunksetry_countimeout_secondsuto_resumeackup.retentionuto_cleanupetention_daysompression_enab%lederify_after_bac'kupp.chedulenabledetention_daysirectory	ast_timeimetatus.ollback_enabled4uto_backup_enab
heck_updateackup_enabledheck_interval_h7ours etwork.proxy_enonfig"nabled!roxy_onnection_timeo=ut#ogging.levelevel$ax_file_size
size%&ecurity.allow_ierify_ssl_certiEficates(llow_insecure_dGownloads	'aintenance.cleaacuum_schedule,ser_actions_dayMervice_history_Ldays)s*erformance_metrOics_days	+leanup_uto_optimize_enRabled-����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������fvwcedu9:achwhmw
	cwacrv"$#&pu(strs/.+)ip0acr261bc53cp<;lm?@_sABavFDpsuNKJacvQPI�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������clmstwacmrt delrs,*-+)abdlmnsu!>H8Cy��d�)��fghdPRIMARY_performance_metrics_0fd��d0��d(��d���d���d�����d!idx_performance_metrics_name_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�schema_version�ddversioned
��gh��ddescriptioned��gh��d
applied_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���version��d���d�����ed��������?e���fghdPRIMARY_schema_version_0e��������fdefd��gh�
i��d0��d(��d���d���d�������cddeduck_clientfmaini�service_status_history�d
dided
��fd	e�gW�nextval�deKg_�dd��efservice_status_history_seq�����d����gh��dservice_nameed��gh��dcontainer_ided��gh��dstatused��gh��d	cpu_usageed��gh��dmemory_usageed��gh��d
network_ioededeJSON����gh��d
health_statused��gh��d
error_messageed��gh��drecorded_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d�	��d�����ed��������e���fghd PRIMARY_service_status_history_0fd��d0��d(��d���d���d�����didx_service_status_service_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�
system_checks�d	dided
��fd	e�gN�nextval�deKgV�dd��efsystem_checks_seq�����d����gh��d
check_typeed��gh��d
check_nameed��gh��dplatformed��gh��drequired_valueed��gh��dactual_valueed��gh��dstatused��gh��dmessageed��gh��d
checked_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d���d���d���d�����ed��������
e���fghdPRIMARY_system_checks_0fd��d0��d(��d���d���d�����didx_system_checks_type_platformfd��d0��d(��d���d���d�������cddeduck_clientfmaini�user_actions�ddided
��fd	e�gM�nextval�deKgU�dd��efuser_actions_seq�����d����gh��daction_typeed��gh��daction_descriptioned��gh��d
action_paramsededeJSON����gh��dstatused��gh��dresult_messageed��gh��d
started_ated��fde�g��CURRENT_TIMESTAMP��gh��dcompleted_ated��gh��dduration_secondsed
��gh��d
session_ided��gh��dclient_versioned��gh��d
platform_infoed��gh�����d���id��d���d���d���d���d�����ed��������e���fghdPRIMARY_user_actions_0fd��d0��d(��d���d���d�����didx_user_actions_statusfd��d0��d(��d���d���d�����didx_user_actions_type_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�upgrade_history�ddided
��fd	e�gP�nextval�deKgX�dd��efupgrade_history_seq�����d����gh��d
upgrade_ided��gh��dfrom_versioned��gh��d
to_versioned��gh��dupgrade_typeed��gh��dstatused��gh��dscheduled_ated��gh��d
started_ated��gh��dcompleted_ated��gh��d	backup_ided
��gh��d
error_messageed��gh��drollback_reasoned��gh��dupgrade_loged��gh��d
download_sizeed��gh��ddownload_time_secondsed
��gh��dinstallation_time_secondsed
��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d��
upgrade_id��d���d���d���d���d���d���d�id�	backup_id��backup_records��	��d�����ed��������e���fghdPRIMARY_upgrade_history_0fd��d0��d(��d���d���d�����dUNIQUE_upgrade_history_2fd��d0��d(��d���d���d�����dFOREIGN_upgrade_history_9fd��d0��d(��d���d���d�����didx_upgrade_history_statusfd��d0��d(��d���d���d�����didx_upgrade_history_versionsfd��d0��d(��d���d���d�������cddfmainij�-- 配置管理视图(按分类组织,�������ddefg�deؙ�ς�����deؙ�ς��������edefde�HYLL������ede��e������defd��������?er��d��������?e���d��������?e���g��d
ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de����������de��������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL	������ddefg�����������������efde�HYLL
������ddefg�de������������de���쵀���������efde�HYLL������ede��e������d	ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL
������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ede��e������dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ede��e������dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL ������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL!������ddefg�de������������de���쵀���������efde�HYLL"������ddefg�de�������de����x������efde�HYLL#������ddefg�����������������efde�HYLL������ddefg�����������$������efde�HYLL������ddefg�����������������efde�HYLL%������ddefg�de������������de���������������efde�HYLL&������ddefg�de�������de����x������efde�HYLL'������ddefg�de�������de����x������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL(������ddefg�de������������de���쵀���������efde�HYLL��������������ede��e������*�于管理)
CREATE VIEW IF NOT EXISTS config_by_category AS
SELECT 
    category,
    config_key,
    config_value,
    config_type,
    description,
    is_system_config,
    is_user_editable,
    default_value,
    CASE 
        WHEN config_value = default_value THEN 'DEFAULT'
        ELSE 'MODIFIED'
    END as config_status,
    updated_at
FROM app_config
ORDER BY category, config_key�config_by_category�
d��d��dedeJSON����d��d��d
��d
��dedeJSON����d��d���dded�defde�g��category����defde�g��
config_key������f���
de�gv�category��de�g��
config_key��de�g��config_value��de�g��config_type��de�g��description��de�g��is_system_config��de�g��is_user_editable��de�g��
default_value��de�f
config_statusg��ddeg��de�g��config_value���de�g��
default_value����edeKg��dd��efDEFAULT�������deKg��dd��efMODIFIED������de�g��
updated_at���dg��
app_config��������
category
config_keyconfig_valueconfig_typedescriptionis_system_configis_user_editable
default_value
config_status
updated_at����cddfmainij�-- ========================================
-- 创建视图用于常用查询优化
-- ========================================

-- 当前下载进度视图(移除实时字段,这些数据从内存获取)
CREATE VIEW IF NOT EXISTS current_download_progress AS
SELECT 
    dt.id,
    dt.task_name,
    dt.total_size,
    dt.downloaded_size,
    ROUND(dt.downloaded_size * 100.0 / dt.total_size, 2) as progress_percentage,
    dt.status,
    dt.created_at,
    dt.updated_at,
    COUNT(dc.id) as total_chunks,
    COUNT(CASE WHEN dc.status = 'COMPLETED' THEN 1 END) as completed_chunks
FROM download_tasks dt
LEFT JOIN download_chunks dc ON dt.id = dc.task_id
WHERE dt.status IN ('DOWNLOADING', 'PAUSED')
GROUP BY dt.id, dt.task_name, dt.total_size, dt.downloaded_size, dt.status, dt.created_at, dt.updated_at�current_download_progress�
d
��d��d��d��d��d��d��d��d��d���ddf���
de�g��dtid��de�g��dt	task_name��de�g��dt
total_size��de�g��dtdownloaded_size��d	e�fprogress_percentageg��round�d	e�g��/�d	e�g��*�de�g��dtdownloaded_size��deKg��dded������ef������d�����de�g��dt
total_size���d�����deKg��dd
��ef�����d����de�g��dtstatus��de�g��dt
created_at��de�g��dt
updated_at��d	e�ftotal_chunksg��count�de�g��dcid���d����d	e�fcompleted_chunksg��count�de�g��ddeg��de�g��dcstatus���deKg��dd��ef	COMPLETED������edeKg��dd
��ef�������deK�dd��e�������d�����d�dedtg��download_tasks���dedcg��download_chunks���deg��de�g��dtid���de�g��dctask_id���������d
e#g��de�g��dtstatus��deKg��dd��efDOWNLOADING����deKg��dd��efPAUSED�������de�g��dtid��de�g��dt	task_name��de�g��dt
total_size��de�g��dtdownloaded_size��de�g��dtstatus��de�g��dt
created_at��de�g��dt
updated_at���������
id	task_name
total_sizedownloaded_sizeprogress_percentagestatus
created_at
updated_attotal_chunkscompleted_chunks����cddfmainij�-- 最新服务状态视图
CREATE VIEW IF NOT EXISTS latest_service_status AS
SELECT DISTINCT
    service_name,
    FIRST_VALUE(status) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as current_status,
    FIRST_VALUE(health_status) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as current_health,
    FIRST_VALUE(recorded_at) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as last_update
FROM service_status_history�latest_service_status�d��d��d��d���dd+ed��f���de�gc�service_name��de�fcurrent_statusgu�first_value�de�g��status���de�g��service_name���defde�g��recorded_at��������de�fcurrent_healthg��first_value�de�g��
health_status���de�g��service_name���defde�g��recorded_at��������de�flast_updateg��first_value�de�g��recorded_at���de�g��service_name���defde�g��recorded_at���������dg��service_status_history��������service_namecurrent_statuscurrent_healthlast_update����cddfmainij�-- 用户可编辑配置视图
CREATE VIEW IF NOT EXISTS user_editable_config AS
SELECT 
    config_key,
    config_value,
    config_type,
    category,
    description,
    validation_rule,
    default_value
FROM app_config
WHERE is_user_editable = TRUE
ORDER BY category, config_key�user_editable_config�d��dedeJSON����d��d��d��d��dedeJSON�����dded�defde�g��category����defde�g��
config_key������f���de�g]�
config_key��de�gm�config_value��de�g�config_type��de�g��category��de�g��description��de�g��validation_rule��de�g��
default_value���dg��
app_config���deg��de�g��is_user_editable���de�deKg��dd��eft�����d
������������
config_keyconfig_valueconfig_typecategorydescriptionvalidation_rule
default_value����cddfmainijr-- 添加索引提高并发读取性能
CREATE INDEX IF NOT EXISTS idx_app_config_category ON app_config(category)�idx_app_config_category�
app_config��de��
app_configcategory����ART����cddfmainijRCREATE INDEX IF NOT EXISTS idx_app_config_editable ON app_config(is_user_editable)�idx_app_config_editable�
app_config��de��
app_configis_user_editable����ART����cddfmainijPCREATE INDEX IF NOT EXISTS idx_app_config_system ON app_config(is_system_config)�idx_app_config_system�
app_config��de��
app_configis_system_config����ART����cddfmainij_CREATE INDEX IF NOT EXISTS idx_auto_upgrade_tasks_schedule ON auto_upgrade_tasks(schedule_time)�idx_auto_upgrade_tasks_schedule�auto_upgrade_tasks��de��auto_upgrade_tasks
schedule_time����ART����cddfmainijVCREATE INDEX IF NOT EXISTS idx_auto_upgrade_tasks_status ON auto_upgrade_tasks(status)�idx_auto_upgrade_tasks_status�auto_upgrade_tasks��de��auto_upgrade_tasksstatus����ART����cddfmainijVCREATE INDEX IF NOT EXISTS idx_backup_records_created_at ON backup_records(created_at)�idx_backup_records_created_at�backup_records��de��backup_records
created_at����ART����cddfmainijQCREATE INDEX IF NOT EXISTS idx_backup_records_type ON backup_records(backup_type)�idx_backup_records_type�backup_records��de��backup_recordsbackup_type����ART����cddfmainijRCREATE INDEX IF NOT EXISTS idx_download_chunks_task_id ON download_chunks(task_id)�idx_download_chunks_task_id�download_chunks��de��download_chunkstask_id����ART����cddfmainijNCREATE INDEX IF NOT EXISTS idx_download_tasks_status ON download_tasks(status)�idx_download_tasks_status�download_tasks��de��download_tasksstatus����ART����cddfmainijmCREATE INDEX IF NOT EXISTS idx_performance_metrics_name_time ON performance_metrics(metric_name, recorded_at)�!idx_performance_metrics_name_time�performance_metrics��de��performance_metricsmetric_name��de��performance_metricsrecorded_at����ART����cddfmainij�-- 时序数据索引优化
CREATE INDEX IF NOT EXISTS idx_service_status_service_time ON service_status_history(service_name, recorded_at)�idx_service_status_service_time�service_status_history��de��service_status_historyservice_name��de��service_status_histor��������yrecorded_at���	�ART����cddfmainijaCREATE INDEX IF NOT EXISTS idx_system_checks_type_platform ON system_checks(check_type, platform)�idx_system_checks_type_platform�
system_checks��de��
system_checks
check_type��de��
system_checksplatform����ART����cddfmainijPCREATE INDEX IF NOT EXISTS idx_upgrade_history_status ON upgrade_history(status)�idx_upgrade_history_status�upgrade_history��de��upgrade_historystatus����ART����cddfmainijdCREATE INDEX IF NOT EXISTS idx_upgrade_history_versions ON upgrade_history(from_version, to_version)�idx_upgrade_history_versions�upgrade_history��de��upgrade_historyfrom_version��de��upgrade_history
to_version����ART����cddfmainijJCREATE INDEX IF NOT EXISTS idx_user_actions_status ON user_actions(status)�idx_user_actions_status�user_actions��de��user_actionsstatus����ART����cddfmainijt-- 审计日志索引
CREATE INDEX IF NOT EXISTS idx_user_actions_type_time ON user_actions(action_type, started_at)�idx_user_actions_type_time�user_actions��de��user_actionsaction_type��de��user_actions
started_at����ART��������������
���d+cddfmaini����cddeduck_clientfmaini�auto_upgrade_tasks_seq�����������������cddeduck_clientfmaini�backup_records_seq�����������������cddeduck_clientfmaini�download_chunks_seq�����������������cddeduck_clientfmaini�download_tasks_seq�����������������cddeduck_clientfmaini�performance_metrics_seq�����������������cddeduck_clientfmaini�service_status_history_seq�����������������cddeduck_clientfmaini�system_checks_seq�����������������cddeduck_clientfmaini�upgrade_history_seq�����������������cddeduck_clientfmaini�user_actions_seq�����������������cddeduck_clientfmaini�
app_config�dd
config_keyed��gh��dconfig_valueededeJSON����gh��dconfig_typeed��gh��dcategoryed��fdeKg��dd��efgeneral����gh��ddescriptioned��gh��dis_system_configed
��fde�deKg��dd��eff�����d
����gh��dis_user_editableed
��fde�deKg��dd��eft�����d
����gh��dvalidation_ruleed��gh��d
default_valueededeJSON����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���
config_key��d���d���d���d�	��d�
��d�����ed��������.e�	��f.ghdPRIMARY_app_config_0e��������fdefd��gSh�i��d0��d(efde���gh�i��d�efde�%��gh�i��d���d�����didx_app_config_categorye��������fdefd��gh�i��d0efde���gh�i��d(efde���gh�i��d�efde� ��gh�i��d���d�����didx_app_config_editablee��������fd��d0efd��gh�	i��d(efde�	��gh�i��d���d���d�����didx_app_config_systeme��������fd��d0efd��g
h�
i��d(efde�
��gh�i��d���d���d�������cddeduck_clientfmaini�	app_state�ddided
��fdeKg��dd
��ef����gh��d
current_stateed��fdeKg��dd��ef
UNINITIALIZED����gh��d
state_dataededeJSON����gh��d
last_errored��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d���d�deg��de�g��id���deKg��dd
��ef��������d�����ed��������5e���fghdPRIMARY_app_state_0e��������fdefd��gh�
i��d0��d(��d���d���d�������cddeduck_clientfmaini�auto_upgrade_tasks�ddided
��fd	e�gS�nextval�deKg[�dd��efauto_upgrade_tasks_seq�����d����gh��dtask_ided��gh��d	task_nameed��gh��d
schedule_timeed��gh��dupgrade_typeed��gh��dtarget_versioned��gh��dstatused��fdeKg��dd��efpending����gh��dprogressed
��fdeKg��dd
��ef����gh��d
error_messageed��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����
d���id��d���d��task_id��d���d���d���d���d�	��d�
��d�����ed��������:e���fghdPRIMARY_auto_upgrade_tasks_0fd��d0��d(��d���d���d�����dUNIQUE_auto_upgrade_tasks_2fd��d0��d(��d���d���d�����didx_auto_upgrade_tasks_schedulefd��d0��d(��d���d���d�����didx_auto_upgrade_tasks_statusfd��d0��d(��d���d���d�������cddeduck_clientfmaini�backup_records�d
dided
��fd	e�gO�nextval�deKgW�dd��efbackup_records_seq�����d����gh��dbackup_nameed��gh��dbackup_typeed��gh��dsource_versioned��gh��dbackup_pathed��gh��dbackup_sizeed��gh��d
file_counted
��/de.fd��ghdefg�app.firs�upgrade.���,������ede.fd��ghdefg����������de.fd��ghdefg�""�{}���������ede.fd��ghdefg����������de.fde���ghdefg�BOOLEAN�STRING���������ede.fd��ghdefg����������de.fde���ghdefg�backup�upgrade���������ede.fd��ghdefg����������de.fde���ghdefg�Docker C�验证SS���.������ede.fd��ghdefg����������de.fde���ghdefg�de���de��������ede.fd��ghdefg����������de.fde���ghdefg�de���de��������ede.fd��ghdefg����������de.fde���ghdefg�������������������ede.fd��ghdefg����������de.fde�
��ghdefg�""�{}���������ede.fd��ghdefg����������de.fde���ghdefg�de���ς�����de���ς����������ede.fd��ghdefg����������de.fde���ghdefg�de���ς�����de���ς����������ede.fd��ghdefg����������dddefg�app.firs�upgrade.���,����ed.e.fde�HYLL	0AAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAA������ddefg�""�{}�������ed.e.fde�HYLL������ddefg�BOOLEAN�STRING�������ed.e.fde�HYLL1������ddefg�backup�upgrade�������ed.e.fde�HYLL2������ddefg�Docker C�验证SS���.����ed.e.fde�HYLL3AAAAAAAAAAAAAAAA������ddefg�de���de��������ddefg�de���de��������ddefg�����������������ed.e.fde�HYLL������ddefg�""�{}�������ed.e.fde�HYLL4������ddefg�de���ς�����de���ς��������ed.e.fde�HYLL5������ddefg�de���ς�����de���ς��������ed.e.fde�HYLL6������ede��e������de.fd��������.e��d��������.es��d��������.e���d��������.e���d��������.e���d��������.e���d��������.e���d��������.e���d��������.e���d��������.e���d��������.e���g��defd��ghdefg�de���de��������edefd��ghdefg����������defd
��ghdefg�UNINITIA�UNINITIA���
������edefd��ghdefg����������defde ��ghdefg�������������������edefd��ghdefg����������defde0��ghdefg�������������������edefd��ghdefg����������defd��ghdefg�de�����de����������edefd��ghdefg����������defd��ghdefg�de�����de����������edefd��ghdefg����������dddefg�de���de������edefde�HYLL7������ddefg�UNINITIA�UNINITIA���
����edefde�HYLL8������ddefg�����������������edefde�HYLL������ddefg�����������������edefde�HYLL9������ddefg�de�����de��������edefde�HYLL:������ddefg�de�����de��������edefde�HYLL;������ede��e������defd��������5e���d��������5e���d��������5e���d��������5e�
��d��������5e���d��������5e���g��dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL<������ddefg�����������������efde�HYLL=������ddefg�de������������de���쵀���������efde�HYLL>������ddefg�����������������efde�HYLL?������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de�������de����x������efde�HYLL�%����

UNINITIALIZEDL�_�R����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4WqҐ)��(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"Y,��M��m�&IYI�M�
OBJECTNUMBERBOOLEANSTRINGC);Yeq}�����'E`r������#;Me}������7ay����.C自动数据库优化数据库VACUUM计划(每周日凌晨2点)性能监控数据保留天数用户操作历史保留天数服务状态历史保留天数验证SSL证书允许不安全的下载连接最大日志文件数量单个日志文件最大大小(字节)日志级别:DEBUG/INFO/WARN/ERROR网络连接超时(秒)代理配置是否启用代理更新检查间隔(小时)自动检查更新升级失败自动回滚升级前自动备份上次自动备份状态上次自动备份时间自动备份目录自动备份保留天数自动备份计划(cron表达式)自动备份开关备份后文件校验备份文件压缩自动清理过期备份备份保留天数自动断点续传下载超时时间(秒)下载重试次数最大并发下载分片数下载分片大小(字节)健康检查间隔(秒)开机自动启动服务Docker Compose文件路径显示详细进度信息危险操作二次确认最小化到系统托盘是否最大化窗口窗口高度窗口宽度界面语言主题设置:light/dark/auto是否首次运行当前工作目录Duck Client应用版本�(<AR�Ac���b�
5�@F!�ME�E^�	
!&CELMNQ\]hjlrz{}�"0 2 * * 0"90510485760"INFO"{}24"./backups"7"0 2 * * *"30034104857630"./docker/docker-compose.yml"false8001200"zh-CN""auto"true"""0.1.0"?4��Z�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������grade.auto_back	ersionorking_directoryirst_run	to_backup_enabl
hemeanguageindow_widthidtheightaximized	inimize_to_tray
onfirm_dangerous_actions
	how_detailed_progress
ocker.compose_futo_start_on_boompose_file_pathotealth_check_interval
ker.nload.chunk_sizax_concurrent_chunk_size
hunksetry_countimeout_secondsuto_resumeackup.retentionuto_cleanupetention_daysompression_enab%lederify_after_bac'kupp.chedulenabledetention_daysirectory	ast_timeimetatus.ollback_enabled4uto_backup_enab
heck_updateackup_enabledheck_interval_h7ours etwork.proxy_enonfig"nabled!roxy_onnection_timeo=ut#ogging.levelevel$ax_file_size
size%&ecurity.allow_ierify_ssl_certiEficates(llow_insecure_dGownloads	'aintenance.cleaacuum_schedule,ser_actions_dayMervice_history_Ldays)s*erformance_metrOics_days	+leanup_uto_optimize_enRabled-����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������fvwcedu9:achwhmw
	cwacrv"$#&pu(strs/.+)ip0acr261bc53cp<;lm?@_sABavFDpsuNKJacvQPI�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������clmstwacmrt delrs,*-+)abdlmnsu!>H8C�%����

UNINITIALIZEDL�_�R���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
�ʥfk�������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ede��e������d
ddefg�de�������de����x������efde�HYLL(gh��dcompression_typeed��fdeKg��dd��efgzip����gh��dbackup_hashed��gh��ddescriptioned��gh��dbackup_metadataededeJSON����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
expires_ated��gh�����d���id��d���d��backup_name��d���d���d���d���d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	��d�id�	backup_id��upgrade_history��	����ed��������e���fghdPRIMARY_backup_records_0fd��d0��d(��d���d���d�����dUNIQUE_backup_records_2fd��d0��d(��d���d���d�����didx_backup_records_created_atfd��d0��d(��d���d���d�����didx_backup_records_typefd��d0��d(��d���d���d�������cddeduck_clientfmaini�current_service_status�ddservice_nameed��gh��dcontainer_ided��gh��dstatused��gh��d
health_statused��gh��dlast_updateded��fde�g��CURRENT_TIMESTAMP��gh��duptime_secondsed
��fdeKg��dd
��ef����gh��d
restart_counted
��fdeKg��dd
��ef����gh�����d���service_name��d���d���d�����ed��������
e���fghd PRIMARY_current_service_status_0fd��d0��d(��d���d���d�������cddeduck_clientfmaini�download_chunks�d
dided
��fd	e�gP�nextval�deKgX�dd��efdownload_chunks_seq�����d����gh��dtask_ided
��gh��dchunk_indexed
��gh��d
start_byteed��gh��dend_byteed��gh��ddownloaded_bytesed��fdeKg��dd
��ef����gh��dstatused��fdeKg��dd��efPENDING����gh��d
error_messageed��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����
d���id��d���d���d���d���d���d���d�	��d�����������task_idchunk_index��d�����ed��������e���fghdPRIMARY_download_chunks_0fd��d0��d(��d���d���d�����dUNIQUE_download_chunks_8fd��d0��d(��d���d���d�����didx_download_chunks_task_idfd��d0��d(��d���d���d�������cddeduck_clientfmaini�download_tasks�ddided
��fd	e�g��nextval�deKg��dd��efdownload_tasks_seq�����d����gh��d	task_nameed��gh��ddownload_urled��gh��d
total_sizeed��gh��ddownloaded_sizeed��fdeKg��dd
��ef����gh��dtarget_pathed��gh��d	file_hashed��gh��dstatused��fdeKg��dd��efPENDING����gh��d
error_messageed��gh��dretry_counted
��fdeKg��dd
��ef����gh��dmax_retry_counted
��fdeKg��dd
��ef����gh��d
average_speeded��fdeKg��dd
��ef����gh��dtotal_duration_secondsed
��fdeKg��dd
��ef����gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g�	�CURRENT_TIMESTAMP��gh��dcompleted_ated��gh�����	d���id��d���d���d���d���d���d�
��d���d�����ed��������e���fghdPRIMARY_download_tasks_0fd��d0��d(��d���d���d�����didx_download_tasks_statusfd��d0��d(��d���d���d�������cddeduck_clientfmaini�performance_metrics�ddided
��fd	e�gT�nextval�deKg\�dd��efperformance_metrics_seq�����d����gh��dmetric_nameed��gh��dmetric_valueed��gh��dmetric_united��gh��dtagsededeJSON����gh��drecorded_ated��fde�g��������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���������������efde�HYLL	������ddefg�de�������de����x������efde�HYLL
������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL
������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ede��e������dddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ede��e������d
ddefg�de�������de����x������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ede��e������dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�����������������efde�HYLL ������ddefg�����������������efde�HYLL!������ddefg�����������������efde�HYLL"������ddefg�����������������efde�HYLL������ddefg�de�������de����x������efde�HYLL#������ddefg�de�������de����x������efde�HYLL$������ddefg�de������������de���������������efde�HYLL%������ddefg�de�������de����x������efde�HYLL&������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL'������ddefg�de������������de���쵀���������efde�HYLL)������ede��e������dddefg�de�������de����x������efde�HYLLCURRENT_TIMESTAMP��gh�����d���id��d���d���d���d�����ed��������'e���fghdPRIMARY_performance_metrics_0fd��d0��d(��d���d���d�����d!idx_performance_metrics_name_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�schema_version�ddversioned
��gh��ddescriptioned��gh��d
applied_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���version��d���d�����ed��������-e���fghdPRIMARY_schema_version_0e��������fdefd��gh�
i��d0��d(��d���d���d�������cddeduck_clientfmaini�service_status_history�d
dided
��fd	e�gW�nextval�deKg_�dd��efservice_status_history_seq�����d����gh��dservice_nameed��gh��dcontainer_ided��gh��dstatused��gh��d	cpu_usageed��gh��dmemory_usageed��gh��d
network_ioededeJSON����gh��d
health_statused��gh��d
error_messageed��gh��drecorded_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d�	��d�����ed��������/e���fghd PRIMARY_service_status_history_0fd��d0��d(��d���d���d�����didx_service_status_service_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�
system_checks�d	dided
��fd	e�gN�nextval�deKgV�dd��efsystem_checks_seq�����d����gh��d
check_typeed��gh��d
check_nameed��gh��dplatformed��gh��drequired_valueed��gh��dactual_valueed��gh��dstatused��gh��dmessageed��gh��d
checked_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d���d���d���d���d�����ed��������7e���fghdPRIMARY_system_checks_0fd��d0��d(��d���d���d�����didx_system_checks_type_platformfd��d0��d(��d���d���d�������cddeduck_clientfmaini�user_actions�ddided
��fd	e�gM�nextval�deKgU�dd��efuser_actions_seq�����d����gh��daction_typeed��gh��daction_descriptioned��gh��d
action_paramsededeJSON����gh��dstatused��gh��dresult_messageed��gh��d
started_ated��fde�g��CURRENT_TIMESTAMP��gh��dcompleted_ated��gh��dduration_secondsed
��gh��d
session_ided��gh��dclient_versioned��gh��d
platform_infoed��gh�����d���id��d���d���d���d���d�����ed��������>e���fghdPRIMARY_user_actions_0fd��d0��d(��d���d���d�����didx_user_actions_statusfd��d0��d(��d���d���d�����didx_user_actions_type_timefd��d0��d(��d���d���d�������cddeduck_clientfmaini�upgrade_history�ddided
��fd	e�gP�nextval�deKgX�dd��efupgrade_history_seq�����d����gh��d
upgrade_ided��gh��dfrom_versioned��gh��d
to_versioned��gh��dupgrade_typeed��gh��dstatused��gh��dscheduled_ated��gh��d
started_ated��gh��dcompleted_ated��gh��d	backup_ided
��gh��d
error_messageed��gh��drollback_reasoned��gh��dupgrade_loged��gh��d
download_sizeed��gh��ddownload_time_secondsed
��gh��dinstallation_time_secondsed
��gh��d
created_ated��fde�g��CURRENT_TIMESTAMP��gh��d
updated_ated��fde�g��CURRENT_TIMESTAMP��gh�����d���id��d���d��
upgrade_id��d���d���d���d���d���d���d�id�	backup_id��backup_records��	��d�����ed��������e���fghdPRIMARY_upgrade_history_0fd��d0��d(��d���d���d�����dUNIQUE_upgrade_history_2fd��d0��d(��d���d���d�����dFOREIGN_upgrade_history_9fd��d0��d(��d���d���d�����didx_upgrade_history_statusfd��d0��d(��d���d���d�����didx_upgrade_history_version*������ddefg�����������������efde�HYLL������ddefg�de����������de��������������efde�HYLL+������ddefg�����������������efde�HYLL,������ddefg�����������������efde�HYLL-������ddefg�de������������de���쵀���������efde�HYLL.������ede��e������defd��ghdefg�de���de��������edefd��ghdefg����������defd��ghdefg�初始��初始����0������edefd��ghdefg����������defd��ghdefg�deؙ�ς�����deؙ�ς����������edefd��ghdefg����������dddefg�de���de������edefde�HYLL������ddefg�初始��初始����0����edefde�HYLL/������ddefg�deؙ�ς�����deؙ�ς��������edefde�HYLL0������ede��e������defd��������-er��d��������-e���d��������-e���g��d
ddefg�de�������de����x������efde�HYLL1������ddefg�����������������efde�HYLL������d2defg�����������������efde�HYLL������ddefg�����������������efde�HYLL3������ddefg�de����������de��������������efde�HYLL4������ddefg�de������������de���������������efde�HYLL5������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL6������ddefg�����������������efde�HYLL7������ddefg�de������������de���쵀���������efde�HYLL8������ede��e������d	ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL9������ddefg�����������������efde�HYLL:������ddefg�����������������efde�HYLL;������ddefg�����������������efde�HYLL<������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL=������ddefg�����������������efde�HYLL>������ddefg�de������������de���쵀���������efde�HYLL?������ede��e������dddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL:7.��[�-0<0初始数据库结构 - 支持DuckDB并发优化L�_�R����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|�h#�a������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ede��e������dddefg�de�������de����x������efde�HYLL	������ddefg�����������������efde�HYLL
������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL
������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�����������������efde�HYLL������ddefg�de������������de���������������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�de�������de����x������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL������ddefg�de������������de���쵀���������efde�HYLL��������������ede��e������sfd��d0��d(��d���d���d�������cddfmainij�-- 配置管理视图(按分类组织,便于管理)
CREATE VIEW IF NOT EXISTS config_by_category AS
SELECT 
    category,
    config_key,
    config_value,
    config_type,
    description,
    is_system_config,
    is_user_editable,
    default_value,
    CASE 
        WHEN config_value = default_value THEN 'DEFAULT'
        ELSE 'MODIFIED'
    END as config_status,
    updated_at
FROM app_config
ORDER BY category, config_key�config_by_category�
d��d��dedeJSON����d��d��d
��d
��dedeJSON����d��d���dded�defde�g��category����defde�g��
config_key������f���
de�gv�category��de�g��
config_key��de�g��config_value��de�g��config_type��de�g��description��de�g��is_system_config��de�g��is_user_editable��de�g��
default_value��de�f
config_statusg��ddeg��de�g��config_value���de�g��
default_value����edeKg��dd��efDEFAULT�������deKg��dd��efMODIFIED������de�g��
updated_at���dg��
app_config��������
category
config_keyconfig_valueconfig_typedescriptionis_system_configis_user_editable
default_value
config_status
updated_at����cddfmainij�-- ========================================
-- 创建视图用于常用查询优化
-- ========================================

-- 当前下载进度视图(移除实时字段,这些数据从内存获取)
CREATE VIEW IF NOT EXISTS current_download_progress AS
SELECT 
    dt.id,
    dt.task_name,
    dt.total_size,
    dt.downloaded_size,
    ROUND(dt.downloaded_size * 100.0 / dt.total_size, 2) as progress_percentage,
    dt.status,
    dt.created_at,
    dt.updated_at,
    COUNT(dc.id) as total_chunks,
    COUNT(CASE WHEN dc.status = 'COMPLETED' THEN 1 END) as completed_chunks
FROM download_tasks dt
LEFT JOIN download_chunks dc ON dt.id = dc.task_id
WHERE dt.status IN ('DOWNLOADING', 'PAUSED')
GROUP BY dt.id, dt.task_name, dt.total_size, dt.downloaded_size, dt.status, dt.created_at, dt.updated_at�current_download_progress�
d
��d��d��d��d��d��d��d��d��d���ddf���
de�g��dtid��de�g��dt	task_name��de�g��dt
total_size��de�g��dtdownloaded_size��d	e�fprogress_percentageg��round�d	e�g��/�d	e�g��*�de�g��dtdownloaded_size��deKg��dded������ef������d�����de�g��dt
total_size���d�����deKg��dd
��ef�����d����de�g��dtstatus��de�g��dt
created_at��de�g��dt
updated_at��d	e�ftotal_chunksg��count�de�g��dcid���d����d	e�fcompleted_chunksg��count�de�g��ddeg��de�g��dcstatus���deKg��dd��ef	COMPLETED������edeKg��dd
��ef�������deK�dd��e�������d�����d�dedtg��download_tasks���dedcg��download_chunks���deg��de�g��dtid���de�g��dctask_id���������d
e#g��de�g��dtstatus��deKg��dd��efDOWNLOADING����deKg��dd��efPAUSED�������de�g��dtid��de�g��dt	task_name��de�g��dt
total_size��de�g��dtdownloaded_size��de�g��dtstatus��de�g��dt
created_at��de�g��dt
updated_at���������
id	task_name
total_sizedownloaded_sizeprogress_percentagestatus
created_at
updated_attotal_chunkscompleted_chunks����cddfmainij�-- 最新服务状态视图
CREATE VIEW IF NOT EXISTS latest_service_status AS
SELECT DISTINCT
    service_name,
    FIRST_VALUE(status) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as current_status,
    FIRST_VALUE(health_status) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as current_health,
    FIRST_VALUE(recorded_at) OVER (PARTITION BY service_name ORDER BY recorded_at DESC) as last_update
FROM service_status_history�latest_service_status�d��d��d��d���dded��f���de�gc�service_name��de�fcurrent_statusgu�first_value�de�g��status���de�g��service_name���defde�g��recorded_at��������de�fcurrent_healthg��first_value�de�g��
health_status���de�g��service_name���defde�g��recorded_at��������de�flast_updateg��first_value�de�g��recorded_at���de�g��service_name���defde�g��recorded_at���������dg��service_status_history��������service_namecurrent_statuscurrent_healthlast_update����cddfmainij�-- 用户可编辑配置视图
CREATE VIEW IF NOT EXISTS user_editable_config AS
SELECT 
    config_key,
    config_value,
    config_type,
    category,
    description,
    validation_rule,
    default_value
FROM app_config
WHERE is_user_editable = TRUE
ORDER BY category, config_key�user_editable_config�d��dedeJSON����d��d��d��d��dedeJSON�����dded�defde�g��category����defde�g��
config_key������f���de�g]�
config_key��de�gm�config_value��de�g�config_type��de�g��category��de�g��description��de�g��validation_rule��de�g��
default_value���dg��
app_config���deg��de�g��is_user_editable���de�deKg��dd��eft�����d
������������
config_keyconfig_valueconfig_typecategorydescriptionvalidation_rule
default_value����cddfmainijr-- 添加索引提高并发读取性能
CREATE INDEX IF NOT EXISTS idx_app_config_category ON app_config(category)�idx_app_config_category�
app_config��de��
app_configcategory����ART����cddfmainijRCREATE INDEX IF NOT EXISTS idx_app_config_editable ON app_config(is_user_editable)�idx_app_config_editable�
app_config��de��
app_configis_user_editable����ART����cddfmainijPCREATE INDEX IF NOT EXISTS idx_app_config_system ON app_config(is_system_config)�idx_app_config_system�
app_config��de��
app_configis_system_config����ART����cddfmainij_CREATE INDEX IF NOT EXISTS idx_auto_upgrade_tasks_schedule ON auto_upgrade_tasks(schedule_time)�idx_auto_upgrade_tasks_schedule�auto_upgrade_tasks��de��auto_upgrade_tasks
schedule_time����ART����cddfmainijVCREATE INDEX IF NOT EXISTS idx_auto_upgrade_tasks_status ON auto_upgrade_tasks(status)�idx_auto_upgrade_tasks_status�auto_upgrade_tasks��de��auto_upgrade_tasksstatus����ART����cddfmainijVCREATE INDEX IF NOT EXISTS idx_backup_records_created_at ON backup_records(created_at)�idx_backup_records_created_at�backup_records��de��backup_records
created_at����ART����cddfmainijQCREATE INDEX IF NOT EXISTS idx_backup_records_type ON backup_records(backup_type)�idx_backup_records_type�backup_records��de��backup_recordsbackup_type����ART����cddfmainijRCREATE INDEX IF NOT EXISTS idx_download_chunks_task_id ON download_chunks(task_id)�idx_download_chunks_task_id�download_chunks��de��download_chunkstask_id����ART����cddfmainijNCREATE INDEX IF NOT EXISTS idx_download_tasks_status ON download_tasks(status)�idx_download_tasks_status�download_tasks��de��download_tasksstatus����ART����cddfmainijmCREATE INDEX IF NOT EXISTS idx_performance_metrics_name_time ON performance_metrics(metric_name, recorded_at)�!idx_performance_metrics_name_time�performance_metrics��de��performance_metricsmetric_name��de��performance_metricsrecorded_at����ART����cddfmainij�-- 时序数据索引优化
CREATE INDEX IF NOT EXISTS idx_service_status_service_time ON service_status_history(service_name, recorded_at)�idx_service_status_service_time�se��������rvice_status_history��de��service_status_historyservice_name��de��service_status_historyrecorded_at���	�ART����cddfmainijaCREATE INDEX IF NOT EXISTS idx_system_checks_type_platform ON system_checks(check_type, platform)�idx_system_checks_type_platform�
system_checks��de��
system_checks
check_type��de��
system_checksplatform����ART����cddfmainijPCREATE INDEX IF NOT EXISTS idx_upgrade_history_status ON upgrade_history(status)�idx_upgrade_history_status�upgrade_history��de��upgrade_historystatus����ART����cddfmainijdCREATE INDEX IF NOT EXISTS idx_upgrade_history_versions ON upgrade_history(from_version, to_version)�idx_upgrade_history_versions�upgrade_history��de��upgrade_historyfrom_version��de��upgrade_history
to_version����ART����cddfmainijJCREATE INDEX IF NOT EXISTS idx_user_actions_status ON user_actions(status)�idx_user_actions_status�user_actions��de��user_actionsstatus����ART����cddfmainijt-- 审计日志索引
CREATE INDEX IF NOT EXISTS idx_user_actions_type_time ON user_actions(action_type, started_at)�idx_user_actions_type_time�user_actions��de��user_actionsaction_type��de��user_actions
started_at����ART��������������	
����������