This is an automated email from the ASF dual-hosted git repository.
dmagda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-website.git
The following commit(s) were added to refs/heads/master by this push:
new ae28184 released Ignite Sandbox docs and updated installation
instructions for C++ with CMake
ae28184 is described below
commit ae281848e8c2b2952bc6baea4a52470dd34bbac9
Author: Denis Magda <[email protected]>
AuthorDate: Thu Sep 24 12:32:58 2020 -0700
released Ignite Sandbox docs and updated installation instructions for C++
with CMake
---
docs/2.9.0/security/sandbox.html | 2581 ++++++++++++++++++++++++++++++++++++++
1 file changed, 2581 insertions(+)
diff --git a/docs/2.9.0/security/sandbox.html b/docs/2.9.0/security/sandbox.html
new file mode 100644
index 0000000..ca51ded
--- /dev/null
+++ b/docs/2.9.0/security/sandbox.html
@@ -0,0 +1,2581 @@
+<!DOCTYPE html>
+
+
+
+<html lang="en">
+<head>
+ <!-- Global site tag (gtag.js) - Google Analytics -->
+ <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+ <script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+
+ gtag('config', 'UA-61232409-1');
+ </script>
+
+
+
+ <meta charset="UTF-8">
+ <meta name="ignite-version" content="2.9.0" />
+ <title>The Ignite Sandbox | Ignite Documentation</title>
+
+ <link rel="canonical" href="/docs/latest/security/sandbox" />
+
+
+ <link rel="stylesheet" href="/assets/css/styles.css?1600975888">
+ <link rel="stylesheet" href="/assets/css/asciidoc-pygments.css">
+ <link rel="shortcut icon" href="/favicon.ico">
+ <meta name='viewport' content='width=device-width, height=device-height,
initial-scale=1.0, minimum-scale=1.0'>
+
+ <script type="text/javascript"
src="/assets/js/anchor.min.js?1600975888"></script>
+
+ <link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
+
+
+</head>
+<body>
+ <header>
+ <!--#include virtual="/includes/promotion_banner.html" -->
+ <div class="container">
+ <button type='button' class='menu' title='Docs menu'>
+ <img src="/assets/images/menu-icon.svg"/>
+ </button>
+ <div class='home'>
+ <a href="/" class='home' title='Apache Ignite home'>
+ <img src="/assets/images/apache_ignite_logo.svg" alt="Apache
Ignite logo" width="103" >
+ </a>
+ </div>
+
+ <nav>
+
+ </nav>
+
+ <select id="version-selector">
+ <option value="2.9.0">2.9.0</option>
+ </select>
+
+ <a href="https://github.com/apache/ignite" title='GitHub'
class='github' target="_blank">
+ <img src="/assets/images/github-gray.svg" alt="GitHub logo">
+ </a>
+
+ <form class='search'>
+ <button class="search-close" type='button'><img
src='/assets/images/cancel.svg'></button>
+ <input type="search" placeholder="Search…" id="search-input">
+ </form>
+ <button type='button' class='search-toggle'><img
src='/assets/images/search.svg'></button>
+ <button type='button' class='top-nav-toggle'>⋮</button>
+
+
+
+ </div>
+</header>
+
+
+ <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+
+
+ <li>
+
+
+ <a href="/docs/latest/preface" class='' >Preface</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Quick Start Guides<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/java"
+
+ class=''
+ >Java</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/dotnet"
+
+ class=''
+ >.NET/C#</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/cpp"
+
+ class=''
+ >C++</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/python"
+
+ class=''
+ >Python</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/nodejs"
+
+ class=''
+ >Node.JS</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/sql"
+
+ class=''
+ >SQL</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/php"
+
+ class=''
+ >PHP</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/quick-start/restapi"
+
+ class=''
+ >REST API</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url="/installation"
class='group-toggle collapsed '>Installation<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/installation/installing-using-zip"
+
+ class=''
+ >Installing Using ZIP Archive</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/installation/installing-using-docker"
+
+ class=''
+ >Installing Using Docker</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/installation/deb-rpm"
+
+ class=''
+ >Installing DEB or RPM package</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Kubernetes<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//installation/kubernetes/amazon-eks-deployment"
class=''>Amazon EKS</a></li>
+
+
+
+ <li><a
href="/docs/latest//installation/kubernetes/azure-deployment" class=''>Azure
Kubernetes Service</a></li>
+
+
+
+ <li><a
href="/docs/latest//installation/kubernetes/gke-deployment" class=''>Google
Kubernetes Engine</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Setting Up<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/setup"
+
+ class=''
+ >Setting Up Ignite for Java</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/setup-dotnet"
+
+ class=''
+ >Setting Up Ignite for .NET/C#</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/understanding-configuration" class=''
>Understanding Configuration</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/logging" class='' >Configuring Logging</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/starting-nodes" class='' >Starting and
Stopping Nodes</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Clustering<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/clustering/clustering"
+
+ class=''
+ >Overview</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/clustering/tcp-ip-discovery"
+
+ class=''
+ >TCP/IP Discovery</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/clustering/zookeeper-discovery"
+
+ class=''
+ >ZooKeeper Discovery</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/clustering/discovery-in-the-cloud"
+
+ class=''
+ >Discovery in the Cloud</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/clustering/network-configuration"
+
+ class=''
+ >Network Configuration</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/clustering/connect-client-nodes"
+
+ class=''
+ >Connecting Client Nodes</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/clustering/running-client-nodes-behind-nat"
+
+ class=''
+ >Running Client Nodes Behind NAT</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Data Modeling<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/data-modeling/data-modeling"
+
+ class=''
+ >Introduction</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/data-modeling/data-partitioning"
+
+ class=''
+ >Data Partitioning</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/data-modeling/affinity-collocation"
+
+ class=''
+ >Affinity Colocation</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Configuring Memory<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/memory-architecture"
+
+ class=''
+ >Memory Architecture</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/memory-configuration/data-regions"
+
+ class=''
+ >Configuring Data Regions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/memory-configuration/eviction-policies"
+
+ class=''
+ >Eviction Policies</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Configuring Caches<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/configuration-overview"
+
+ class=''
+ >Cache Configuration</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/configuring-backups"
+
+ class=''
+ >Configuring Partition Backups</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/atomicity-modes"
+
+ class=''
+ >Atomicity Modes</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/expiry-policies"
+
+ class=''
+ >Expiry Policy</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/on-heap-caching"
+
+ class=''
+ >On-Heap Caching</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/configuring-caches/cache-groups"
+
+ class=''
+ >Cache Groups</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Persistence<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/persistence/native-persistence"
+
+ class=''
+ >Ignite Persistence</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/persistence/external-storage"
+
+ class=''
+ >External Storage</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/persistence/swap"
+
+ class=''
+ >Swapping</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/persistence/custom-cache-store"
+
+ class=''
+ >Implementing Custom Cache Store</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/persistence/snapshots"
+
+ class=''
+ >Cluster Snapshots</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/persistence/disk-compression"
+
+ class=''
+ >Disk Compression</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/persistence/persistence-tuning"
+
+ class=''
+ >Tuning Persistence</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/baseline-topology" class='' >Baseline
Topology</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/cluster-states" class='' >Cluster States</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/data-rebalancing" class='' >Data
Rebalancing</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/partition-loss-policy" class='' >Partition
Loss Policy</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/deploying-user-code" class='' >Deploying
User Code</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/peer-class-loading" class='' >Peer Class
Loading</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/data-streaming" class='' >Data Streaming</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Using Key-Value Cache API<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/key-value-api/basic-cache-operations"
+
+ class=''
+ >Basic Cache Operations</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/key-value-api/binary-objects"
+
+ class=''
+ >Working with Binary Objects</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/key-value-api/using-scan-queries"
+
+ class=''
+ >Using Scan Queries</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/read-repair"
+
+ class=''
+ >Read Repair</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/key-value-api/continuous-queries" class=''
>Using Continuous Queries</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/key-value-api/transactions" class=''
>Performing Transactions</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Working with SQL<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/sql-introduction"
+
+ class=''
+ >Introduction</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/schemas"
+
+ class=''
+ >Understanding Schemas</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/indexes"
+
+ class=''
+ >Defining Indexes</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/sql-api"
+
+ class=''
+ >Using SQL API</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/distributed-joins"
+
+ class=''
+ >Distributed Joins</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/sql-transactions"
+
+ class=''
+ >SQL Transactions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/custom-sql-func"
+
+ class=''
+ >Custom SQL Functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/JDBC/jdbc-driver"
+
+ class=''
+ >JDBC Driver</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/JDBC/jdbc-client-driver"
+
+ class=''
+ >JDBC Client Driver</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/transactions/mvcc"
+
+ class=''
+ >Multiversion Concurrency Control</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Distributed Computing<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/distributed-computing"
+
+ class=''
+ >Distributed Computing API</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/cluster-groups"
+
+ class=''
+ >Cluster Groups</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/executor-service"
+
+ class=''
+ >Executor Service</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/map-reduce"
+
+ class=''
+ >MapReduce API</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/load-balancing"
+
+ class=''
+ >Load Balancing</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/fault-tolerance"
+
+ class=''
+ >Fault Tolerance</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/distributed-computing/job-scheduling"
+
+ class=''
+ >Job Scheduling</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/collocated-computations" class=''
>Colocating Computations with Data</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Working with Events<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/events/listening-to-events"
+
+ class=''
+ >Enabling and Listenting to Events</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/events/events"
+
+ class=''
+ >Events</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/near-cache" class='' >Near Caches</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/platform-cache" class='' >.NET Platform
Cache</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/services/services" class='' >Services</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Distributed Data Structures<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/data-structures/queue-and-set"
+
+ class=''
+ >Queue and Set</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/data-structures/atomic-types"
+
+ class=''
+ >Atomic Types</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/data-structures/countdownlatch"
+
+ class=''
+ >CountDownLatch</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/data-structures/atomic-sequence"
+
+ class=''
+ >Atomic Sequence</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/data-structures/semaphore"
+
+ class=''
+ >Semaphore</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Machine Learning<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/machine-learning"
+
+ class=''
+ >Machine Learning</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/partition-based-dataset"
+
+ class=''
+ >Partition Based Dataset</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/updating-trained-models"
+
+ class=''
+ >Updating Trained Models</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Binary Classification<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/introduction"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/linear-svm"
class=''>Linear SVM (Support Vector Machine)</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/decision-trees"
class=''>Decision Trees</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/multilayer-perceptron"
class=''>Multilayer Perceptron</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/logistic-regression"
class=''>Logistic Regression</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/knn-classification"
class=''>k-NN Classification</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/ann" class=''>ANN
(Approximate Nearest Neighbor)</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/binary-classification/naive-bayes"
class=''>Naive Bayes</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Regression<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/regression/introduction"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/regression/linear-regression"
class=''>Linear Regression</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/regression/decision-trees-regression"
class=''>Decision Trees Regression</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/regression/knn-regression" class=''>k-NN
Regression</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Clustering<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/clustering/introduction"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/clustering/k-means-clustering"
class=''>K-Means Clustering</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/clustering/gaussian-mixture"
class=''>Gaussian mixture (GMM)</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/preprocessing"
+
+ class=''
+ >Preprocessing</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Model Selection<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/model-selection/introduction"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/model-selection/evaluator"
class=''>Evaluator</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/model-selection/split-the-dataset-on-test-and-train-datasets"
class=''>Split the dataset on test and train datasets</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/model-selection/hyper-parameter-tuning"
class=''>Hyper-parameter tuning</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/model-selection/pipeline-api"
class=''>Pipeline API</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/multiclass-classification"
+
+ class=''
+ >Multiclass Classification</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Ensemble Methods<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/ensemble-methods/introduction"
class=''></a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/ensemble-methods/stacking"
class=''>Stacking</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/ensemble-methods/baggin"
class=''>Bagging</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/ensemble-methods/random-forest"
class=''>Random Forest</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/ensemble-methods/gradient-boosting"
class=''>Gradient Boosting</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/machine-learning/recommendation-systems"
+
+ class=''
+ >Recommendation Systems</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Importing Model<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//machine-learning/importing-model/introduction"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/importing-model/model-import-from-gxboost"
class=''>Import Model from XGBoost</a></li>
+
+
+
+ <li><a
href="/docs/latest//machine-learning/importing-model/model-import-from-apache-spark"
class=''>Import Model from Apache Spark</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Monitoring<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/monitoring-metrics/intro"
+
+ class=''
+ >Introduction</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/monitoring-metrics/cluster-id"
+
+ class=''
+ >Cluster ID and Tag</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Metrics<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//monitoring-metrics/configuring-metrics"
class=''>Configuring Metrics</a></li>
+
+
+
+ <li><a
href="/docs/latest//monitoring-metrics/metrics" class=''>JMX Metrics</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>New Metrics System<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//monitoring-metrics/new-metrics-system"
class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//monitoring-metrics/new-metrics" class=''>Metrics</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/monitoring-metrics/system-views"
+
+ class=''
+ >System Views</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/monitoring-metrics/tracing"
+
+ class=''
+ >Tracing</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url="/security"
class='group-toggle collapsed parent'>Security<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/security/authentication"
+
+ class=''
+ >Authentication</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/security/ssl-tls"
+
+ class=''
+ >SSL/TLS</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Transparent Data
Encryption<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//security/tde" class=''>Introduction</a></li>
+
+
+
+ <li><a
href="/docs/latest//security/master-key-rotation" class=''>Master key
rotation</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/security/sandbox"
+
+ class=''
+ >Sandbox</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Thin Clients<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/thin-clients/getting-started-with-thin-clients"
+
+ class=''
+ >Thin Clients Overview</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/thin-clients/java-thin-client"
+
+ class=''
+ >Java Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/thin-clients/dotnet-thin-client"
+
+ class=''
+ >.NET Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/thin-clients/cpp-thin-client"
+
+ class=''
+ >C++ Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/thin-clients/python-thin-client"
+
+ class=''
+ >Python Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/thin-clients/php-thin-client"
+
+ class=''
+ >PHP Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/thin-clients/nodejs-thin-client"
+
+ class=''
+ >Node.js Thin Client</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+
+
+ <button
+ type='button'
+ class='collapsed '>Binary Client Protocol<img
class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class="sub_pages collapsed">
+
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/binary-client-protocol"
class=''>Binary Client Protocol</a></li>
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/data-format" class=''>Data
Format</a></li>
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/key-value-queries"
class=''>Key-Value Queries</a></li>
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/sql-and-scan-queries" class=''>SQL
and Scan Queries</a></li>
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/binary-type-metadata"
class=''>Binary Types Metadata</a></li>
+
+
+
+ <li><a
href="/docs/latest//binary-client-protocol/cache-configuration" class=''>Cache
Configuration</a></li>
+
+ </nav>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>ODBC Driver<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/ODBC/odbc-driver"
+
+ class=''
+ >ODBC Driver</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/SQL/ODBC/connection-string-dsn"
+
+ class=''
+ >Connection String and DSN</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/SQL/ODBC/querying-modifying-data"
+
+ class=''
+ >Querying and Modifying Data</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/ODBC/specification"
+
+ class=''
+ >Specification</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/ODBC/data-types"
+
+ class=''
+ >Data Types</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/SQL/ODBC/error-codes"
+
+ class=''
+ >Error Codes</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/restapi" class='' >REST API</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/control-script" class='' >Control Script</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/plugins" class='' >Plugins</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="/docs/latest/sqlline" class='' >SQLLine</a>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button' data-guide-url=""
class='group-toggle collapsed '>Ignite for Spark<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/ignite-for-spark/overview"
+
+ class=''
+ >Overview</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/ignite-for-spark/ignitecontext-and-rdd"
+
+ class=''
+ >IgniteContext and IgniteRDD</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/ignite-for-spark/ignite-dataframe"
+
+ class=''
+ >Ignite DataFrame</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/ignite-for-spark/installation"
+
+ class=''
+ >Installation</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/ignite-for-spark/spark-shell"
+
+ class=''
+ >Test Ignite with Spark-shell</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/ignite-for-spark/troubleshooting"
+
+ class=''
+ >Troubleshooting</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+ <li>
+
+
+
+
+
+
+ <button type='button'
data-guide-url="/sql-reference/sql-reference-overview" class='group-toggle
collapsed '>SQL Reference<img class="state-indicator"
src="/assets/images/left-nav-arrow.svg"></button>
+ <nav class='nav-group collapsed'>
+
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/sql-conformance"
+
+ class=''
+ >SQL Conformance</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/sql-reference/ddl"
+
+ class=''
+ >Data Definition Language (DDL)</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/sql-reference/dml"
+
+ class=''
+ >Data Manipulation Language (DML)</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/sql-reference/transactions"
+
+ class=''
+ >Transactions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/operational-commands"
+
+ class=''
+ >Operational Commands</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/aggregate-functions"
+
+ class=''
+ >Aggregate functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/numeric-functions"
+
+ class=''
+ >Numeric Functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/string-functions"
+
+ class=''
+ >String Functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/date-time-functions"
+
+ class=''
+ >Data and Time Functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a
href="/docs/latest/sql-reference/system-functions"
+
+ class=''
+ >System Functions</a>
+
+ </li>
+
+
+
+
+
+ <li>
+
+ <a href="/docs/latest/sql-reference/data-types"
+
+ class=''
+ >Data Types</a>
+
+ </li>
+
+
+
+ </nav>
+
+ </li>
+
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+ <article data-swiftype-index='true'>
+ <a class='edit-link'
href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/security/sandbox.adoc"
target="_blank">Edit</a>
+
+ <h1>The Ignite Sandbox</h1>
+
+ <div class="sect1">
+<h2 id="overview">Overview</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Ignite allows executing custom logic via various APIs including compute
tasks, event filters, message listeners.
+This user-defined logic can utilize Java APIs to get access to host resources.
For example, it can create/update/delete files or system properties,
+open network connections, use reflection and other APIs to get full control of
the host environment.
+Ignite Sandbox is based on the <a
href="https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C"
target="_blank" rel="noopener">Java Sandbox model</a>
+and allows you to restrict the scope of user-defined logic executed via Ignite
APIs.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="ignite-sandbox-activation">Ignite Sandbox Activation</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The activation of Ignite Sandbox involves the configuration of an
<code>SecurityManager</code> instance and creation of an
+<code>GridSecurityProcessor</code> implementation.</p>
+</div>
+<div class="sect2">
+<h3 id="install-securitymanager">Install SecurityManager</h3>
+<div class="paragraph">
+<p>Due to the fact, that Ignite Sandbox is based on the Java Sandbox model, and
+<a
href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349"
target="_blank" rel="noopener">SecurityManager</a>
+is an important part of that model, you need to have it installed.
+The SecurityManager is responsible for checking, which security policy is
currently in effect. It also performs access control checks.
+The security manager is not automatically installed when an application is
running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the
<code>-Djava.security.manager</code> command-line argument (which sets the
value of the <code>java.security.manager property</code>).
+There is also a <code>-Djava.security.policy</code> command-line argument,
defining, which policy files are utilized.
+If you don’t include <code>-Djava.security.policy</code> into the
command line, then the policy files specified in the security properties file
will be used.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+It may be convenient adding the security manager and the policy command-line
arguments to <code>{IGNITE-HOME}/bin/ignite.sh|ignite.bat</code> script.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+Ignite should have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the
<code>java.security.AllPermission</code> permission,
+but you should remember the "giving permissions as low as possible" security
principle.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="provide-gridsecurityprocessor-implementation">Provide
GridSecurityProcessor Implementation</h3>
+<div class="paragraph">
+<p>Currently, Apache Ignite does not provide an implementation of the
<code>GridSecurityProcessor</code> interface out-of-the-box.
+But, you can implement this interface as a part of <a href="/docs/plugins">a
custom plugin</a>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>GridSecurityProcessor</code> interface has the
<code>sandboxEnabled</code> method that manages a user-defined code execution
inside the Ignite Sandbox.
+By default, this method returns <code>false</code>, which means no-sandbox.
+If you are going to use Ignite Sandbox, your overridden
<code>sandboxEnabled</code> method needs to return <code>true</code>.</p>
+</div>
+<div class="paragraph">
+<p>If the Ignite Sandbox is turned on, you can see the following trace
line:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="text">[INFO] Security status
[authentication=on, sandbox=on, tls/ssl=off]</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="permissions">Permissions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A user-defined code is always executed on behalf of the security subject
that initiates its execution.
+The security subject’s sandbox <a
href="https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37"
target="_blank" rel="noopener">permissions</a>
+define actions that a user-defined code can perform.
+The Ignite Sandbox retrieves those permissions using the
<code>SecuritySubject#sandboxPermissions</code> method.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+A user-defined code, when running inside Ignite Sandbox, may use the public
API of Ignite without granting any additional permissions.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If a security subject doesn’t have enough permissions to perform a
security-sensitive operation,
+an AcccessControlException appears.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="java"><span class="c1">// Get
compute instance over all nodes in the cluster.</span>
+<span class="nc">IgniteCompute</span> <span class="n">compute</span> <span
class="o">=</span> <span class="nc">Ignition</span><span
class="o">.</span><span class="na">ignite</span><span class="o">().</span><span
class="na">compute</span><span class="o">();</span>
+
+<span class="n">compute</span><span class="o">.</span><span
class="na">broadcast</span><span class="o">(()</span> <span
class="o">-></span> <span class="o">{</span>
+ <span class="c1">// If the Ignite Sandbox is turned on, the lambda code is
executed with restrictions.</span>
+
+ <span class="c1">// You can use the public API of Ignite without granting
any permissions.</span>
+ <span class="nc">Ignition</span><span class="o">.</span><span
class="na">localIgnite</span><span class="o">().</span><span
class="na">cache</span><span class="o">(</span><span
class="s">"some.cache"</span><span class="o">).</span><span
class="na">get</span><span class="o">(</span><span class="s">"key"</span><span
class="o">);</span>
+
+ <span class="c1">// If the current security subject doesn't have the
java.util.PropertyPermission("secret.property", "read") permission,</span>
+ <span class="c1">// a java.security.AccessControlException appears
here.</span>
+ <span class="nc">System</span><span class="o">.</span><span
class="na">getProperty</span><span class="o">(</span><span
class="s">"secret.property"</span><span class="o">);</span>
+<span class="o">});</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In the case of accessing the system property shown in the snippet above,
you can see the following trace line with an exception:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code
data-lang="text">java.security.AccessControlException: access denied
("java.util.PropertyPermission" "secret.property" "read")</code></pre>
+</div>
+</div>
+</div>
+</div>
+ <div class="copyright">
+ © 2020 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are
either registered trademarks or trademarks of The Apache Software Foundation.
+
+</div>
+
+ </article>
+ <nav class="right-nav" data-swiftype-index='false'>
+ <ul class="sectlevel1">
+<li><a href="#overview">Overview</a></li>
+<li><a href="#ignite-sandbox-activation">Ignite Sandbox Activation</a>
+<ul class="sectlevel2">
+<li><a href="#install-securitymanager">Install SecurityManager</a></li>
+<li><a href="#provide-gridsecurityprocessor-implementation">Provide
GridSecurityProcessor Implementation</a></li>
+</ul>
+</li>
+<li><a href="#permissions">Permissions</a></li>
+</ul>
+
+
+<footer>
+</footer>
+
+</nav>
+
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async
crossorigin></script>
+
+ <script>
+ // inits deep anchors -- needs to be done here because of
https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late
+ anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete),
.page-docs h4, .page-docs h5');
+ anchors.options = {
+ placement: 'right',
+ visible: 'always'
+ };
+ </script>
+ <!-- load google fonts async -->
+ <script type="text/javascript">
+ WebFontConfig = {
+ google: { families: [ 'Open+Sans:300,400,600,700&display=swap' ] }
+ };
+ (function() {
+ var wf = document.createElement('script');
+ wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
+ wf.type = 'text/javascript';
+ wf.async = 'true';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(wf, s);
+ })(); </script>
+ <script
src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+ <script>
+ docsearch({
+ // Your apiKey and indexName will be given to you once
+ // we create your config
+ apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8',
+ indexName: 'apache_ignite',
+ // Replace inputSelector with a CSS selector
+ // matching your search input
+ inputSelector: '#search-input',
+ // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+ // Set debug to true to inspect the dropdown
+ debug: false,
+ });
+ </script>
+<script type='module' src='/assets/js/index.js?1600975888' async
crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1600975888' async
crossorigin></script>
+</body>
+
+</html>