| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /**
- * Tunnels API client for SSH and Dashboard tunnel management.
- */
- import client from './client'
- const tunnelsApi = {
- /**
- * Enable tunnel for device and create session
- * @param {number} deviceId - Device numeric ID
- * @param {string} tunnelType - "ssh" or "dashboard"
- * @returns {Promise<{session_uuid: string, device_id: string, tunnel_type: string, status: string}>}
- */
- async enableTunnel(deviceId, tunnelType) {
- const { data } = await client.post(
- `/superadmin/tunnels/devices/${deviceId}/${tunnelType}`
- )
- return data
- },
- /**
- * Get tunnel session status
- * @param {string} sessionUuid - Session UUID
- * @returns {Promise<{session_uuid: string, status: string, device_tunnel_port?: number, ttyd_port?: number, tunnel_url?: string}>}
- */
- async getSessionStatus(sessionUuid) {
- const { data } = await client.get(
- `/superadmin/tunnels/sessions/${sessionUuid}/status`
- )
- return data
- },
- /**
- * Send heartbeat to keep session alive
- * @param {string} sessionUuid - Session UUID
- * @returns {Promise<{success: boolean}>}
- */
- async sendHeartbeat(sessionUuid) {
- const { data } = await client.post(
- `/superadmin/tunnels/sessions/${sessionUuid}/heartbeat`
- )
- return data
- }
- }
- export default tunnelsApi
|