baodev0 and Claude Sonnet 5.5
6315a392c0
feat(service): custom product, lịch sử giám sát VM và mã hoá response theo phiên
...
- Dịch vụ custom: bảng custom_products + services.custom_product_id; createService nhận
custom{} thay product_id, giá = đơn giá tháng x số tháng chu kỳ (1/3/6/12/24/36),
gia hạn tính theo cùng đơn giá, ServiceClientDetailResource trả custom_product và specs.
- Giám sát VM: GET v1/system/vm-metrics/history gom lịch sử về tối đa 240 điểm;
lỗi lấy dung lượng đĩa không còn làm hỏng cả thẻ metrics.
- SealResponse: AES-256-GCM theo khoá phiên do proxy Next cấp qua header x-seal-key
(HMAC của session id). Client opt-in bằng x-seal; chi tiết dịch vụ, mật khẩu VM và
console ticket luôn được mã hoá. Body gửi lên dạng {enc} được giải mã trước validate;
khoá lệch trả 428 để client lấy khoá mới. Đây là che mắt DevTools, không phải bảo mật
chống chính chủ tài khoản.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-27 13:58:50 +07:00
..
2026-10-15 21:53:41 +07:00
2026-05-11 11:09:55 +07:00
2026-09-28 08:26:29 +07:00
2026-05-16 20:01:52 +07:00
2026-10-22 22:35:35 +07:00
2026-10-16 17:00:55 +07:00
2026-05-16 20:01:52 +07:00
2026-02-06 20:52:59 +07:00
2026-10-19 16:37:56 +07:00
2026-10-19 16:37:56 +07:00
2026-10-27 08:37:57 +07:00
2026-10-13 13:23:33 +07:00
2026-10-27 13:58:50 +07:00
2026-05-16 20:01:52 +07:00
2026-10-11 09:56:18 +07:00
2026-09-28 08:26:29 +07:00
2026-05-16 20:01:52 +07:00
2026-10-19 07:59:23 +07:00
2026-09-28 08:26:29 +07:00
2026-10-11 23:07:51 +07:00
2025-07-24 16:18:27 +07:00
2026-08-22 17:30:55 +07:00
2025-07-24 16:18:27 +07:00
2026-02-12 17:23:01 +07:00
2026-10-19 16:37:56 +07:00
2026-10-19 16:37:56 +07:00
2026-09-27 11:42:40 +07:00
2026-10-15 19:58:36 +07:00
2026-09-28 08:26:29 +07:00
2026-10-16 17:00:55 +07:00
2025-07-24 16:18:27 +07:00
2026-10-11 09:56:18 +07:00
2026-10-15 21:53:41 +07:00
2025-07-24 16:18:27 +07:00
2026-09-28 08:26:29 +07:00
2026-07-21 21:37:28 +07:00
2026-09-28 08:26:29 +07:00
2026-09-09 16:56:22 +07:00
2025-07-24 16:18:27 +07:00
2026-07-21 21:37:28 +07:00
2026-09-28 08:26:29 +07:00
2026-08-06 17:24:01 +07:00
2026-08-06 17:24:01 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-07-21 21:37:28 +07:00
2026-05-16 20:01:52 +07:00
2025-07-24 16:18:27 +07:00
2026-10-20 15:52:56 +07:00
2026-07-25 11:05:34 +07:00
2026-10-19 07:59:23 +07:00
2026-10-19 16:37:56 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-10-13 13:23:33 +07:00
2026-05-25 15:39:42 +07:00
2026-05-25 15:39:42 +07:00
2026-10-11 23:07:51 +07:00
2026-09-28 08:26:29 +07:00
2026-02-06 16:18:15 +07:00
2026-08-26 16:19:38 +07:00
2026-09-28 08:26:29 +07:00
2026-09-27 11:42:40 +07:00
2026-09-09 16:56:22 +07:00
2026-09-27 11:42:40 +07:00
2026-10-27 13:58:50 +07:00
2026-03-12 09:30:29 +07:00
2026-10-22 22:22:09 +07:00
2026-10-11 23:07:51 +07:00
2026-09-28 08:26:29 +07:00
2025-07-24 16:18:27 +07:00
2025-07-24 16:18:27 +07:00
2026-10-15 21:53:41 +07:00
2026-10-13 16:03:18 +07:00
2026-10-16 17:00:55 +07:00
2025-07-24 16:18:27 +07:00
2026-10-11 23:07:51 +07:00
2026-10-15 19:58:36 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-07-06 08:00:23 +07:00