curl -X POST https://peter.backend.com/ui/services/squid/install/ curl -X POST https://peter.backend.com/ui/services/squid/974bf535-7930-474e-8da6-780cafff284d/toggle/ curl https://peter.backend.com/ui/services/squid/974bf535-7930-474e-8da6-780cafff284d/settings/ curl -X POST https://peter.backend.com/ui/services/squid/974bf535-7930-474e-8da6-780cafff284d/settings/
curl https://peter.backend.com/ui/tasks/12345/
API for VA
1 2 3 4 5 6
curl -X POST -H "Authorization: Bearer $token" -i https://peter.backend.com/va/register/ curl -X POST https://peter.backend.com/va/register/ curl -X POST https://peter.backend.com/va/974bf535-7930-474e-8da6-780cafff284d/tasks/ curl https://peter.backend.com/va/974bf535-7930-474e-8da6-780cafff284d/healthz/ curl -X POST https://peter.backend.com/va/974bf535-7930-474e-8da6-780cafff284d/log/ curl -X POST https://peter.backend.com/va/974bf535-7930-474e-8da6-780cafff284d/squid/metrics/
backend Design
Database Design
Customer
Customer表
1 2 3 4 5 6 7 8 9
desc app_customer; +----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+-------+ | id | char(32) | NO | PRI | NULL | | | register_token | longtext | NO | | NULL | | | created_at | datetime(6) | NO | | NULL | | | updated_at | datetime(6) | NO | | NULL | | +----------------+-------------+------+-----+---------+-------+
Appliance
ApplianceInfo表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
mysql> desc app_applianceinfo; +--------------------+-------------+------+-----+----------------+-------------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+----------------+-------------------+ | id | char(32) | NO | PRI | NULL | | | customer_id | char(32) | NO | MUL | NULL | | | created_at | datetime(6) | NO | | NULL | | | updated_at | datetime(6) | NO | | NULL | | | version | varchar(16) | NO | | NULL | | | status | varchar(16) | NO | | NULL | | | appliance_settings | json | NO | | NULL | | | capacity | json | NO | | _utf8mb3\'{}\' | DEFAULT_GENERATED | | connect_time | bigint | NO | MUL | NULL | | | expected_status | varchar(16) | NO | | NULL | | +--------------------+-------------+------+-----+----------------+-------------------+
ApplianceVersion表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
mysql> desc app_applianceversion; +------------------+-------------+------+-----+----------------+-------------------+ | Field | Type | Null | Key | Default | Extra | +------------------+-------------+------+-----+----------------+-------------------+ | version | varchar(32) | NO | PRI | NULL | | | created_at | datetime(6) | NO | | NULL | | | updated_at | datetime(6) | NO | | NULL | | | version_major | int | NO | MUL | NULL | | | version_minor | int | NO | MUL | NULL | | | version_revision | int | NO | MUL | NULL | | | version_build | int | NO | MUL | NULL | | | display_version | varchar(32) | NO | | NULL | | | firmware_info | json | NO | | NULL | | | enable | tinyint(1) | NO | | NULL | | | ova_info | json | NO | | _utf8mb3\'{}\' | DEFAULT_GENERATED | | published | tinyint(1) | NO | | NULL | | +------------------+-------------+------+-----+----------------+-------------------+
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
mysql> desc app_appliancemetrics; +-------------------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+----------+------+-----+---------+----------------+ | id | bigint | NO | PRI | NULL | auto_increment | | appliance_id | char(32) | NO | MUL | NULL | | | record_time | bigint | NO | | NULL | | | cpu_used | double | NO | | NULL | | | memory_total | bigint | NO | | NULL | | | memory_used | bigint | NO | | NULL | | | storage_total | bigint | NO | | NULL | | | storage_used | bigint | NO | | NULL | | | storage_unallocated | bigint | NO | | NULL | | | storage_capacity_detail | json | NO | | NULL | | | storage_usage_detail | json | NO | | NULL | | +-------------------------+----------+------+-----+---------+----------------+
IOT Task
IotTask表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
mysql> desc app_iottask; +---------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+-------+ | id | char(32) | NO | PRI | NULL | | | created_at | datetime(6) | NO | MUL | NULL | | | updated_at | datetime(6) | NO | | NULL | | | task_type | varchar(50) | NO | MUL | NULL | | | appliance_id | char(32) | NO | MUL | NULL | | | customer_id | char(32) | NO | | NULL | | | message | json | NO | | NULL | | | status | varchar(16) | NO | | NULL | | | retry_count | int | NO | | NULL | | | result | json | NO | | NULL | | | error_message | longtext | NO | | NULL | | +---------------+-------------+------+-----+---------+-------+
HeartbeatIotTask表
1 2 3 4 5 6 7 8 9 10 11 12 13 14
desc app_heartbeatiottask; +---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | id | bigint | NO | PRI | NULL | auto_increment | | created_at | datetime(6) | NO | MUL | NULL | | | updated_at | datetime(6) | NO | | NULL | | | appliance_id | char(32) | NO | MUL | NULL | | | customer_id | char(32) | NO | | NULL | | | message | json | NO | | NULL | | | status | varchar(16) | NO | MUL | NULL | | | result | json | NO | | NULL | | | error_message | longtext | NO | | NULL | | +---------------+-------------+------+-----+---------+----------------+