From c9ff623ff152298192ed4c479cfbed8dcd2831f7 Mon Sep 17 00:00:00 2001 From: Skytable Bot Date: Wed, 24 Apr 2024 12:15:51 +0000 Subject: [PATCH] Deployed fd21340e1f082126bc0451ef600980ace1e1b4d8 --- 0.7.4/actions-overview/index.html | 4 +- 0.7.4/actions/auth/index.html | 4 +- 0.7.4/actions/dbsize/index.html | 4 +- 0.7.4/actions/del/index.html | 4 +- 0.7.4/actions/exists/index.html | 4 +- 0.7.4/actions/flushdb/index.html | 4 +- 0.7.4/actions/get/index.html | 4 +- 0.7.4/actions/heya/index.html | 4 +- 0.7.4/actions/keylen/index.html | 4 +- 0.7.4/actions/lget/index.html | 4 +- 0.7.4/actions/lmod/index.html | 4 +- 0.7.4/actions/lset/index.html | 4 +- 0.7.4/actions/lskeys/index.html | 4 +- 0.7.4/actions/mget/index.html | 4 +- 0.7.4/actions/mksnap/index.html | 4 +- 0.7.4/actions/mpop/index.html | 4 +- 0.7.4/actions/mset/index.html | 4 +- 0.7.4/actions/mupdate/index.html | 4 +- 0.7.4/actions/pop/index.html | 4 +- 0.7.4/actions/sdel/index.html | 4 +- 0.7.4/actions/set/index.html | 4 +- 0.7.4/actions/sset/index.html | 4 +- 0.7.4/actions/supdate/index.html | 4 +- 0.7.4/actions/update/index.html | 4 +- 0.7.4/actions/uset/index.html | 4 +- 0.7.4/actions/whereami/index.html | 4 +- 0.7.4/all-actions/index.html | 4 +- 0.7.4/auth/index.html | 4 +- 0.7.4/benchmarking/index.html | 4 +- 0.7.4/building-from-source/index.html | 4 +- 0.7.4/clients/index.html | 4 +- 0.7.4/config-cmd/index.html | 4 +- 0.7.4/config-env/index.html | 4 +- 0.7.4/config-files/index.html | 4 +- 0.7.4/config/index.html | 4 +- 0.7.4/containers/index.html | 4 +- 0.7.4/ddl/index.html | 4 +- 0.7.4/deployment-notes/index.html | 4 +- 0.7.4/examples/index.html | 4 +- 0.7.4/getting-started/index.html | 4 +- 0.7.4/index.html | 4 +- 0.7.4/perf-guide/index.html | 4 +- 0.7.4/persistence/index.html | 4 +- 0.7.4/protocol/data-types/index.html | 4 +- 0.7.4/protocol/errors/index.html | 4 +- 0.7.4/protocol/response-codes/index.html | 4 +- 0.7.4/protocol/skyhash/index.html | 4 +- 0.7.4/snapshots/index.html | 4 +- 0.7.4/ssl/index.html | 4 +- 0.7.5/actions-overview/index.html | 4 +- 0.7.5/actions/auth/index.html | 4 +- 0.7.5/actions/dbsize/index.html | 4 +- 0.7.5/actions/del/index.html | 4 +- 0.7.5/actions/exists/index.html | 4 +- 0.7.5/actions/flushdb/index.html | 4 +- 0.7.5/actions/get/index.html | 4 +- 0.7.5/actions/heya/index.html | 4 +- 0.7.5/actions/keylen/index.html | 4 +- 0.7.5/actions/lget/index.html | 4 +- 0.7.5/actions/lmod/index.html | 4 +- 0.7.5/actions/lset/index.html | 4 +- 0.7.5/actions/lskeys/index.html | 4 +- 0.7.5/actions/mget/index.html | 4 +- 0.7.5/actions/mksnap/index.html | 4 +- 0.7.5/actions/mpop/index.html | 4 +- 0.7.5/actions/mset/index.html | 4 +- 0.7.5/actions/mupdate/index.html | 4 +- 0.7.5/actions/pop/index.html | 4 +- 0.7.5/actions/sdel/index.html | 4 +- 0.7.5/actions/set/index.html | 4 +- 0.7.5/actions/sset/index.html | 4 +- 0.7.5/actions/supdate/index.html | 4 +- 0.7.5/actions/sys/index.html | 4 +- 0.7.5/actions/update/index.html | 4 +- 0.7.5/actions/uset/index.html | 4 +- 0.7.5/actions/whereami/index.html | 4 +- 0.7.5/all-actions/index.html | 4 +- 0.7.5/auth/index.html | 4 +- 0.7.5/benchmarking/index.html | 4 +- 0.7.5/building-from-source/index.html | 4 +- 0.7.5/clients/index.html | 4 +- 0.7.5/config-cmd/index.html | 4 +- 0.7.5/config-env/index.html | 4 +- 0.7.5/config-files/index.html | 4 +- 0.7.5/config/index.html | 4 +- 0.7.5/containers/index.html | 4 +- 0.7.5/ddl/index.html | 4 +- 0.7.5/deployment-notes/index.html | 4 +- 0.7.5/examples/index.html | 4 +- 0.7.5/getting-started/index.html | 4 +- 0.7.5/index.html | 4 +- 0.7.5/perf-guide/index.html | 4 +- 0.7.5/persistence/index.html | 4 +- 0.7.5/protocol/data-types/index.html | 4 +- 0.7.5/protocol/errors/index.html | 4 +- 0.7.5/protocol/response-codes/index.html | 4 +- 0.7.5/protocol/skyhash/index.html | 4 +- 0.7.5/snapshots/index.html | 4 +- 0.7.5/ssl/index.html | 4 +- 0.8.0/architecture/index.html | 4 +- 0.8.0/benchmarking/index.html | 4 +- 0.8.0/blueql/dcl/index.html | 4 +- 0.8.0/blueql/ddl/index.html | 4 +- 0.8.0/blueql/dml/index.html | 4 +- 0.8.0/blueql/overview/index.html | 4 +- 0.8.0/category/blueql/index.html | 4 +- 0.8.0/category/system-management/index.html | 4 +- 0.8.0/deployment/index.html | 4 +- 0.8.0/index.html | 4 +- 0.8.0/installation/index.html | 4 +- 0.8.0/libraries/index.html | 4 +- 0.8.0/limits/index.html | 4 +- 0.8.0/protocol/errors/index.html | 4 +- 0.8.0/protocol/networking/index.html | 4 +- 0.8.0/protocol/overview/index.html | 4 +- 0.8.0/resources/migration/index.html | 4 +- 0.8.0/resources/overview/index.html | 4 +- 0.8.0/system/administration/index.html | 4 +- 0.8.0/system/configuration/index.html | 4 +- 0.8.0/using-the-repl/index.html | 4 +- 0.8.1/architecture/index.html | 4 +- 0.8.1/benchmarking/index.html | 4 +- 0.8.1/blueql/dcl/index.html | 4 +- 0.8.1/blueql/ddl/index.html | 4 +- 0.8.1/blueql/dml/index.html | 4 +- 0.8.1/blueql/index.html | 4 +- 0.8.1/blueql/overview/index.html | 4 +- 0.8.1/deployment/index.html | 4 +- 0.8.1/index.html | 4 +- 0.8.1/installation/index.html | 4 +- 0.8.1/libraries/index.html | 4 +- 0.8.1/limits/index.html | 4 +- 0.8.1/protocol/errors/index.html | 4 +- 0.8.1/protocol/index.html | 4 +- 0.8.1/protocol/specification/index.html | 4 +- 0.8.1/querying/index.html | 4 +- 0.8.1/resources/migration/index.html | 4 +- 0.8.1/resources/platform-support/index.html | 4 +- 0.8.1/resources/useful-links/index.html | 4 +- 0.8.1/system/configuration/index.html | 4 +- 0.8.1/system/global-management/index.html | 4 +- 0.8.1/system/index.html | 4 +- 0.8.1/system/recovery/index.html | 6 +-- 0.8.1/system/user-management/index.html | 4 +- 0.8.1/using-the-repl/index.html | 4 +- 0.8.1/versions/index.html | 4 +- 404.html | 4 +- architecture/index.html | 4 +- assets/js/1eebf554.2de66a94.js | 1 - assets/js/1eebf554.3b8e985d.js | 1 + assets/js/3e90d946.9fb65596.js | 1 - assets/js/3e90d946.e68d8b9d.js | 1 + assets/js/540c3b15.810f4ac6.js | 1 + assets/js/6bbf3746.5733d97c.js | 1 - assets/js/935f2afb.453fd310.js | 1 - assets/js/935f2afb.45dff2ec.js | 1 + ...d89ba.85cc95b5.js => a36d89ba.12e8b51a.js} | 2 +- assets/js/c377a04b.494633a2.js | 1 + assets/js/c377a04b.ffce57fc.js | 1 - assets/js/df871b03.1c528a23.js | 1 + assets/js/df871b03.a6f28121.js | 1 - assets/js/main.0bf97217.js | 2 - assets/js/main.7ef477b3.js | 2 + ...CENSE.txt => main.7ef477b3.js.LICENSE.txt} | 0 ...n.a7cc789c.js => runtime~main.d9683f92.js} | 2 +- benchmarking/index.html | 4 +- blueql/dcl/index.html | 4 +- blueql/ddl/index.html | 4 +- blueql/dml/index.html | 4 +- blueql/index.html | 4 +- blueql/overview/index.html | 4 +- deployment/index.html | 4 +- index.html | 6 +-- installation/index.html | 4 +- libraries/index.html | 6 +-- limits/index.html | 4 +- protocol/errors/index.html | 4 +- protocol/index.html | 4 +- protocol/specification/index.html | 4 +- querying/index.html | 4 +- resources/migration/index.html | 4 +- resources/platform-support/index.html | 4 +- resources/useful-links/index.html | 4 +- sitemap.xml | 2 +- system/configuration/index.html | 8 ++-- system/global-management/index.html | 10 ++--- system/index.html | 8 ++-- system/operations/index.html | 34 +++++++++++++++++ system/recovery/index.html | 37 +++++-------------- system/user-management/index.html | 6 +-- using-the-repl/index.html | 4 +- versions/index.html | 4 +- 192 files changed, 410 insertions(+), 393 deletions(-) delete mode 100644 assets/js/1eebf554.2de66a94.js create mode 100644 assets/js/1eebf554.3b8e985d.js delete mode 100644 assets/js/3e90d946.9fb65596.js create mode 100644 assets/js/3e90d946.e68d8b9d.js create mode 100644 assets/js/540c3b15.810f4ac6.js delete mode 100644 assets/js/6bbf3746.5733d97c.js delete mode 100644 assets/js/935f2afb.453fd310.js create mode 100644 assets/js/935f2afb.45dff2ec.js rename assets/js/{a36d89ba.85cc95b5.js => a36d89ba.12e8b51a.js} (68%) create mode 100644 assets/js/c377a04b.494633a2.js delete mode 100644 assets/js/c377a04b.ffce57fc.js create mode 100644 assets/js/df871b03.1c528a23.js delete mode 100644 assets/js/df871b03.a6f28121.js delete mode 100644 assets/js/main.0bf97217.js create mode 100644 assets/js/main.7ef477b3.js rename assets/js/{main.0bf97217.js.LICENSE.txt => main.7ef477b3.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.a7cc789c.js => runtime~main.d9683f92.js} (92%) create mode 100644 system/operations/index.html diff --git a/0.7.4/actions-overview/index.html b/0.7.4/actions-overview/index.html index 1e494913b..47729b578 100644 --- a/0.7.4/actions-overview/index.html +++ b/0.7.4/actions-overview/index.html @@ -4,8 +4,8 @@ Actions and Querying | Skytable - - + +
Skip to main content
Version: 0.7.4

Actions and Querying

Actions are exactly what they say — they do something! You can think of actions to be like diff --git a/0.7.4/actions/auth/index.html b/0.7.4/actions/auth/index.html index b2fcd7152..5d3915deb 100644 --- a/0.7.4/actions/auth/index.html +++ b/0.7.4/actions/auth/index.html @@ -4,8 +4,8 @@ AUTH | Skytable - - + +

Version: 0.7.4

AUTH

Change global authn/authz settings

diff --git a/0.7.4/actions/dbsize/index.html b/0.7.4/actions/dbsize/index.html index 55c085913..ac37375f6 100644 --- a/0.7.4/actions/dbsize/index.html +++ b/0.7.4/actions/dbsize/index.html @@ -4,8 +4,8 @@ DBSIZE | Skytable - - + +
Version: 0.7.4

DBSIZE

About

Time complexity: O(1)
diff --git a/0.7.4/actions/del/index.html b/0.7.4/actions/del/index.html index bdafc55e0..7bc3584eb 100644 --- a/0.7.4/actions/del/index.html +++ b/0.7.4/actions/del/index.html @@ -4,8 +4,8 @@ DEL | Skytable - - + +

Version: 0.7.4

DEL

About

Time complexity: O(n)
diff --git a/0.7.4/actions/exists/index.html b/0.7.4/actions/exists/index.html index 90695d683..ed8a662e6 100644 --- a/0.7.4/actions/exists/index.html +++ b/0.7.4/actions/exists/index.html @@ -4,8 +4,8 @@ EXISTS | Skytable - - + +

Version: 0.7.4

EXISTS

About

Time complexity: O(n)
diff --git a/0.7.4/actions/flushdb/index.html b/0.7.4/actions/flushdb/index.html index a1c4d145f..b47427247 100644 --- a/0.7.4/actions/flushdb/index.html +++ b/0.7.4/actions/flushdb/index.html @@ -4,8 +4,8 @@ FLUSHDB | Skytable - - + +

Version: 0.7.4

FLUSHDB

About

Time complexity: O(n)
diff --git a/0.7.4/actions/get/index.html b/0.7.4/actions/get/index.html index 7f4fdf66d..e9f52b7b6 100644 --- a/0.7.4/actions/get/index.html +++ b/0.7.4/actions/get/index.html @@ -4,8 +4,8 @@ GET | Skytable - - + +

Version: 0.7.4

GET

About

Time complexity: O(1)
diff --git a/0.7.4/actions/heya/index.html b/0.7.4/actions/heya/index.html index dbccb2110..cb206f5d7 100644 --- a/0.7.4/actions/heya/index.html +++ b/0.7.4/actions/heya/index.html @@ -4,8 +4,8 @@ HEYA | Skytable - - + +

Version: 0.7.4

HEYA

About

Time complexity: O(1)
diff --git a/0.7.4/actions/keylen/index.html b/0.7.4/actions/keylen/index.html index 6d662bfa0..23fe120f6 100644 --- a/0.7.4/actions/keylen/index.html +++ b/0.7.4/actions/keylen/index.html @@ -4,8 +4,8 @@ KEYLEN | Skytable - - + +

Version: 0.7.4

KEYLEN

About

Time complexity: O(1)
diff --git a/0.7.4/actions/lget/index.html b/0.7.4/actions/lget/index.html index c1a269208..dfa7ce1cc 100644 --- a/0.7.4/actions/lget/index.html +++ b/0.7.4/actions/lget/index.html @@ -4,8 +4,8 @@ LGET | Skytable - - + +

Version: 0.7.4

LGET

LGET can be used to access the items in a list. Through the sub-actions provided by lget, diff --git a/0.7.4/actions/lmod/index.html b/0.7.4/actions/lmod/index.html index 9b0681e50..bd848ac48 100644 --- a/0.7.4/actions/lmod/index.html +++ b/0.7.4/actions/lmod/index.html @@ -4,8 +4,8 @@ LMOD | Skytable - - + +

Version: 0.7.4

LMOD

LMOD can be used to mutate the elements in a list

diff --git a/0.7.4/actions/lset/index.html b/0.7.4/actions/lset/index.html index 4873d20f1..403c5b2ce 100644 --- a/0.7.4/actions/lset/index.html +++ b/0.7.4/actions/lset/index.html @@ -4,8 +4,8 @@ LSET | Skytable - - + +
Version: 0.7.4

LSET

LSET can be used to create empty lists or lists with the provided values.

diff --git a/0.7.4/actions/lskeys/index.html b/0.7.4/actions/lskeys/index.html index eefc62dcf..b436a1da8 100644 --- a/0.7.4/actions/lskeys/index.html +++ b/0.7.4/actions/lskeys/index.html @@ -4,8 +4,8 @@ LSKEYS | Skytable - - + +
Version: 0.7.4

LSKEYS

About

Time complexity: O(n)
diff --git a/0.7.4/actions/mget/index.html b/0.7.4/actions/mget/index.html index fe7a126cd..c511cfd40 100644 --- a/0.7.4/actions/mget/index.html +++ b/0.7.4/actions/mget/index.html @@ -4,8 +4,8 @@ MGET | Skytable - - + +

Version: 0.7.4

MGET

About

Time complexity: O(n)
diff --git a/0.7.4/actions/mksnap/index.html b/0.7.4/actions/mksnap/index.html index 6f660ba93..45e8d95bc 100644 --- a/0.7.4/actions/mksnap/index.html +++ b/0.7.4/actions/mksnap/index.html @@ -4,8 +4,8 @@ MKSNAP | Skytable - - + +

Version: 0.7.4

MKSNAP

About

Time complexity: O(n)
diff --git a/0.7.4/actions/mpop/index.html b/0.7.4/actions/mpop/index.html index 983e3d342..dd2e101e6 100644 --- a/0.7.4/actions/mpop/index.html +++ b/0.7.4/actions/mpop/index.html @@ -4,8 +4,8 @@ MPOP | Skytable - - + +

Version: 0.7.4

MPOP

About

Time complexity: O(n)
diff --git a/0.7.4/actions/mset/index.html b/0.7.4/actions/mset/index.html index 4580a7589..36f37aa99 100644 --- a/0.7.4/actions/mset/index.html +++ b/0.7.4/actions/mset/index.html @@ -4,8 +4,8 @@ MSET | Skytable - - + +

Version: 0.7.4

MSET

About

Time complexity: O(n)
diff --git a/0.7.4/actions/mupdate/index.html b/0.7.4/actions/mupdate/index.html index 6aab44097..6cd1b52e8 100644 --- a/0.7.4/actions/mupdate/index.html +++ b/0.7.4/actions/mupdate/index.html @@ -4,8 +4,8 @@ MUPDATE | Skytable - - + +

Version: 0.7.4

MUPDATE

About

Time complexity: O(n)
diff --git a/0.7.4/actions/pop/index.html b/0.7.4/actions/pop/index.html index f708dd6eb..827b8877e 100644 --- a/0.7.4/actions/pop/index.html +++ b/0.7.4/actions/pop/index.html @@ -4,8 +4,8 @@ POP | Skytable - - + +

Version: 0.7.4

POP

About

Time complexity: O(1)
diff --git a/0.7.4/actions/sdel/index.html b/0.7.4/actions/sdel/index.html index 4611a698e..c8ff12bd9 100644 --- a/0.7.4/actions/sdel/index.html +++ b/0.7.4/actions/sdel/index.html @@ -4,8 +4,8 @@ SDEL | Skytable - - + +

Version: 0.7.4

SDEL

About

Time complexity: O(n)
diff --git a/0.7.4/actions/set/index.html b/0.7.4/actions/set/index.html index 251faa2da..4a2c82526 100644 --- a/0.7.4/actions/set/index.html +++ b/0.7.4/actions/set/index.html @@ -4,8 +4,8 @@ SET | Skytable - - + +

Version: 0.7.4

SET

About

Time complexity: O(1)
diff --git a/0.7.4/actions/sset/index.html b/0.7.4/actions/sset/index.html index 98f1d60f7..f5a00f04b 100644 --- a/0.7.4/actions/sset/index.html +++ b/0.7.4/actions/sset/index.html @@ -4,8 +4,8 @@ SSET | Skytable - - + +

Version: 0.7.4

SSET

About

Time complexity: O(n)
diff --git a/0.7.4/actions/supdate/index.html b/0.7.4/actions/supdate/index.html index f13145be5..f232c9168 100644 --- a/0.7.4/actions/supdate/index.html +++ b/0.7.4/actions/supdate/index.html @@ -4,8 +4,8 @@ SUPDATE | Skytable - - + +

Version: 0.7.4

SUPDATE

About

Time complexity: O(n)
diff --git a/0.7.4/actions/update/index.html b/0.7.4/actions/update/index.html index 9bcdac388..8f7cdbafc 100644 --- a/0.7.4/actions/update/index.html +++ b/0.7.4/actions/update/index.html @@ -4,8 +4,8 @@ UPDATE | Skytable - - + +

Version: 0.7.4

UPDATE

About

Time complexity: O(1)
diff --git a/0.7.4/actions/uset/index.html b/0.7.4/actions/uset/index.html index 48dace64f..1e7dca885 100644 --- a/0.7.4/actions/uset/index.html +++ b/0.7.4/actions/uset/index.html @@ -4,8 +4,8 @@ USET | Skytable - - + +

Version: 0.7.4

USET

About

Time complexity: O(n)
diff --git a/0.7.4/actions/whereami/index.html b/0.7.4/actions/whereami/index.html index 450a85d82..c1ece86b5 100644 --- a/0.7.4/actions/whereami/index.html +++ b/0.7.4/actions/whereami/index.html @@ -4,8 +4,8 @@ WHEREAMI | Skytable - - + +

Version: 0.7.4

WHEREAMI

About

Time complexity: O(1)
diff --git a/0.7.4/all-actions/index.html b/0.7.4/all-actions/index.html index 98e640e60..8da13d5fc 100644 --- a/0.7.4/all-actions/index.html +++ b/0.7.4/all-actions/index.html @@ -4,8 +4,8 @@ Index of actions | Skytable - - + +

Version: 0.7.4

Index of actions

Skytable currently supports the actions listed in this document. You can find all the actions diff --git a/0.7.4/auth/index.html b/0.7.4/auth/index.html index d0915a6e7..06c749753 100644 --- a/0.7.4/auth/index.html +++ b/0.7.4/auth/index.html @@ -4,8 +4,8 @@ Authentication and authorization | Skytable - - + +

Version: 0.7.4

Authentication and authorization

Skytable supports token-based authentication as an authentication scheme, with more on the way in diff --git a/0.7.4/benchmarking/index.html b/0.7.4/benchmarking/index.html index 5bc1b437f..a154cec74 100644 --- a/0.7.4/benchmarking/index.html +++ b/0.7.4/benchmarking/index.html @@ -4,8 +4,8 @@ Benchmarking | Skytable - - + +

Version: 0.7.4

Benchmarking

Who doesn't like speed and as a consequence, benchmarks? So here's a guide on benchmarking Skytable with our tool sky-bench .

diff --git a/0.7.4/building-from-source/index.html b/0.7.4/building-from-source/index.html index a5226b58e..130b9766d 100644 --- a/0.7.4/building-from-source/index.html +++ b/0.7.4/building-from-source/index.html @@ -4,8 +4,8 @@ Building from source | Skytable - - + +
Version: 0.7.4

Building from source

Of course you can build it from source — but with quite a bit of hassle. The database server is a bit fussy with its builds, so you'll need quite a few tools before you can actually start using it.

diff --git a/0.7.4/clients/index.html b/0.7.4/clients/index.html index b46034cac..6d610a5e6 100644 --- a/0.7.4/clients/index.html +++ b/0.7.4/clients/index.html @@ -4,8 +4,8 @@ Client drivers | Skytable - - + +
Version: 0.7.4

Client drivers

We officially maintain the following drivers:

diff --git a/0.7.4/config-cmd/index.html b/0.7.4/config-cmd/index.html index c646e4920..958a26c4e 100644 --- a/0.7.4/config-cmd/index.html +++ b/0.7.4/config-cmd/index.html @@ -4,8 +4,8 @@ Command-line configuration | Skytable - - + +
Version: 0.7.4

Command-line configuration

You can use command line arguments alone for configuration in place of configuration files. Every binary ( skyd , skysh and sky-bench ) that you get with a bundle have extremely helpful help menus. Whatever you can configure with the configuration file can be configured through command line diff --git a/0.7.4/config-env/index.html b/0.7.4/config-env/index.html index b8cfb21d8..1ee5d275f 100644 --- a/0.7.4/config-env/index.html +++ b/0.7.4/config-env/index.html @@ -4,8 +4,8 @@ Environment Variables | Skytable - - + +

Version: 0.7.4

Environment Variables

If you don't want to use configuration files or use command-line arguments, you can choose to use diff --git a/0.7.4/config-files/index.html b/0.7.4/config-files/index.html index 62fffd8d3..a7a07fc0b 100644 --- a/0.7.4/config-files/index.html +++ b/0.7.4/config-files/index.html @@ -4,8 +4,8 @@ Configuration Files | Skytable - - + +

Version: 0.7.4

Configuration Files

By using configuration files, you can customize the behavior of Skytable.

diff --git a/0.7.4/config/index.html b/0.7.4/config/index.html index 435ab5c29..7021474ed 100644 --- a/0.7.4/config/index.html +++ b/0.7.4/config/index.html @@ -4,8 +4,8 @@ Configuration basics | Skytable - - + +
Version: 0.7.4

Configuration basics

Skytable can be configured to a great degree, depending on your requirements. You can configure Skytable using:

diff --git a/0.7.4/containers/index.html b/0.7.4/containers/index.html index f37bf5f01..0dde67b68 100644 --- a/0.7.4/containers/index.html +++ b/0.7.4/containers/index.html @@ -4,8 +4,8 @@ Containers | Skytable - - + +
Version: 0.7.4

Containers

Containers are objects that hold other objects. In Skytable, we have two kinds of containers:

diff --git a/0.7.4/ddl/index.html b/0.7.4/ddl/index.html index 4021ef8c3..1ce4da334 100644 --- a/0.7.4/ddl/index.html +++ b/0.7.4/ddl/index.html @@ -4,8 +4,8 @@ DDL | Skytable - - + +
Version: 0.7.4

DDL

DDL or Data Definition Language is a way to interact with containers. Skytable lets you interact with containers with the following DDL actions:

diff --git a/0.7.4/deployment-notes/index.html b/0.7.4/deployment-notes/index.html index 56c235282..b6e2ae2a5 100644 --- a/0.7.4/deployment-notes/index.html +++ b/0.7.4/deployment-notes/index.html @@ -4,8 +4,8 @@ Deployment notes | Skytable - - + +
Version: 0.7.4

Deployment notes

Here are some good to know things about deploying Skytable:

diff --git a/0.7.4/examples/index.html b/0.7.4/examples/index.html index 2e6169e41..3c73edcf4 100644 --- a/0.7.4/examples/index.html +++ b/0.7.4/examples/index.html @@ -4,8 +4,8 @@ Examples | Skytable - - + +
Version: 0.7.4

Examples

DDL

diff --git a/0.7.4/getting-started/index.html b/0.7.4/getting-started/index.html index a0ce73f6d..331f39f75 100644 --- a/0.7.4/getting-started/index.html +++ b/0.7.4/getting-started/index.html @@ -4,8 +4,8 @@ Getting Started | Skytable - - + +
Version: 0.7.4

Getting Started

Getting started with Skytable is easy 😊 (and fun!). You can get started with native binaries (recommended) or by using the docker image.

diff --git a/0.7.4/index.html b/0.7.4/index.html index 7c1935022..56949d783 100644 --- a/0.7.4/index.html +++ b/0.7.4/index.html @@ -4,8 +4,8 @@ Introduction | Skytable - - + +
Version: 0.7.4

Introduction

Welcome to Skytable's docs! You will find information about how you can get started with Skytable, installation options, configuration and clients.

diff --git a/0.7.4/perf-guide/index.html b/0.7.4/perf-guide/index.html index 9ad5dc4a0..10fbae5fe 100644 --- a/0.7.4/perf-guide/index.html +++ b/0.7.4/perf-guide/index.html @@ -4,8 +4,8 @@ Performance Guide | Skytable - - + +
Version: 0.7.4

Performance Guide

We have put in our best efforts to make Skytable really fast — but usage patterns can greatly diff --git a/0.7.4/persistence/index.html b/0.7.4/persistence/index.html index dec3f3faf..596a51590 100644 --- a/0.7.4/persistence/index.html +++ b/0.7.4/persistence/index.html @@ -4,8 +4,8 @@ Persistence | Skytable - - + +

Version: 0.7.4

Persistence

Skytable supports the persistent storage of data, which is an inherently obvious need for any database. In this document we explore how Skytable's persistence works.

diff --git a/0.7.4/protocol/data-types/index.html b/0.7.4/protocol/data-types/index.html index 0c237e5d5..51aaff330 100644 --- a/0.7.4/protocol/data-types/index.html +++ b/0.7.4/protocol/data-types/index.html @@ -4,8 +4,8 @@ Data Types | Skytable - - + +
Version: 0.7.4

Data Types

This table lists all data types supported by Skytable and their corresponding diff --git a/0.7.4/protocol/errors/index.html b/0.7.4/protocol/errors/index.html index 870281f56..64629c2df 100644 --- a/0.7.4/protocol/errors/index.html +++ b/0.7.4/protocol/errors/index.html @@ -4,8 +4,8 @@ Error Strings | Skytable - - + +

Version: 0.7.4

Error Strings

In certain situations, the server may return error strings (also known as other errors), instead of the standard response codes. This table is an index of such error strings.

diff --git a/0.7.4/protocol/response-codes/index.html b/0.7.4/protocol/response-codes/index.html index 2e006ba0a..da9edb1b6 100644 --- a/0.7.4/protocol/response-codes/index.html +++ b/0.7.4/protocol/response-codes/index.html @@ -4,8 +4,8 @@ Response Codes | Skytable - - + +
Version: 0.7.4

Response Codes

Skytable may return any of the response codes listed here:

diff --git a/0.7.4/protocol/skyhash/index.html b/0.7.4/protocol/skyhash/index.html index f7c9ddef4..9f17090cb 100644 --- a/0.7.4/protocol/skyhash/index.html +++ b/0.7.4/protocol/skyhash/index.html @@ -4,8 +4,8 @@ Skyhash Protocol 1.0 | Skytable - - + +
Version: 0.7.4

Skyhash Protocol 1.0

About this document

Copyright (c) 2021 Sayan Nandan <nandansayan@outlook.com>
diff --git a/0.7.4/snapshots/index.html b/0.7.4/snapshots/index.html index cbdf6a028..d3bd43241 100644 --- a/0.7.4/snapshots/index.html +++ b/0.7.4/snapshots/index.html @@ -4,8 +4,8 @@ Snapshots | Skytable - - + +

Version: 0.7.4

Snapshots

Skytable supports automated snapshots that can be used for periodic backups. diff --git a/0.7.4/ssl/index.html b/0.7.4/ssl/index.html index 1a783d196..707d01d9d 100644 --- a/0.7.4/ssl/index.html +++ b/0.7.4/ssl/index.html @@ -4,8 +4,8 @@ TLS configuration | Skytable - - + +

Version: 0.7.4

TLS configuration

Skytable lets you secure connections with TLS. This feature is built into Sky with OpenSSL and doesn't require you to have OpenSSL installed. You can enable TLS by using your preferred mode of configuration.

diff --git a/0.7.5/actions-overview/index.html b/0.7.5/actions-overview/index.html index 0a7cb2cb8..babe57354 100644 --- a/0.7.5/actions-overview/index.html +++ b/0.7.5/actions-overview/index.html @@ -4,8 +4,8 @@ Actions and Querying | Skytable - - + +
Version: 0.7.5

Actions and Querying

Actions are exactly what they say — they do something! You can think of actions to be like diff --git a/0.7.5/actions/auth/index.html b/0.7.5/actions/auth/index.html index e1b7620f4..f4c6780d0 100644 --- a/0.7.5/actions/auth/index.html +++ b/0.7.5/actions/auth/index.html @@ -4,8 +4,8 @@ AUTH | Skytable - - + +

Version: 0.7.5

AUTH

Change global authn/authz settings

diff --git a/0.7.5/actions/dbsize/index.html b/0.7.5/actions/dbsize/index.html index bf513680a..630545c19 100644 --- a/0.7.5/actions/dbsize/index.html +++ b/0.7.5/actions/dbsize/index.html @@ -4,8 +4,8 @@ DBSIZE | Skytable - - + +
Version: 0.7.5

DBSIZE

About

Time complexity: O(1)
diff --git a/0.7.5/actions/del/index.html b/0.7.5/actions/del/index.html index c2a84896f..69d7053a9 100644 --- a/0.7.5/actions/del/index.html +++ b/0.7.5/actions/del/index.html @@ -4,8 +4,8 @@ DEL | Skytable - - + +

Version: 0.7.5

DEL

About

Time complexity: O(n)
diff --git a/0.7.5/actions/exists/index.html b/0.7.5/actions/exists/index.html index 3eb5649cb..7745c7f09 100644 --- a/0.7.5/actions/exists/index.html +++ b/0.7.5/actions/exists/index.html @@ -4,8 +4,8 @@ EXISTS | Skytable - - + +

Version: 0.7.5

EXISTS

About

Time complexity: O(n)
diff --git a/0.7.5/actions/flushdb/index.html b/0.7.5/actions/flushdb/index.html index 12814a6b1..0e673f731 100644 --- a/0.7.5/actions/flushdb/index.html +++ b/0.7.5/actions/flushdb/index.html @@ -4,8 +4,8 @@ FLUSHDB | Skytable - - + +

Version: 0.7.5

FLUSHDB

About

Time complexity: O(n)
diff --git a/0.7.5/actions/get/index.html b/0.7.5/actions/get/index.html index 3dcf227ef..a496f8588 100644 --- a/0.7.5/actions/get/index.html +++ b/0.7.5/actions/get/index.html @@ -4,8 +4,8 @@ GET | Skytable - - + +

Version: 0.7.5

GET

About

Time complexity: O(1)
diff --git a/0.7.5/actions/heya/index.html b/0.7.5/actions/heya/index.html index 67f63d66d..c45d91c1c 100644 --- a/0.7.5/actions/heya/index.html +++ b/0.7.5/actions/heya/index.html @@ -4,8 +4,8 @@ HEYA | Skytable - - + +

Version: 0.7.5

HEYA

About

Time complexity: O(1)
diff --git a/0.7.5/actions/keylen/index.html b/0.7.5/actions/keylen/index.html index 02b584e72..5b1030c87 100644 --- a/0.7.5/actions/keylen/index.html +++ b/0.7.5/actions/keylen/index.html @@ -4,8 +4,8 @@ KEYLEN | Skytable - - + +

Version: 0.7.5

KEYLEN

About

Time complexity: O(1)
diff --git a/0.7.5/actions/lget/index.html b/0.7.5/actions/lget/index.html index ccb84b443..06da10fba 100644 --- a/0.7.5/actions/lget/index.html +++ b/0.7.5/actions/lget/index.html @@ -4,8 +4,8 @@ LGET | Skytable - - + +

Version: 0.7.5

LGET

LGET can be used to access the items in a list. Through the sub-actions provided by lget, diff --git a/0.7.5/actions/lmod/index.html b/0.7.5/actions/lmod/index.html index 7360247a4..ec2257452 100644 --- a/0.7.5/actions/lmod/index.html +++ b/0.7.5/actions/lmod/index.html @@ -4,8 +4,8 @@ LMOD | Skytable - - + +

Version: 0.7.5

LMOD

LMOD can be used to mutate the elements in a list

diff --git a/0.7.5/actions/lset/index.html b/0.7.5/actions/lset/index.html index 7b8e6bc20..62b015d3d 100644 --- a/0.7.5/actions/lset/index.html +++ b/0.7.5/actions/lset/index.html @@ -4,8 +4,8 @@ LSET | Skytable - - + +
Version: 0.7.5

LSET

LSET can be used to create empty lists or lists with the provided values.

diff --git a/0.7.5/actions/lskeys/index.html b/0.7.5/actions/lskeys/index.html index c61f59aaf..b90ed71c9 100644 --- a/0.7.5/actions/lskeys/index.html +++ b/0.7.5/actions/lskeys/index.html @@ -4,8 +4,8 @@ LSKEYS | Skytable - - + +
Version: 0.7.5

LSKEYS

About

Time complexity: O(n)
diff --git a/0.7.5/actions/mget/index.html b/0.7.5/actions/mget/index.html index 3e4602691..e8ee2c421 100644 --- a/0.7.5/actions/mget/index.html +++ b/0.7.5/actions/mget/index.html @@ -4,8 +4,8 @@ MGET | Skytable - - + +

Version: 0.7.5

MGET

About

Time complexity: O(n)
diff --git a/0.7.5/actions/mksnap/index.html b/0.7.5/actions/mksnap/index.html index dfb864ea0..f8a9b04a6 100644 --- a/0.7.5/actions/mksnap/index.html +++ b/0.7.5/actions/mksnap/index.html @@ -4,8 +4,8 @@ MKSNAP | Skytable - - + +

Version: 0.7.5

MKSNAP

About

Time complexity: O(n)
diff --git a/0.7.5/actions/mpop/index.html b/0.7.5/actions/mpop/index.html index 2ddb9a896..a1ec2b4bd 100644 --- a/0.7.5/actions/mpop/index.html +++ b/0.7.5/actions/mpop/index.html @@ -4,8 +4,8 @@ MPOP | Skytable - - + +

Version: 0.7.5

MPOP

About

Time complexity: O(n)
diff --git a/0.7.5/actions/mset/index.html b/0.7.5/actions/mset/index.html index a28b66ecb..17e0ae549 100644 --- a/0.7.5/actions/mset/index.html +++ b/0.7.5/actions/mset/index.html @@ -4,8 +4,8 @@ MSET | Skytable - - + +

Version: 0.7.5

MSET

About

Time complexity: O(n)
diff --git a/0.7.5/actions/mupdate/index.html b/0.7.5/actions/mupdate/index.html index 61a6e0c36..a25b69362 100644 --- a/0.7.5/actions/mupdate/index.html +++ b/0.7.5/actions/mupdate/index.html @@ -4,8 +4,8 @@ MUPDATE | Skytable - - + +

Version: 0.7.5

MUPDATE

About

Time complexity: O(n)
diff --git a/0.7.5/actions/pop/index.html b/0.7.5/actions/pop/index.html index 6106401c8..bb93b2fa4 100644 --- a/0.7.5/actions/pop/index.html +++ b/0.7.5/actions/pop/index.html @@ -4,8 +4,8 @@ POP | Skytable - - + +

Version: 0.7.5

POP

About

Time complexity: O(1)
diff --git a/0.7.5/actions/sdel/index.html b/0.7.5/actions/sdel/index.html index cffdb6ade..5d8fa85bb 100644 --- a/0.7.5/actions/sdel/index.html +++ b/0.7.5/actions/sdel/index.html @@ -4,8 +4,8 @@ SDEL | Skytable - - + +

Version: 0.7.5

SDEL

About

Time complexity: O(n)
diff --git a/0.7.5/actions/set/index.html b/0.7.5/actions/set/index.html index 4aaf17060..8babafc25 100644 --- a/0.7.5/actions/set/index.html +++ b/0.7.5/actions/set/index.html @@ -4,8 +4,8 @@ SET | Skytable - - + +

Version: 0.7.5

SET

About

Time complexity: O(1)
diff --git a/0.7.5/actions/sset/index.html b/0.7.5/actions/sset/index.html index fda8435ea..c39cf7f38 100644 --- a/0.7.5/actions/sset/index.html +++ b/0.7.5/actions/sset/index.html @@ -4,8 +4,8 @@ SSET | Skytable - - + +

Version: 0.7.5

SSET

About

Time complexity: O(n)
diff --git a/0.7.5/actions/supdate/index.html b/0.7.5/actions/supdate/index.html index 3c90fba06..4dafdff6c 100644 --- a/0.7.5/actions/supdate/index.html +++ b/0.7.5/actions/supdate/index.html @@ -4,8 +4,8 @@ SUPDATE | Skytable - - + +

Version: 0.7.5

SUPDATE

About

Time complexity: O(n)
diff --git a/0.7.5/actions/sys/index.html b/0.7.5/actions/sys/index.html index 3796e2a75..85fbf0215 100644 --- a/0.7.5/actions/sys/index.html +++ b/0.7.5/actions/sys/index.html @@ -4,8 +4,8 @@ SYS | Skytable - - + +

Version: 0.7.5

SYS

Get system information and metrics

diff --git a/0.7.5/actions/update/index.html b/0.7.5/actions/update/index.html index 6e11cb06e..f0f13eaa5 100644 --- a/0.7.5/actions/update/index.html +++ b/0.7.5/actions/update/index.html @@ -4,8 +4,8 @@ UPDATE | Skytable - - + +
Version: 0.7.5

UPDATE

About

Time complexity: O(1)
diff --git a/0.7.5/actions/uset/index.html b/0.7.5/actions/uset/index.html index 0dd0856ee..9d708bd1f 100644 --- a/0.7.5/actions/uset/index.html +++ b/0.7.5/actions/uset/index.html @@ -4,8 +4,8 @@ USET | Skytable - - + +

Version: 0.7.5

USET

About

Time complexity: O(n)
diff --git a/0.7.5/actions/whereami/index.html b/0.7.5/actions/whereami/index.html index 34a845cc3..c0a1b8479 100644 --- a/0.7.5/actions/whereami/index.html +++ b/0.7.5/actions/whereami/index.html @@ -4,8 +4,8 @@ WHEREAMI | Skytable - - + +

Version: 0.7.5

WHEREAMI

About

Time complexity: O(1)
diff --git a/0.7.5/all-actions/index.html b/0.7.5/all-actions/index.html index 9f31dcfc8..1dda1fefa 100644 --- a/0.7.5/all-actions/index.html +++ b/0.7.5/all-actions/index.html @@ -4,8 +4,8 @@ Index of actions | Skytable - - + +

Version: 0.7.5

Index of actions

Skytable currently supports the actions listed in this document. You can find all the actions diff --git a/0.7.5/auth/index.html b/0.7.5/auth/index.html index 7326b280a..0629be9cd 100644 --- a/0.7.5/auth/index.html +++ b/0.7.5/auth/index.html @@ -4,8 +4,8 @@ Authentication and authorization | Skytable - - + +

Version: 0.7.5

Authentication and authorization

Skytable supports token-based authentication as an authentication scheme, with more on the way in diff --git a/0.7.5/benchmarking/index.html b/0.7.5/benchmarking/index.html index f038de3b9..928619e59 100644 --- a/0.7.5/benchmarking/index.html +++ b/0.7.5/benchmarking/index.html @@ -4,8 +4,8 @@ Benchmarking | Skytable - - + +

Version: 0.7.5

Benchmarking

Who doesn't like speed and as a consequence, benchmarks? So here's a guide on benchmarking Skytable with our tool sky-bench .

diff --git a/0.7.5/building-from-source/index.html b/0.7.5/building-from-source/index.html index 24ac9967b..faa71881c 100644 --- a/0.7.5/building-from-source/index.html +++ b/0.7.5/building-from-source/index.html @@ -4,8 +4,8 @@ Building from source | Skytable - - + +
Version: 0.7.5

Building from source

Of course you can build it from source — but with quite a bit of hassle. The database server is a bit fussy with its builds, so you'll need quite a few tools before you can actually start using it.

diff --git a/0.7.5/clients/index.html b/0.7.5/clients/index.html index 4f34f7689..aecb66694 100644 --- a/0.7.5/clients/index.html +++ b/0.7.5/clients/index.html @@ -4,8 +4,8 @@ Client drivers | Skytable - - + +
Version: 0.7.5

Client drivers

Official drivers

diff --git a/0.7.5/config-cmd/index.html b/0.7.5/config-cmd/index.html index ab1cd9aa9..81af6683e 100644 --- a/0.7.5/config-cmd/index.html +++ b/0.7.5/config-cmd/index.html @@ -4,8 +4,8 @@ Command-line configuration | Skytable - - + +
Version: 0.7.5

Command-line configuration

You can use command line arguments alone for configuration in place of configuration files. Every binary ( skyd , skysh and sky-bench ) that you get with a bundle have extremely helpful help menus. Whatever you can configure with the configuration file can be configured through command line diff --git a/0.7.5/config-env/index.html b/0.7.5/config-env/index.html index 01d9a9988..874b4e19b 100644 --- a/0.7.5/config-env/index.html +++ b/0.7.5/config-env/index.html @@ -4,8 +4,8 @@ Environment Variables | Skytable - - + +

Version: 0.7.5

Environment Variables

If you don't want to use configuration files or use command-line arguments, you can choose to use diff --git a/0.7.5/config-files/index.html b/0.7.5/config-files/index.html index 8875ec365..2126407c3 100644 --- a/0.7.5/config-files/index.html +++ b/0.7.5/config-files/index.html @@ -4,8 +4,8 @@ Configuration Files | Skytable - - + +

Version: 0.7.5

Configuration Files

By using configuration files, you can customize the behavior of Skytable.

diff --git a/0.7.5/config/index.html b/0.7.5/config/index.html index 34f43b04b..533539489 100644 --- a/0.7.5/config/index.html +++ b/0.7.5/config/index.html @@ -4,8 +4,8 @@ Configuration basics | Skytable - - + +
Version: 0.7.5

Configuration basics

Skytable can be configured to a great degree, depending on your requirements. You can configure Skytable using:

diff --git a/0.7.5/containers/index.html b/0.7.5/containers/index.html index 7dffb22d8..1ba419aa5 100644 --- a/0.7.5/containers/index.html +++ b/0.7.5/containers/index.html @@ -4,8 +4,8 @@ Containers | Skytable - - + +
Version: 0.7.5

Containers

Containers are objects that hold other objects. In Skytable, we have two kinds of containers:

diff --git a/0.7.5/ddl/index.html b/0.7.5/ddl/index.html index 82de0dfb4..978fef184 100644 --- a/0.7.5/ddl/index.html +++ b/0.7.5/ddl/index.html @@ -4,8 +4,8 @@ DDL | Skytable - - + +
Version: 0.7.5

DDL

DDL or Data Definition Language is a way to interact with containers. Skytable lets you interact with containers with the following DDL actions:

diff --git a/0.7.5/deployment-notes/index.html b/0.7.5/deployment-notes/index.html index 5b2045f2f..e807de5b9 100644 --- a/0.7.5/deployment-notes/index.html +++ b/0.7.5/deployment-notes/index.html @@ -4,8 +4,8 @@ Deployment notes | Skytable - - + +
Version: 0.7.5

Deployment notes

Recommendations

diff --git a/0.7.5/examples/index.html b/0.7.5/examples/index.html index 1a50472ce..ce38111d4 100644 --- a/0.7.5/examples/index.html +++ b/0.7.5/examples/index.html @@ -4,8 +4,8 @@ Examples | Skytable - - + +
Version: 0.7.5

Examples

DDL

diff --git a/0.7.5/getting-started/index.html b/0.7.5/getting-started/index.html index 1609207f2..9a8167b25 100644 --- a/0.7.5/getting-started/index.html +++ b/0.7.5/getting-started/index.html @@ -4,8 +4,8 @@ Getting Started | Skytable - - + +
Version: 0.7.5

Getting Started

Getting started with Skytable is easy 😊 (and fun!). You can get started with native binaries (recommended) or by using the docker image.

diff --git a/0.7.5/index.html b/0.7.5/index.html index 9a625c0a4..46989006b 100644 --- a/0.7.5/index.html +++ b/0.7.5/index.html @@ -4,8 +4,8 @@ Introduction | Skytable - - + +
Version: 0.7.5

Introduction

Welcome to Skytable's docs! You will find information about how you can get started with Skytable, installation options, configuration and clients.

diff --git a/0.7.5/perf-guide/index.html b/0.7.5/perf-guide/index.html index 803033f0c..978eb2841 100644 --- a/0.7.5/perf-guide/index.html +++ b/0.7.5/perf-guide/index.html @@ -4,8 +4,8 @@ Performance Guide | Skytable - - + +
Version: 0.7.5

Performance Guide

We have put in our best efforts to make Skytable really fast — but usage patterns can greatly diff --git a/0.7.5/persistence/index.html b/0.7.5/persistence/index.html index 07851c6bb..11efe0b87 100644 --- a/0.7.5/persistence/index.html +++ b/0.7.5/persistence/index.html @@ -4,8 +4,8 @@ Persistence | Skytable - - + +

Version: 0.7.5

Persistence

Skytable supports the persistent storage of data, which is an inherently obvious need for any database. In this document we explore how Skytable's persistence works.

diff --git a/0.7.5/protocol/data-types/index.html b/0.7.5/protocol/data-types/index.html index a2cb87ec6..71dde8fd0 100644 --- a/0.7.5/protocol/data-types/index.html +++ b/0.7.5/protocol/data-types/index.html @@ -4,8 +4,8 @@ Data Types | Skytable - - + +
Version: 0.7.5

Data Types

This table lists all data types supported by Skytable and their corresponding diff --git a/0.7.5/protocol/errors/index.html b/0.7.5/protocol/errors/index.html index 14965b107..a1ebe9ff3 100644 --- a/0.7.5/protocol/errors/index.html +++ b/0.7.5/protocol/errors/index.html @@ -4,8 +4,8 @@ Error Strings | Skytable - - + +

Version: 0.7.5

Error Strings

In certain situations, the server may return error strings (also known as other errors), instead of the standard response codes. This table is an index of such error strings.

diff --git a/0.7.5/protocol/response-codes/index.html b/0.7.5/protocol/response-codes/index.html index f3b615036..ae3731e88 100644 --- a/0.7.5/protocol/response-codes/index.html +++ b/0.7.5/protocol/response-codes/index.html @@ -4,8 +4,8 @@ Response Codes | Skytable - - + +
Version: 0.7.5

Response Codes

Skytable may return any of the response codes listed here:

diff --git a/0.7.5/protocol/skyhash/index.html b/0.7.5/protocol/skyhash/index.html index 5d496e1fe..41950fd6b 100644 --- a/0.7.5/protocol/skyhash/index.html +++ b/0.7.5/protocol/skyhash/index.html @@ -4,8 +4,8 @@ Skyhash Protocol 1.0 | Skytable - - + +
Version: 0.7.5

Skyhash Protocol 1.0

About this document

Copyright (c) 2021 Sayan Nandan <nandansayan@outlook.com>
diff --git a/0.7.5/snapshots/index.html b/0.7.5/snapshots/index.html index 5a526ce82..e3744739e 100644 --- a/0.7.5/snapshots/index.html +++ b/0.7.5/snapshots/index.html @@ -4,8 +4,8 @@ Snapshots | Skytable - - + +

Version: 0.7.5

Snapshots

Skytable supports automated snapshots that can be used for periodic backups. diff --git a/0.7.5/ssl/index.html b/0.7.5/ssl/index.html index 8673990ab..ba512f31f 100644 --- a/0.7.5/ssl/index.html +++ b/0.7.5/ssl/index.html @@ -4,8 +4,8 @@ TLS configuration | Skytable - - + +

Version: 0.7.5

TLS configuration

Skytable lets you secure connections with TLS. This feature is built into Sky with OpenSSL and doesn't require you to have OpenSSL installed. You can enable TLS by using your preferred mode of configuration.

diff --git a/0.8.0/architecture/index.html b/0.8.0/architecture/index.html index b3561dd59..20adfb90e 100644 --- a/0.8.0/architecture/index.html +++ b/0.8.0/architecture/index.html @@ -4,8 +4,8 @@ Architecture | Skytable - - + +
Version: 0.8.0

Architecture

Skytable is a modern NoSQL database that prioritises performance, scalability and reliability while providing a rich and powerful querying interface. We are generally targetting an audience that wants to build high performance, large-scale, low latency applications, such as social networking services, auth services, adtech and such. Skytable is designed to work with diff --git a/0.8.0/benchmarking/index.html b/0.8.0/benchmarking/index.html index b42344d58..bdfe8c7ff 100644 --- a/0.8.0/benchmarking/index.html +++ b/0.8.0/benchmarking/index.html @@ -4,8 +4,8 @@ Benchmarking | Skytable - - + +

Version: 0.8.0

Benchmarking

Due to Skytable having in-house implementations of almost everything, starting from the protocol, the storage engine and query diff --git a/0.8.0/blueql/dcl/index.html b/0.8.0/blueql/dcl/index.html index 53808f383..e96ae422c 100644 --- a/0.8.0/blueql/dcl/index.html +++ b/0.8.0/blueql/dcl/index.html @@ -4,8 +4,8 @@ DCL | Skytable - - + +

Version: 0.8.0

DCL

Data Control Language or DCL can be used to perform administrative tasks on the database. Currently, all DCL commands are diff --git a/0.8.0/blueql/ddl/index.html b/0.8.0/blueql/ddl/index.html index 2b23be4ad..df5465e32 100644 --- a/0.8.0/blueql/ddl/index.html +++ b/0.8.0/blueql/ddl/index.html @@ -4,8 +4,8 @@ DDL | Skytable - - + +

Version: 0.8.0

DDL

DDL short for Data Definition Language is used to create, alter and drop DDL objects such as spaces and models.

diff --git a/0.8.0/blueql/dml/index.html b/0.8.0/blueql/dml/index.html index 482ff70fe..e7da7c2d6 100644 --- a/0.8.0/blueql/dml/index.html +++ b/0.8.0/blueql/dml/index.html @@ -4,8 +4,8 @@ DML | Skytable - - + +
Version: 0.8.0

DML

DML or Data Manipulation Language is what you'll be using for the most of your queries once you finish defining your data model. DML enables you to insert rows, manipulate the data in them, access their data or delete them.

diff --git a/0.8.0/blueql/overview/index.html b/0.8.0/blueql/overview/index.html index 04820c3a1..4e0206222 100644 --- a/0.8.0/blueql/overview/index.html +++ b/0.8.0/blueql/overview/index.html @@ -4,8 +4,8 @@ Overview | Skytable - - + +
Version: 0.8.0

Overview

BlueQLTM is Skytable's own query language that very closely follows the design of SQL but with many diff --git a/0.8.0/category/blueql/index.html b/0.8.0/category/blueql/index.html index e7a13cd48..4085d6cdb 100644 --- a/0.8.0/category/blueql/index.html +++ b/0.8.0/category/blueql/index.html @@ -4,8 +4,8 @@ BlueQL | Skytable - - + +

Version: 0.8.0

BlueQL

In this section we take a look at the syntax and structure of BlueQL, how it is different from SQL, and then proceed to understand different queries. We go from DDL queries which enables you to create spaces and models to DML queries like INSERT and SELECT that enable you to do perform CRUD operations on the database and finally take a look at DCL that enables you to control the access of data and perform administrative tasks. We recommend that you carefully read through this section to get a strong understanding of BlueQL and how it is different.

diff --git a/0.8.0/category/system-management/index.html b/0.8.0/category/system-management/index.html index 8ef57beca..02a78f9c9 100644 --- a/0.8.0/category/system-management/index.html +++ b/0.8.0/category/system-management/index.html @@ -4,8 +4,8 @@ System Management | Skytable - - + +
Version: 0.8.0

System Management

Learn how to configure Skytable for your needs and perform administrative tasks. We take a look at the different modes of configuration (CLI, ENV, configuration files), settings, access control, managing the root account and global management.

diff --git a/0.8.0/deployment/index.html b/0.8.0/deployment/index.html index a164ad451..2cd5fab34 100644 --- a/0.8.0/deployment/index.html +++ b/0.8.0/deployment/index.html @@ -4,8 +4,8 @@ Deployment | Skytable - - + +
Version: 0.8.0

Deployment

Here are some recommendations for deployment:

diff --git a/0.8.0/index.html b/0.8.0/index.html index 4b7ea8e53..03ab9f277 100644 --- a/0.8.0/index.html +++ b/0.8.0/index.html @@ -4,8 +4,8 @@ Introduction | Skytable - - + +
Version: 0.8.0

Introduction

Welcome to Skytable's docs! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed as just a single binary file with no special system dependencies and only relies on the operating system's libc implementation.

diff --git a/0.8.0/installation/index.html b/0.8.0/installation/index.html index 16d250ec8..51a5dece7 100644 --- a/0.8.0/installation/index.html +++ b/0.8.0/installation/index.html @@ -4,8 +4,8 @@ Installation | Skytable - - + +
Version: 0.8.0

Installation

Getting started with Skytable involves choosing a mode of installation, downloading any required files and then starting up the database. You can choose to either use:

diff --git a/0.8.0/libraries/index.html b/0.8.0/libraries/index.html index 44d55b875..94aa52b41 100644 --- a/0.8.0/libraries/index.html +++ b/0.8.0/libraries/index.html @@ -4,8 +4,8 @@ Client drivers | Skytable - - + +
Version: 0.8.0

Client drivers

Official drivers

diff --git a/0.8.0/limits/index.html b/0.8.0/limits/index.html index a21ec705d..a03d9e292 100644 --- a/0.8.0/limits/index.html +++ b/0.8.0/limits/index.html @@ -4,8 +4,8 @@ Limits | Skytable - - + +
Version: 0.8.0

Limits

We've made every effort to provide a robust querying interface, but there are some temporary limitations that we think you diff --git a/0.8.0/protocol/errors/index.html b/0.8.0/protocol/errors/index.html index 66d651d56..c3a2fde65 100644 --- a/0.8.0/protocol/errors/index.html +++ b/0.8.0/protocol/errors/index.html @@ -4,8 +4,8 @@ Errors | Skytable - - + +

Version: 0.8.0

Errors

If you've done something incorrectly, then the server will respond with an error code (just like HTTP status codes, but note that the server will not respond with an error code if no error occurred, unlike HTTP 200!).

diff --git a/0.8.0/protocol/networking/index.html b/0.8.0/protocol/networking/index.html index 4178ec44f..26db31135 100644 --- a/0.8.0/protocol/networking/index.html +++ b/0.8.0/protocol/networking/index.html @@ -4,8 +4,8 @@ Networking | Skytable - - + +
Version: 0.8.0

Networking

The Skyhash protocol uses a very simple data exchange model.

diff --git a/0.8.0/protocol/overview/index.html b/0.8.0/protocol/overview/index.html index 903bee309..dd1a06d4b 100644 --- a/0.8.0/protocol/overview/index.html +++ b/0.8.0/protocol/overview/index.html @@ -4,8 +4,8 @@ Skyhash 2 — Protocol Overview | Skytable - - + +
Version: 0.8.0

Skyhash 2 — Protocol Overview

Skyhash is the protocol used for communication between Skytable clients (client drivers or libraries) and the Skytable server, written on top of TCP. If you're building an application that needs to talk to Skytable, you'll usually choose a client library that works with your programming language and then start building your application.

diff --git a/0.8.0/resources/migration/index.html b/0.8.0/resources/migration/index.html index 9ec39a495..f88dd4e28 100644 --- a/0.8.0/resources/migration/index.html +++ b/0.8.0/resources/migration/index.html @@ -4,8 +4,8 @@ Migrating from an older release | Skytable - - + +
Version: 0.8.0

Migrating from an older release

Firstly, thank you patron! You're a part of an exclusive club which has seen Skytable take shape from just another key-value diff --git a/0.8.0/resources/overview/index.html b/0.8.0/resources/overview/index.html index 1592b94eb..977b25e4e 100644 --- a/0.8.0/resources/overview/index.html +++ b/0.8.0/resources/overview/index.html @@ -4,8 +4,8 @@ Resources | Skytable - - + +

Version: 0.8.0

Resources

Community and chat

diff --git a/0.8.0/system/administration/index.html b/0.8.0/system/administration/index.html index d115045ef..5e37d3b90 100644 --- a/0.8.0/system/administration/index.html +++ b/0.8.0/system/administration/index.html @@ -4,8 +4,8 @@ Administration | Skytable - - + +
Version: 0.8.0

Administration

Skytable's access control is very simple:

diff --git a/0.8.0/system/configuration/index.html b/0.8.0/system/configuration/index.html index 0949a29fd..9564f391e 100644 --- a/0.8.0/system/configuration/index.html +++ b/0.8.0/system/configuration/index.html @@ -4,8 +4,8 @@ Configuration | Skytable - - + +
Version: 0.8.0

Configuration

Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a diff --git a/0.8.0/using-the-repl/index.html b/0.8.0/using-the-repl/index.html index 07c44ca8a..a6373bd9c 100644 --- a/0.8.0/using-the-repl/index.html +++ b/0.8.0/using-the-repl/index.html @@ -4,8 +4,8 @@ Using the REPL | Skytable - - + +

Version: 0.8.0

Using the REPL

Once you've set up Skytable following our guide, you can now get started using the REPL. Note that you must have downloaded the bundle. If not, go back to the installation guide and do it now.

diff --git a/0.8.1/architecture/index.html b/0.8.1/architecture/index.html index 4ad690749..29bc29185 100644 --- a/0.8.1/architecture/index.html +++ b/0.8.1/architecture/index.html @@ -4,8 +4,8 @@ Architecture | Skytable - - + +
Version: 0.8.1

Architecture

Skytable is a modern NoSQL database that prioritises performance, scalability and reliability while providing a rich and powerful querying interface. We are generally targetting an audience that wants to build high performance, large-scale, low latency applications, such as social networking services, auth services, adtech and such. Skytable is designed to work with diff --git a/0.8.1/benchmarking/index.html b/0.8.1/benchmarking/index.html index aeef2a259..853c74ed3 100644 --- a/0.8.1/benchmarking/index.html +++ b/0.8.1/benchmarking/index.html @@ -4,8 +4,8 @@ Benchmarking | Skytable - - + +

Version: 0.8.1

Benchmarking

All of Skytable's components are developed from scratch in-house, which makes it hard (if not impossible) to utilize other benchmarking suites. This is why all of Skytable's release bundles come with the sky-bench benchmarking tool. It's important to understand how the tool works to understand what you're benchmarking and what the results mean.

diff --git a/0.8.1/blueql/dcl/index.html b/0.8.1/blueql/dcl/index.html index f0637a961..40b6cf478 100644 --- a/0.8.1/blueql/dcl/index.html +++ b/0.8.1/blueql/dcl/index.html @@ -4,8 +4,8 @@ DCL | Skytable - - + +
Version: 0.8.1

DCL

Data Control Language or DCL can be used to perform administrative tasks on the database. Currently, all DCL commands are diff --git a/0.8.1/blueql/ddl/index.html b/0.8.1/blueql/ddl/index.html index 20436cdd3..10ffd50d6 100644 --- a/0.8.1/blueql/ddl/index.html +++ b/0.8.1/blueql/ddl/index.html @@ -4,8 +4,8 @@ DDL | Skytable - - + +

Version: 0.8.1

DDL

DDL short for Data Definition Language is used to create, alter and drop DDL objects such as spaces and models.

diff --git a/0.8.1/blueql/dml/index.html b/0.8.1/blueql/dml/index.html index bebceede2..8b1748844 100644 --- a/0.8.1/blueql/dml/index.html +++ b/0.8.1/blueql/dml/index.html @@ -4,8 +4,8 @@ DML | Skytable - - + +
Version: 0.8.1

DML

DML or Data Manipulation Language is what you'll be using for the most of your queries once you finish defining your data model. DML enables you to insert rows, manipulate the data in them, access their data or delete them.

diff --git a/0.8.1/blueql/index.html b/0.8.1/blueql/index.html index e9a1113c5..a5b52b55c 100644 --- a/0.8.1/blueql/index.html +++ b/0.8.1/blueql/index.html @@ -4,8 +4,8 @@ BlueQL | Skytable - - + +
Version: 0.8.1

BlueQL

Introduction

diff --git a/0.8.1/blueql/overview/index.html b/0.8.1/blueql/overview/index.html index 02fe89645..2b5545424 100644 --- a/0.8.1/blueql/overview/index.html +++ b/0.8.1/blueql/overview/index.html @@ -4,8 +4,8 @@ Overview | Skytable - - + +
Version: 0.8.1

Overview

In this document we explore some of the meta parts of BlueQL. If you want to look at how you can use BlueQL, consider looking at the sections that follow.

diff --git a/0.8.1/deployment/index.html b/0.8.1/deployment/index.html index e1b67c5aa..45e0bfaf4 100644 --- a/0.8.1/deployment/index.html +++ b/0.8.1/deployment/index.html @@ -4,8 +4,8 @@ Deployment | Skytable - - + +
Version: 0.8.1

Deployment

Here are some recommendations for deployment:

diff --git a/0.8.1/index.html b/0.8.1/index.html index d51046171..fc6a1181f 100644 --- a/0.8.1/index.html +++ b/0.8.1/index.html @@ -4,8 +4,8 @@ Introduction | Skytable - - + +
Version: 0.8.1

Introduction

Welcome to Skytable's documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference.

diff --git a/0.8.1/installation/index.html b/0.8.1/installation/index.html index 4a72b7c64..c4ded9d18 100644 --- a/0.8.1/installation/index.html +++ b/0.8.1/installation/index.html @@ -4,8 +4,8 @@ Installation | Skytable - - + +
Version: 0.8.1

Installation

Getting started with Skytable involves choosing a mode of installation, downloading any required files and then starting up the database. You can choose to either use:

diff --git a/0.8.1/libraries/index.html b/0.8.1/libraries/index.html index fd5da5130..854ca4f74 100644 --- a/0.8.1/libraries/index.html +++ b/0.8.1/libraries/index.html @@ -4,8 +4,8 @@ Client drivers | Skytable - - + +
Version: 0.8.1

Client drivers

Official drivers

diff --git a/0.8.1/limits/index.html b/0.8.1/limits/index.html index e4f2e8315..3420e06fc 100644 --- a/0.8.1/limits/index.html +++ b/0.8.1/limits/index.html @@ -4,8 +4,8 @@ Limits | Skytable - - + +
Version: 0.8.1

Limits

We've made every effort to provide a robust querying interface, but there are some temporary limitations that we think you diff --git a/0.8.1/protocol/errors/index.html b/0.8.1/protocol/errors/index.html index 0e24f7553..845f0cd99 100644 --- a/0.8.1/protocol/errors/index.html +++ b/0.8.1/protocol/errors/index.html @@ -4,8 +4,8 @@ Error Index | Skytable - - + +

Version: 0.8.1

Error Index

This document provides an exhaustive listing of all the error codes that can be returned by the server. Do note that the handshake errors are only returned in the connection stage and are not the same as the query errors which occcur at the exchange stage.

diff --git a/0.8.1/protocol/index.html b/0.8.1/protocol/index.html index 435d42c1d..5dace774b 100644 --- a/0.8.1/protocol/index.html +++ b/0.8.1/protocol/index.html @@ -4,8 +4,8 @@ Skyhash 2: Overview | Skytable - - + +
Version: 0.8.1

Skyhash 2: Overview

Introduction

diff --git a/0.8.1/protocol/specification/index.html b/0.8.1/protocol/specification/index.html index 63d31dd6e..781f8e686 100644 --- a/0.8.1/protocol/specification/index.html +++ b/0.8.1/protocol/specification/index.html @@ -4,8 +4,8 @@ Specification | Skytable - - + +
Version: 0.8.1

Skyhash 2: Specification

diff --git a/0.8.1/querying/index.html b/0.8.1/querying/index.html index 0ef998c4c..086badd34 100644 --- a/0.8.1/querying/index.html +++ b/0.8.1/querying/index.html @@ -4,8 +4,8 @@ Querying | Skytable - - + +
Version: 0.8.1

Querying

Simple queries

diff --git a/0.8.1/resources/migration/index.html b/0.8.1/resources/migration/index.html index bc9ed0d69..8ded6d4a5 100644 --- a/0.8.1/resources/migration/index.html +++ b/0.8.1/resources/migration/index.html @@ -4,8 +4,8 @@ Migrating from an older release | Skytable - - + +
Version: 0.8.1

Migrating from an older release

Firstly, thank you patron! You're a part of an exclusive club which has seen Skytable take shape from just another key-value diff --git a/0.8.1/resources/platform-support/index.html b/0.8.1/resources/platform-support/index.html index 46e3585dc..c248325bc 100644 --- a/0.8.1/resources/platform-support/index.html +++ b/0.8.1/resources/platform-support/index.html @@ -4,8 +4,8 @@ Platform Support | Skytable - - + +

Version: 0.8.1

Platform Support

When you're building on or using Skytable on an officially supported platform, you can be certain that we've tested Skytable to work on these platforms, depending on their support level. The support level of a platform largely depends on the testing capabilities of our CI runners and tooling infrastructure and whether they support the platform or not besides our own codebase requirements. As such, we've divided platform support into multiple tiers.

diff --git a/0.8.1/resources/useful-links/index.html b/0.8.1/resources/useful-links/index.html index ac1e005ff..85610ee76 100644 --- a/0.8.1/resources/useful-links/index.html +++ b/0.8.1/resources/useful-links/index.html @@ -4,8 +4,8 @@ Useful links | Skytable - - + +
Version: 0.8.1

Useful links

Community and chat

diff --git a/0.8.1/system/configuration/index.html b/0.8.1/system/configuration/index.html index e958cd068..262587f2a 100644 --- a/0.8.1/system/configuration/index.html +++ b/0.8.1/system/configuration/index.html @@ -4,8 +4,8 @@ Configuration | Skytable - - + +
Version: 0.8.1

Configuration

Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a diff --git a/0.8.1/system/global-management/index.html b/0.8.1/system/global-management/index.html index 8c44948bb..ea07fa4e4 100644 --- a/0.8.1/system/global-management/index.html +++ b/0.8.1/system/global-management/index.html @@ -4,8 +4,8 @@ Global management | Skytable - - + +

Version: 0.8.1

Global management

Checking system health

diff --git a/0.8.1/system/index.html b/0.8.1/system/index.html index f08936dca..83195eee4 100644 --- a/0.8.1/system/index.html +++ b/0.8.1/system/index.html @@ -4,8 +4,8 @@ System administration | Skytable - - + +
Version: 0.8.1

System administration

In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access.

diff --git a/0.8.1/system/recovery/index.html b/0.8.1/system/recovery/index.html index b19eb05e0..6bec4ef6b 100644 --- a/0.8.1/system/recovery/index.html +++ b/0.8.1/system/recovery/index.html @@ -4,11 +4,11 @@ Recovery | Skytable - - + + -
Version: 0.8.1

Recovery

In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as "journal-corrupted." In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).

+
Version: 0.8.1

Recovery

In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as "journal-corrupted." In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).

Understanding data loss

All DDL and DCL queries are immediately written to disk when they're run and hence usually no data loss will occur due to a runtime crash (unless a crash occurs in the middle of a disk write). On the other hand, DML queries are written in optimized delayed-durability batches, i.e when the engine determines that either there are too many pending changes or if too much memory is being used (alongside other factors). This however means that in the case of a runtime crash with pending changes, some of these changes may be lost.

This is why it is so important to tune the [rs_window] value or the "Reliability Service" window which ensures that irrespective of the number of changes, all changes will be flushed in that given duration. We're further working on supporting optimized immediate writes for DML queries (which however as expected would come with a significant performance penalty).

diff --git a/0.8.1/system/user-management/index.html b/0.8.1/system/user-management/index.html index ba6180382..357b49452 100644 --- a/0.8.1/system/user-management/index.html +++ b/0.8.1/system/user-management/index.html @@ -4,8 +4,8 @@ User management | Skytable - - + +
Version: 0.8.1

User management

Skytable's access control is very simple:

diff --git a/0.8.1/using-the-repl/index.html b/0.8.1/using-the-repl/index.html index 2b59f8c01..2dd79a8bc 100644 --- a/0.8.1/using-the-repl/index.html +++ b/0.8.1/using-the-repl/index.html @@ -4,8 +4,8 @@ Using the REPL | Skytable - - + +
Version: 0.8.1

Using the REPL

Once you've set up Skytable following our guide, you can now get started using the REPL. Note that you must have downloaded the bundle. If not, go back to the installation guide and do it now.

diff --git a/0.8.1/versions/index.html b/0.8.1/versions/index.html index 25e1c197d..497e43fb7 100644 --- a/0.8.1/versions/index.html +++ b/0.8.1/versions/index.html @@ -4,8 +4,8 @@ All versions | Skytable - - + +
Version: 0.8.1

All versions

diff --git a/404.html b/404.html index 89c6457e0..fde9c52da 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Skytable - - + +

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/architecture/index.html b/architecture/index.html index 44f9a12fb..1f239bc13 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -4,8 +4,8 @@ Architecture | Skytable - - + +
Version: 0.8.2

Architecture

Skytable is a modern NoSQL database that prioritises performance, scalability and reliability while providing a rich and powerful querying interface. We are generally targetting an audience that wants to build high performance, large-scale, low latency applications, such as social networking services, auth services, adtech and such. Skytable is designed to work with diff --git a/assets/js/1eebf554.2de66a94.js b/assets/js/1eebf554.2de66a94.js deleted file mode 100644 index 1e5230760..000000000 --- a/assets/js/1eebf554.2de66a94.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7500],{2516:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var t=s(4848),r=s(8453);const a={id:"global-management",title:"Global management"},o=void 0,i={id:"system/global-management",title:"Global management",description:"Checking system health",source:"@site/docs/system/3.global-management.md",sourceDirName:"system",slug:"/system/global-management",permalink:"/system/global-management",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{id:"global-management",title:"Global management"},sidebar:"docs",previous:{title:"User management",permalink:"/system/user-management"},next:{title:"Recovery",permalink:"/system/recovery"}},c={},l=[{value:"Checking system health",id:"checking-system-health",level:2},{value:"Inspecting all spaces",id:"inspecting-all-spaces",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"checking-system-health",children:"Checking system health"}),"\n",(0,t.jsxs)(n.p,{children:["The following query returns an ",(0,t.jsx)(n.code,{children:"Empty"})," response or an error code depending on the status of the database:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-sql",children:"SYSCTL REPORT STATUS\n"})}),"\n",(0,t.jsxs)(n.p,{children:["If you receive an error code, we recommend you to connect to the host and check logs. If the server has crashed, you may need to ",(0,t.jsx)(n.a,{href:"recovery",children:"recover the database"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"inspecting-all-spaces",children:"Inspecting all spaces"}),"\n",(0,t.jsxs)(n.p,{children:['The single DDL query that lets you do a "sneak peek" into the status of the entire system is the ',(0,t.jsx)(n.code,{children:"INSPECT GLOBAL"})," query. It\nreturns a JSON string like this:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'{\n "spaces:"["space1", "space2"],\n "users":["root", "staging_server"],\n "settings:{},\n}\n'})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"spaces"}),": lists all the spaces in the system"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"users"}),": lists all users","\n",(0,t.jsx)(n.admonition,{title:"Access control note",type:"info",children:(0,t.jsxs)(n.p,{children:["This is only returned if you are the ",(0,t.jsx)(n.code,{children:"root"})," user. Standard users cannot see the other users in the system"]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"settings"}),": returns system settings (currently an empty dictionary is returned)"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>i});var t=s(6540);const r={},a=t.createContext(r);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1eebf554.3b8e985d.js b/assets/js/1eebf554.3b8e985d.js new file mode 100644 index 000000000..513bb4e43 --- /dev/null +++ b/assets/js/1eebf554.3b8e985d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7500],{2516:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var t=s(4848),a=s(8453);const r={id:"global-management",title:"Global management"},o=void 0,i={id:"system/global-management",title:"Global management",description:"Checking system health",source:"@site/docs/system/3.global-management.md",sourceDirName:"system",slug:"/system/global-management",permalink:"/system/global-management",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{id:"global-management",title:"Global management"},sidebar:"docs",previous:{title:"User management",permalink:"/system/user-management"},next:{title:"Operations",permalink:"/system/operations"}},l={},c=[{value:"Checking system health",id:"checking-system-health",level:2},{value:"Inspecting all spaces",id:"inspecting-all-spaces",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"checking-system-health",children:"Checking system health"}),"\n",(0,t.jsxs)(n.p,{children:["The following query returns an ",(0,t.jsx)(n.code,{children:"Empty"})," response or an error code depending on the status of the database:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-sql",children:"SYSCTL REPORT STATUS\n"})}),"\n",(0,t.jsxs)(n.p,{children:["If you receive an error code, we recommend you to connect to the host and check logs. If the server has crashed, you may need to ",(0,t.jsx)(n.a,{href:"operations#data-recovery",children:"recover the database"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"inspecting-all-spaces",children:"Inspecting all spaces"}),"\n",(0,t.jsxs)(n.p,{children:['The single DDL query that lets you do a "sneak peek" into the status of the entire system is the ',(0,t.jsx)(n.code,{children:"INSPECT GLOBAL"})," query. It\nreturns a JSON string like this:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'{\n "spaces:"["space1", "space2"],\n "users":["root", "staging_server"],\n "settings:{},\n}\n'})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"spaces"}),": lists all the spaces in the system"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"users"}),": lists all users","\n",(0,t.jsx)(n.admonition,{title:"Access control note",type:"info",children:(0,t.jsxs)(n.p,{children:["This is only returned if you are the ",(0,t.jsx)(n.code,{children:"root"})," user. Standard users cannot see the other users in the system"]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"settings"}),": returns system settings (currently an empty dictionary is returned)"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>i});var t=s(6540);const a={},r=t.createContext(a);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e90d946.9fb65596.js b/assets/js/3e90d946.9fb65596.js deleted file mode 100644 index 9cfb9be2e..000000000 --- a/assets/js/3e90d946.9fb65596.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2811],{5957:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>o,frontMatter:()=>d,metadata:()=>c,toc:()=>h});var r=s(4848),i=s(8453);const d={id:"libraries",title:"Client drivers"},n=void 0,c={id:"libraries",title:"Client drivers",description:"Official drivers",source:"@site/docs/13.libraries.md",sourceDirName:".",slug:"/libraries",permalink:"/libraries",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{id:"libraries",title:"Client drivers"},sidebar:"docs",previous:{title:"Recovery",permalink:"/system/recovery"},next:{title:"Useful links",permalink:"/resources/useful-links"}},l={},h=[{value:"Official drivers",id:"official-drivers",level:2},{value:"Community powered",id:"community-powered",level:2}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"official-drivers",children:"Official drivers"}),"\n",(0,r.jsx)(t.p,{children:"The drivers that are officially maintained can be expected to be feature complete and stable. We currently support the following drivers:"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Language/Framework"}),(0,r.jsx)(t.th,{children:"Links"}),(0,r.jsx)(t.th,{children:"Status"}),(0,r.jsx)(t.th,{children:"Package manager command"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rust"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.a,{href:"https://github.com/skytable/client-rust",children:"GitHub"}),", ",(0,r.jsx)(t.a,{href:"https://crates.io/crates/skytable",children:"crates.io"})]}),(0,r.jsx)(t.td,{children:"Stable \u2705"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"cargo add skytable"})})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"NodeJS (JavaScript/TypeScript)"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.a,{href:"https://github.com/skytable/client-nodejs",children:"GitHub"}),", ",(0,r.jsx)(t.a,{href:"https://npmjs.com/package/skytable-node",children:"npm"})]}),(0,r.jsx)(t.td,{children:"Beta \ud83c\udfd7"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"npm i skytable-node"})})]})]})]}),"\n",(0,r.jsx)(t.admonition,{title:"More lanugages",type:"info",children:(0,r.jsx)(t.p,{children:"The team is always looking to support more languages and we wish we could ship more drivers. But due to limited\nresources we haven't been able to. If you're willing to write a driver (it's super easy to), jump into our chat!"})}),"\n",(0,r.jsx)(t.h2,{id:"community-powered",children:"Community powered"}),"\n",(0,r.jsx)(t.p,{children:"List of community powered drivers (sorted alphabetically):"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Language/Framework"}),(0,r.jsx)(t.th,{children:"Client source code"}),(0,r.jsx)(t.th,{children:"Upstreamed"}),(0,r.jsx)(t.th,{children:"License"}),(0,r.jsx)(t.th,{children:"Remarks"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"C#/.NET"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/martinmolin/skytable-dotnet",children:"C# driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsxs)(t.td,{children:["Available on ",(0,r.jsx)(t.a,{href:"https://www.nuget.org/packages/Skytable.Client",children:"NuGet"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Go"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/No3371/go-skytable",children:"Go driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsx)(t.td,{children:"Written from scratch"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/satvik007/skytable-go",children:"Go driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsx)(t.td,{children:"Easy for migration from go-redis"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"JavaScript/TypeScript (Node)"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/zhangyuannie/skytable.js",children:"NodeJS Driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsxs)(t.td,{children:["Available on ",(0,r.jsx)(t.a,{href:"https://www.npmjs.com/package/skytable.js",children:"npm"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"PHP"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/hkulekci/skytable-php",children:"PHP client driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"MIT"}),(0,r.jsxs)(t.td,{children:["Can be found on ",(0,r.jsx)(t.a,{href:"https://packagist.org/packages/hkulekci/skytable-php",children:"Packagist"})]})]})]})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>n,x:()=>c});var r=s(6540);const i={},d=r.createContext(i);function n(e){const t=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e90d946.e68d8b9d.js b/assets/js/3e90d946.e68d8b9d.js new file mode 100644 index 000000000..3e66aadc7 --- /dev/null +++ b/assets/js/3e90d946.e68d8b9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2811],{5957:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>o,frontMatter:()=>d,metadata:()=>c,toc:()=>h});var r=s(4848),i=s(8453);const d={id:"libraries",title:"Client drivers"},n=void 0,c={id:"libraries",title:"Client drivers",description:"Official drivers",source:"@site/docs/13.libraries.md",sourceDirName:".",slug:"/libraries",permalink:"/libraries",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{id:"libraries",title:"Client drivers"},sidebar:"docs",previous:{title:"Operations",permalink:"/system/operations"},next:{title:"Useful links",permalink:"/resources/useful-links"}},l={},h=[{value:"Official drivers",id:"official-drivers",level:2},{value:"Community powered",id:"community-powered",level:2}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"official-drivers",children:"Official drivers"}),"\n",(0,r.jsx)(t.p,{children:"The drivers that are officially maintained can be expected to be feature complete and stable. We currently support the following drivers:"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Language/Framework"}),(0,r.jsx)(t.th,{children:"Links"}),(0,r.jsx)(t.th,{children:"Status"}),(0,r.jsx)(t.th,{children:"Package manager command"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rust"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.a,{href:"https://github.com/skytable/client-rust",children:"GitHub"}),", ",(0,r.jsx)(t.a,{href:"https://crates.io/crates/skytable",children:"crates.io"})]}),(0,r.jsx)(t.td,{children:"Stable \u2705"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"cargo add skytable"})})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"NodeJS (JavaScript/TypeScript)"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.a,{href:"https://github.com/skytable/client-nodejs",children:"GitHub"}),", ",(0,r.jsx)(t.a,{href:"https://npmjs.com/package/skytable-node",children:"npm"})]}),(0,r.jsx)(t.td,{children:"Beta \ud83c\udfd7"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"npm i skytable-node"})})]})]})]}),"\n",(0,r.jsx)(t.admonition,{title:"More lanugages",type:"info",children:(0,r.jsx)(t.p,{children:"The team is always looking to support more languages and we wish we could ship more drivers. But due to limited\nresources we haven't been able to. If you're willing to write a driver (it's super easy to), jump into our chat!"})}),"\n",(0,r.jsx)(t.h2,{id:"community-powered",children:"Community powered"}),"\n",(0,r.jsx)(t.p,{children:"List of community powered drivers (sorted alphabetically):"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Language/Framework"}),(0,r.jsx)(t.th,{children:"Client source code"}),(0,r.jsx)(t.th,{children:"Upstreamed"}),(0,r.jsx)(t.th,{children:"License"}),(0,r.jsx)(t.th,{children:"Remarks"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"C#/.NET"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/martinmolin/skytable-dotnet",children:"C# driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsxs)(t.td,{children:["Available on ",(0,r.jsx)(t.a,{href:"https://www.nuget.org/packages/Skytable.Client",children:"NuGet"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Go"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/No3371/go-skytable",children:"Go driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsx)(t.td,{children:"Written from scratch"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/satvik007/skytable-go",children:"Go driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsx)(t.td,{children:"Easy for migration from go-redis"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"JavaScript/TypeScript (Node)"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/zhangyuannie/skytable.js",children:"NodeJS Driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"Apache-2.0"}),(0,r.jsxs)(t.td,{children:["Available on ",(0,r.jsx)(t.a,{href:"https://www.npmjs.com/package/skytable.js",children:"npm"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"PHP"})}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/hkulekci/skytable-php",children:"PHP client driver"})}),(0,r.jsx)(t.td,{children:"\u2757"}),(0,r.jsx)(t.td,{children:"MIT"}),(0,r.jsxs)(t.td,{children:["Can be found on ",(0,r.jsx)(t.a,{href:"https://packagist.org/packages/hkulekci/skytable-php",children:"Packagist"})]})]})]})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>n,x:()=>c});var r=s(6540);const i={},d=r.createContext(i);function n(e){const t=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/540c3b15.810f4ac6.js b/assets/js/540c3b15.810f4ac6.js new file mode 100644 index 000000000..c82228f04 --- /dev/null +++ b/assets/js/540c3b15.810f4ac6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3558],{8646:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var r=n(4848),s=n(8453);const a={title:"Operations"},i=void 0,o={id:"system/operations",title:"Operations",description:"Managing disk usage",source:"@site/docs/system/operations.md",sourceDirName:"system",slug:"/system/operations",permalink:"/system/operations",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Operations"},sidebar:"docs",previous:{title:"Global management",permalink:"/system/global-management"},next:{title:"Client drivers",permalink:"/libraries"}},l={},d=[{value:"Managing disk usage",id:"managing-disk-usage",level:2},{value:"Data recovery",id:"data-recovery",level:2},{value:"Understanding data loss",id:"understanding-data-loss",level:3},{value:"Recovering database files",id:"recovering-database-files",level:3},{value:"Important notes",id:"important-notes",level:3},{value:"Post recovery",id:"post-recovery",level:3}];function c(e){const t={code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"managing-disk-usage",children:"Managing disk usage"}),"\n",(0,r.jsx)(t.p,{children:'Over time, as you continue to use your database your database files will grow in size, as you would expect. However, sometimes database files may grow beyond an efficient size resulting in high memory usage or slowdowns. To counter this, Skytable uses internal heuristics to determine when a database file is "larger than needed" and automatically compacts them at startup.'}),"\n",(0,r.jsx)(t.p,{children:"However, in some cases you may wish to perform a compaction regardless in order to reduce the file size. In order to do this you will have to run:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"skyd compact\n"})}),"\n",(0,r.jsx)(t.p,{children:"The server will then compact all files (even if a compaction wasn't triggered by internal heuristics) to their optimum size."}),"\n",(0,r.jsx)(t.h2,{id:"data-recovery",children:"Data recovery"}),"\n",(0,r.jsx)(t.p,{children:'In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as "journal-corrupted." In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).'}),"\n",(0,r.jsx)(t.h3,{id:"understanding-data-loss",children:"Understanding data loss"}),"\n",(0,r.jsx)(t.p,{children:"All DDL and DCL queries are immediately written to disk when they're run and hence usually no data loss will occur due to a runtime crash (unless a crash occurs in the middle of a disk write). On the other hand, DML queries are written in optimized delayed-durability batches, i.e when the engine determines that either there are too many pending changes or if too much memory is being used (alongside other factors). This however means that in the case of a runtime crash with pending changes, some of these changes may be lost."}),"\n",(0,r.jsxs)(t.p,{children:["This is why it is so important to tune the [",(0,r.jsx)(t.code,{children:"rs_window"}),'] value or the "Reliability Service" window which ensures that irrespective of the number of changes, all changes will be flushed in that given duration. We\'re further working on supporting optimized immediate writes for DML queries (which however as expected would come with a significant performance penalty).']}),"\n",(0,r.jsx)(t.h3,{id:"recovering-database-files",children:"Recovering database files"}),"\n",(0,r.jsxs)(t.p,{children:["To repair the database, simply run this on the command line ",(0,r.jsx)(t.strong,{children:"in the working directory of the database"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"skyd repair\n"})}),"\n",(0,r.jsxs)(t.p,{children:["The recovery system will first create a full backup of the current data files in a subdirectory in the ",(0,r.jsx)(t.code,{children:"backups/"})," directory. It will then go over each database file, try to detect any errors and make any approriate repairs."]}),"\n",(0,r.jsx)(t.h3,{id:"important-notes",children:"Important notes"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["The recovery system is ",(0,r.jsx)(t.em,{children:"very conservative"})," and will attempt to restore the database to the most recent working state. Any remaining data is deemed unreliable and not loaded"]}),"\n",(0,r.jsx)(t.li,{children:"Please ensure that you have sufficient disk space before attempting a repair"}),"\n",(0,r.jsx)(t.li,{children:"The earlier in the file the corruption happens, the greater the amount of data lost"}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"post-recovery",children:"Post recovery"}),"\n",(0,r.jsxs)(t.p,{children:["After running a repair operation, if a signficant amount of data loss has occurred (as reported by ",(0,r.jsx)(t.code,{children:"skyd"}),") then we strongly recommend you to manually look through your datasets. The recovery process guarantees that the ",(0,r.jsx)(t.em,{children:"restored data"})," is intact. If this failure resulted from power loss, in the future you may consider installing power backup systems if self-hosting or choosing a reliable cloud provider."]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var r=n(6540);const s={},a=r.createContext(s);function i(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6bbf3746.5733d97c.js b/assets/js/6bbf3746.5733d97c.js deleted file mode 100644 index 0a4087318..000000000 --- a/assets/js/6bbf3746.5733d97c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4167],{4981:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(4848),s=r(8453);const a={id:"recovery",title:"Recovery"},o=void 0,i={id:"system/recovery",title:"Recovery",description:'In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as "journal-corrupted." In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).',source:"@site/docs/system/4.recovery.md",sourceDirName:"system",slug:"/system/recovery",permalink:"/system/recovery",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{id:"recovery",title:"Recovery"},sidebar:"docs",previous:{title:"Global management",permalink:"/system/global-management"},next:{title:"Client drivers",permalink:"/libraries"}},l={},c=[{value:"Understanding data loss",id:"understanding-data-loss",level:2},{value:"Recovering database files",id:"recovering-database-files",level:2},{value:"Important notes",id:"important-notes",level:2},{value:"Post recovery",id:"post-recovery",level:2}];function d(e){const t={code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:'In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as "journal-corrupted." In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).'}),"\n",(0,n.jsx)(t.h2,{id:"understanding-data-loss",children:"Understanding data loss"}),"\n",(0,n.jsx)(t.p,{children:"All DDL and DCL queries are immediately written to disk when they're run and hence usually no data loss will occur due to a runtime crash (unless a crash occurs in the middle of a disk write). On the other hand, DML queries are written in optimized delayed-durability batches, i.e when the engine determines that either there are too many pending changes or if too much memory is being used (alongside other factors). This however means that in the case of a runtime crash with pending changes, some of these changes may be lost."}),"\n",(0,n.jsxs)(t.p,{children:["This is why it is so important to tune the [",(0,n.jsx)(t.code,{children:"rs_window"}),'] value or the "Reliability Service" window which ensures that irrespective of the number of changes, all changes will be flushed in that given duration. We\'re further working on supporting optimized immediate writes for DML queries (which however as expected would come with a significant performance penalty).']}),"\n",(0,n.jsx)(t.h2,{id:"recovering-database-files",children:"Recovering database files"}),"\n",(0,n.jsxs)(t.p,{children:["To repair the database, simply run this on the command line ",(0,n.jsx)(t.strong,{children:"in the working directory of the database"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"skyd repair\n"})}),"\n",(0,n.jsxs)(t.p,{children:["The recovery system will first create a full backup of the current data files in a subdirectory in the ",(0,n.jsx)(t.code,{children:"backups/"})," directory. It will then go over each database file, try to detect any errors and make any approriate repairs."]}),"\n",(0,n.jsx)(t.h2,{id:"important-notes",children:"Important notes"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["The recovery system is ",(0,n.jsx)(t.em,{children:"very conservative"})," and will attempt to restore the database to the most recent working state. Any remaining data is deemed unreliable and not loaded"]}),"\n",(0,n.jsx)(t.li,{children:"Please ensure that you have sufficient disk space before attempting a repair"}),"\n",(0,n.jsx)(t.li,{children:"The earlier in the file the corruption happens, the greater the amount of data lost"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"post-recovery",children:"Post recovery"}),"\n",(0,n.jsxs)(t.p,{children:["After running a repair operation, if a signficant amount of data loss has occurred (as reported by ",(0,n.jsx)(t.code,{children:"skyd"}),") then we strongly recommend you to manually look through your datasets. The recovery process guarantees that the ",(0,n.jsx)(t.em,{children:"restored data"})," is intact. If this failure resulted from power loss, in the future you may consider installing power backup systems if self-hosting or choosing a reliable cloud provider."]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var n=r(6540);const s={},a=n.createContext(s);function o(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.453fd310.js b/assets/js/935f2afb.453fd310.js deleted file mode 100644 index 60e1e970f..000000000 --- a/assets/js/935f2afb.453fd310.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"0.8.2","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Home","href":"/","docId":"index","unlisted":false},{"type":"link","label":"Installation","href":"/installation","docId":"installation","unlisted":false},{"type":"link","label":"Using the REPL","href":"/using-the-repl","docId":"using-the-repl","unlisted":false},{"type":"link","label":"Architecture","href":"/architecture","docId":"architecture","unlisted":false},{"type":"category","label":"BlueQL","items":[{"type":"link","label":"Overview","href":"/blueql/overview","docId":"blueql/overview","unlisted":false},{"type":"link","label":"DDL","href":"/blueql/ddl","docId":"blueql/ddl","unlisted":false},{"type":"link","label":"DML","href":"/blueql/dml","docId":"blueql/dml","unlisted":false},{"type":"link","label":"DCL","href":"/blueql/dcl","docId":"blueql/dcl","unlisted":false}],"collapsed":false,"collapsible":true,"href":"/blueql/"},{"type":"link","label":"Querying","href":"/querying","docId":"querying","unlisted":false},{"type":"category","label":"System Administration","items":[{"type":"link","label":"Configuration","href":"/system/configuration","docId":"system/configuration","unlisted":false},{"type":"link","label":"User management","href":"/system/user-management","docId":"system/user-management","unlisted":false},{"type":"link","label":"Global management","href":"/system/global-management","docId":"system/global-management","unlisted":false},{"type":"link","label":"Recovery","href":"/system/recovery","docId":"system/recovery","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/system/"},{"type":"link","label":"Client drivers","href":"/libraries","docId":"libraries","unlisted":false},{"type":"category","label":"Resources","items":[{"type":"link","label":"Useful links","href":"/resources/useful-links","docId":"resources/useful-links","unlisted":false},{"type":"link","label":"Migrating from an older release","href":"/resources/migration","docId":"resources/migration","unlisted":false},{"type":"link","label":"Platform Support","href":"/resources/platform-support","docId":"resources/platform-support","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Protocol","items":[{"type":"link","label":"Skyhash 2: Overview","href":"/protocol/","docId":"protocol/index","unlisted":false},{"type":"link","label":"Specification","href":"/protocol/specification","docId":"protocol/specification","unlisted":false},{"type":"link","label":"Error Index","href":"/protocol/errors","docId":"protocol/errors","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Benchmarking","href":"/benchmarking","docId":"benchmarking","unlisted":false},{"type":"link","label":"Deployment","href":"/deployment","docId":"deployment","unlisted":false},{"type":"link","label":"Limits","href":"/limits","docId":"limits","unlisted":false}]},"docs":{"architecture":{"id":"architecture","title":"Architecture","description":"Skytable is a modern NoSQL database that prioritises performance, scalability and reliability while providing a rich and powerful querying interface. We are generally targetting an audience that wants to build high performance, large-scale, low latency applications, such as social networking services, auth services, adtech and such. Skytable is designed to work with","sidebar":"docs"},"benchmarking":{"id":"benchmarking","title":"Benchmarking","description":"All of Skytable\'s components are developed from scratch in-house, which makes it hard (if not impossible) to utilize other benchmarking suites. This is why all of Skytable\'s release bundles come with the sky-bench benchmarking tool. It\'s important to understand how the tool works to understand what you\'re benchmarking and what the results mean.","sidebar":"docs"},"blueql/dcl":{"id":"blueql/dcl","title":"DCL","description":"Data Control Language or DCL can be used to perform administrative tasks on the database. Currently, all DCL commands are","sidebar":"docs"},"blueql/ddl":{"id":"blueql/ddl","title":"DDL","description":"DDL short for Data Definition Language is used to create, alter and drop DDL objects such as spaces and models.","sidebar":"docs"},"blueql/dml":{"id":"blueql/dml","title":"DML","description":"DML or Data Manipulation Language is what you\'ll be using for the most of your queries once you finish defining your data model. DML enables you to insert rows, manipulate the data in them, access their data or delete them.","sidebar":"docs"},"blueql/index":{"id":"blueql/index","title":"BlueQL","description":"Introduction","sidebar":"docs"},"blueql/overview":{"id":"blueql/overview","title":"Overview","description":"In this document we explore some of the meta parts of BlueQL. If you want to look at how you can use BlueQL, consider looking at the sections that follow.","sidebar":"docs"},"deployment":{"id":"deployment","title":"Deployment","description":"Here are some recommendations for deployment:","sidebar":"docs"},"index":{"id":"index","title":"Introduction","description":"Welcome to Skytable\'s documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference.","sidebar":"docs"},"installation":{"id":"installation","title":"Installation","description":"Getting started with Skytable involves choosing a mode of installation, downloading any required files and then starting up the database. You can choose to either use:","sidebar":"docs"},"libraries":{"id":"libraries","title":"Client drivers","description":"Official drivers","sidebar":"docs"},"limits":{"id":"limits","title":"Limits","description":"We\'ve made every effort to provide a robust querying interface, but there are some temporary limitations that we think you","sidebar":"docs"},"protocol/errors":{"id":"protocol/errors","title":"Error Index","description":"This document provides an exhaustive listing of all the error codes that can be returned by the server. Do note that the handshake errors are only returned in the connection stage and are not the same as the query errors which occcur at the exchange stage.","sidebar":"docs"},"protocol/index":{"id":"protocol/index","title":"Skyhash 2: Overview","description":"Introduction","sidebar":"docs"},"protocol/specification":{"id":"protocol/specification","title":"Specification","description":"Network layer","sidebar":"docs"},"querying":{"id":"querying","title":"Querying","description":"Simple queries","sidebar":"docs"},"resources/migration":{"id":"resources/migration","title":"Migrating from an older release","description":"Firstly, thank you patron! You\'re a part of an exclusive club which has seen Skytable take shape from just another key-value","sidebar":"docs"},"resources/platform-support":{"id":"resources/platform-support","title":"Platform Support","description":"When you\'re building on or using Skytable on an officially supported platform, you can be certain that we\'ve tested Skytable to work on these platforms, depending on their support level. The support level of a platform largely depends on the testing capabilities of our CI runners and tooling infrastructure and whether they support the platform or not besides our own codebase requirements. As such, we\'ve divided platform support into multiple tiers.","sidebar":"docs"},"resources/useful-links":{"id":"resources/useful-links","title":"Useful links","description":"Community and chat","sidebar":"docs"},"system/configuration":{"id":"system/configuration","title":"Configuration","description":"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a","sidebar":"docs"},"system/global-management":{"id":"system/global-management","title":"Global management","description":"Checking system health","sidebar":"docs"},"system/index":{"id":"system/index","title":"System administration","description":"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access.","sidebar":"docs"},"system/recovery":{"id":"system/recovery","title":"Recovery","description":"In the unforeseen event that a power failure or other catastrophic system failure causes the database to crash, the Skytable server will fail to start normally. Usually it will exit with a nonzero code and an error message such as \\"journal-corrupted.\\" In such cases, you will need to recover the journal(s) and/or any other corrupted file(s).","sidebar":"docs"},"system/user-management":{"id":"system/user-management","title":"User management","description":"Skytable\'s access control is very simple:","sidebar":"docs"},"using-the-repl":{"id":"using-the-repl","title":"Using the REPL","description":"Once you\'ve set up Skytable following our guide, you can now get started using the REPL. Note that you must have downloaded the bundle. If not, go back to the installation guide and do it now.","sidebar":"docs"},"versions":{"id":"versions","title":"All versions","description":"A maintained version is one that actively receives security, performance and feature updates. Please see the"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.45dff2ec.js b/assets/js/935f2afb.45dff2ec.js new file mode 100644 index 000000000..07dce6edc --- /dev/null +++ b/assets/js/935f2afb.45dff2ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"0.8.2","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Home","href":"/","docId":"index","unlisted":false},{"type":"link","label":"Installation","href":"/installation","docId":"installation","unlisted":false},{"type":"link","label":"Using the REPL","href":"/using-the-repl","docId":"using-the-repl","unlisted":false},{"type":"link","label":"Architecture","href":"/architecture","docId":"architecture","unlisted":false},{"type":"category","label":"BlueQL","items":[{"type":"link","label":"Overview","href":"/blueql/overview","docId":"blueql/overview","unlisted":false},{"type":"link","label":"DDL","href":"/blueql/ddl","docId":"blueql/ddl","unlisted":false},{"type":"link","label":"DML","href":"/blueql/dml","docId":"blueql/dml","unlisted":false},{"type":"link","label":"DCL","href":"/blueql/dcl","docId":"blueql/dcl","unlisted":false}],"collapsed":false,"collapsible":true,"href":"/blueql/"},{"type":"link","label":"Querying","href":"/querying","docId":"querying","unlisted":false},{"type":"category","label":"System Administration","items":[{"type":"link","label":"Configuration","href":"/system/configuration","docId":"system/configuration","unlisted":false},{"type":"link","label":"User management","href":"/system/user-management","docId":"system/user-management","unlisted":false},{"type":"link","label":"Global management","href":"/system/global-management","docId":"system/global-management","unlisted":false},{"type":"link","label":"Operations","href":"/system/operations","docId":"system/operations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/system/"},{"type":"link","label":"Client drivers","href":"/libraries","docId":"libraries","unlisted":false},{"type":"category","label":"Resources","items":[{"type":"link","label":"Useful links","href":"/resources/useful-links","docId":"resources/useful-links","unlisted":false},{"type":"link","label":"Migrating from an older release","href":"/resources/migration","docId":"resources/migration","unlisted":false},{"type":"link","label":"Platform Support","href":"/resources/platform-support","docId":"resources/platform-support","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Protocol","items":[{"type":"link","label":"Skyhash 2: Overview","href":"/protocol/","docId":"protocol/index","unlisted":false},{"type":"link","label":"Specification","href":"/protocol/specification","docId":"protocol/specification","unlisted":false},{"type":"link","label":"Error Index","href":"/protocol/errors","docId":"protocol/errors","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Benchmarking","href":"/benchmarking","docId":"benchmarking","unlisted":false},{"type":"link","label":"Deployment","href":"/deployment","docId":"deployment","unlisted":false},{"type":"link","label":"Limits","href":"/limits","docId":"limits","unlisted":false}]},"docs":{"architecture":{"id":"architecture","title":"Architecture","description":"Skytable is a modern NoSQL database that prioritises performance, scalability and reliability while providing a rich and powerful querying interface. We are generally targetting an audience that wants to build high performance, large-scale, low latency applications, such as social networking services, auth services, adtech and such. Skytable is designed to work with","sidebar":"docs"},"benchmarking":{"id":"benchmarking","title":"Benchmarking","description":"All of Skytable\'s components are developed from scratch in-house, which makes it hard (if not impossible) to utilize other benchmarking suites. This is why all of Skytable\'s release bundles come with the sky-bench benchmarking tool. It\'s important to understand how the tool works to understand what you\'re benchmarking and what the results mean.","sidebar":"docs"},"blueql/dcl":{"id":"blueql/dcl","title":"DCL","description":"Data Control Language or DCL can be used to perform administrative tasks on the database. Currently, all DCL commands are","sidebar":"docs"},"blueql/ddl":{"id":"blueql/ddl","title":"DDL","description":"DDL short for Data Definition Language is used to create, alter and drop DDL objects such as spaces and models.","sidebar":"docs"},"blueql/dml":{"id":"blueql/dml","title":"DML","description":"DML or Data Manipulation Language is what you\'ll be using for the most of your queries once you finish defining your data model. DML enables you to insert rows, manipulate the data in them, access their data or delete them.","sidebar":"docs"},"blueql/index":{"id":"blueql/index","title":"BlueQL","description":"Introduction","sidebar":"docs"},"blueql/overview":{"id":"blueql/overview","title":"Overview","description":"In this document we explore some of the meta parts of BlueQL. If you want to look at how you can use BlueQL, consider looking at the sections that follow.","sidebar":"docs"},"deployment":{"id":"deployment","title":"Deployment","description":"Here are some recommendations for deployment:","sidebar":"docs"},"index":{"id":"index","title":"Introduction","description":"Welcome to Skytable\'s documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference.","sidebar":"docs"},"installation":{"id":"installation","title":"Installation","description":"Getting started with Skytable involves choosing a mode of installation, downloading any required files and then starting up the database. You can choose to either use:","sidebar":"docs"},"libraries":{"id":"libraries","title":"Client drivers","description":"Official drivers","sidebar":"docs"},"limits":{"id":"limits","title":"Limits","description":"We\'ve made every effort to provide a robust querying interface, but there are some temporary limitations that we think you","sidebar":"docs"},"protocol/errors":{"id":"protocol/errors","title":"Error Index","description":"This document provides an exhaustive listing of all the error codes that can be returned by the server. Do note that the handshake errors are only returned in the connection stage and are not the same as the query errors which occcur at the exchange stage.","sidebar":"docs"},"protocol/index":{"id":"protocol/index","title":"Skyhash 2: Overview","description":"Introduction","sidebar":"docs"},"protocol/specification":{"id":"protocol/specification","title":"Specification","description":"Network layer","sidebar":"docs"},"querying":{"id":"querying","title":"Querying","description":"Simple queries","sidebar":"docs"},"resources/migration":{"id":"resources/migration","title":"Migrating from an older release","description":"Firstly, thank you patron! You\'re a part of an exclusive club which has seen Skytable take shape from just another key-value","sidebar":"docs"},"resources/platform-support":{"id":"resources/platform-support","title":"Platform Support","description":"When you\'re building on or using Skytable on an officially supported platform, you can be certain that we\'ve tested Skytable to work on these platforms, depending on their support level. The support level of a platform largely depends on the testing capabilities of our CI runners and tooling infrastructure and whether they support the platform or not besides our own codebase requirements. As such, we\'ve divided platform support into multiple tiers.","sidebar":"docs"},"resources/useful-links":{"id":"resources/useful-links","title":"Useful links","description":"Community and chat","sidebar":"docs"},"system/configuration":{"id":"system/configuration","title":"Configuration","description":"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a","sidebar":"docs"},"system/global-management":{"id":"system/global-management","title":"Global management","description":"Checking system health","sidebar":"docs"},"system/index":{"id":"system/index","title":"System administration","description":"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access.","sidebar":"docs"},"system/operations":{"id":"system/operations","title":"Operations","description":"Managing disk usage","sidebar":"docs"},"system/user-management":{"id":"system/user-management","title":"User management","description":"Skytable\'s access control is very simple:","sidebar":"docs"},"using-the-repl":{"id":"using-the-repl","title":"Using the REPL","description":"Once you\'ve set up Skytable following our guide, you can now get started using the REPL. Note that you must have downloaded the bundle. If not, go back to the installation guide and do it now.","sidebar":"docs"},"versions":{"id":"versions","title":"All versions","description":"A maintained version is one that actively receives security, performance and feature updates. Please see the"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a36d89ba.85cc95b5.js b/assets/js/a36d89ba.12e8b51a.js similarity index 68% rename from assets/js/a36d89ba.85cc95b5.js rename to assets/js/a36d89ba.12e8b51a.js index 663a9281d..12656ecd1 100644 --- a/assets/js/a36d89ba.85cc95b5.js +++ b/assets/js/a36d89ba.12e8b51a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5035],{9226:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var s=t(4848),a=t(8453);const o={title:"System administration"},r=void 0,i={id:"system/index",title:"System administration",description:"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access.",source:"@site/docs/system/index.md",sourceDirName:"system",slug:"/system/",permalink:"/system/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"System administration"},sidebar:"docs",previous:{title:"Querying",permalink:"/querying"},next:{title:"Configuration",permalink:"/system/configuration"}},c={},d=[{value:"Guides",id:"guides",level:2}];function l(e){const n={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access."}),"\n",(0,s.jsx)(n.h2,{id:"guides",children:"Guides"}),"\n",(0,s.jsx)(n.p,{children:"Here's an overview of the different administration guides:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"configuration",children:(0,s.jsx)(n.strong,{children:"Configuration"})}),": Understand how Skytable can be configured using command-line arguments, environment variables or a configuration file and what all configuration options are available"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"user-management",children:(0,s.jsx)(n.strong,{children:"User management"})}),": Learn about account types, permissions and how you can manage multiple users"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"global-management",children:(0,s.jsx)(n.strong,{children:"Global management"})}),": Learn how to check system health and manage the global state of your database instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"recovery",children:(0,s.jsx)(n.strong,{children:"Data recovery"})}),": Understand what to do after a system crash and how to recover data if needed"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>i});var s=t(6540);const a={},o=s.createContext(a);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5035],{9226:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=t(4848),a=t(8453);const o={title:"System administration"},i=void 0,r={id:"system/index",title:"System administration",description:"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access.",source:"@site/docs/system/index.md",sourceDirName:"system",slug:"/system/",permalink:"/system/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"System administration"},sidebar:"docs",previous:{title:"Querying",permalink:"/querying"},next:{title:"Configuration",permalink:"/system/configuration"}},c={},l=[{value:"Guides",id:"guides",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"In the following sections, we explore general system administration options with Skytable such as configuration, user management, system health and others. Please note that to use some of these guides you may need direct access to the host on which the database server is running; operations such as recovery and changing the root password require host access."}),"\n",(0,s.jsx)(n.h2,{id:"guides",children:"Guides"}),"\n",(0,s.jsx)(n.p,{children:"Here's an overview of the different administration guides:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"configuration",children:(0,s.jsx)(n.strong,{children:"Configuration"})}),": Understand how Skytable can be configured using command-line arguments, environment variables or a configuration file and what all configuration options are available"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"user-management",children:(0,s.jsx)(n.strong,{children:"User management"})}),": Learn about account types, permissions and how you can manage multiple users"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"global-management",children:(0,s.jsx)(n.strong,{children:"Global management"})}),": Learn how to check system health and manage the global state of your database instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"operations",children:(0,s.jsx)(n.strong,{children:"Operations"})}),": Understand administrator operations tasks such as backups, recovery and more"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>r});var s=t(6540);const a={},o=s.createContext(a);function i(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.494633a2.js b/assets/js/c377a04b.494633a2.js new file mode 100644 index 000000000..26356510d --- /dev/null +++ b/assets/js/c377a04b.494633a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5742],{4838:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var i=s(4848),r=s(8453);const t={id:"index",title:"Introduction",sidebar_label:"Home",slug:"/"},o=void 0,l={id:"index",title:"Introduction",description:"Welcome to Skytable's documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference.",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"index",title:"Introduction",sidebar_label:"Home",slug:"/"},sidebar:"docs",next:{title:"Installation",permalink:"/installation"}},a={},d=[{value:"Guide",id:"guide",level:2},{value:"Client drivers",id:"client-drivers",level:2},{value:"Errors",id:"errors",level:2},{value:"Getting help",id:"getting-help",level:2},{value:"Contributing",id:"contributing",level:2},{value:"License",id:"license",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to Skytable's documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference."}),"\n",(0,i.jsx)(n.h2,{id:"guide",children:"Guide"}),"\n",(0,i.jsxs)(n.p,{children:["To develop using Skytable and maintain your deployment you will want to learn about Skytable's architecture, data organization (such as what ",(0,i.jsx)(n.code,{children:"model"}),"s and ",(0,i.jsx)(n.code,{children:"space"}),"s are), model definition, querying using BlueQL",(0,i.jsx)("sup",{children:"TM"})," and system administration. We recommend you to follow the guides in the order given below (but feel free to skip any sections):"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"installation",children:(0,i.jsx)(n.strong,{children:"Installation"})})," and ",(0,i.jsx)(n.a,{href:"using-the-repl",children:(0,i.jsx)(n.strong,{children:"using the CLI"})}),": Get everything installed on your local system"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"architecture",children:(0,i.jsx)(n.strong,{children:"System overview"})}),": A brief introduction to Skytable, including an overview of the data model, query systems and storage"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"blueql",children:(0,i.jsx)(n.strong,{children:"BlueQL"})}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"blueql/overview",children:(0,i.jsx)(n.strong,{children:"Overview"})}),": Serves as a basic introduction to the query language and an (currently incomplete) informal specification with information on keywords, syntax and stuctures."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"blueql/ddl",children:(0,i.jsx)(n.strong,{children:"DDL"})}),": Data definition with BlueQL"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"blueql/dml",children:(0,i.jsx)(n.strong,{children:"DML"})}),": Data manipulation with BlueQL"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"blueql/dcl",children:(0,i.jsx)(n.strong,{children:"DCL"})}),": Data control with BlueQL"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"querying",children:(0,i.jsx)(n.strong,{children:"Querying"})}),": Introduces different query modes and when to choose a specific query mode"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"system",children:(0,i.jsx)(n.strong,{children:"System administration"})}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"system/configuration",children:(0,i.jsx)(n.strong,{children:"Configuration"})}),": Information to help you configure Skytable with custom settings such as custom ports, hosts, TLS, and etc."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"system/user-management",children:(0,i.jsx)(n.strong,{children:"User management"})}),": Information on access control, user and other administration features"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"system/global-management",children:(0,i.jsx)(n.strong,{children:"Global management"})}),": Global settings management"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"system/operations",children:(0,i.jsx)(n.strong,{children:"Operations"})}),": Learn about administration operations"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Resources"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"resources/useful-links",children:(0,i.jsx)(n.strong,{children:"Useful links"})}),": Links to helpful resources"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"resources/migration",children:(0,i.jsx)(n.strong,{children:"Migration"})}),": For old our returning Skytable users who are coming from older versions"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"benchmarking",children:(0,i.jsx)(n.strong,{children:"Benchmarking"})}),": A guide for load testing Skytable"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"deployment",children:(0,i.jsx)(n.strong,{children:"Deployment"})}),": An useful guide for deploying"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"limits",children:(0,i.jsx)(n.strong,{children:"Limits"})}),": An useful guide on system limits"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"client-drivers",children:"Client drivers"}),"\n",(0,i.jsxs)(n.p,{children:["Looking to integrate Skytable in your application? Great! ",(0,i.jsx)(n.a,{href:"libraries",children:"Find a driver for your language/framework here"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"errors",children:"Errors"}),"\n",(0,i.jsxs)(n.p,{children:["Hit an error? Check out the ",(0,i.jsx)(n.a,{href:"protocol/errors",children:"error code index"}),". If you need further help please check the resources below."]}),"\n",(0,i.jsx)(n.h2,{id:"getting-help",children:"Getting help"}),"\n",(0,i.jsxs)(n.p,{children:["We have a collection of resources ",(0,i.jsx)(n.a,{href:"resources/useful-links",children:"on this page"}),". If you need in help in real-time, we recommend that you join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/QptWFdx",children:"Discord Community"})," where you can get help directly from the developers and our community members.\nMost queries are usually answered there in a few hours!"]}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["If you find any typos, mistakes or any other scope of improvement - please don't hesitate to bring it up ",(0,i.jsx)(n.a,{href:"https://github.com/skytable/docs/issues",children:"here"}),". Thank you \u2764\ufe0f!"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["The documentation is licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/skytable/docs/tree/master/LICENSE",children:"CC-BY-SA-4.0 License"})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(6540);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.ffce57fc.js b/assets/js/c377a04b.ffce57fc.js deleted file mode 100644 index 3daaa5070..000000000 --- a/assets/js/c377a04b.ffce57fc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5742],{4838:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var s=r(4848),i=r(8453);const t={id:"index",title:"Introduction",sidebar_label:"Home",slug:"/"},l=void 0,o={id:"index",title:"Introduction",description:"Welcome to Skytable's documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference.",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"index",title:"Introduction",sidebar_label:"Home",slug:"/"},sidebar:"docs",next:{title:"Installation",permalink:"/installation"}},a={},d=[{value:"Guide",id:"guide",level:2},{value:"Client drivers",id:"client-drivers",level:2},{value:"Errors",id:"errors",level:2},{value:"Getting help",id:"getting-help",level:2},{value:"Contributing",id:"contributing",level:2},{value:"License",id:"license",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Welcome to Skytable's documentation! Skytable is a free and open-source modern NoSQL database that builds on the foundations of performance, scalability, powerful querying and a robust type system. Skytable can be deployed on multiple platforms as just a single binary file with no special system dependencies. You can either follow the guide below to learn Skytable in depth or jump to any sections that you need for reference."}),"\n",(0,s.jsx)(n.h2,{id:"guide",children:"Guide"}),"\n",(0,s.jsxs)(n.p,{children:["To develop using Skytable and maintain your deployment you will want to learn about Skytable's architecture, data organization (such as what ",(0,s.jsx)(n.code,{children:"model"}),"s and ",(0,s.jsx)(n.code,{children:"space"}),"s are), model definition, querying using BlueQL",(0,s.jsx)("sup",{children:"TM"})," and system administration. We recommend you to follow the guides in the order given below (but feel free to skip any sections):"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"installation",children:(0,s.jsx)(n.strong,{children:"Installation"})})," and ",(0,s.jsx)(n.a,{href:"using-the-repl",children:(0,s.jsx)(n.strong,{children:"using the CLI"})}),": Get everything installed on your local system"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"architecture",children:(0,s.jsx)(n.strong,{children:"System overview"})}),": A brief introduction to Skytable, including an overview of the data model, query systems and storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"blueql",children:(0,s.jsx)(n.strong,{children:"BlueQL"})}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"blueql/overview",children:(0,s.jsx)(n.strong,{children:"Overview"})}),": Serves as a basic introduction to the query language and an (currently incomplete) informal specification with information on keywords, syntax and stuctures."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"blueql/ddl",children:(0,s.jsx)(n.strong,{children:"DDL"})}),": Data definition with BlueQL"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"blueql/dml",children:(0,s.jsx)(n.strong,{children:"DML"})}),": Data manipulation with BlueQL"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"blueql/dcl",children:(0,s.jsx)(n.strong,{children:"DCL"})}),": Data control with BlueQL"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"querying",children:(0,s.jsx)(n.strong,{children:"Querying"})}),": Introduces different query modes and when to choose a specific query mode"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"system",children:(0,s.jsx)(n.strong,{children:"System administration"})}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"system/configuration",children:(0,s.jsx)(n.strong,{children:"Configuration"})}),": Information to help you configure Skytable with custom settings such as custom ports, hosts, TLS, and etc."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"system/user-management",children:(0,s.jsx)(n.strong,{children:"User management"})}),": Information on access control, user and other administration features"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"system/global-management",children:(0,s.jsx)(n.strong,{children:"Global management"})}),": Global settings management"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"system/recovery",children:(0,s.jsx)(n.strong,{children:"Data recovery"})}),": Database recovery"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Resources"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"resources/useful-links",children:(0,s.jsx)(n.strong,{children:"Useful links"})}),": Links to helpful resources"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"resources/migration",children:(0,s.jsx)(n.strong,{children:"Migration"})}),": For old our returning Skytable users who are coming from older versions"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"benchmarking",children:(0,s.jsx)(n.strong,{children:"Benchmarking"})}),": A guide for load testing Skytable"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"deployment",children:(0,s.jsx)(n.strong,{children:"Deployment"})}),": An useful guide for deploying"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"limits",children:(0,s.jsx)(n.strong,{children:"Limits"})}),": An useful guide on system limits"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"client-drivers",children:"Client drivers"}),"\n",(0,s.jsxs)(n.p,{children:["Looking to integrate Skytable in your application? Great! ",(0,s.jsx)(n.a,{href:"libraries",children:"Find a driver for your language/framework here"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"errors",children:"Errors"}),"\n",(0,s.jsxs)(n.p,{children:["Hit an error? Check out the ",(0,s.jsx)(n.a,{href:"protocol/errors",children:"error code index"}),". If you need further help please check the resources below."]}),"\n",(0,s.jsx)(n.h2,{id:"getting-help",children:"Getting help"}),"\n",(0,s.jsxs)(n.p,{children:["We have a collection of resources ",(0,s.jsx)(n.a,{href:"resources/useful-links",children:"on this page"}),". If you need in help in real-time, we recommend that you join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/QptWFdx",children:"Discord Community"})," where you can get help directly from the developers and our community members.\nMost queries are usually answered there in a few hours!"]}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["If you find any typos, mistakes or any other scope of improvement - please don't hesitate to bring it up ",(0,s.jsx)(n.a,{href:"https://github.com/skytable/docs/issues",children:"here"}),". Thank you \u2764\ufe0f!"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["The documentation is licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/skytable/docs/tree/master/LICENSE",children:"CC-BY-SA-4.0 License"})]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var s=r(6540);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/df871b03.1c528a23.js b/assets/js/df871b03.1c528a23.js new file mode 100644 index 000000000..0e1761db8 --- /dev/null +++ b/assets/js/df871b03.1c528a23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8316],{2149:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>a,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var n=t(4848),i=t(8453);const r={id:"configuration",title:"Configuration"},d=void 0,c={id:"system/configuration",title:"Configuration",description:"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a",source:"@site/docs/system/1.configuration.md",sourceDirName:"system",slug:"/system/configuration",permalink:"/system/configuration",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{id:"configuration",title:"Configuration"},sidebar:"docs",previous:{title:"System administration",permalink:"/system/"},next:{title:"User management",permalink:"/system/user-management"}},o={},l=[{value:"Configuration file",id:"configuration-file",level:2},{value:"Command-line arguments",id:"command-line-arguments",level:2},{value:"Environment variables",id:"environment-variables",level:2}];function h(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a\nconfiguration file. We don't have any specific recommendation for a mode of configuration but we generally consider using a\nconfiguration file to be the best practice since it is something that won't get lost (which in other cases can get lost due\nto lost shell history and such)."}),"\n",(0,n.jsx)(s.h2,{id:"configuration-file",children:"Configuration file"}),"\n",(0,n.jsx)(s.p,{children:"The configuration file is a simple YAML file. Use this as your configuration file template:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yaml",children:"system:\n mode: prod\n rs_window: 300\n\nauth:\n plugin: pwd\n # replace with your root password of choice\n root_pass: password\n\nendpoints:\n secure:\n host: 127.0.0.1\n port: 2004\n # replace `cert` with the path to your self-signed certificate\n cert: cert.pem\n # replace `private_key` with the path to your private key\n private_key: private.key\n # replace `passphrase.txt` with the path to your private key passphrase\n pkey_passphrase: passphrase.txt\n insecure:\n host: 127.0.0.1\n port: 2003\n"})}),"\n",(0,n.jsx)(s.admonition,{title:"Starting the server with a configuration file",type:"info",children:(0,n.jsxs)(s.p,{children:["To start the server with a configuration file, simply run ",(0,n.jsx)(s.code,{children:"skyd --config .yaml"})]})}),"\n",(0,n.jsx)(s.p,{children:"Here's an explanation of all the keys:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"system"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"mode"}),": set to either ",(0,n.jsx)(s.code,{children:"dev"})," / ",(0,n.jsx)(s.code,{children:"prod"})," mode. ",(0,n.jsx)(s.code,{children:"prod"})," mode will generally make some things stricters (such as background services)"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"rs_window"}),": ",(0,n.jsx)(s.strong,{children:"This is a very important setting!"})," It is set to ",(0,n.jsx)(s.code,{children:"300"}),' by default and is called the "reliability service window" which ensures that if any changes are observed in ',(0,n.jsx)(s.code,{children:"300"})," (or whatever value you set) seconds, then they reach the disk as soon as that time elapses. For example, in the default configuration the system checks for changes every 5 minutes and if there are any dataset changes, they are immediately synced. ",(0,n.jsx)(s.a,{href:"operations#understanding-data-loss",children:"Read more here"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"auth"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"plugin"}),": this is the authentication plugin. we currently only have ",(0,n.jsx)(s.code,{children:"pwd"})," that is a simple password based authentication system where the password is stored as an ",(0,n.jsxs)(s.a,{href:"https://github.com/ohsayan/rcrypt",children:[(0,n.jsx)(s.code,{children:"rcrypt"})," hash"]})," on disk. More ",(0,n.jsx)(s.code,{children:"plugin"})," options are set to be implemented for more advanced authentication, especially in enterprise settings"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"root_pass"}),": this is the root account password. ",(0,n.jsx)(s.strong,{children:"It must have atleast 16 characters"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"endpoints"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"secure"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"host"}),": the host for your secure (TLS) endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"port"}),": the port for your secure (TLS) endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"cert"}),": path to the PEM certificate to use for TLS"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"private_key"}),": path to the PEM private key to use for TLS"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"pkey_passphrase"}),": all private keys must be secured with a passphrase; this key should be set to ",(0,n.jsx)(s.strong,{children:"the path of a plaintext file containing your passphrase"})," and ",(0,n.jsx)(s.strong,{children:"not the passphrase itself"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"insecure"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"host"}),": the host for your TCP endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"port"}),": the port for your TCP endpoint"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"command-line-arguments",children:"Command-line arguments"}),"\n",(0,n.jsx)(s.p,{children:"You can use the following command line arguments:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Category"}),(0,n.jsx)(s.th,{children:"Argument"}),(0,n.jsx)(s.th,{children:"Example"}),(0,n.jsx)(s.th,{children:"Meaning"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--config"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--config=config.yaml"})}),(0,n.jsx)(s.td,{children:"Path to the configuration file."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"System"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--service-window"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--service-window=300"})}),(0,n.jsx)(s.td,{children:"Set the reliability service window (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--mode"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--mode=prod"})}),(0,n.jsxs)(s.td,{children:["Set ",(0,n.jsx)(s.code,{children:"dev"})," or ",(0,n.jsx)(s.code,{children:"prod"})," mode"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Auth"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-plugin"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-plugin=pwd"})}),(0,n.jsx)(s.td,{children:"Sets the authentication plugin (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-root-password"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-root-password=mypass"})}),(0,n.jsx)(s.td,{children:"Sets the root account password (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Endpoints"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--endpoint"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--endpoint=tcp@localhost:2003"})}),(0,n.jsxs)(s.td,{children:["Repeat this for all your endpoints such as ",(0,n.jsx)(s.code,{children:"tls@host:port"})," and ",(0,n.jsx)(s.code,{children:"tcp@host:port"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlscert"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlscert=cert.pem"})}),(0,n.jsx)(s.td,{children:"Path to TLS cert"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlskey"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlskey=private.key"})}),(0,n.jsx)(s.td,{children:"Path to TLS private key"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tls-passphrase"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tls-passphrase=pass.txt"})}),(0,n.jsx)(s.td,{children:"Path to plaintext file containing TLS private key password"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,n.jsx)(s.p,{children:"You can use the following environment variables:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Category"}),(0,n.jsx)(s.th,{children:"Variable"}),(0,n.jsx)(s.th,{children:"Example"}),(0,n.jsx)(s.th,{children:"Meaning"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"System"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_SERVICE_WINDOW"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_SERVICE_WINDOW=300"})}),(0,n.jsx)(s.td,{children:"Sets the reliability service window (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Auth"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_PLUGIN"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_PLUGIN=pwd"})}),(0,n.jsx)(s.td,{children:"Sets the authentication plugin"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_ROOT_PASSWORD"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_ROOT_PASSWORD=mypass"})}),(0,n.jsx)(s.td,{children:"Sets the root account password"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Endpoints"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_ENDPOINTS"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_ENDPOINTS=tcp@myhost:2003,tls@myhost:2004"})}),(0,n.jsx)(s.td,{children:"Sets the endpoints to use"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_CERT"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_CERT=cert.pem"})}),(0,n.jsx)(s.td,{children:"Sets the path to the TLS cert"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY=private.key"})}),(0,n.jsx)(s.td,{children:"Sets the path to the TLS private key"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY_PASS"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY_PASS=pass.txt"})}),(0,n.jsx)(s.td,{children:"Sets the path to the plaintext file containing the TLS private key password"})]})]})]})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>d,x:()=>c});var n=t(6540);const i={},r=n.createContext(i);function d(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/df871b03.a6f28121.js b/assets/js/df871b03.a6f28121.js deleted file mode 100644 index 6e5e628b1..000000000 --- a/assets/js/df871b03.a6f28121.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8316],{2149:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>a,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var n=t(4848),i=t(8453);const r={id:"configuration",title:"Configuration"},d=void 0,c={id:"system/configuration",title:"Configuration",description:"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a",source:"@site/docs/system/1.configuration.md",sourceDirName:"system",slug:"/system/configuration",permalink:"/system/configuration",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{id:"configuration",title:"Configuration"},sidebar:"docs",previous:{title:"System administration",permalink:"/system/"},next:{title:"User management",permalink:"/system/user-management"}},o={},l=[{value:"Configuration file",id:"configuration-file",level:2},{value:"Command-line arguments",id:"command-line-arguments",level:2},{value:"Environment variables",id:"environment-variables",level:2}];function h(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:"Skytable can be configured to run per your needs. You can use either of command-line arguments, environment variables or a\nconfiguration file. We don't have any specific recommendation for a mode of configuration but we generally consider using a\nconfiguration file to be the best practice since it is something that won't get lost (which in other cases can get lost due\nto lost shell history and such)."}),"\n",(0,n.jsx)(s.h2,{id:"configuration-file",children:"Configuration file"}),"\n",(0,n.jsx)(s.p,{children:"The configuration file is a simple YAML file. Use this as your configuration file template:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yaml",children:"system:\n mode: prod\n rs_window: 300\n\nauth:\n plugin: pwd\n # replace with your root password of choice\n root_pass: password\n\nendpoints:\n secure:\n host: 127.0.0.1\n port: 2004\n # replace `cert` with the path to your self-signed certificate\n cert: cert.pem\n # replace `private_key` with the path to your private key\n private_key: private.key\n # replace `passphrase.txt` with the path to your private key passphrase\n pkey_passphrase: passphrase.txt\n insecure:\n host: 127.0.0.1\n port: 2003\n"})}),"\n",(0,n.jsx)(s.admonition,{title:"Starting the server with a configuration file",type:"info",children:(0,n.jsxs)(s.p,{children:["To start the server with a configuration file, simply run ",(0,n.jsx)(s.code,{children:"skyd --config .yaml"})]})}),"\n",(0,n.jsx)(s.p,{children:"Here's an explanation of all the keys:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"system"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"mode"}),": set to either ",(0,n.jsx)(s.code,{children:"dev"})," / ",(0,n.jsx)(s.code,{children:"prod"})," mode. ",(0,n.jsx)(s.code,{children:"prod"})," mode will generally make some things stricters (such as background services)"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"rs_window"}),": ",(0,n.jsx)(s.strong,{children:"This is a very important setting!"})," It is set to ",(0,n.jsx)(s.code,{children:"300"}),' by default and is called the "reliability service window" which ensures that if any changes are observed in ',(0,n.jsx)(s.code,{children:"300"})," (or whatever value you set) seconds, then they reach the disk as soon as that time elapses. For example, in the default configuration the system checks for changes every 5 minutes and if there are any dataset changes, they are immediately synced. ",(0,n.jsx)(s.a,{href:"recovery#understanding-data-loss",children:"Read more here"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"auth"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"plugin"}),": this is the authentication plugin. we currently only have ",(0,n.jsx)(s.code,{children:"pwd"})," that is a simple password based authentication system where the password is stored as an ",(0,n.jsxs)(s.a,{href:"https://github.com/ohsayan/rcrypt",children:[(0,n.jsx)(s.code,{children:"rcrypt"})," hash"]})," on disk. More ",(0,n.jsx)(s.code,{children:"plugin"})," options are set to be implemented for more advanced authentication, especially in enterprise settings"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"root_pass"}),": this is the root account password. ",(0,n.jsx)(s.strong,{children:"It must have atleast 16 characters"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"endpoints"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"secure"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"host"}),": the host for your secure (TLS) endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"port"}),": the port for your secure (TLS) endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"cert"}),": path to the PEM certificate to use for TLS"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"private_key"}),": path to the PEM private key to use for TLS"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"pkey_passphrase"}),": all private keys must be secured with a passphrase; this key should be set to ",(0,n.jsx)(s.strong,{children:"the path of a plaintext file containing your passphrase"})," and ",(0,n.jsx)(s.strong,{children:"not the passphrase itself"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"insecure"}),":","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"host"}),": the host for your TCP endpoint"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"port"}),": the port for your TCP endpoint"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"command-line-arguments",children:"Command-line arguments"}),"\n",(0,n.jsx)(s.p,{children:"You can use the following command line arguments:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Category"}),(0,n.jsx)(s.th,{children:"Argument"}),(0,n.jsx)(s.th,{children:"Example"}),(0,n.jsx)(s.th,{children:"Meaning"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--config"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--config=config.yaml"})}),(0,n.jsx)(s.td,{children:"Path to the configuration file."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"System"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--service-window"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--service-window=300"})}),(0,n.jsx)(s.td,{children:"Set the reliability service window (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--mode"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--mode=prod"})}),(0,n.jsxs)(s.td,{children:["Set ",(0,n.jsx)(s.code,{children:"dev"})," or ",(0,n.jsx)(s.code,{children:"prod"})," mode"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Auth"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-plugin"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-plugin=pwd"})}),(0,n.jsx)(s.td,{children:"Sets the authentication plugin (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-root-password"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--auth-root-password=mypass"})}),(0,n.jsx)(s.td,{children:"Sets the root account password (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Endpoints"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--endpoint"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--endpoint=tcp@localhost:2003"})}),(0,n.jsxs)(s.td,{children:["Repeat this for all your endpoints such as ",(0,n.jsx)(s.code,{children:"tls@host:port"})," and ",(0,n.jsx)(s.code,{children:"tcp@host:port"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlscert"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlscert=cert.pem"})}),(0,n.jsx)(s.td,{children:"Path to TLS cert"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlskey"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tlskey=private.key"})}),(0,n.jsx)(s.td,{children:"Path to TLS private key"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tls-passphrase"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"--tls-passphrase=pass.txt"})}),(0,n.jsx)(s.td,{children:"Path to plaintext file containing TLS private key password"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,n.jsx)(s.p,{children:"You can use the following environment variables:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Category"}),(0,n.jsx)(s.th,{children:"Variable"}),(0,n.jsx)(s.th,{children:"Example"}),(0,n.jsx)(s.th,{children:"Meaning"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"System"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_SERVICE_WINDOW"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_SERVICE_WINDOW=300"})}),(0,n.jsx)(s.td,{children:"Sets the reliability service window (see above)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Auth"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_PLUGIN"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_PLUGIN=pwd"})}),(0,n.jsx)(s.td,{children:"Sets the authentication plugin"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_ROOT_PASSWORD"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_AUTH_ROOT_PASSWORD=mypass"})}),(0,n.jsx)(s.td,{children:"Sets the root account password"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Endpoints"})}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_ENDPOINTS"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_ENDPOINTS=tcp@myhost:2003,tls@myhost:2004"})}),(0,n.jsx)(s.td,{children:"Sets the endpoints to use"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_CERT"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_CERT=cert.pem"})}),(0,n.jsx)(s.td,{children:"Sets the path to the TLS cert"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY=private.key"})}),(0,n.jsx)(s.td,{children:"Sets the path to the TLS private key"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY_PASS"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"SKYDB_TLS_KEY_PASS=pass.txt"})}),(0,n.jsx)(s.td,{children:"Sets the path to the plaintext file containing the TLS private key password"})]})]})]})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>d,x:()=>c});var n=t(6540);const i={},r=n.createContext(i);function d(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.0bf97217.js b/assets/js/main.0bf97217.js deleted file mode 100644 index 000c700b8..000000000 --- a/assets/js/main.0bf97217.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.0bf97217.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6411],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"00849eb8":[()=>n.e(1135).then(n.bind(n,7731)),"@site/versioned_docs/version-0.8.1/blueql/2.ddl.md",7731],"077e182c":[()=>n.e(6082).then(n.bind(n,2692)),"@site/versioned_docs/version-0.7.4/16.building-from-source.md",2692],"0886eaad":[()=>n.e(284).then(n.bind(n,7597)),"@site/docs/16.limits.md",7597],"0a6d04ec":[()=>n.e(1736).then(n.bind(n,6430)),"@site/versioned_docs/version-0.8.1/resources/1.useful-links.md",6430],"0e046e27":[()=>n.e(7476).then(n.bind(n,1760)),"@site/versioned_docs/version-0.7.5/protocol/skyhash.md",1760],"0eadbdf8":[()=>n.e(9745).then(n.bind(n,3193)),"@site/docs/4.architecture.md",3193],"0eed62d0":[()=>n.e(7765).then(n.bind(n,5787)),"@site/versioned_docs/version-0.8.0/blueql/4.dcl.md",5787],"0f669020":[()=>n.e(168).then(n.bind(n,5534)),"@site/versioned_docs/version-0.8.0/14.benchmarking.md",5534],"0fe8a02a":[()=>n.e(9366).then(n.bind(n,2177)),"@site/docs/versions.md",2177],"105374d0":[()=>n.e(9757).then(n.bind(n,2116)),"@site/versioned_docs/version-0.7.4/15.deployment-notes.md",2116],"10598b0c":[()=>n.e(6043).then(n.bind(n,5799)),"@site/versioned_docs/version-0.8.0/3.using-repl.md",5799],"1136c95f":[()=>n.e(2355).then(n.bind(n,3002)),"@site/versioned_docs/version-0.7.4/7.cfg.md",3002],"1190ec46":[()=>n.e(7296).then(n.bind(n,136)),"@site/versioned_docs/version-0.7.4/actions/DBSIZE.md",136],"13dac574":[()=>n.e(3487).then(n.bind(n,1250)),"@site/versioned_docs/version-0.7.4/actions/MGET.md",1250],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,5847)),"@theme/DocCategoryGeneratedIndexPage",5847],"1573eefc":[()=>n.e(1288).then(n.bind(n,3361)),"@site/versioned_docs/version-0.8.0/13.libraries.md",3361],"16d48d9c":[()=>n.e(8898).then(n.bind(n,7389)),"@site/versioned_docs/version-0.7.5/actions/SSET.md",7389],"17721d7a":[()=>n.e(9519).then(n.bind(n,7330)),"@site/versioned_docs/version-0.7.5/actions/LGET.md",7330],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,6041)),"@theme/DocItem",6041],"1b355885":[()=>n.e(1648).then(n.bind(n,4087)),"@site/versioned_docs/version-0.8.0/1.index.md",4087],"1cd70b93":[()=>n.e(9770).then(n.bind(n,2840)),"@site/versioned_docs/version-0.7.5/actions/KEYLEN.md",2840],"1d32a22a":[()=>n.e(8029).then(n.bind(n,5284)),"@site/versioned_docs/version-0.7.5/5b.examples.md",5284],"1eebf554":[()=>n.e(7500).then(n.bind(n,2516)),"@site/docs/system/3.global-management.md",2516],"1f1a3550":[()=>n.e(4423).then(n.bind(n,8397)),"@site/versioned_docs/version-0.7.5/protocol/response-codes.md",8397],20310182:[()=>n.e(6054).then(n.bind(n,737)),"@site/versioned_docs/version-0.7.4/10.snapshots.md",737],"22fdb0f7":[()=>n.e(5046).then(n.bind(n,5256)),"@site/docs/2.installation.md",5256],"247783bb":[()=>n.e(5548).then(n.t.bind(n,1966,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"2673cc66":[()=>n.e(6715).then(n.bind(n,2368)),"@site/docs/protocol/errors.md",2368],"2773c291":[()=>n.e(2881).then(n.bind(n,559)),"@site/versioned_docs/version-0.7.4/actions/LMOD.md",559],"283abc1e":[()=>n.e(7466).then(n.bind(n,5022)),"@site/versioned_docs/version-0.7.4/actions/MSET.md",5022],"2e44b5ea":[()=>n.e(4709).then(n.bind(n,6411)),"@site/versioned_docs/version-0.7.4/3.actions-overview.md",6411],"2ef51344":[()=>n.e(503).then(n.bind(n,3579)),"@site/versioned_docs/version-0.7.4/actions/LSET.md",3579],"333ace74":[()=>n.e(5468).then(n.bind(n,7517)),"@site/versioned_docs/version-0.7.4/4.containers.md",7517],"362a08a0":[()=>n.e(832).then(n.bind(n,4886)),"@site/versioned_docs/version-0.7.5/7a.env-config.md",4886],"364843de":[()=>Promise.all([n.e(1869),n.e(7054)]).then(n.bind(n,5111)),"@site/versioned_docs/version-0.8.1/blueql/index.md",5111],"38b1a18c":[()=>n.e(8152).then(n.bind(n,3979)),"@site/versioned_docs/version-0.7.4/13.perf-guide.md",3979],"38c0e729":[()=>n.e(7740).then(n.bind(n,6802)),"@site/versioned_docs/version-0.7.4/protocol/data-types.md",6802],"393ba31b":[()=>n.e(7853).then(n.bind(n,2472)),"@site/versioned_docs/version-0.7.5/2.getting-started.md",2472],"39643f54":[()=>n.e(5545).then(n.bind(n,9163)),"@site/docs/3.using-repl.md",9163],"398ec6ec":[()=>n.e(7181).then(n.bind(n,1271)),"@site/versioned_docs/version-0.7.4/actions/MKSNAP.md",1271],"3aec8d28":[()=>n.e(7185).then(n.bind(n,869)),"@site/versioned_docs/version-0.7.5/5.ddl.md",869],"3b39eb61":[()=>n.e(9202).then(n.bind(n,8978)),"@site/versioned_docs/version-0.7.4/9b.auth.md",8978],"3e753cd6":[()=>n.e(1511).then(n.bind(n,8819)),"@site/versioned_docs/version-0.7.4/actions/SUPDATE.md",8819],"3e90d946":[()=>n.e(2811).then(n.bind(n,5957)),"@site/docs/13.libraries.md",5957],"413b7f27":[()=>n.e(8847).then(n.bind(n,7803)),"@site/versioned_docs/version-0.7.5/actions/HEYA.md",7803],"41cfe910":[()=>n.e(6728).then(n.bind(n,1430)),"@site/versioned_docs/version-0.7.4/actions/DEL.md",1430],"43cf645b":[()=>n.e(204).then(n.bind(n,8096)),"@site/versioned_docs/version-0.7.5/actions/SET.md",8096],"4415fef0":[()=>n.e(9136).then(n.bind(n,7817)),"@site/versioned_docs/version-0.8.1/index.md",7817],"453d2cf9":[()=>n.e(9357).then(n.bind(n,908)),"@site/versioned_docs/version-0.7.4/8.config-cmdline.md",908],45483604:[()=>n.e(5333).then(n.bind(n,7112)),"@site/versioned_docs/version-0.7.5/11.ssl.md",7112],"4575aa6b":[()=>n.e(7444).then(n.bind(n,3790)),"@site/versioned_docs/version-0.7.5/actions/MUPDATE.md",3790],"45762ba8":[()=>n.e(7670).then(n.bind(n,8025)),"@site/versioned_docs/version-0.7.4/protocol/errors.md",8025],"45cfda70":[()=>n.e(5981).then(n.bind(n,3614)),"@site/versioned_docs/version-0.8.0/resources/1.overview.md",3614],"4748fea8":[()=>n.e(6980).then(n.bind(n,7516)),"@site/versioned_docs/version-0.7.5/actions/AUTH.md",7516],"49313f96":[()=>n.e(6084).then(n.t.bind(n,4964,19)),"~docs/default/version-0-7-5-metadata-prop-594.json",4964],"49eba915":[()=>n.e(6827).then(n.t.bind(n,8323,19)),"~docs/default/category-080-docs-category-blueql-011.json",8323],"4cacf3e6":[()=>n.e(8804).then(n.bind(n,6308)),"@site/versioned_docs/version-0.7.5/4.containers.md",6308],"5158272a":[()=>n.e(3216).then(n.bind(n,315)),"@site/versioned_docs/version-0.8.1/blueql/1.overview.md",315],"5499eab5":[()=>n.e(7783).then(n.bind(n,9930)),"@site/versioned_docs/version-0.7.5/actions/WHEREAMI.md",9930],55771474:[()=>Promise.all([n.e(1869),n.e(329)]).then(n.bind(n,902)),"@site/docs/blueql/index.md",902],"588b3e90":[()=>n.e(1245).then(n.bind(n,1321)),"@site/versioned_docs/version-0.7.5/1.index.md",1321],"59841b15":[()=>n.e(7174).then(n.bind(n,4854)),"@site/versioned_docs/version-0.7.4/actions/USET.md",4854],"5a1b55cd":[()=>n.e(5527).then(n.bind(n,1790)),"@site/versioned_docs/version-0.8.1/system/4.recovery.md",1790],"5a648b40":[()=>n.e(5717).then(n.bind(n,5218)),"@site/docs/protocol/specification.md",5218],"5c02a21c":[()=>n.e(5452).then(n.bind(n,9239)),"@site/versioned_docs/version-0.7.4/14.benchmarking.md",9239],"5e3fdd1e":[()=>n.e(5296).then(n.bind(n,3960)),"@site/versioned_docs/version-0.7.4/7.cfg-files.md",3960],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5edea9bf":[()=>n.e(3582).then(n.bind(n,7806)),"@site/versioned_docs/version-0.7.5/actions/EXISTS.md",7806],"5fb694b3":[()=>n.e(4100).then(n.bind(n,7327)),"@site/versioned_docs/version-0.7.4/actions/GET.md",7327],"61483c77":[()=>n.e(6776).then(n.bind(n,6158)),"@site/versioned_docs/version-0.8.0/blueql/2.ddl.md",6158],"6315f7a9":[()=>n.e(7491).then(n.bind(n,9989)),"@site/versioned_docs/version-0.7.4/actions/MPOP.md",9989],"63e7d659":[()=>n.e(7538).then(n.bind(n,7853)),"@site/versioned_docs/version-0.7.4/actions/KEYLEN.md",7853],"655ebc95":[()=>n.e(6349).then(n.bind(n,3365)),"@site/versioned_docs/version-0.8.0/protocol/2.networking.md",3365],"670c12fe":[()=>n.e(623).then(n.bind(n,6423)),"@site/docs/resources/1.useful-links.md",6423],"698dac37":[()=>n.e(9762).then(n.t.bind(n,9549,19)),"~docs/default/version-0-7-4-metadata-prop-260.json",9549],"6a9eda4d":[()=>n.e(491).then(n.bind(n,9076)),"@site/docs/querying.md",9076],"6abe9687":[()=>n.e(3017).then(n.bind(n,7355)),"@site/versioned_docs/version-0.7.4/actions/WHEREAMI.md",7355],"6b87b92b":[()=>n.e(4835).then(n.bind(n,2307)),"@site/versioned_docs/version-0.7.5/actions/USET.md",2307],"6b8fde54":[()=>n.e(3839).then(n.bind(n,9573)),"@site/versioned_docs/version-0.7.4/actions/AUTH.md",9573],"6bbf3746":[()=>n.e(4167).then(n.bind(n,4981)),"@site/docs/system/4.recovery.md",4981],"6bddfb77":[()=>n.e(1881).then(n.bind(n,8616)),"@site/versioned_docs/version-0.8.1/system/1.configuration.md",8616],"70010fe2":[()=>n.e(9624).then(n.bind(n,9902)),"@site/versioned_docs/version-0.7.5/actions/MKSNAP.md",9902],"7041e121":[()=>n.e(7606).then(n.bind(n,6450)),"@site/versioned_docs/version-0.7.5/9.persistence.md",6450],"718e3846":[()=>n.e(8362).then(n.bind(n,2321)),"@site/versioned_docs/version-0.8.0/16.limits.md",2321],"72032a86":[()=>n.e(4810).then(n.bind(n,8893)),"@site/versioned_docs/version-0.7.4/9.persistence.md",8893],"7232540e":[()=>n.e(1969).then(n.bind(n,6993)),"@site/versioned_docs/version-0.7.5/actions/DBSIZE.md",6993],"72ce6c4c":[()=>n.e(9502).then(n.bind(n,3712)),"@site/versioned_docs/version-0.7.5/actions/FLUSHDB.md",3712],"733fd614":[()=>n.e(1535).then(n.bind(n,9503)),"@site/versioned_docs/version-0.7.5/15.deployment-notes.md",9503],"735f4e8b":[()=>n.e(5659).then(n.bind(n,2929)),"@site/versioned_docs/version-0.7.4/actions/SDEL.md",2929],"73bb290b":[()=>n.e(6972).then(n.bind(n,2190)),"@site/versioned_docs/version-0.7.4/actions/HEYA.md",2190],"7535d00c":[()=>n.e(2020).then(n.bind(n,3017)),"@site/versioned_docs/version-0.8.0/15.deployment.md",3017],"760c21a9":[()=>n.e(5418).then(n.bind(n,1482)),"@site/versioned_docs/version-0.7.4/5.ddl.md",1482],"77510a09":[()=>n.e(9659).then(n.bind(n,3342)),"@site/versioned_docs/version-0.7.4/actions/MUPDATE.md",3342],"791af571":[()=>n.e(5718).then(n.bind(n,8465)),"@site/versioned_docs/version-0.7.5/8.config-cmdline.md",8465],"796c6854":[()=>n.e(5723).then(n.bind(n,1267)),"@site/versioned_docs/version-0.8.0/protocol/1.overview.md",1267],"7ca8dcb0":[()=>n.e(5868).then(n.bind(n,7010)),"@site/versioned_docs/version-0.8.1/3.using-repl.md",7010],"7f1a228f":[()=>n.e(7328).then(n.bind(n,3399)),"@site/versioned_docs/version-0.7.5/actions/POP.md",3399],"82b53ec7":[()=>n.e(9840).then(n.bind(n,7056)),"@site/versioned_docs/version-0.7.5/actions/SUPDATE.md",7056],"84ed2c91":[()=>n.e(5211).then(n.bind(n,117)),"@site/versioned_docs/version-0.8.1/14.benchmarking.md",117],"858b8f4c":[()=>n.e(8937).then(n.bind(n,9918)),"@site/versioned_docs/version-0.7.4/actions/LSKEYS.md",9918],"859ae2ee":[()=>n.e(1807).then(n.bind(n,154)),"@site/versioned_docs/version-0.7.4/12.clients.md",154],"85c21da9":[()=>n.e(1312).then(n.bind(n,5226)),"@site/versioned_docs/version-0.7.5/3.actions-overview.md",5226],"88f07c05":[()=>n.e(3701).then(n.bind(n,7705)),"@site/versioned_docs/version-0.7.4/11.ssl.md",7705],"894aac81":[()=>n.e(3922).then(n.bind(n,3175)),"@site/versioned_docs/version-0.7.5/actions/MGET.md",3175],"8ba0b14e":[()=>n.e(2372).then(n.bind(n,3550)),"@site/versioned_docs/version-0.7.4/1.index.md",3550],"8cfdc86d":[()=>n.e(3213).then(n.bind(n,9807)),"@site/versioned_docs/version-0.7.4/actions/FLUSHDB.md",9807],"92b9ac0d":[()=>n.e(5289).then(n.bind(n,793)),"@site/versioned_docs/version-0.7.4/7a.env-config.md",793],"93201ccf":[()=>n.e(8958).then(n.bind(n,6661)),"@site/versioned_docs/version-0.8.0/4.architecture.md",6661],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"939cc5d6":[()=>n.e(893).then(n.bind(n,8720)),"@site/versioned_docs/version-0.8.1/4.architecture.md",8720],"95f524cc":[()=>n.e(9338).then(n.bind(n,8689)),"@site/versioned_docs/version-0.7.5/protocol/data-types.md",8689],"9c1c0c58":[()=>n.e(9947).then(n.bind(n,8489)),"@site/versioned_docs/version-0.7.5/7.cfg.md",8489],a1d1dd1b:[()=>n.e(5385).then(n.bind(n,7404)),"@site/versioned_docs/version-0.8.0/blueql/3.dml.md",7404],a21738db:[()=>n.e(4757).then(n.bind(n,4627)),"@site/docs/protocol/index.md",4627],a233450e:[()=>n.e(7644).then(n.bind(n,5508)),"@site/versioned_docs/version-0.8.1/versions.md",5508],a36d89ba:[()=>n.e(5035).then(n.bind(n,9226)),"@site/docs/system/index.md",9226],a377b775:[()=>n.e(7900).then(n.bind(n,4790)),"@site/versioned_docs/version-0.7.4/protocol/response-codes.md",4790],a482deb9:[()=>n.e(8792).then(n.bind(n,684)),"@site/versioned_docs/version-0.8.0/2.installation.md",684],a73fd9a7:[()=>n.e(6309).then(n.bind(n,3637)),"@site/versioned_docs/version-0.8.1/2.installation.md",3637],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],a97a69dc:[()=>n.e(9665).then(n.bind(n,3449)),"@site/versioned_docs/version-0.7.4/protocol/skyhash.md",3449],acaa9510:[()=>n.e(7823).then(n.bind(n,166)),"@site/versioned_docs/version-0.7.5/actions/LMOD.md",166],ad301c44:[()=>n.e(4525).then(n.bind(n,5543)),"@site/docs/system/2.user-management.md",5543],b09b582c:[()=>n.e(1958).then(n.bind(n,4902)),"@site/versioned_docs/version-0.8.1/system/2.user-management.md",4902],b1d9ab1e:[()=>n.e(322).then(n.bind(n,7759)),"@site/docs/blueql/4.dcl.md",7759],b213ac14:[()=>n.e(8024).then(n.bind(n,9312)),"@site/versioned_docs/version-0.7.5/actions/MPOP.md",9312],b34fd168:[()=>n.e(295).then(n.bind(n,529)),"@site/versioned_docs/version-0.8.0/system/1.configuration.md",529],b478df71:[()=>n.e(7702).then(n.bind(n,8856)),"@site/versioned_docs/version-0.7.4/actions/POP.md",8856],b572c5af:[()=>n.e(4426).then(n.bind(n,7809)),"@site/versioned_docs/version-0.8.0/protocol/3.errors.md",7809],b5a8c0e1:[()=>n.e(5044).then(n.bind(n,2776)),"@site/versioned_docs/version-0.7.5/10.snapshots.md",2776],b73968e4:[()=>n.e(3239).then(n.bind(n,7252)),"@site/docs/resources/2.migration.md",7252],b8a88df5:[()=>n.e(1313).then(n.bind(n,6928)),"@site/versioned_docs/version-0.7.5/14.benchmarking.md",6928],ba4c4c42:[()=>n.e(6466).then(n.bind(n,1483)),"@site/versioned_docs/version-0.7.5/7.cfg-files.md",1483],bc77ce48:[()=>n.e(8368).then(n.t.bind(n,6806,19)),"~docs/default/version-0-8-1-metadata-prop-331.json",6806],bcc493bb:[()=>n.e(7391).then(n.bind(n,74)),"@site/versioned_docs/version-0.7.5/protocol/errors.md",74],bccbf329:[()=>n.e(5059).then(n.bind(n,9878)),"@site/versioned_docs/version-0.7.4/6.all-actions.md",9878],bcf25bf9:[()=>n.e(9864).then(n.bind(n,2753)),"@site/versioned_docs/version-0.7.5/9b.auth.md",2753],be23a2ab:[()=>n.e(6209).then(n.bind(n,9040)),"@site/docs/blueql/3.dml.md",9040],bef7336c:[()=>n.e(698).then(n.bind(n,9306)),"@site/versioned_docs/version-0.7.5/actions/SYS.md",9306],bf5678db:[()=>n.e(2885).then(n.bind(n,9267)),"@site/versioned_docs/version-0.7.4/actions/SET.md",9267],bf86ff3c:[()=>n.e(839).then(n.bind(n,8983)),"@site/versioned_docs/version-0.8.1/resources/2.migration.md",8983],bf95a5e0:[()=>n.e(9256).then(n.bind(n,696)),"@site/versioned_docs/version-0.8.0/blueql/1.overview.md",696],c377a04b:[()=>n.e(5742).then(n.bind(n,4838)),"@site/docs/index.md",4838],c414bc73:[()=>n.e(2954).then(n.bind(n,7840)),"@site/versioned_docs/version-0.7.5/13.perf-guide.md",7840],c95b781b:[()=>n.e(2726).then(n.t.bind(n,4912,19)),"~docs/default/version-0-8-0-metadata-prop-466.json",4912],c9ef35f2:[()=>n.e(7826).then(n.bind(n,9211)),"@site/versioned_docs/version-0.7.5/actions/UPDATE.md",9211],cbe58da9:[()=>n.e(9552).then(n.bind(n,6950)),"@site/versioned_docs/version-0.7.4/actions/UPDATE.md",6950],cd573875:[()=>n.e(2395).then(n.bind(n,9106)),"@site/versioned_docs/version-0.8.1/16.limits.md",9106],cdce02d4:[()=>n.e(1932).then(n.bind(n,3882)),"@site/versioned_docs/version-0.8.1/protocol/index.md",3882],ce097dff:[()=>n.e(4811).then(n.bind(n,3153)),"@site/versioned_docs/version-0.8.1/querying.md",3153],d03628f5:[()=>n.e(705).then(n.bind(n,9704)),"@site/versioned_docs/version-0.7.4/actions/SSET.md",9704],d0914994:[()=>n.e(1691).then(n.bind(n,6217)),"@site/versioned_docs/version-0.7.5/actions/DEL.md",6217],d2c557a5:[()=>n.e(2883).then(n.bind(n,4742)),"@site/versioned_docs/version-0.8.1/15.deployment.md",4742],d862c92b:[()=>n.e(5715).then(n.bind(n,565)),"@site/versioned_docs/version-0.8.1/system/3.global-management.md",565],d8d94b5c:[()=>n.e(3276).then(n.bind(n,4171)),"@site/versioned_docs/version-0.7.5/actions/MSET.md",4171],d95065c8:[()=>n.e(4391).then(n.bind(n,9598)),"@site/versioned_docs/version-0.8.0/system/2.administration.md",9598],ddd45ac8:[()=>n.e(5256).then(n.bind(n,339)),"@site/versioned_docs/version-0.7.4/5b.examples.md",339],df871b03:[()=>n.e(8316).then(n.bind(n,2149)),"@site/docs/system/1.configuration.md",2149],dfcc6ccf:[()=>n.e(649).then(n.bind(n,106)),"@site/docs/14.benchmarking.md",106],e21c15d3:[()=>n.e(4859).then(n.bind(n,9893)),"@site/docs/resources/platform_support.md",9893],e22dd37b:[()=>n.e(2340).then(n.bind(n,3623)),"@site/versioned_docs/version-0.7.5/actions/LSKEYS.md",3623],e3704d3e:[()=>n.e(5445).then(n.bind(n,3578)),"@site/versioned_docs/version-0.8.1/blueql/4.dcl.md",3578],e6557b6f:[()=>n.e(9191).then(n.bind(n,1523)),"@site/versioned_docs/version-0.7.4/actions/EXISTS.md",1523],e82058ca:[()=>n.e(2893).then(n.bind(n,5794)),"@site/docs/blueql/2.ddl.md",5794],e9725e38:[()=>n.e(9350).then(n.t.bind(n,6224,19)),"~docs/default/category-080-docs-category-system-management-21f.json",6224],ea31ac95:[()=>n.e(5023).then(n.bind(n,1867)),"@site/versioned_docs/version-0.7.5/12.clients.md",1867],ec707320:[()=>n.e(4846).then(n.bind(n,9004)),"@site/versioned_docs/version-0.7.5/actions/SDEL.md",9004],ee01c0d2:[()=>n.e(4011).then(n.bind(n,5084)),"@site/versioned_docs/version-0.8.1/resources/platform_support.md",5084],efd8aafa:[()=>n.e(3823).then(n.bind(n,9575)),"@site/versioned_docs/version-0.7.4/2.getting-started.md",9575],f000fa6c:[()=>n.e(5839).then(n.bind(n,5520)),"@site/versioned_docs/version-0.7.5/16.building-from-source.md",5520],f0a0c15c:[()=>n.e(9538).then(n.bind(n,3533)),"@site/versioned_docs/version-0.7.5/6.all-actions.md",3533],f0a7be2b:[()=>n.e(2554).then(n.bind(n,9419)),"@site/versioned_docs/version-0.8.1/protocol/errors.md",9419],f17273da:[()=>n.e(4808).then(n.bind(n,7631)),"@site/versioned_docs/version-0.8.1/system/index.md",7631],f6ca6b97:[()=>n.e(651).then(n.bind(n,2878)),"@site/versioned_docs/version-0.7.5/actions/LSET.md",2878],f7fdec3a:[()=>n.e(4244).then(n.bind(n,4924)),"@site/versioned_docs/version-0.7.5/actions/GET.md",4924],f9345a93:[()=>n.e(5423).then(n.bind(n,5879)),"@site/versioned_docs/version-0.7.4/actions/LGET.md",5879],fa4df832:[()=>n.e(7533).then(n.bind(n,9400)),"@site/versioned_docs/version-0.8.0/resources/2.migration.md",9400],fd366d10:[()=>n.e(3863).then(n.bind(n,4207)),"@site/versioned_docs/version-0.8.1/protocol/specification.md",4207],fd5230de:[()=>n.e(5196).then(n.bind(n,1829)),"@site/versioned_docs/version-0.8.1/blueql/3.dml.md",1829],fd615c45:[()=>n.e(4963).then(n.bind(n,8060)),"@site/docs/blueql/1.overview.md",8060],fea443f9:[()=>n.e(8791).then(n.bind(n,5768)),"@site/versioned_docs/version-0.8.1/13.libraries.md",5768],ffee4076:[()=>n.e(5682).then(n.bind(n,7197)),"@site/docs/15.deployment.md",7197]};var s=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/",component:d("/","fe0"),routes:[{path:"/0.7.4",component:d("/0.7.4","928"),routes:[{path:"/0.7.4",component:d("/0.7.4","c03"),routes:[{path:"/0.7.4/",component:d("/0.7.4/","c83"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions-overview",component:d("/0.7.4/actions-overview","2f2"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/auth",component:d("/0.7.4/actions/auth","e5f"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/dbsize",component:d("/0.7.4/actions/dbsize","038"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/del",component:d("/0.7.4/actions/del","828"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/exists",component:d("/0.7.4/actions/exists","4fc"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/flushdb",component:d("/0.7.4/actions/flushdb","5bc"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/get",component:d("/0.7.4/actions/get","bd0"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/heya",component:d("/0.7.4/actions/heya","014"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/keylen",component:d("/0.7.4/actions/keylen","80d"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/lget",component:d("/0.7.4/actions/lget","cb2"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/lmod",component:d("/0.7.4/actions/lmod","ace"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/lset",component:d("/0.7.4/actions/lset","35c"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/lskeys",component:d("/0.7.4/actions/lskeys","e52"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/mget",component:d("/0.7.4/actions/mget","b46"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/mksnap",component:d("/0.7.4/actions/mksnap","c4e"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/mpop",component:d("/0.7.4/actions/mpop","05e"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/mset",component:d("/0.7.4/actions/mset","350"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/mupdate",component:d("/0.7.4/actions/mupdate","e7f"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/pop",component:d("/0.7.4/actions/pop","3f5"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/sdel",component:d("/0.7.4/actions/sdel","f16"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/set",component:d("/0.7.4/actions/set","69d"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/sset",component:d("/0.7.4/actions/sset","33a"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/supdate",component:d("/0.7.4/actions/supdate","71b"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/update",component:d("/0.7.4/actions/update","75a"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/uset",component:d("/0.7.4/actions/uset","313"),exact:!0,sidebar:"docs"},{path:"/0.7.4/actions/whereami",component:d("/0.7.4/actions/whereami","2fc"),exact:!0,sidebar:"docs"},{path:"/0.7.4/all-actions",component:d("/0.7.4/all-actions","f3e"),exact:!0,sidebar:"docs"},{path:"/0.7.4/auth",component:d("/0.7.4/auth","c88"),exact:!0,sidebar:"docs"},{path:"/0.7.4/benchmarking",component:d("/0.7.4/benchmarking","f80"),exact:!0,sidebar:"docs"},{path:"/0.7.4/building-from-source",component:d("/0.7.4/building-from-source","6ab"),exact:!0,sidebar:"docs"},{path:"/0.7.4/clients",component:d("/0.7.4/clients","229"),exact:!0,sidebar:"docs"},{path:"/0.7.4/config",component:d("/0.7.4/config","242"),exact:!0,sidebar:"docs"},{path:"/0.7.4/config-cmd",component:d("/0.7.4/config-cmd","c54"),exact:!0,sidebar:"docs"},{path:"/0.7.4/config-env",component:d("/0.7.4/config-env","d6f"),exact:!0,sidebar:"docs"},{path:"/0.7.4/config-files",component:d("/0.7.4/config-files","9a3"),exact:!0,sidebar:"docs"},{path:"/0.7.4/containers",component:d("/0.7.4/containers","6cf"),exact:!0,sidebar:"docs"},{path:"/0.7.4/ddl",component:d("/0.7.4/ddl","618"),exact:!0,sidebar:"docs"},{path:"/0.7.4/deployment-notes",component:d("/0.7.4/deployment-notes","e00"),exact:!0,sidebar:"docs"},{path:"/0.7.4/examples",component:d("/0.7.4/examples","0d3"),exact:!0,sidebar:"docs"},{path:"/0.7.4/getting-started",component:d("/0.7.4/getting-started","268"),exact:!0,sidebar:"docs"},{path:"/0.7.4/perf-guide",component:d("/0.7.4/perf-guide","854"),exact:!0,sidebar:"docs"},{path:"/0.7.4/persistence",component:d("/0.7.4/persistence","ad3"),exact:!0,sidebar:"docs"},{path:"/0.7.4/protocol/data-types",component:d("/0.7.4/protocol/data-types","14e"),exact:!0,sidebar:"docs"},{path:"/0.7.4/protocol/errors",component:d("/0.7.4/protocol/errors","b55"),exact:!0,sidebar:"docs"},{path:"/0.7.4/protocol/response-codes",component:d("/0.7.4/protocol/response-codes","310"),exact:!0,sidebar:"docs"},{path:"/0.7.4/protocol/skyhash",component:d("/0.7.4/protocol/skyhash","c7f"),exact:!0,sidebar:"docs"},{path:"/0.7.4/snapshots",component:d("/0.7.4/snapshots","f1a"),exact:!0,sidebar:"docs"},{path:"/0.7.4/ssl",component:d("/0.7.4/ssl","7d1"),exact:!0,sidebar:"docs"}]}]},{path:"/0.7.5",component:d("/0.7.5","1e6"),routes:[{path:"/0.7.5",component:d("/0.7.5","a72"),routes:[{path:"/0.7.5/",component:d("/0.7.5/","d24"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions-overview",component:d("/0.7.5/actions-overview","777"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/auth",component:d("/0.7.5/actions/auth","371"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/dbsize",component:d("/0.7.5/actions/dbsize","c95"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/del",component:d("/0.7.5/actions/del","58a"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/exists",component:d("/0.7.5/actions/exists","787"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/flushdb",component:d("/0.7.5/actions/flushdb","174"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/get",component:d("/0.7.5/actions/get","709"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/heya",component:d("/0.7.5/actions/heya","da7"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/keylen",component:d("/0.7.5/actions/keylen","4ff"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/lget",component:d("/0.7.5/actions/lget","553"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/lmod",component:d("/0.7.5/actions/lmod","4a3"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/lset",component:d("/0.7.5/actions/lset","a57"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/lskeys",component:d("/0.7.5/actions/lskeys","9ce"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/mget",component:d("/0.7.5/actions/mget","567"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/mksnap",component:d("/0.7.5/actions/mksnap","49b"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/mpop",component:d("/0.7.5/actions/mpop","0a0"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/mset",component:d("/0.7.5/actions/mset","0cc"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/mupdate",component:d("/0.7.5/actions/mupdate","43b"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/pop",component:d("/0.7.5/actions/pop","8f4"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/sdel",component:d("/0.7.5/actions/sdel","1ad"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/set",component:d("/0.7.5/actions/set","d68"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/sset",component:d("/0.7.5/actions/sset","c72"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/supdate",component:d("/0.7.5/actions/supdate","157"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/sys",component:d("/0.7.5/actions/sys","2e8"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/update",component:d("/0.7.5/actions/update","34a"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/uset",component:d("/0.7.5/actions/uset","e6c"),exact:!0,sidebar:"docs"},{path:"/0.7.5/actions/whereami",component:d("/0.7.5/actions/whereami","371"),exact:!0,sidebar:"docs"},{path:"/0.7.5/all-actions",component:d("/0.7.5/all-actions","b58"),exact:!0,sidebar:"docs"},{path:"/0.7.5/auth",component:d("/0.7.5/auth","704"),exact:!0,sidebar:"docs"},{path:"/0.7.5/benchmarking",component:d("/0.7.5/benchmarking","f68"),exact:!0,sidebar:"docs"},{path:"/0.7.5/building-from-source",component:d("/0.7.5/building-from-source","33d"),exact:!0,sidebar:"docs"},{path:"/0.7.5/clients",component:d("/0.7.5/clients","06d"),exact:!0,sidebar:"docs"},{path:"/0.7.5/config",component:d("/0.7.5/config","c93"),exact:!0,sidebar:"docs"},{path:"/0.7.5/config-cmd",component:d("/0.7.5/config-cmd","ca3"),exact:!0,sidebar:"docs"},{path:"/0.7.5/config-env",component:d("/0.7.5/config-env","b94"),exact:!0,sidebar:"docs"},{path:"/0.7.5/config-files",component:d("/0.7.5/config-files","9d3"),exact:!0,sidebar:"docs"},{path:"/0.7.5/containers",component:d("/0.7.5/containers","b15"),exact:!0,sidebar:"docs"},{path:"/0.7.5/ddl",component:d("/0.7.5/ddl","24f"),exact:!0,sidebar:"docs"},{path:"/0.7.5/deployment-notes",component:d("/0.7.5/deployment-notes","6c6"),exact:!0,sidebar:"docs"},{path:"/0.7.5/examples",component:d("/0.7.5/examples","0d3"),exact:!0,sidebar:"docs"},{path:"/0.7.5/getting-started",component:d("/0.7.5/getting-started","1f5"),exact:!0,sidebar:"docs"},{path:"/0.7.5/perf-guide",component:d("/0.7.5/perf-guide","ce5"),exact:!0,sidebar:"docs"},{path:"/0.7.5/persistence",component:d("/0.7.5/persistence","9dc"),exact:!0,sidebar:"docs"},{path:"/0.7.5/protocol/data-types",component:d("/0.7.5/protocol/data-types","d79"),exact:!0,sidebar:"docs"},{path:"/0.7.5/protocol/errors",component:d("/0.7.5/protocol/errors","bd5"),exact:!0,sidebar:"docs"},{path:"/0.7.5/protocol/response-codes",component:d("/0.7.5/protocol/response-codes","2b0"),exact:!0,sidebar:"docs"},{path:"/0.7.5/protocol/skyhash",component:d("/0.7.5/protocol/skyhash","1cf"),exact:!0,sidebar:"docs"},{path:"/0.7.5/snapshots",component:d("/0.7.5/snapshots","b0b"),exact:!0,sidebar:"docs"},{path:"/0.7.5/ssl",component:d("/0.7.5/ssl","6f6"),exact:!0,sidebar:"docs"}]}]},{path:"/0.8.0",component:d("/0.8.0","8eb"),routes:[{path:"/0.8.0",component:d("/0.8.0","6a3"),routes:[{path:"/0.8.0/",component:d("/0.8.0/","260"),exact:!0,sidebar:"docs"},{path:"/0.8.0/architecture",component:d("/0.8.0/architecture","f14"),exact:!0,sidebar:"docs"},{path:"/0.8.0/benchmarking",component:d("/0.8.0/benchmarking","245"),exact:!0,sidebar:"docs"},{path:"/0.8.0/blueql/dcl",component:d("/0.8.0/blueql/dcl","526"),exact:!0,sidebar:"docs"},{path:"/0.8.0/blueql/ddl",component:d("/0.8.0/blueql/ddl","163"),exact:!0,sidebar:"docs"},{path:"/0.8.0/blueql/dml",component:d("/0.8.0/blueql/dml","6e3"),exact:!0,sidebar:"docs"},{path:"/0.8.0/blueql/overview",component:d("/0.8.0/blueql/overview","246"),exact:!0,sidebar:"docs"},{path:"/0.8.0/category/blueql",component:d("/0.8.0/category/blueql","1bc"),exact:!0,sidebar:"docs"},{path:"/0.8.0/category/system-management",component:d("/0.8.0/category/system-management","dfb"),exact:!0,sidebar:"docs"},{path:"/0.8.0/deployment",component:d("/0.8.0/deployment","b3c"),exact:!0,sidebar:"docs"},{path:"/0.8.0/installation",component:d("/0.8.0/installation","29e"),exact:!0,sidebar:"docs"},{path:"/0.8.0/libraries",component:d("/0.8.0/libraries","3f0"),exact:!0,sidebar:"docs"},{path:"/0.8.0/limits",component:d("/0.8.0/limits","212"),exact:!0,sidebar:"docs"},{path:"/0.8.0/protocol/errors",component:d("/0.8.0/protocol/errors","6c2"),exact:!0,sidebar:"docs"},{path:"/0.8.0/protocol/networking",component:d("/0.8.0/protocol/networking","267"),exact:!0,sidebar:"docs"},{path:"/0.8.0/protocol/overview",component:d("/0.8.0/protocol/overview","8de"),exact:!0,sidebar:"docs"},{path:"/0.8.0/resources/migration",component:d("/0.8.0/resources/migration","38e"),exact:!0,sidebar:"docs"},{path:"/0.8.0/resources/overview",component:d("/0.8.0/resources/overview","e37"),exact:!0,sidebar:"docs"},{path:"/0.8.0/system/administration",component:d("/0.8.0/system/administration","f45"),exact:!0,sidebar:"docs"},{path:"/0.8.0/system/configuration",component:d("/0.8.0/system/configuration","34c"),exact:!0,sidebar:"docs"},{path:"/0.8.0/using-the-repl",component:d("/0.8.0/using-the-repl","b1f"),exact:!0,sidebar:"docs"}]}]},{path:"/0.8.1",component:d("/0.8.1","099"),routes:[{path:"/0.8.1",component:d("/0.8.1","ccf"),routes:[{path:"/0.8.1/",component:d("/0.8.1/","419"),exact:!0,sidebar:"docs"},{path:"/0.8.1/architecture",component:d("/0.8.1/architecture","a86"),exact:!0,sidebar:"docs"},{path:"/0.8.1/benchmarking",component:d("/0.8.1/benchmarking","87f"),exact:!0,sidebar:"docs"},{path:"/0.8.1/blueql/",component:d("/0.8.1/blueql/","31e"),exact:!0,sidebar:"docs"},{path:"/0.8.1/blueql/dcl",component:d("/0.8.1/blueql/dcl","455"),exact:!0,sidebar:"docs"},{path:"/0.8.1/blueql/ddl",component:d("/0.8.1/blueql/ddl","5eb"),exact:!0,sidebar:"docs"},{path:"/0.8.1/blueql/dml",component:d("/0.8.1/blueql/dml","93e"),exact:!0,sidebar:"docs"},{path:"/0.8.1/blueql/overview",component:d("/0.8.1/blueql/overview","4c2"),exact:!0,sidebar:"docs"},{path:"/0.8.1/deployment",component:d("/0.8.1/deployment","6bc"),exact:!0,sidebar:"docs"},{path:"/0.8.1/installation",component:d("/0.8.1/installation","8a9"),exact:!0,sidebar:"docs"},{path:"/0.8.1/libraries",component:d("/0.8.1/libraries","207"),exact:!0,sidebar:"docs"},{path:"/0.8.1/limits",component:d("/0.8.1/limits","0b5"),exact:!0,sidebar:"docs"},{path:"/0.8.1/protocol/",component:d("/0.8.1/protocol/","ac8"),exact:!0,sidebar:"docs"},{path:"/0.8.1/protocol/errors",component:d("/0.8.1/protocol/errors","9d8"),exact:!0,sidebar:"docs"},{path:"/0.8.1/protocol/specification",component:d("/0.8.1/protocol/specification","2d0"),exact:!0,sidebar:"docs"},{path:"/0.8.1/querying",component:d("/0.8.1/querying","f4c"),exact:!0,sidebar:"docs"},{path:"/0.8.1/resources/migration",component:d("/0.8.1/resources/migration","f60"),exact:!0,sidebar:"docs"},{path:"/0.8.1/resources/platform-support",component:d("/0.8.1/resources/platform-support","0a0"),exact:!0,sidebar:"docs"},{path:"/0.8.1/resources/useful-links",component:d("/0.8.1/resources/useful-links","175"),exact:!0,sidebar:"docs"},{path:"/0.8.1/system/",component:d("/0.8.1/system/","ca6"),exact:!0,sidebar:"docs"},{path:"/0.8.1/system/configuration",component:d("/0.8.1/system/configuration","c97"),exact:!0,sidebar:"docs"},{path:"/0.8.1/system/global-management",component:d("/0.8.1/system/global-management","807"),exact:!0,sidebar:"docs"},{path:"/0.8.1/system/recovery",component:d("/0.8.1/system/recovery","9f7"),exact:!0,sidebar:"docs"},{path:"/0.8.1/system/user-management",component:d("/0.8.1/system/user-management","9e6"),exact:!0,sidebar:"docs"},{path:"/0.8.1/using-the-repl",component:d("/0.8.1/using-the-repl","21e"),exact:!0,sidebar:"docs"},{path:"/0.8.1/versions",component:d("/0.8.1/versions","f76"),exact:!0}]}]},{path:"/",component:d("/","b05"),routes:[{path:"/",component:d("/","a74"),routes:[{path:"/architecture",component:d("/architecture","a9a"),exact:!0,sidebar:"docs"},{path:"/benchmarking",component:d("/benchmarking","3d5"),exact:!0,sidebar:"docs"},{path:"/blueql/",component:d("/blueql/","3c8"),exact:!0,sidebar:"docs"},{path:"/blueql/dcl",component:d("/blueql/dcl","7e2"),exact:!0,sidebar:"docs"},{path:"/blueql/ddl",component:d("/blueql/ddl","295"),exact:!0,sidebar:"docs"},{path:"/blueql/dml",component:d("/blueql/dml","a39"),exact:!0,sidebar:"docs"},{path:"/blueql/overview",component:d("/blueql/overview","f9b"),exact:!0,sidebar:"docs"},{path:"/deployment",component:d("/deployment","76f"),exact:!0,sidebar:"docs"},{path:"/installation",component:d("/installation","de0"),exact:!0,sidebar:"docs"},{path:"/libraries",component:d("/libraries","ece"),exact:!0,sidebar:"docs"},{path:"/limits",component:d("/limits","186"),exact:!0,sidebar:"docs"},{path:"/protocol/",component:d("/protocol/","a22"),exact:!0,sidebar:"docs"},{path:"/protocol/errors",component:d("/protocol/errors","817"),exact:!0,sidebar:"docs"},{path:"/protocol/specification",component:d("/protocol/specification","588"),exact:!0,sidebar:"docs"},{path:"/querying",component:d("/querying","5d4"),exact:!0,sidebar:"docs"},{path:"/resources/migration",component:d("/resources/migration","afb"),exact:!0,sidebar:"docs"},{path:"/resources/platform-support",component:d("/resources/platform-support","249"),exact:!0,sidebar:"docs"},{path:"/resources/useful-links",component:d("/resources/useful-links","9ff"),exact:!0,sidebar:"docs"},{path:"/system/",component:d("/system/","3e0"),exact:!0,sidebar:"docs"},{path:"/system/configuration",component:d("/system/configuration","cf3"),exact:!0,sidebar:"docs"},{path:"/system/global-management",component:d("/system/global-management","3b0"),exact:!0,sidebar:"docs"},{path:"/system/recovery",component:d("/system/recovery","9cd"),exact:!0,sidebar:"docs"},{path:"/system/user-management",component:d("/system/user-management","710"),exact:!0,sidebar:"docs"},{path:"/using-the-repl",component:d("/using-the-repl","315"),exact:!0,sidebar:"docs"},{path:"/versions",component:d("/versions","c96"),exact:!0},{path:"/",component:d("/","bea"),exact:!0,sidebar:"docs"}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),i=n(545),s=n(8193);const l=[n(119),n(6134),n(6294),n(1043)];var c=n(8328),u=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),h=n(4586),g=n(6025),b=n(6342),y=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),_=n(1463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,u.zy)();return e+(0,x.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function T(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(y.be,{image:n}),(0,p.jsx)(S,{}),(0,p.jsx)(E,{}),(0,p.jsx)(_.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function C(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var N=n(6125),L=n(6988),O=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,O.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class j extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const D=j,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n

\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var X=n(6921);const Q=new Set,Z=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!Z.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!Z.has(e))(e)&&(Z.add(e),P(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};P(window.location.pathname).then(s)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"0.8.2","isLast":true,"path":"/","mainDocId":"index","docs":[{"id":"architecture","path":"/architecture","sidebar":"docs"},{"id":"benchmarking","path":"/benchmarking","sidebar":"docs"},{"id":"blueql/dcl","path":"/blueql/dcl","sidebar":"docs"},{"id":"blueql/ddl","path":"/blueql/ddl","sidebar":"docs"},{"id":"blueql/dml","path":"/blueql/dml","sidebar":"docs"},{"id":"blueql/index","path":"/blueql/","sidebar":"docs"},{"id":"blueql/overview","path":"/blueql/overview","sidebar":"docs"},{"id":"deployment","path":"/deployment","sidebar":"docs"},{"id":"index","path":"/","sidebar":"docs"},{"id":"installation","path":"/installation","sidebar":"docs"},{"id":"libraries","path":"/libraries","sidebar":"docs"},{"id":"limits","path":"/limits","sidebar":"docs"},{"id":"protocol/errors","path":"/protocol/errors","sidebar":"docs"},{"id":"protocol/index","path":"/protocol/","sidebar":"docs"},{"id":"protocol/specification","path":"/protocol/specification","sidebar":"docs"},{"id":"querying","path":"/querying","sidebar":"docs"},{"id":"resources/migration","path":"/resources/migration","sidebar":"docs"},{"id":"resources/platform-support","path":"/resources/platform-support","sidebar":"docs"},{"id":"resources/useful-links","path":"/resources/useful-links","sidebar":"docs"},{"id":"system/configuration","path":"/system/configuration","sidebar":"docs"},{"id":"system/global-management","path":"/system/global-management","sidebar":"docs"},{"id":"system/index","path":"/system/","sidebar":"docs"},{"id":"system/recovery","path":"/system/recovery","sidebar":"docs"},{"id":"system/user-management","path":"/system/user-management","sidebar":"docs"},{"id":"using-the-repl","path":"/using-the-repl","sidebar":"docs"},{"id":"versions","path":"/versions"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/","label":"index"}}}},{"name":"0.8.1","label":"0.8.1","isLast":false,"path":"/0.8.1","mainDocId":"index","docs":[{"id":"architecture","path":"/0.8.1/architecture","sidebar":"docs"},{"id":"benchmarking","path":"/0.8.1/benchmarking","sidebar":"docs"},{"id":"blueql/dcl","path":"/0.8.1/blueql/dcl","sidebar":"docs"},{"id":"blueql/ddl","path":"/0.8.1/blueql/ddl","sidebar":"docs"},{"id":"blueql/dml","path":"/0.8.1/blueql/dml","sidebar":"docs"},{"id":"blueql/index","path":"/0.8.1/blueql/","sidebar":"docs"},{"id":"blueql/overview","path":"/0.8.1/blueql/overview","sidebar":"docs"},{"id":"deployment","path":"/0.8.1/deployment","sidebar":"docs"},{"id":"index","path":"/0.8.1/","sidebar":"docs"},{"id":"installation","path":"/0.8.1/installation","sidebar":"docs"},{"id":"libraries","path":"/0.8.1/libraries","sidebar":"docs"},{"id":"limits","path":"/0.8.1/limits","sidebar":"docs"},{"id":"protocol/errors","path":"/0.8.1/protocol/errors","sidebar":"docs"},{"id":"protocol/index","path":"/0.8.1/protocol/","sidebar":"docs"},{"id":"protocol/specification","path":"/0.8.1/protocol/specification","sidebar":"docs"},{"id":"querying","path":"/0.8.1/querying","sidebar":"docs"},{"id":"resources/migration","path":"/0.8.1/resources/migration","sidebar":"docs"},{"id":"resources/platform-support","path":"/0.8.1/resources/platform-support","sidebar":"docs"},{"id":"resources/useful-links","path":"/0.8.1/resources/useful-links","sidebar":"docs"},{"id":"system/configuration","path":"/0.8.1/system/configuration","sidebar":"docs"},{"id":"system/global-management","path":"/0.8.1/system/global-management","sidebar":"docs"},{"id":"system/index","path":"/0.8.1/system/","sidebar":"docs"},{"id":"system/recovery","path":"/0.8.1/system/recovery","sidebar":"docs"},{"id":"system/user-management","path":"/0.8.1/system/user-management","sidebar":"docs"},{"id":"using-the-repl","path":"/0.8.1/using-the-repl","sidebar":"docs"},{"id":"versions","path":"/0.8.1/versions"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/0.8.1/","label":"index"}}}},{"name":"0.8.0","label":"0.8.0","isLast":false,"path":"/0.8.0","mainDocId":"index","docs":[{"id":"architecture","path":"/0.8.0/architecture","sidebar":"docs"},{"id":"benchmarking","path":"/0.8.0/benchmarking","sidebar":"docs"},{"id":"blueql/dcl","path":"/0.8.0/blueql/dcl","sidebar":"docs"},{"id":"blueql/ddl","path":"/0.8.0/blueql/ddl","sidebar":"docs"},{"id":"blueql/dml","path":"/0.8.0/blueql/dml","sidebar":"docs"},{"id":"blueql/overview","path":"/0.8.0/blueql/overview","sidebar":"docs"},{"id":"deployment","path":"/0.8.0/deployment","sidebar":"docs"},{"id":"index","path":"/0.8.0/","sidebar":"docs"},{"id":"installation","path":"/0.8.0/installation","sidebar":"docs"},{"id":"libraries","path":"/0.8.0/libraries","sidebar":"docs"},{"id":"limits","path":"/0.8.0/limits","sidebar":"docs"},{"id":"protocol/errors","path":"/0.8.0/protocol/errors","sidebar":"docs"},{"id":"protocol/networking","path":"/0.8.0/protocol/networking","sidebar":"docs"},{"id":"protocol/overview","path":"/0.8.0/protocol/overview","sidebar":"docs"},{"id":"resources/migration","path":"/0.8.0/resources/migration","sidebar":"docs"},{"id":"resources/overview","path":"/0.8.0/resources/overview","sidebar":"docs"},{"id":"system/administration","path":"/0.8.0/system/administration","sidebar":"docs"},{"id":"system/configuration","path":"/0.8.0/system/configuration","sidebar":"docs"},{"id":"using-the-repl","path":"/0.8.0/using-the-repl","sidebar":"docs"},{"id":"/category/blueql","path":"/0.8.0/category/blueql","sidebar":"docs"},{"id":"/category/system-management","path":"/0.8.0/category/system-management","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/0.8.0/","label":"index"}}}},{"name":"0.7.5","label":"0.7.5","isLast":false,"path":"/0.7.5","mainDocId":"index","docs":[{"id":"actions-overview","path":"/0.7.5/actions-overview","sidebar":"docs"},{"id":"actions/auth","path":"/0.7.5/actions/auth","sidebar":"docs"},{"id":"actions/dbsize","path":"/0.7.5/actions/dbsize","sidebar":"docs"},{"id":"actions/del","path":"/0.7.5/actions/del","sidebar":"docs"},{"id":"actions/exists","path":"/0.7.5/actions/exists","sidebar":"docs"},{"id":"actions/flushdb","path":"/0.7.5/actions/flushdb","sidebar":"docs"},{"id":"actions/get","path":"/0.7.5/actions/get","sidebar":"docs"},{"id":"actions/heya","path":"/0.7.5/actions/heya","sidebar":"docs"},{"id":"actions/keylen","path":"/0.7.5/actions/keylen","sidebar":"docs"},{"id":"actions/lget","path":"/0.7.5/actions/lget","sidebar":"docs"},{"id":"actions/lmod","path":"/0.7.5/actions/lmod","sidebar":"docs"},{"id":"actions/lset","path":"/0.7.5/actions/lset","sidebar":"docs"},{"id":"actions/lskeys","path":"/0.7.5/actions/lskeys","sidebar":"docs"},{"id":"actions/mget","path":"/0.7.5/actions/mget","sidebar":"docs"},{"id":"actions/mksnap","path":"/0.7.5/actions/mksnap","sidebar":"docs"},{"id":"actions/mpop","path":"/0.7.5/actions/mpop","sidebar":"docs"},{"id":"actions/mset","path":"/0.7.5/actions/mset","sidebar":"docs"},{"id":"actions/mupdate","path":"/0.7.5/actions/mupdate","sidebar":"docs"},{"id":"actions/pop","path":"/0.7.5/actions/pop","sidebar":"docs"},{"id":"actions/sdel","path":"/0.7.5/actions/sdel","sidebar":"docs"},{"id":"actions/set","path":"/0.7.5/actions/set","sidebar":"docs"},{"id":"actions/sset","path":"/0.7.5/actions/sset","sidebar":"docs"},{"id":"actions/supdate","path":"/0.7.5/actions/supdate","sidebar":"docs"},{"id":"actions/sys","path":"/0.7.5/actions/sys","sidebar":"docs"},{"id":"actions/update","path":"/0.7.5/actions/update","sidebar":"docs"},{"id":"actions/uset","path":"/0.7.5/actions/uset","sidebar":"docs"},{"id":"actions/whereami","path":"/0.7.5/actions/whereami","sidebar":"docs"},{"id":"all-actions","path":"/0.7.5/all-actions","sidebar":"docs"},{"id":"auth","path":"/0.7.5/auth","sidebar":"docs"},{"id":"benchmarking","path":"/0.7.5/benchmarking","sidebar":"docs"},{"id":"building-from-source","path":"/0.7.5/building-from-source","sidebar":"docs"},{"id":"clients","path":"/0.7.5/clients","sidebar":"docs"},{"id":"config","path":"/0.7.5/config","sidebar":"docs"},{"id":"config-cmd","path":"/0.7.5/config-cmd","sidebar":"docs"},{"id":"config-env","path":"/0.7.5/config-env","sidebar":"docs"},{"id":"config-files","path":"/0.7.5/config-files","sidebar":"docs"},{"id":"containers","path":"/0.7.5/containers","sidebar":"docs"},{"id":"ddl","path":"/0.7.5/ddl","sidebar":"docs"},{"id":"deployment-notes","path":"/0.7.5/deployment-notes","sidebar":"docs"},{"id":"examples","path":"/0.7.5/examples","sidebar":"docs"},{"id":"getting-started","path":"/0.7.5/getting-started","sidebar":"docs"},{"id":"index","path":"/0.7.5/","sidebar":"docs"},{"id":"perf-guide","path":"/0.7.5/perf-guide","sidebar":"docs"},{"id":"persistence","path":"/0.7.5/persistence","sidebar":"docs"},{"id":"protocol/data-types","path":"/0.7.5/protocol/data-types","sidebar":"docs"},{"id":"protocol/errors","path":"/0.7.5/protocol/errors","sidebar":"docs"},{"id":"protocol/response-codes","path":"/0.7.5/protocol/response-codes","sidebar":"docs"},{"id":"protocol/skyhash","path":"/0.7.5/protocol/skyhash","sidebar":"docs"},{"id":"snapshots","path":"/0.7.5/snapshots","sidebar":"docs"},{"id":"ssl","path":"/0.7.5/ssl","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/0.7.5/","label":"index"}}}},{"name":"0.7.4","label":"0.7.4","isLast":false,"path":"/0.7.4","mainDocId":"index","docs":[{"id":"actions-overview","path":"/0.7.4/actions-overview","sidebar":"docs"},{"id":"actions/auth","path":"/0.7.4/actions/auth","sidebar":"docs"},{"id":"actions/dbsize","path":"/0.7.4/actions/dbsize","sidebar":"docs"},{"id":"actions/del","path":"/0.7.4/actions/del","sidebar":"docs"},{"id":"actions/exists","path":"/0.7.4/actions/exists","sidebar":"docs"},{"id":"actions/flushdb","path":"/0.7.4/actions/flushdb","sidebar":"docs"},{"id":"actions/get","path":"/0.7.4/actions/get","sidebar":"docs"},{"id":"actions/heya","path":"/0.7.4/actions/heya","sidebar":"docs"},{"id":"actions/keylen","path":"/0.7.4/actions/keylen","sidebar":"docs"},{"id":"actions/lget","path":"/0.7.4/actions/lget","sidebar":"docs"},{"id":"actions/lmod","path":"/0.7.4/actions/lmod","sidebar":"docs"},{"id":"actions/lset","path":"/0.7.4/actions/lset","sidebar":"docs"},{"id":"actions/lskeys","path":"/0.7.4/actions/lskeys","sidebar":"docs"},{"id":"actions/mget","path":"/0.7.4/actions/mget","sidebar":"docs"},{"id":"actions/mksnap","path":"/0.7.4/actions/mksnap","sidebar":"docs"},{"id":"actions/mpop","path":"/0.7.4/actions/mpop","sidebar":"docs"},{"id":"actions/mset","path":"/0.7.4/actions/mset","sidebar":"docs"},{"id":"actions/mupdate","path":"/0.7.4/actions/mupdate","sidebar":"docs"},{"id":"actions/pop","path":"/0.7.4/actions/pop","sidebar":"docs"},{"id":"actions/sdel","path":"/0.7.4/actions/sdel","sidebar":"docs"},{"id":"actions/set","path":"/0.7.4/actions/set","sidebar":"docs"},{"id":"actions/sset","path":"/0.7.4/actions/sset","sidebar":"docs"},{"id":"actions/supdate","path":"/0.7.4/actions/supdate","sidebar":"docs"},{"id":"actions/update","path":"/0.7.4/actions/update","sidebar":"docs"},{"id":"actions/uset","path":"/0.7.4/actions/uset","sidebar":"docs"},{"id":"actions/whereami","path":"/0.7.4/actions/whereami","sidebar":"docs"},{"id":"all-actions","path":"/0.7.4/all-actions","sidebar":"docs"},{"id":"auth","path":"/0.7.4/auth","sidebar":"docs"},{"id":"benchmarking","path":"/0.7.4/benchmarking","sidebar":"docs"},{"id":"building-from-source","path":"/0.7.4/building-from-source","sidebar":"docs"},{"id":"clients","path":"/0.7.4/clients","sidebar":"docs"},{"id":"config","path":"/0.7.4/config","sidebar":"docs"},{"id":"config-cmd","path":"/0.7.4/config-cmd","sidebar":"docs"},{"id":"config-env","path":"/0.7.4/config-env","sidebar":"docs"},{"id":"config-files","path":"/0.7.4/config-files","sidebar":"docs"},{"id":"containers","path":"/0.7.4/containers","sidebar":"docs"},{"id":"ddl","path":"/0.7.4/ddl","sidebar":"docs"},{"id":"deployment-notes","path":"/0.7.4/deployment-notes","sidebar":"docs"},{"id":"examples","path":"/0.7.4/examples","sidebar":"docs"},{"id":"getting-started","path":"/0.7.4/getting-started","sidebar":"docs"},{"id":"index","path":"/0.7.4/","sidebar":"docs"},{"id":"perf-guide","path":"/0.7.4/perf-guide","sidebar":"docs"},{"id":"persistence","path":"/0.7.4/persistence","sidebar":"docs"},{"id":"protocol/data-types","path":"/0.7.4/protocol/data-types","sidebar":"docs"},{"id":"protocol/errors","path":"/0.7.4/protocol/errors","sidebar":"docs"},{"id":"protocol/response-codes","path":"/0.7.4/protocol/response-codes","sidebar":"docs"},{"id":"protocol/skyhash","path":"/0.7.4/protocol/skyhash","sidebar":"docs"},{"id":"snapshots","path":"/0.7.4/snapshots","sidebar":"docs"},{"id":"ssl","path":"/0.7.4/ssl","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/0.7.4/","label":"index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.2.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.2.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.2.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.2.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.2.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.2.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.2.1"}}}');var c=n(4848);const u={siteConfig:o.A,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(6540),o=n(8193),a=n(5260),i=n(440),s=n(781),l=n(3102),c=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(h,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const m=e=>(0,c.jsx)(f,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),s=n(6654),l=n(8193),c=n(3427),u=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),x=(0,c.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>_.current));const E=p||f;const S=(0,s.A)(E),T=E?.replace("pathname://","");let A=void 0!==T?(C=T,b&&(e=>e.startsWith("/"))(C)?k(C):C):void 0;var C;A&&S&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),L=n?o.k2:o.N_,O=l.A.canUseIntersectionObserver,R=(0,r.useRef)(),I=()=>{N.current||null==A||(window.docusaurus.preload(A),N.current=!0)};(0,r.useEffect)((()=>(!O&&S&&null!=A&&window.docusaurus.prefetch(A),()=>{O&&R.current&&R.current.disconnect()})),[R,A,O,S]);const P=A?.startsWith("#")??!1,j=!y.target||"_self"===y.target,D=!A||!S||!j||P;return g||!P&&D||x.collectLink(A),y.id&&x.collectAnchor(y.id),D?(0,d.jsx)("a",{ref:_,href:A,...E&&!S&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(L,{...y,onMouseEnter:I,onTouchStart:I,innerRef:e=>{_.current=e,O&&e&&S&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),R.current.observe(e))},to:A,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540),o=n(4848);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>p,Gy:()=>u,HW:()=>g,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>{try{return function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return s(t)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return l(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.A,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8586)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),s=n(3427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},781:(e,t,n)=>{"use strict";n.d(t,{A:()=>ft});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),s=n(6347),l=n(1312),c=n(5062),u=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const _={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",_.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const S={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(S.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function C(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(T,{className:A.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var N=n(9876),L=n(3104);var O=n(9532),R=n(5600);const I=r.createContext(null);function P(e){let{children:t}=e;const n=function(){const e=(0,N.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,O.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(I.Provider,{value:n,children:t})}function j(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(I);if(!e)throw new O.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:j(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.A)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,o.A)($.toggleIcon,$.darkToggleIcon)})]})})}const q=r.memo(H),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,u.jsx)(q,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var G=n(3465);function Y(){return(0,u.jsx)(G.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,N.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function X(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Y,{}),(0,u.jsx)(W,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Q=n(8774),Z=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,Z.A)(r),p=(0,Z.A)(t),f=(0,Z.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Q.A,{href:l?f:o,...c,...h}):(0,u.jsx)(Q.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),se=n(9169),le=n(4586);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Se,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Se,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(2131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var be=n(418);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,ye.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,s.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ve,{className:n,children:(0,u.jsx)(be.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ke.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),h=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],g=(0,ke.Vd)(n)[0],b=t&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&h.length>1?void 0:_e(g).path;return h.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:y,items:h,isActive:r?()=>!1:void 0})}};function Se(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ee[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Te(){const e=(0,N.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Se,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ce(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function Ne(){const e=(0,N.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(X,{}),primaryMenu:(0,u.jsx)(Te,{}),secondaryMenu:(0,u.jsx)(Ce,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Oe(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,N.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Oe,{onClick:i.toggle}),(0,u.jsx)(Ne,{})]})}var Ie=n(440);const Pe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function je(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function De(e){let{error:t}=e;const n=(0,Ie.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Pe.errorBoundaryError,children:n})}class Me extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Fe="right";function ze(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,N.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ze,{})})}const Ue={colorModeToggle:"colorModeToggle_DEke"};function $e(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Me,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Se,{...e})},t)))})}function He(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function qe(){const e=(0,N.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Fe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(He,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Be,{}),(0,u.jsx)(Y,{}),(0,u.jsx)($e,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)($e,{items:r}),(0,u.jsx)(W,{className:Ue.colorModeToggle}),!o&&(0,u.jsx)(ve,{children:(0,u.jsx)(be.A,{})})]})})}function Ve(){return(0,u.jsx)(Re,{children:(0,u.jsx)(qe,{})})}function We(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,Z.A)(n),l=(0,Z.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Q.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function Ge(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(We,{item:t})},t.href??t.to)}function Ye(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Ge,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Ye,{column:e},t)))})}function Xe(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Qe(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(We,{item:t})}function Ze(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Qe,{item:e}),t.length!==n+1&&(0,u.jsx)(Xe,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ke,{columns:t}):(0,u.jsx)(Ze,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Z.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Q.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(at,{style:o,links:n&&n.length>0&&(0,u.jsx)(Je,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(ot,{copyright:t})})}const st=r.memo(it),lt=(0,O.fM)([F.a,k.oq,L.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(R.y_,{children:(0,u.jsx)(N.e,{children:(0,u.jsx)(P,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,u.jsx)(lt,{children:t})}var ut=n(1107);function dt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ut.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(je,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(De,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.J)(),(0,u.jsxs)(ct,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(C,{}),(0,u.jsx)(Ve,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(g.G.wrapper.main,pt.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(dt,{...e}),children:t})}),!n&&(0,u.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),s=n(1122),l=n(4848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.A)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(4848);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>c});var r=n(6540),o=n(8193),a=n(205),i=n(3109),s=n(4848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>m});var r=n(6540),o=n(2303),a=n(9466),i=n(9532),s=n(6342),l=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(6540),o=n(8193),a=n(9532),i=n(9466),s=n(6342),l=n(4848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),s=n(1754),l=n(9532),c=n(9466),u=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.C5?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),s=n(9532);function l(e){!function(e){const t=(0,i.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6342),u=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>m,w8:()=>y,C5:()=>p,$S:()=>h,cC:()=>f,B5:()=>T,Vd:()=>_,QB:()=>S,fW:()=>E,OF:()=>x,Y:()=>w});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),s=n(5597),l=n(2252),c=n(6588);function u(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){const t=(0,l.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,o.zy)(),t=(0,c.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.ys)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function _(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function E(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function T(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:u}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(6025),c=n(4586);var u=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),s=n(4848);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(4586);const r="default";function o(e,t){return`docs-${e}-${t}`}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>l});n(6540);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(2566);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),s="/"===i||i===r?i:(l=i,n?o(l):a(l));var l;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return o.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return o.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return o.removeTrailingSlash}});var a=n(2566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return a.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return a.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return a.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return a.removePrefix}});var i=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>T,yJ:()=>f,sC:()=>C,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(1561);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7022:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},5342:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,(function(){return t}));t=t.replace(//g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},6966:()=>{Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},132:()=>{!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,(function(){return t}))}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}}(Prism)},8586:(e,t,n)=>{var r={"./prism-bash":7022,"./prism-json":2514,"./prism-rust":5342,"./prism-sql":6966,"./prism-toml":132};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8586},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n