Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/.gitbook/assets/C coming soon (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/C coming soon dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/C coming soon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Dart_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions docs/.gitbook/assets/Frame 109.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions docs/.gitbook/assets/Frame 23.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/.gitbook/assets/Frame 51355.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Java coming soon dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Java coming soon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Untitled (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Untitled (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Untitled (3).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Untitled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 23 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,28 @@ coverHeight: 333

# Welcome

### New to Atsign?
### Atsign Documentation

Start exploring by choosing a topic below or browse the Table of Contents.
Welcome to the Atsign documentation. Here you’ll find everything you need to understand the atPlatform, explore its core technologies, and start building secure, private applications and workflows. Choose a topic below to begin.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-cover-dark data-type="image">Cover image (dark)</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>AI Architect Walkthrough</strong></td><td><sup>This tutorial guides you through creating, loading, and exporting an app blueprint using AI Architect, then using that blueprint to generate and run an atPlatform app in your IDE.</sup></td><td><a href=".gitbook/assets/atArchitect.svg">atArchitect.svg</a></td><td><a href=".gitbook/assets/Hero - atarchitect - dark.svg">Hero - atarchitect - dark.svg</a></td><td><a href="https://docs.atsign.com/tutorials/ai-architect-walkthrough">https://docs.atsign.com/tutorials/ai-architect-walkthrough</a></td></tr><tr><td><strong>Core Technology</strong></td><td><sub>High-level tour of the atPlatform: how Atsigns, the atPlatform Protocol, and atServers work together.</sub></td><td><a href=".gitbook/assets/Core Technology.svg">Core Technology.svg</a></td><td><a href=".gitbook/assets/Core Technology-dark.svg">Core Technology-dark.svg</a></td><td><a href="https://docs.atsign.com/~/revisions/kPoFwMVlM1fLY2MMGYLD/core">https://docs.atsign.com/~/revisions/kPoFwMVlM1fLY2MMGYLD/core</a></td></tr><tr><td><strong>atSDKs</strong></td><td><sub>A practical introduction to the atSDK. Everything you need to build, authenticate, and exchange data across apps, devices, and environments.</sub></td><td><a href=".gitbook/assets/atSDK.svg">atSDK.svg</a></td><td><a href=".gitbook/assets/atSDK-dark.svg">atSDK-dark.svg</a></td><td><a href="https://docs.atsign.com/~/revisions/kPoFwMVlM1fLY2MMGYLD/sdk">https://docs.atsign.com/~/revisions/kPoFwMVlM1fLY2MMGYLD/sdk</a></td></tr><tr><td><strong>NoPorts</strong><sup><strong>TM</strong></sup></td><td><sub>See how NoPorts applies the atPlatform to deliver secure, zero-trust connectivity without open ports or VPNs.</sub></td><td><a href=".gitbook/assets/NoPorts.svg">NoPorts.svg</a></td><td><a href=".gitbook/assets/NoPorts-dark.svg">NoPorts-dark.svg</a></td><td><a href="https://www.noports.com/">https://www.noports.com/</a></td></tr><tr><td><strong>GitHub ↗</strong></td><td><sup>See how the atPlatform is built and join the development on our GitHub.</sup></td><td><a href=".gitbook/assets/GitHub.svg">GitHub.svg</a></td><td><a href=".gitbook/assets/GitHub-dark.svg">GitHub-dark.svg</a></td><td><a href="https://github.com/atsign-foundation">https://github.com/atsign-foundation</a></td></tr><tr><td><strong>atsign.com ↗</strong></td><td><sup>Learn more about the technology behind secure, private communications between people, entity, and things.</sup></td><td><a href=".gitbook/assets/atsign.svg">atsign.svg</a></td><td><a href=".gitbook/assets/atsign-dark.svg">atsign-dark.svg</a></td><td><a href="https://atsign.com/">https://atsign.com/</a></td></tr></tbody></table>
<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-cover-dark data-type="image">Cover image (dark)</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>AI Architect</strong><sup><strong>TM</strong></sup></td><td><sup>Explore how to visually map out secure apps and workflows and export a LLM prompts that generate apps on the atPlatform<strong>.</strong></sup></td><td><a href=".gitbook/assets/atArchitect.svg">atArchitect.svg</a></td><td><a href=".gitbook/assets/Hero - atarchitect - dark.svg">Hero - atarchitect - dark.svg</a></td><td><a href="ai-architect/ai-architect-overview/">ai-architect-overview</a></td></tr><tr><td><strong>Core Technology</strong></td><td><sub>High-level tour of the atPlatform: how Atsigns, the atPlatform Protocol, and atServers work together.</sub></td><td><a href=".gitbook/assets/Core Technology.svg">Core Technology.svg</a></td><td><a href=".gitbook/assets/Core Technology-dark.svg">Core Technology-dark.svg</a></td><td><a href="atplatform/core/">core</a></td></tr><tr><td><strong>atSDK</strong></td><td><sub>A practical introduction to the atSDK. Everything you need to build, authenticate, and exchange data across apps, devices, and environments.</sub></td><td><a href=".gitbook/assets/atSDK.svg">atSDK.svg</a></td><td><a href=".gitbook/assets/atSDK-dark.svg">atSDK-dark.svg</a></td><td><a href="atsdk/sdk/">sdk</a></td></tr><tr><td><strong>NoPorts </strong><sup><strong>TM</strong></sup><strong> ↗</strong></td><td><sub>See how NoPorts applies the atPlatform to deliver secure, zero-trust connectivity without open ports or VPNs.</sub></td><td><a href=".gitbook/assets/NoPorts.svg">NoPorts.svg</a></td><td><a href=".gitbook/assets/NoPorts-dark.svg">NoPorts-dark.svg</a></td><td><a href="https://docs.noports.com/">https://docs.noports.com/</a></td></tr><tr><td><strong>GitHub ↗</strong></td><td><sup>See how the atPlatform is built and join the development on our GitHub.</sup></td><td><a href=".gitbook/assets/GitHub.svg">GitHub.svg</a></td><td><a href=".gitbook/assets/GitHub-dark.svg">GitHub-dark.svg</a></td><td><a href="https://github.com/atsign-foundation">https://github.com/atsign-foundation</a></td></tr><tr><td><strong>atsign.com ↗</strong></td><td><sup>Learn more about the technology behind secure, private communications between people, entity, and things.</sup></td><td><a href=".gitbook/assets/atsign.svg">atsign.svg</a></td><td><a href=".gitbook/assets/atsign-dark.svg">atsign-dark.svg</a></td><td><a href="https://atsign.com/">https://atsign.com/</a></td></tr></tbody></table>

### Need Help?

<details>

<summary>via Email</summary>

Send us an email: [support.team@atsign.com](mailto:support.team@atsign.com)

Monday - Friday, 6am - 6pm (PT)

</details>

<details>

<summary>via Discord</summary>

[Join our Discord](https://discord.gg/atsign-778383211214536722) for technical support. Our team and community are here to help!

</details>
64 changes: 38 additions & 26 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,44 @@
# Table of contents

* [Welcome](README.md)
* [atPlatform](learn/core/README.md)
* [Atsign](learn/core/atsign.md)
* [atRecord](learn/core/atrecord.md)
* [atSDK](learn/sdk/README.md)
* [Get Started](sdk/get-started.md)
* [Authentication](learn/sdk/onboarding.md)
* [atKey Reference](learn/sdk/atid-reference.md)
* [CRUD Operations](learn/sdk/crud-operations.md)
* [Notifications](learn/sdk/events.md)
* [Additional Features](sdk/synchronization/README.md)
* [Synchronization](sdk/synchronization/synchronization.md)
* [Connection Hooks](sdk/synchronization/connection-hooks.md)
* [Infrastructure](infrastructure.md)

## Tutorials

* [Dart atSDK Walkthrough](tutorials/atsdk-tutorial/README.md)
* [Using the atSDK with Dart](tutorials/atsdk-tutorial/using-the-atsdk-with-dart.md)
* [Get sample code](tutorials/atsdk-tutorial/get-sample-code.md)
* [Cutting your Atsign keys](tutorials/atsdk-tutorial/cutting-your-atsigns-keys.md)
* [Put and Get data asynchronously](tutorials/atsdk-tutorial/put-and-get-data-asynchronously.md)
* [Send and Receive data synchronously](tutorials/atsdk-tutorial/send-and-receive-data-synchronously.md)
* [Remote Procedure Calls (RPC)](tutorials/atsdk-tutorial/rpc.md)
* [atTalk - Encrypted chat client](tutorials/atsdk-tutorial/attalk.md)
* [AI Architect Walkthrough](tutorials/ai-architect-walkthrough/README.md)
* [Nodes and Connections](tutorials/ai-architect-walkthrough/nodes-and-connections.md)

## ATPlatform

* [atPlatform Overview](atplatform/core/README.md)
* [Frequently Asked Questions](atplatform/core/frequently-asked-questions.md)
* [Atsign](atplatform/atsign.md)
* [atRecord](atplatform/atrecord.md)
* [Infrastructure](atplatform/infrastructure.md)

## atSDK

* [atSDK Overview](atsdk/sdk/README.md)
* [Get Started](atsdk/sdk/get-started.md)
* [Authentication](atsdk/sdk/onboarding.md)
* [atKey Reference](atsdk/sdk/atid-reference.md)
* [CRUD Operations](atsdk/sdk/crud-operations.md)
* [Notifications](atsdk/sdk/events.md)
* [Additional Features](atsdk/sdk/synchronization/README.md)
* [Synchronization](atsdk/sdk/synchronization/synchronization.md)
* [Connection Hooks](atsdk/sdk/synchronization/connection-hooks.md)
* [atSDK Walkthroughs](atsdk/atsdk-walkthroughs/README.md)
* [Dart atSDK Walkthrough](atsdk/atsdk-walkthroughs/atsdk-tutorial/README.md)
* [Using the atSDK with Dart](atsdk/atsdk-walkthroughs/atsdk-tutorial/using-the-atsdk-with-dart.md)
* [Get sample code](atsdk/atsdk-walkthroughs/atsdk-tutorial/get-sample-code.md)
* [Cutting your Atsign keys](atsdk/atsdk-walkthroughs/atsdk-tutorial/cutting-your-atsigns-keys.md)
* [Put and Get data asynchronously](atsdk/atsdk-walkthroughs/atsdk-tutorial/put-and-get-data-asynchronously.md)
* [Send and Receive data synchronously](atsdk/atsdk-walkthroughs/atsdk-tutorial/send-and-receive-data-synchronously.md)
* [Remote Procedure Calls (RPC)](atsdk/atsdk-walkthroughs/atsdk-tutorial/rpc.md)
* [atTalk - Encrypted chat client](atsdk/atsdk-walkthroughs/atsdk-tutorial/attalk.md)

## AI Architect

* [AI Architect Overview](ai-architect/ai-architect-overview/README.md)
* [Nodes and Connections](ai-architect/ai-architect-overview/nodes-and-connections.md)
* [AI Architect Walkthroughs](ai-architect/ai-architect-walkthroughs/README.md)
* [Getting Started with AI Architect](ai-architect/ai-architect-walkthroughs/getting-started-with-ai-architect.md)
* [How to Think When Creating a Blueprint](ai-architect/ai-architect-walkthroughs/how-to-think-when-creating-a-blueprint.md)
* [Release Notes](ai-architect/release-notes.md)

## Important links

Expand Down
21 changes: 21 additions & 0 deletions docs/ai-architect/ai-architect-overview/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
description: An overview of AI Architect
icon: diagram-project
---

# AI Architect Overview

## TL;DR

AI architect is a visual blueprinting tool for designing secure apps and workflows. It interprets nodes, data flows, and agent relationships, then produces a prompt, which when run through an LLM, generates Dart/Flutter projects, atPlatform boilerplate, namespaces, key conventions, and multi‑agent patterns automatically.\
\
The tool enforces best practices from the atPlatform SDKs, including secure data storage, encrypted communication, and backend‑less architecture. Developers can iterate quickly by updating diagrams and regenerating code, ensuring consistency across teams and environments. AI Architect accelerates prototyping, reduces integration errors, and provides a repeatable, standards‑driven workflow for building distributed, privacy‑preserving applications.



{% embed url="https://vimeo.com/1167932458?fe=ci&fl=sv&share=copy" %}

For a deeper look at how AI Architect interprets your diagrams, see the [Nodes and Connections](nodes-and-connections.md) guide, which explains how components and data flows are defined in the canvas and how they map into the generated LLM prompt.



18 changes: 18 additions & 0 deletions docs/ai-architect/ai-architect-overview/nodes-and-connections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
description: 'Not sure when to use what? Here are a few quick guidelines to help you choose:'
icon: ballot-check
---

# Nodes and Connections

## Node Palette

These nodes map your workflow visually. Each one represents an actor in your app or agentic system.

<table data-header-hidden data-full-width="false"><thead><tr><th width="154.14453125">Node</th><th width="202.70703125">Description</th><th width="194.58984375">When to use</th><th>Example</th></tr></thead><tbody><tr><td><img src="../../.gitbook/assets/Node Person Large.svg" alt=""></td><td><p><i class="fa-user">:user:</i> <strong>Person</strong><br>People or </p><p>stakeholders</p></td><td>You want to model people's actions, permissions, or decision points.</td><td><mark style="color:$info;">A person logging into an admin dashboard, approving a workflow, or sending a secure message.</mark></td></tr><tr><td><p><img src="../../.gitbook/assets/Frame 23.svg" alt="" data-size="original"></p><p></p></td><td><i class="fa-head-side-circuit">:head-side-circuit:</i> <strong>AI Agent</strong><br>AI Agent</td><td>You want to model automated reasoning, decision-making, or actions performed by an AI system.</td><td><mark style="color:$info;">An AI agent triaging support tickets, summarizing documents, or autonomously executing a multi-step workflow</mark></td></tr><tr><td><img src="../../.gitbook/assets/Frame 43.svg" alt=""></td><td><p><i class="fa-diamond">:diamond:</i> <strong>Entity</strong></p><p>Businesses, groups of people, etc.</p></td><td>You need access for companies, tenants, departments, identity domains.</td><td><mark style="color:$info;">A healthcare provider, an insurance company, or a tenant account applying its own access rules.</mark></td></tr><tr><td><img src="../../.gitbook/assets/Frame 44.svg" alt=""></td><td><p><i class="fa-cube">:cube:</i> <strong>Thing</strong></p><p>Physical or digital objects/devices</p></td><td>You’re modelling hardware, IoT devices, sensors, servers, or edge components.</td><td><mark style="color:$info;">A smart meter sending readings, a kiosk receiving updates, or a server reporting health status.</mark></td></tr><tr><td><img src="../../.gitbook/assets/Frame 45.svg" alt=""></td><td><i class="fa-gear">:gear:</i> <strong>Process</strong><br>Anything that processes, runs, or executes: an app, service, or workflow</td><td>You want to show business logic, transformations, or background tasks.</td><td><mark style="color:$info;">A data validation step, a policy enforcement engine, or a message-routing workflow.</mark></td></tr><tr><td><img src="../../.gitbook/assets/Frame 46.svg" alt=""></td><td><i class="fa-rectangle">:rectangle:</i> <strong>API</strong><br>External systems or platform integrations</td><td>You’re integrating with third-party services or exposing functionality programmatically.</td><td><mark style="color:$info;">A payment processor API, mapping service, or internal microservice endpoint.</mark></td></tr><tr><td><img src="../../.gitbook/assets/Frame 109.svg" alt=""></td><td><i class="fa-plus">:plus:</i> <strong>Other</strong><br>Custom node type for anything else</td><td>You need to include concepts like storage, policies, models, or abstract systems.</td><td><mark style="color:$info;">A policy store, encryption module, AI model, or logging system.</mark></td></tr></tbody></table>

## Connection Types

These define how the nodes communicate with each other.

<table data-header-hidden><thead><tr><th width="152.171875">Connection</th><th width="271.23828125">Description</th><th width="169.0625">When to use</th><th>Example</th></tr></thead><tbody><tr><td><p><strong>Default</strong></p><p><img src="../../.gitbook/assets/Frame 51355.svg" alt="" data-size="original"></p></td><td><p>Unsure? </p><p>Let the LLM decide.</p></td><td>You're unsure which communication pattern fits, or the interaction doesn't clearly map to a specific type.</td><td><em><mark style="color:$info;">The LLM infers the best pattern based on context and intent</mark></em></td></tr><tr><td><p><strong>Async Comms</strong></p><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.46.56 PM.png" alt="" data-size="original"></p></td><td><p>Asynchronous, non-blocking communication where the sender does not wait for a response and the receiver does not need to be online.</p><p></p><p>Uses <code>Get/Put</code> semantics.<br><a href="https://docs.atsign.com/tutorials/atsdk-tutorial/put-and-get-data-asynchronously">Read more here</a>.</p></td><td>Really handy if you cannot guarantee both the sender/ receiver will be online at the same time.</td><td><mark style="color:$info;">A device uploads data that is processed later, or a message is delivered when the recipient comes online.</mark></td></tr><tr><td><p><strong>Sync Comms</strong></p><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.46.59 PM.png" alt="" data-size="original"></p></td><td><p>Synchronous communication where the sender waits for an immediate response. <br></p><p>Uses <code>Notification</code> (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>) semantics and/or <code>Get/Put</code> (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/put-and-get-data-asynchronously">Read more here</a>) semantics.</p></td><td>You need real-time interaction or confirmation.</td><td><mark style="color:$info;">A user request that must return a result immediately, like fetching account details</mark><sub><mark style="color:$info;">.</mark></sub></td></tr><tr><td><p><strong>Notifications</strong></p><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.47.03 PM.png" alt=""></p></td><td><p>One-way signals used to alert or inform.</p><p></p><p>Uses <code>Notification</code> semantics <a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>.</p></td><td><br>You need to notify without requiring a response.</td><td><mark style="color:$info;">Push notifications, system alerts, or status updates sent to users or services.</mark></td></tr><tr><td><h4><strong>RPC</strong></h4><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.47.07 PM.png" alt=""></p><p></p></td><td><p>Structured request/response interactions between systems.<br>Ideal for complex operations where the other party may not be online at the time of execution (especially useful for policy-driven workflows).</p><p></p><p>Supported in the <code>SDK</code> semantics.<br><a href="https://docs.atsign.com/tutorials/atsdk-tutorial">Read more here</a>.</p></td><td>You want function-like calls across services with clear inputs and outputs.</td><td><mark style="color:$info;">Calling a billing service to calculate charges or a policy engine to validate access.</mark></td></tr><tr><td><p><strong>Data Stream</strong></p><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.47.11 PM.png" alt=""></p></td><td>Ideal for long-running processes (such as LLM generation) where completion time is uncertain and results may need to stream incrementally.<br><br>Uses the <code>stream</code> (<a href="https://docs.atsign.com/sdk/events#monitor">Read more here</a>) semantics<br>or <code>notifications</code> (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>) semantics.</td><td>You’re handling live, ongoing data rather than discrete messages</td><td><mark style="color:$info;">Telemetry feeds, sensor data, logs, or real-time analytics pipelines.</mark></td></tr><tr><td><p><strong>TCP</strong></p><p><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 12.47.16 PM.png" alt=""></p></td><td><p>Low-level, persistent network connections that enable lower latency communication (e.g., NoPorts SSH, MCP servers).</p><p><br>Uses <code>Noports_Core</code> (<a href="https://pub.dev/packages/noports_core">Read more here</a>) semantics.</p></td><td>You need a fast end-to-end encrypted TCP connection with raw network speed.</td><td><mark style="color:$info;">A custom protocol, legacy integration, or long-lived secure connection.</mark></td></tr></tbody></table>
Loading
Loading