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)

🧭 Purpose

Start a secure tunnel to a specific service.

📤 Input

FieldTypeDescription
serviceIdstringUnique 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)

🧭 Purpose

Stop the tunnel for a specific service.

📤 Input

FieldTypeDescription
serviceIdstringUnique 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()

🧭 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()

🧭 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

CodeMeaningSuggested Action
404Service not foundEnsure serviceId is correct
403Access deniedCheck service permissions
401Session expiredRe-authenticate
500Internal errorRetry or escalate

📎 Use these APIs to enable secure, policy-based access to enterprise services over REL-ID tunnels.