Manage Access Tunnel
🚪 Tunneling APIs – REL-ID SDK Documentation
This document describes the APIs related to starting and stopping secure tunnels via the REL-ID SDK:
serviceAccessStart()
serviceAccessStop()
serviceAccessStartAll()
serviceAccessStopAll()
📘 Overview
Tunneling APIs allow mobile apps to securely connect to enterprise services (e.g., intranet apps, internal APIs) over REL-ID's zero-trust architecture by dynamically establishing encrypted tunnels.
🚀 serviceAccessStart(serviceId)
serviceAccessStart(serviceId)
🧭 Purpose
Start a secure tunnel to a specific service.
📤 Input
Field | Type | Description |
---|---|---|
serviceId | string | Unique service identifier |
✅ Sample Code
React Native
await RdnaClient.serviceAccessStart("service-abc-001");
Flutter
await rdna.serviceAccessStart("service-abc-001");
Cordova
com.uniken.rdnaplugin.RdnaClient.serviceAccessStart("service-abc-001", function(success) {
console.log("Tunnel started");
});
Native Android
RdnaClient.getInstance().serviceAccessStart("service-abc-001", new RdnaCallback() {
@Override
public void onSuccess(Object result) {
Log.d("Tunnel", "Started");
}
@Override
public void onError(RdnaError error) {
Log.e("Tunnel", error.getMessage());
}
});
Native iOS
RdnaClient.shared.serviceAccessStart("service-abc-001") { result, error in
if let _ = result {
print("Tunnel started")
} else {
print("Error: \(error?.localizedDescription ?? "unknown")")
}
}
🛑 serviceAccessStop(serviceId)
serviceAccessStop(serviceId)
🧭 Purpose
Stop the tunnel for a specific service.
📤 Input
Field | Type | Description |
---|---|---|
serviceId | string | Unique service identifier |
✅ Sample Code
React Native
await RdnaClient.serviceAccessStop("service-abc-001");
Flutter
await rdna.serviceAccessStop("service-abc-001");
Cordova
com.uniken.rdnaplugin.RdnaClient.serviceAccessStop("service-abc-001", function(success) {
console.log("Tunnel stopped");
});
Native Android
RdnaClient.getInstance().serviceAccessStop("service-abc-001", new RdnaCallback() {
@Override
public void onSuccess(Object result) {
Log.d("Tunnel", "Stopped");
}
@Override
public void onError(RdnaError error) {
Log.e("Tunnel", error.getMessage());
}
});
Native iOS
RdnaClient.shared.serviceAccessStop("service-abc-001") { result, error in
if let _ = result {
print("Tunnel stopped")
} else {
print("Error: \(error?.localizedDescription ?? "unknown")")
}
}
🚀 serviceAccessStartAll()
serviceAccessStartAll()
🧭 Purpose
Start secure tunnels to all available services.
✅ Sample Code
React Native
await RdnaClient.serviceAccessStartAll();
Flutter
await rdna.serviceAccessStartAll();
Cordova
com.uniken.rdnaplugin.RdnaClient.serviceAccessStartAll(function(success) {
console.log("All tunnels started");
});
Native Android
RdnaClient.getInstance().serviceAccessStartAll(new RdnaCallback() {
@Override
public void onSuccess(Object result) {
Log.d("Tunnel", "All tunnels started");
}
@Override
public void onError(RdnaError error) {
Log.e("Tunnel", error.getMessage());
}
});
Native iOS
RdnaClient.shared.serviceAccessStartAll { result, error in
if let _ = result {
print("All tunnels started")
} else {
print("Error: \(error?.localizedDescription ?? "unknown")")
}
}
🛑 serviceAccessStopAll()
serviceAccessStopAll()
🧭 Purpose
Stop all currently active tunnels.
✅ Sample Code
React Native
await RdnaClient.serviceAccessStopAll();
Flutter
await rdna.serviceAccessStopAll();
Cordova
com.uniken.rdnaplugin.RdnaClient.serviceAccessStopAll(function(success) {
console.log("All tunnels stopped");
});
Native Android
RdnaClient.getInstance().serviceAccessStopAll(new RdnaCallback() {
@Override
public void onSuccess(Object result) {
Log.d("Tunnel", "All tunnels stopped");
}
@Override
public void onError(RdnaError error) {
Log.e("Tunnel", error.getMessage());
}
});
Native iOS
RdnaClient.shared.serviceAccessStopAll { result, error in
if let _ = result {
print("All tunnels stopped")
} else {
print("Error: \(error?.localizedDescription ?? "unknown")")
}
}
❗ Common Error Codes
Code | Meaning | Suggested Action |
---|---|---|
404 | Service not found | Ensure serviceId is correct |
403 | Access denied | Check service permissions |
401 | Session expired | Re-authenticate |
500 | Internal error | Retry or escalate |
📎 Use these APIs to enable secure, policy-based access to enterprise services over REL-ID tunnels.
Updated 3 months ago