diff --git a/.ci/remark-lint/yarn.lock b/.ci/remark-lint/yarn.lock index 815edb323..f9fd70bbd 100644 --- a/.ci/remark-lint/yarn.lock +++ b/.ci/remark-lint/yarn.lock @@ -4,7 +4,7 @@ "@apidevtools/json-schema-ref-parser@11.1.0": version "11.1.0" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz#0608ed1ba47c377c6732e7185f2ea06731b58fde" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz" integrity sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag== dependencies: "@jsdevtools/ono" "^7.1.3" @@ -15,7 +15,7 @@ "@babel/code-frame@^7.21.4": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: "@babel/highlight" "^7.24.7" @@ -23,12 +23,12 @@ "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== "@babel/highlight@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== dependencies: "@babel/helper-validator-identifier" "^7.24.7" @@ -38,7 +38,7 @@ "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -50,12 +50,12 @@ "@jsdevtools/ono@^7.1.3": version "7.1.3" - resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== "@npmcli/config@^8.0.0": version "8.3.4" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.3.4.tgz#e2712c2215bb2659f39718b23bf7401f9ac1da59" + resolved "https://registry.npmjs.org/@npmcli/config/-/config-8.3.4.tgz" integrity sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw== dependencies: "@npmcli/map-workspaces" "^3.0.2" @@ -69,7 +69,7 @@ "@npmcli/git@^5.0.0": version "5.0.8" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" + resolved "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz" integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== dependencies: "@npmcli/promise-spawn" "^7.0.0" @@ -84,7 +84,7 @@ "@npmcli/map-workspaces@^3.0.2": version "3.0.6" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz" integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== dependencies: "@npmcli/name-from-folder" "^2.0.0" @@ -94,12 +94,12 @@ "@npmcli/name-from-folder@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + resolved "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz" integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== "@npmcli/package-json@^5.1.1": version "5.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.0.tgz#a1429d3111c10044c7efbfb0fce9f2c501f4cfad" + resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz" integrity sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ== dependencies: "@npmcli/git" "^5.0.0" @@ -112,132 +112,125 @@ "@npmcli/promise-spawn@^7.0.0": version "7.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532" + resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz" integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ== dependencies: which "^4.0.0" "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@types/concat-stream@^2.0.0": version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.3.tgz#1f5c2ad26525716c181191f7ed53408f78eb758e" + resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz" integrity sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ== dependencies: "@types/node" "*" "@types/debug@^4.0.0": version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/estree-jsx@^1.0.0": version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" + resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== dependencies: "@types/estree" "*" "@types/estree@*": version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/hast@^3.0.0": version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: "@types/unist" "*" "@types/is-empty@^1.0.0": version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.3.tgz#a2d55ea8a5ec57bf61e411ba2a9e5132fe4f0899" + resolved "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.3.tgz" integrity sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw== "@types/json-schema@^7.0.13": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/lodash.clonedeep@^4.5.7": version "4.5.9" - resolved "https://registry.yarnpkg.com/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz#ea48276c7cc18d080e00bb56cf965bcceb3f0fc1" + resolved "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz" integrity sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q== dependencies: "@types/lodash" "*" "@types/lodash@*": version "4.17.7" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz" integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== "@types/mdast@^4.0.0": version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== dependencies: "@types/unist" "*" "@types/ms@*": version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@*": - version "22.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.0.2.tgz#9fb1a2b31970871e8bf696f0e8a40d2e6d2bd04e" - integrity sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ== - dependencies: - undici-types "~6.11.1" - -"@types/node@^20.0.0": +"@types/node@*", "@types/node@^20.0.0": version "20.14.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.13.tgz#bf4fe8959ae1c43bc284de78bd6c01730933736b" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.13.tgz" integrity sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w== dependencies: undici-types "~5.26.4" "@types/supports-color@^8.0.0": version "8.1.3" - resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.3.tgz#b769cdce1d1bb1a3fa794e35b62c62acdf93c139" + resolved "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz" integrity sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg== "@types/text-table@^0.2.0": version "0.2.5" - resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.5.tgz#f9c609b81c943e9fc8d73ef82ad2f2a78be5f53b" + resolved "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.5.tgz" integrity sha512-hcZhlNvMkQG/k1vcZ6yHOl6WAYftQ2MLfTHcYRZ2xYZFD8tGVnE3qFV0lj1smQeDSR7/yY0PyuUalauf33bJeA== "@types/unist@*", "@types/unist@^3.0.0": version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" + resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz" integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== "@types/unist@^2.0.0": version "2.0.10" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== abbrev@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== ajv-formats@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" -ajv@8.12.0: +ajv@^8.0.0, ajv@8.12.0: version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -245,48 +238,38 @@ ajv@8.12.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^8.0.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -294,51 +277,51 @@ anymatch@~3.1.2: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== bail@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@~3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== ccount@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -347,32 +330,32 @@ chalk@^2.4.2: chalk@^5.0.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== character-entities-html4@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== character-entities-legacy@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== chokidar@^3.0.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -387,46 +370,46 @@ chokidar@^3.0.0: ci-info@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz" integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== collapse-white-space@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz" integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + comma-separated-tokens@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== concat-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== dependencies: buffer-from "^1.0.0" @@ -436,7 +419,7 @@ concat-stream@^2.0.0: cross-spawn@^7.0.0: version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -445,104 +428,99 @@ cross-spawn@^7.0.0: debug@^4.0.0: version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" decode-named-character-reference@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" dequal@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== dependencies: dequal "^2.0.0" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^10.2.1: version "10.3.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz" integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== err-code@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== error-ex@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== extend@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-uri@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" - integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== - fault@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz" integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== dependencies: format "^0.2.0" fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: locate-path "^7.1.0" @@ -550,7 +528,7 @@ find-up@6.3.0: foreground-child@^3.1.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" @@ -558,24 +536,24 @@ foreground-child@^3.1.0: format@^0.2.0: version "0.2.2" - resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob@^10.0.0, glob@^10.2.2: version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" @@ -587,44 +565,44 @@ glob@^10.0.0, glob@^10.2.2: has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== hosted-git-info@^7.0.0: version "7.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz" integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== dependencies: lru-cache "^10.0.1" ignore@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== import-meta-resolve@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz" integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== inherits@^2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^4.1.2, ini@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" + resolved "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz" integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== is-alphabetical@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== is-alphanumerical@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== dependencies: is-alphabetical "^2.0.0" @@ -632,76 +610,76 @@ is-alphanumerical@^2.0.0: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-buffer@^2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-decimal@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== is-empty@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + resolved "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz" integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isexe@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -710,39 +688,39 @@ jackspeak@^3.1.2: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" json-parse-even-better-errors@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz" integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json5@^2.0.0: version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== lines-and-columns@^2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz" integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== load-plugin@^6.0.0: version "6.0.3" - resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-6.0.3.tgz#b0eb8ea2361744f0e54850ccbc4c8a2d94ffabe3" + resolved "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz" integrity sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w== dependencies: "@npmcli/config" "^8.0.0" @@ -750,34 +728,34 @@ load-plugin@^6.0.0: locate-path@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== dependencies: p-locate "^6.0.0" lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== longest-streak@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== markdown-extensions@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz" integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== mdast-comment-marker@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz#8233f27c985ac7be53678ecb453dd9648fa1b5c5" + resolved "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz" integrity sha512-bt08sLmTNg00/UtVDiqZKocxqvQqqyQZAg1uaRuO/4ysXV5motg7RolF5o5yy/sY1rG0v2XgZEqFWho1+2UquA== dependencies: "@types/mdast" "^4.0.0" @@ -785,7 +763,7 @@ mdast-comment-marker@^3.0.0: mdast-util-directive@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" + resolved "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz" integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== dependencies: "@types/mdast" "^4.0.0" @@ -799,7 +777,7 @@ mdast-util-directive@^3.0.0: mdast-util-from-markdown@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz" integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== dependencies: "@types/mdast" "^4.0.0" @@ -817,7 +795,7 @@ mdast-util-from-markdown@^2.0.0: mdast-util-frontmatter@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + resolved "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz" integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== dependencies: "@types/mdast" "^4.0.0" @@ -829,14 +807,14 @@ mdast-util-frontmatter@^2.0.0: mdast-util-heading-style@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz#f1a02b2d0950e8535713f54de5ee0eea82413f51" + resolved "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz" integrity sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug== dependencies: "@types/mdast" "^4.0.0" mdast-util-mdx-expression@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz#4968b73724d320a379110d853e943a501bfd9d87" + resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz" integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== dependencies: "@types/estree-jsx" "^1.0.0" @@ -848,7 +826,7 @@ mdast-util-mdx-expression@^2.0.0: mdast-util-mdx-jsx@^3.0.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz#daae777c72f9c4a106592e3025aa50fb26068e1b" + resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz" integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA== dependencies: "@types/estree-jsx" "^1.0.0" @@ -867,7 +845,7 @@ mdast-util-mdx-jsx@^3.0.0: mdast-util-mdx@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz" integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== dependencies: mdast-util-from-markdown "^2.0.0" @@ -878,7 +856,7 @@ mdast-util-mdx@^3.0.0: mdast-util-mdxjs-esm@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== dependencies: "@types/estree-jsx" "^1.0.0" @@ -890,7 +868,7 @@ mdast-util-mdxjs-esm@^2.0.0: mdast-util-phrasing@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== dependencies: "@types/mdast" "^4.0.0" @@ -898,7 +876,7 @@ mdast-util-phrasing@^4.0.0: mdast-util-to-markdown@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz#9813f1d6e0cdaac7c244ec8c6dabfdb2102ea2b4" + resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz" integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== dependencies: "@types/mdast" "^4.0.0" @@ -912,14 +890,14 @@ mdast-util-to-markdown@^2.0.0: mdast-util-to-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== dependencies: "@types/mdast" "^4.0.0" micromark-core-commonmark@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz" integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== dependencies: decode-named-character-reference "^1.0.0" @@ -941,7 +919,7 @@ micromark-core-commonmark@^2.0.0: micromark-extension-frontmatter@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + resolved "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz" integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== dependencies: fault "^2.0.0" @@ -951,7 +929,7 @@ micromark-extension-frontmatter@^2.0.0: micromark-factory-destination@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz" integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== dependencies: micromark-util-character "^2.0.0" @@ -960,7 +938,7 @@ micromark-factory-destination@^2.0.0: micromark-factory-label@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz" integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== dependencies: devlop "^1.0.0" @@ -970,7 +948,7 @@ micromark-factory-label@^2.0.0: micromark-factory-space@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz" integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== dependencies: micromark-util-character "^2.0.0" @@ -978,7 +956,7 @@ micromark-factory-space@^2.0.0: micromark-factory-title@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz" integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== dependencies: micromark-factory-space "^2.0.0" @@ -988,7 +966,7 @@ micromark-factory-title@^2.0.0: micromark-factory-whitespace@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz" integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== dependencies: micromark-factory-space "^2.0.0" @@ -998,7 +976,7 @@ micromark-factory-whitespace@^2.0.0: micromark-util-character@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz" integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== dependencies: micromark-util-symbol "^2.0.0" @@ -1006,14 +984,14 @@ micromark-util-character@^2.0.0: micromark-util-chunked@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz" integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== dependencies: micromark-util-symbol "^2.0.0" micromark-util-classify-character@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz" integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== dependencies: micromark-util-character "^2.0.0" @@ -1022,7 +1000,7 @@ micromark-util-classify-character@^2.0.0: micromark-util-combine-extensions@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz" integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== dependencies: micromark-util-chunked "^2.0.0" @@ -1030,14 +1008,14 @@ micromark-util-combine-extensions@^2.0.0: micromark-util-decode-numeric-character-reference@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz" integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== dependencies: micromark-util-symbol "^2.0.0" micromark-util-decode-string@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz" integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== dependencies: decode-named-character-reference "^1.0.0" @@ -1047,31 +1025,31 @@ micromark-util-decode-string@^2.0.0: micromark-util-encode@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz" integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== micromark-util-html-tag-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz" integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== micromark-util-normalize-identifier@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz" integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== dependencies: micromark-util-symbol "^2.0.0" micromark-util-resolve-all@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz" integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== dependencies: micromark-util-types "^2.0.0" micromark-util-sanitize-uri@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz" integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== dependencies: micromark-util-character "^2.0.0" @@ -1080,7 +1058,7 @@ micromark-util-sanitize-uri@^2.0.0: micromark-util-subtokenize@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz" integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== dependencies: devlop "^1.0.0" @@ -1090,17 +1068,17 @@ micromark-util-subtokenize@^2.0.0: micromark-util-symbol@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz" integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== micromark-util-types@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz" integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== micromark@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" + resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz" integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== dependencies: "@types/debug" "^4.0.0" @@ -1121,45 +1099,45 @@ micromark@^4.0.0: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" -minimatch@9.0.3: +minimatch@^9.0.0, minimatch@9.0.3: version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.4: +minimatch@^9.0.4: version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" minimist@^1.0.0: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== nopt@^7.2.1: version "7.2.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz" integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== dependencies: abbrev "^2.0.0" normalize-package-data@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz" integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== dependencies: hosted-git-info "^7.0.0" @@ -1168,24 +1146,24 @@ normalize-package-data@^6.0.0: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-install-checks@^6.0.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz" integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== dependencies: semver "^7.1.1" npm-normalize-package-bin@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== npm-package-arg@^11.0.0: version "11.0.3" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz" integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== dependencies: hosted-git-info "^7.0.0" @@ -1195,7 +1173,7 @@ npm-package-arg@^11.0.0: npm-pick-manifest@^9.0.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz" integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== dependencies: npm-install-checks "^6.0.0" @@ -1205,26 +1183,26 @@ npm-pick-manifest@^9.0.0: p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== dependencies: p-limit "^4.0.0" package-json-from-dist@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== parse-entities@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz" integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== dependencies: "@types/unist" "^2.0.0" @@ -1238,7 +1216,7 @@ parse-entities@^4.0.0: parse-json@^7.0.0: version "7.1.1" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz" integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== dependencies: "@babel/code-frame" "^7.21.4" @@ -1249,17 +1227,17 @@ parse-json@^7.0.0: path-exists@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-scurry@^1.11.1: version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" @@ -1267,32 +1245,32 @@ path-scurry@^1.11.1: picocolors@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== proc-log@^4.0.0, proc-log@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz" integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" @@ -1300,17 +1278,17 @@ promise-retry@^2.0.1: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== quotation@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/quotation/-/quotation-2.0.3.tgz#b94c05128209a63b40b4e20e0f8f1a38adea7e0b" + resolved "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz" integrity sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA== read-package-json-fast@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz" integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== dependencies: json-parse-even-better-errors "^3.0.0" @@ -1318,7 +1296,7 @@ read-package-json-fast@^3.0.0: readable-stream@^3.0.2: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -1327,14 +1305,14 @@ readable-stream@^3.0.2: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" remark-cli@12.0.1: version "12.0.1" - resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-12.0.1.tgz#991ede01adfdf0471177c381168105da4b93f99a" + resolved "https://registry.npmjs.org/remark-cli/-/remark-cli-12.0.1.tgz" integrity sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw== dependencies: import-meta-resolve "^4.0.0" @@ -1344,7 +1322,7 @@ remark-cli@12.0.1: remark-frontmatter@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + resolved "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz" integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== dependencies: "@types/mdast" "^4.0.0" @@ -1354,7 +1332,7 @@ remark-frontmatter@5.0.0: remark-lint-blockquote-indentation@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.0.tgz#8b3860881c224d8e3f017ec516acf37dd2df1c03" + resolved "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.0.tgz" integrity sha512-hdUvn+KsJbBKpY9jLY01PmfpJ/WGhLu9GJMXQGU8ADXJc+F5DWSgKAr6GQ1IUKqvGYdEML/KZ61WomWFUuecVA== dependencies: "@types/mdast" "^4.0.0" @@ -1366,7 +1344,7 @@ remark-lint-blockquote-indentation@^4.0.0: remark-lint-checkbox-character-style@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.0.tgz#f41628a77bb3062391c3c2cdaa639e7be6719416" + resolved "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.0.tgz" integrity sha512-K0G/Nok59fb2q5KUxcemBVt+ymnhTkDVLJAatZ4PAh9At8y0DGctHdU27jWsuvO0Fs7Zy62Usk7IJE2VO89p1w== dependencies: "@types/mdast" "^4.0.0" @@ -1378,7 +1356,7 @@ remark-lint-checkbox-character-style@^5.0.0: remark-lint-code-block-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.0.tgz#cd85582e11a5182fcbca59a1591e39c6867d2bcc" + resolved "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.0.tgz" integrity sha512-LKBKMVruEO0tzDnnnqi1TfUcnwY6Mo7cVtZM4E4pKt3KMhtvgU2wD68/MxDOEJd0pmnLrEgIadv74bY0gWhZpg== dependencies: "@types/mdast" "^4.0.0" @@ -1390,7 +1368,7 @@ remark-lint-code-block-style@^4.0.0: remark-lint-definition-case@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-4.0.0.tgz#28048d2e75c890bd18e6cc6f7bb9a0e29783566b" + resolved "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-4.0.0.tgz" integrity sha512-XBmMmj8ii0KZUuJf7ZaVXDGp2+DWE02re9qn/6mV23rBpsDmpz7U1lQWRlwFQIE5q5bxIxP5pX7hDeTH0Egy9Q== dependencies: "@types/mdast" "^4.0.0" @@ -1400,7 +1378,7 @@ remark-lint-definition-case@^4.0.0: remark-lint-definition-spacing@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.0.tgz#c12a74bb079efc27d57a852337d87cc42ddc7e50" + resolved "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.0.tgz" integrity sha512-t6nP8unz6z/DLBTWeOmDFHPFbX3E2PbNgt2fTazRbVnMC6z3o25hBzg5hI6DL0MPt2ZTRX++rJsGRjb+vgh/tQ== dependencies: "@types/mdast" "^4.0.0" @@ -1412,7 +1390,7 @@ remark-lint-definition-spacing@^4.0.0: remark-lint-emphasis-marker@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz#9d2f6515116479641ec6e602e3c8e7276a81c165" + resolved "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz" integrity sha512-xIRiB4PFWUOyIslN/UOPL6Lh+J0VD4R11+jo+W4hpGMNsg58l+2SgtdbinlXzDeoBxmaaka9n/sYpJ7cJWEIPQ== dependencies: "@types/mdast" "^4.0.0" @@ -1423,7 +1401,7 @@ remark-lint-emphasis-marker@^4.0.0: remark-lint-fenced-code-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.0.0.tgz#32876ea1a53958fba1109c9d8ebe1e890b26f3d9" + resolved "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.0.0.tgz" integrity sha512-Zs0wJd4nRvBo/9NWQVfWg5Ykapbo0Zzw/SyZc3f0h73S1gTZZcfeU+bA5oDivlBdcUgLBsyHRE0QaoaVvN3/Wg== dependencies: "@types/mdast" "^4.0.0" @@ -1435,7 +1413,7 @@ remark-lint-fenced-code-flag@^4.0.0: remark-lint-fenced-code-marker@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.0.tgz#eb2587fdc7711fb890e646d5902761c54c2f88ce" + resolved "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.0.tgz" integrity sha512-WFN88Rx78m4/HSbW3Kx2XAYbVfzYns4bJd9qpwDD90DA3nc59zciYd01xi6Bk3n9vSs5gIlmG7xkwxVHHJ8KCA== dependencies: "@types/mdast" "^4.0.0" @@ -1447,7 +1425,7 @@ remark-lint-fenced-code-marker@^4.0.0: remark-lint-file-extension@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-3.0.0.tgz#2277a9f6d57ea3a824d46487e88003fcea1d20ac" + resolved "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.0.tgz" integrity sha512-wrOKiGvcl/ftB7FkeX2/l13ALvhKXV77HGR8AXo86cVY2pD+K0WdOC52DV3ldgpUXpWzE9kcgF8bbkxwzKpFFg== dependencies: "@types/mdast" "^4.0.0" @@ -1456,7 +1434,7 @@ remark-lint-file-extension@^3.0.0: remark-lint-final-definition@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-4.0.1.tgz#3cdad27cdc03491666efdad24bf03469a70f33f4" + resolved "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.1.tgz" integrity sha512-51T9oSdA7wuhjSdgGo0snO1BY39Igt9cJQi7XpgtgFsbfQk8zSSAUAc/rLabY6+YCTpcPs6qmwvLXZ4mPX6Qlg== dependencies: "@types/mdast" "^4.0.0" @@ -1470,7 +1448,7 @@ remark-lint-final-definition@^4.0.0: remark-lint-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-3.0.0.tgz#f436b4c228ae088b80072f7c3eac97678232e10a" + resolved "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.0.tgz" integrity sha512-NaPyn6FiOn3IV/6gIcwWfJmgraPT2IaVLjhakfPglZkKVfn/FrOfETyY8Bp+HLoSRI9967OH0yRDnK7/pPIWeQ== dependencies: "@types/mdast" "^4.0.0" @@ -1480,7 +1458,7 @@ remark-lint-final-newline@^3.0.0: remark-lint-frontmatter-schema@3.15.4: version "3.15.4" - resolved "https://registry.yarnpkg.com/remark-lint-frontmatter-schema/-/remark-lint-frontmatter-schema-3.15.4.tgz#8ec05a5fe4e08f5077ef66ba91f9639d4cc3a0bb" + resolved "https://registry.npmjs.org/remark-lint-frontmatter-schema/-/remark-lint-frontmatter-schema-3.15.4.tgz" integrity sha512-egChkbtCCG4hw1F2qoipzSxp6Ea9z4pxaVkWYa36DnCZ9fn3GhCNyOUjbFSIvdhVcWN+AqvHdqPbXC9Pp81Hmg== dependencies: "@apidevtools/json-schema-ref-parser" "11.1.0" @@ -1493,7 +1471,7 @@ remark-lint-frontmatter-schema@3.15.4: remark-lint-hard-break-spaces@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.0.0.tgz#6392f242a4188b346ed196a6e8c6834af1a31c82" + resolved "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.0.0.tgz" integrity sha512-zCTq7/xfM0ZL3bMopXse9DH2nk38wE1LrxmYwnTrqASBLnEAJWE2U2//tRGVMEBfSAnNvmIo96twz6zkLWjbGA== dependencies: "@types/mdast" "^4.0.0" @@ -1503,7 +1481,7 @@ remark-lint-hard-break-spaces@^4.0.0: remark-lint-heading-increment@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.0.tgz#3dfe78334dfafc8e856e5396bc1f9f9ced36e441" + resolved "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.0.tgz" integrity sha512-TARnsjXWzY/yLwxh/y4+KnDSXO3Koue8Crp55T8G9pjj3vw+XgTAG35zSpIIY9HmGiQ2a3R0SOj2pAxATpnckg== dependencies: "@types/mdast" "^4.0.0" @@ -1515,7 +1493,7 @@ remark-lint-heading-increment@^4.0.0: remark-lint-heading-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-4.0.0.tgz#9c7b5b8fb210132ac2db8e541efc10569c2cef66" + resolved "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.0.tgz" integrity sha512-dQ6Jul5K0+aNUvrq4W7H0+osSoC9hsmwHZqBFq000+eMP/hWJqI8tuudw1rap8HHYuOsKLRbB5q+Fr7G+3Vw+Q== dependencies: "@types/mdast" "^4.0.0" @@ -1528,7 +1506,7 @@ remark-lint-heading-style@^4.0.0: remark-lint-link-title-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.0.tgz#4f78f9ba7178e095aa15b882e5ecdf720f05942a" + resolved "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.0.tgz" integrity sha512-cihTO5dkhjMj/evYIDAvRdQHD82OQeF4fNAq8FLb81HmFKo77VlSF6CK55H1bvlZogfJG58uN/5d1tSsOdcEbg== dependencies: "@types/mdast" "^4.0.0" @@ -1539,7 +1517,7 @@ remark-lint-link-title-style@^4.0.0: remark-lint-list-item-bullet-indent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.0.tgz#1b2428c49e3220795aafec535e96da85d54d4a26" + resolved "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.0.tgz" integrity sha512-qq22QaxsDjfsL7aWGIPmP3P0N99CJBQQW1+iSrhYAMCDzqVlw6I3wPNAeR6s8mcoeHT8YlT6eQH3V8xJ0SlW6w== dependencies: "@types/mdast" "^4.0.0" @@ -1549,7 +1527,7 @@ remark-lint-list-item-bullet-indent@^5.0.0: remark-lint-list-item-content-indent@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.0.tgz#2aa75671757ad9b183eec5a334e251d50de8c527" + resolved "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.0.tgz" integrity sha512-L4GZgWQQ54qWKbnDle3dbEOtnq+qdmZJ70lpM3yMFEMHs4xejqPKsIoiYeUtIV0rYHHCWS7IlLzcgYUK9vENQw== dependencies: "@types/mdast" "^4.0.0" @@ -1562,7 +1540,7 @@ remark-lint-list-item-content-indent@^4.0.0: remark-lint-list-item-indent@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.0.tgz#d72e7ef4c7ea238987e5475e33439b7efbe46389" + resolved "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.0.tgz" integrity sha512-Yd6/g8CH9e4vlPAPNgl7F575uKhP+pTo/qwGkE61GOcgEVNJ/529hjumUhyQ4sOAX0YAPAjxvq6fJvb4AhVOOA== dependencies: "@types/mdast" "^4.0.0" @@ -1574,7 +1552,7 @@ remark-lint-list-item-indent@^4.0.0: remark-lint-list-item-spacing@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz#a95a4b8824b3f50f5cd6d5a33f99275f63c04f4f" + resolved "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz" integrity sha512-d6p+1tcwNE+Pp6Tu2DwiKlyC1zYY3f1igL6AlcBIH0RmROVEfZR4IDFH/LcVyTkzqh1lPMFAJXWK4bpScpcO3g== dependencies: "@types/mdast" "^4.0.0" @@ -1587,7 +1565,7 @@ remark-lint-list-item-spacing@^5.0.0: remark-lint-maximum-heading-length@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.0.0.tgz#29b6adcc319bde4374429e9e39487d94a476543b" + resolved "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.0.0.tgz" integrity sha512-UCQxUd0zZyi6RUbpoK5KsxC50ppVqVk0hSgrSPot4wB6PHRgYMALU2fDkEcAjLDc/Y2TayG3IaZEKdqe+84Cwg== dependencies: "@types/mdast" "^4.0.0" @@ -1599,7 +1577,7 @@ remark-lint-maximum-heading-length@^4.0.0: remark-lint-maximum-line-length@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz#4c5c347b6dd15653aba7ef0cc81971f3dd08a630" + resolved "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz" integrity sha512-hQlh8UrRfhkO4FU7z7t1Bu5ethj1y2iBncO5AOWF38RAmlHaZdB2lQxNA8IvUZITGJYpT1aThdFTEf+58lv08Q== dependencies: "@types/mdast" "^4.0.0" @@ -1611,7 +1589,7 @@ remark-lint-maximum-line-length@^4.0.0: remark-lint-no-blockquote-without-marker@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.0.tgz#cc243d86f6548492150b5a7871f99afad9653973" + resolved "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.0.tgz" integrity sha512-fBhoTpkWcl5tG4FdwPdJIyb8XLrdr6MdLk1+K2BQ6Rom3rRsIYvuox4ohxOunNrXuth8xyw8kC6wDmODR44oFw== dependencies: "@types/mdast" "^4.0.0" @@ -1626,7 +1604,7 @@ remark-lint-no-blockquote-without-marker@^6.0.0: remark-lint-no-consecutive-blank-lines@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.0.tgz#bbfbdcdc2e228b6379b7268ac489a56b6e07d1a0" + resolved "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.0.tgz" integrity sha512-HsDZbFlelBVO3mEJDXd9v4z0HLB8pqxWnsV+I4ILYFp5lKYf6NxJaLBWFtP1gAg1+95WxityGLkGtYqmicDjpg== dependencies: "@types/mdast" "^4.0.0" @@ -1640,7 +1618,7 @@ remark-lint-no-consecutive-blank-lines@^5.0.0: remark-lint-no-duplicate-definitions@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.0.tgz#ac9ff0f7dd373fd58521f57406625e03ef40ce42" + resolved "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.0.tgz" integrity sha512-21fcOACkCyhNsHkedKlpvqIywYx+5zGR507bW8e59gzdGhTbnBwQ9du4ACmN9jxPTfIBhUVMz0bWezkGrHE7Bg== dependencies: "@types/mdast" "^4.0.0" @@ -1652,7 +1630,7 @@ remark-lint-no-duplicate-definitions@^4.0.0: remark-lint-no-duplicate-headings@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.0.tgz#0b5b4150b984d68a294359781728d9cca060e2a5" + resolved "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.0.tgz" integrity sha512-FgBU/JCdR5MitHM+hnOcgBGO5ZCNV8epzuHIglFlJeb8ow23YhhNgmGvyk7RGrZrYuU5R9uQq23N4dF0g9atCA== dependencies: "@types/mdast" "^4.0.0" @@ -1665,7 +1643,7 @@ remark-lint-no-duplicate-headings@^4.0.0: remark-lint-no-emphasis-as-heading@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.0.tgz#85daf2b230ec464f6edd255e80ae36e6a20e0b37" + resolved "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.0.tgz" integrity sha512-JViGYbuO/xzZThK+qVTNjtLM0v1xMTWFTWt2OJzAkDaGS6T9ZB5ZtRVSBFEMG0SF3dvpJwxe+3ABTsuPBdlYsA== dependencies: "@types/mdast" "^4.0.0" @@ -1675,7 +1653,7 @@ remark-lint-no-emphasis-as-heading@^4.0.0: remark-lint-no-file-name-articles@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.0.tgz#3061b26a0992331a93c5082f8f2826d5f2c17a2a" + resolved "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.0.tgz" integrity sha512-il4IseupahbV2TVfFjfDVL/EQw7jBWVlMVsv4K2cgl5uPIjiCjFGQypqKnWl6pZDN0oNOs/DE8gBdyuDjldJaA== dependencies: "@types/mdast" "^4.0.0" @@ -1683,7 +1661,7 @@ remark-lint-no-file-name-articles@^3.0.0: remark-lint-no-file-name-consecutive-dashes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.0.tgz#930d90fe2795afc6fab6b6995235d166b806c4f3" + resolved "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.0.tgz" integrity sha512-3vSI1LOQlu8NSCpWLsKELa8dS9HU+YVZE0U43/DNkdEcnZmlJLpTHQjBTMZUHQipRgoOO+TOSyXFyN/H+2lbuQ== dependencies: "@types/mdast" "^4.0.0" @@ -1691,7 +1669,7 @@ remark-lint-no-file-name-consecutive-dashes@^3.0.0: remark-lint-no-file-name-irregular-characters@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.0.tgz#8460f6924ab30200c383f8b1fb9077d3785607bd" + resolved "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.0.tgz" integrity sha512-DhGreliHNU7lLTARQujsaLAn8fUPY0V+H0LSmOUuowBZPtIRWeNdQhunSp96RvsuYdqAdERXe0WuH58i3pRqrg== dependencies: "@types/mdast" "^4.0.0" @@ -1699,7 +1677,7 @@ remark-lint-no-file-name-irregular-characters@^3.0.0: remark-lint-no-file-name-mixed-case@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.0.tgz#8b911007d0b9e1e24ec4a93527b03d83b63a6e0c" + resolved "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.0.tgz" integrity sha512-MXXNHdGB6P46itkf8gRP0kxQL85KfAj9YOOBqNtGsgI/8J5rsyM/rz1Ac20Xe+5C5oGi71+7EO/TExKu/+7dfw== dependencies: "@types/mdast" "^4.0.0" @@ -1707,7 +1685,7 @@ remark-lint-no-file-name-mixed-case@^3.0.0: remark-lint-no-file-name-outer-dashes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.0.tgz#9bae02f4ecddb59d20e8977a62deb13ebe3ee230" + resolved "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.0.tgz" integrity sha512-3kgamCp39mdlCtqF/+JLwwS4VpSj5wvVwRythUfrpW7993I9kF67dBsaU545aEzWSK+UJZqjb40i0m2VfnBRfQ== dependencies: "@types/mdast" "^4.0.0" @@ -1715,7 +1693,7 @@ remark-lint-no-file-name-outer-dashes@^3.0.0: remark-lint-no-heading-content-indent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.0.tgz#a83956dab3675dfe032ac1a7523d874be6185121" + resolved "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.0.tgz" integrity sha512-psYSlD2BjcVkgpeXOLwPcYFBrbtJWp8E8JX1J4vSfoHPeY6aIxgYxXkf57cjGTApfRL8xawBmMDiF1FgQvpZYg== dependencies: "@types/mdast" "^4.0.0" @@ -1727,7 +1705,7 @@ remark-lint-no-heading-content-indent@^5.0.0: remark-lint-no-heading-punctuation@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz#da19bc0fb6d76e443067429b4cc15660bc392d3e" + resolved "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz" integrity sha512-7V23C3Q4yX9zEOLZdbv6o8wVxxeWB/F+h9by55zPyk2AwbqF2t2xevnAmN3XFmKZABDTqLwjQxtK6bCVv/S1PQ== dependencies: "@types/mdast" "^4.0.0" @@ -1738,7 +1716,7 @@ remark-lint-no-heading-punctuation@^4.0.0: remark-lint-no-literal-urls@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.0.tgz#5b2c40f8ce2c102d823959e7933ae395cd5f8018" + resolved "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.0.tgz" integrity sha512-rl/3Ai4Ax9IH/fRpOJZuXk1HgYX6oFTauhmBOilpqbq/YT2kN3FuXaneXdRfKv1bgMdHaLKxHWxGj/mDyA2n8w== dependencies: "@types/mdast" "^4.0.0" @@ -1750,7 +1728,7 @@ remark-lint-no-literal-urls@^4.0.0: remark-lint-no-multiple-toplevel-headings@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.0.tgz#7e9b0a6fdd00e938b0c2dd33744b690d9b3899f8" + resolved "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.0.tgz" integrity sha512-JW11iYxza7asDdhQuKfr8SH1u4NBOCQ4U7Ru0HrKCPcT4y/AB1C1il5uMQzbcervgYPBq69xzyQ24+AJeL0t3A== dependencies: "@types/mdast" "^4.0.0" @@ -1760,9 +1738,9 @@ remark-lint-no-multiple-toplevel-headings@^4.0.0: unist-util-visit-parents "^6.0.0" vfile-message "^4.0.0" -remark-lint-no-shell-dollars@4.0.0, remark-lint-no-shell-dollars@^4.0.0: +remark-lint-no-shell-dollars@^4.0.0, remark-lint-no-shell-dollars@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.0.tgz#ddc98aaf49a01c408a7b616fe8f6e3dc8e626e15" + resolved "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.0.tgz" integrity sha512-ye2h8FzjsgqqQV0HHN2g9N4FqI3eD9Gpgu7tU5ADIJyQ3mUJdwBoFn7IlGnpmumR1fb/l6u/AhRavIZxXYqG+Q== dependencies: "@types/mdast" "^4.0.0" @@ -1773,7 +1751,7 @@ remark-lint-no-shell-dollars@4.0.0, remark-lint-no-shell-dollars@^4.0.0: remark-lint-no-shortcut-reference-image@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.0.tgz#eb3aa7aec0d41c64f5a18986cbd3e7e62fa98b7f" + resolved "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.0.tgz" integrity sha512-YEiCpW5F/8/LZyxlOuVK2L/n0NJ1AB0AJK7oP39OVyEk3Xl7w+JQi6nZ3KiH6REh+PWGqKn6M0KEPL9cT/iAOw== dependencies: "@types/mdast" "^4.0.0" @@ -1782,7 +1760,7 @@ remark-lint-no-shortcut-reference-image@^4.0.0: remark-lint-no-shortcut-reference-link@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz#44c332c3b939dbb9d6b60d9cbcd5929f72658fe7" + resolved "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz" integrity sha512-6jka2Zz3I6G2MvDcKrwADYhTOxHMFMK854u1cfBEIH5/XnCCXROtoqiiDtbZw+NJqbmwsBKvGL4t2gnmEJUmgg== dependencies: "@types/mdast" "^4.0.0" @@ -1791,7 +1769,7 @@ remark-lint-no-shortcut-reference-link@^4.0.0: remark-lint-no-table-indentation@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.0.tgz#ce526bc4ff6407378d2b23cbcb6bb8c7f830479a" + resolved "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.0.tgz" integrity sha512-MaLmnzgirpnRiRjWwrsyOX0RmP2eG4YAv169MtsxTVa6O3CpUDwTuTzivudE9L0kVvTlyF9DXEmdyjm85LDyVA== dependencies: "@types/mdast" "^4.0.0" @@ -1805,7 +1783,7 @@ remark-lint-no-table-indentation@^5.0.0: remark-lint-no-undefined-references@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz#2155f00a95b793ecac1921f7b45ce7c5d6087256" + resolved "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz" integrity sha512-O0q8bHpRHK1T85oqO+uep4BkvQnZZp3y+wahDeeLLq9dCJfF56sq6Tt5OOTt1BAOZlpobS3OPQHUiJWYP6hX1w== dependencies: "@types/mdast" "^4.0.0" @@ -1819,7 +1797,7 @@ remark-lint-no-undefined-references@^5.0.0: remark-lint-no-unused-definitions@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.0.tgz#fc7f715d084283ca8b3a3c2e7b6afe87ace9765e" + resolved "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.0.tgz" integrity sha512-YCZ6k575NCTx7mnN+9ls0G6YgMsZHi0LYQqfLW8MNVHBtbpTBvfmk8I39bmsvuKWeBD98weZoXSDqIiIGg+Q/g== dependencies: "@types/mdast" "^4.0.0" @@ -1829,7 +1807,7 @@ remark-lint-no-unused-definitions@^4.0.0: remark-lint-ordered-list-marker-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.0.tgz#9a6e8867484ec3edf8ec85699e5cca6a11163102" + resolved "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.0.tgz" integrity sha512-xZ7Xppy5fzACH4b9h1b4lTzVtNY2AlUkNTfl1Oe6cIKN8tk3juFxN0wL2RpktPtSZ7iRIabzFmg6l8WPhlASJA== dependencies: "@types/mdast" "^4.0.0" @@ -1842,7 +1820,7 @@ remark-lint-ordered-list-marker-style@^4.0.0: remark-lint-ordered-list-marker-value@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.0.tgz#a0724a161b2dbcd6dd0be6088e851b3183baab0e" + resolved "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.0.tgz" integrity sha512-7UjNU2Nv9LGEONTU9GPmTVoNoGKD5aL1X2xHzMbSJiTc50bfcazYqZawO+qj1pQ04WPhto1qHnl0HRB5wwSVwA== dependencies: "@types/mdast" "^4.0.0" @@ -1856,7 +1834,7 @@ remark-lint-ordered-list-marker-value@^4.0.0: remark-lint-rule-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-4.0.0.tgz#8634deab41768b467329ff8212e982cef583c3f1" + resolved "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.0.tgz" integrity sha512-Kt7IHMB5IbLgRFKaFUmB895sV3PTD0MBgN9CvXKxr1wHFF43S6tabjFIBSoQqyJRlhH0S3rK6Lvopofa009gLg== dependencies: "@types/mdast" "^4.0.0" @@ -1868,7 +1846,7 @@ remark-lint-rule-style@^4.0.0: remark-lint-strong-marker@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.0.tgz#bbaae75846ccea9753a2f6935d1fb9a3114b9461" + resolved "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.0.tgz" integrity sha512-YcvuzakYhQWdCH+1E30sUY+wyvq+PNa77NZAMAYO/cS/pZczFB+q4Ccttw4Q+No/chX8oMfe0GYtm8dDWLei/g== dependencies: "@types/mdast" "^4.0.0" @@ -1879,7 +1857,7 @@ remark-lint-strong-marker@^4.0.0: remark-lint-table-cell-padding@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.0.0.tgz#652392e3b8c61153023e6c14793b30dd1fb2c6b7" + resolved "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.0.0.tgz" integrity sha512-LNyiHDQZBIOqcQGG1tYsZHW7g0v8OyRmRgDrD5WEsMaAYfM6EiECUokN/Q4py9h4oM/2KUSrdZbtfuZmy87/kA== dependencies: "@types/mdast" "^4.0.0" @@ -1894,7 +1872,7 @@ remark-lint-table-cell-padding@^5.0.0: remark-lint-table-pipe-alignment@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.0.0.tgz#2eada610d36ef7e7409f5b21e8e308c26e9620a1" + resolved "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.0.0.tgz" integrity sha512-nx+xpEIWQRLOcq9hIbUIvhSE1NYRmDJmCY3cMoHJ1sIW7dRXMHyWfpWTgu7mpREKwSQdE0q4qnzk8McQQSkIcg== dependencies: "@types/mdast" "^4.0.0" @@ -1908,7 +1886,7 @@ remark-lint-table-pipe-alignment@^4.0.0: remark-lint-table-pipes@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.0.tgz#d796f504cf3a2f8b5396b001830492b9eb716758" + resolved "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.0.tgz" integrity sha512-e7jzAScDrt5+eMomh099TZJBN2K9ldDxBu9iYhNu5C0YsdAvnckJkgilsuClxFpmx4LCVYaX0EGbt/hQ3LB3xg== dependencies: "@types/mdast" "^4.0.0" @@ -1920,7 +1898,7 @@ remark-lint-table-pipes@^5.0.0: remark-lint-unordered-list-marker-style@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.0.tgz#91c3a31f795678cd86da8bc5997f924e64920263" + resolved "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.0.tgz" integrity sha512-XlP4Wr4KJNovyWVv0H5axfUlF23iE9Kt2SxaVq4+ieum5YcMmKE6KsL+aqt3kiJb60SH1u6a0bxKFvdM/9riOA== dependencies: "@types/mdast" "^4.0.0" @@ -1932,7 +1910,7 @@ remark-lint-unordered-list-marker-style@^4.0.0: remark-lint@^10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-10.0.0.tgz#161b24a18223a68ec2ed8d77e46015b5a0bd8bb5" + resolved "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.0.tgz" integrity sha512-E8yHHDOJ8b+qI0G49BRu24pe8t0fNNBWv8ENQJpCGNrVeTeyBIGEbaUe1yuF7OG8faA6PVpcN/pqWjzW9fcBWQ== dependencies: "@types/mdast" "^4.0.0" @@ -1941,7 +1919,7 @@ remark-lint@^10.0.0: remark-message-control@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-8.0.0.tgz#1d5880f33c05a65fcd60dcf0572b8198e9935d97" + resolved "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz" integrity sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ== dependencies: "@types/mdast" "^4.0.0" @@ -1951,7 +1929,7 @@ remark-message-control@^8.0.0: remark-parse@^11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== dependencies: "@types/mdast" "^4.0.0" @@ -1961,7 +1939,7 @@ remark-parse@^11.0.0: remark-preset-lint-consistent@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.0.tgz#8ee11b681e1d40f1fd7a5ca1cf2c832df306db56" + resolved "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.0.tgz" integrity sha512-W3fwxajdietwjnFyTH5x2le63hxWGVOXxIs7KjRqU+5wkkN6ZQyuwPeeomblmS9wQr50fkidhXNHNDyCXtqgxQ== dependencies: remark-lint "^10.0.0" @@ -1982,7 +1960,7 @@ remark-preset-lint-consistent@6.0.0: remark-preset-lint-markdown-style-guide@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.0.tgz#f6f186d94391a5e8c9752a63a0c41a7a14b2464a" + resolved "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.0.tgz" integrity sha512-izsfNTHeqrRP64VWV6OdJnSUDwKFSthMKiiDcu14ODpPV0t7YiotCQWzgc7L4eW9Ctcp4aB4nHNLSuDmwhEWrQ== dependencies: remark-lint "^10.0.0" @@ -2032,7 +2010,7 @@ remark-preset-lint-markdown-style-guide@6.0.0: remark-preset-lint-recommended@7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.0.tgz#fec4288b9a148f63fb04f3f447bc0db1049ec835" + resolved "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.0.tgz" integrity sha512-A9aPDL78OO12xG2a83DVd+M2QzdBMjn545fbXj40BFJdpt9t//MADkPAwRfpMCBkKi+iECPUTFCb3Jm8SsFG2w== dependencies: remark-lint "^10.0.0" @@ -2053,7 +2031,7 @@ remark-preset-lint-recommended@7.0.0: remark-stringify@^11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz" integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== dependencies: "@types/mdast" "^4.0.0" @@ -2062,7 +2040,7 @@ remark-stringify@^11.0.0: remark@^15.0.0: version "15.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-15.0.1.tgz#ac7e7563260513b66426bc47f850e7aa5862c37c" + resolved "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz" integrity sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A== dependencies: "@types/mdast" "^4.0.0" @@ -2072,49 +2050,49 @@ remark@^15.0.0: require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== semver@^7.1.1, semver@^7.3.5, semver@^7.5.3: version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== space-separated-tokens@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -2122,12 +2100,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" @@ -2135,12 +2113,19 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz" integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2149,7 +2134,7 @@ spdx-license-ids@^3.0.0: string-width@^4.1.0: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2158,7 +2143,7 @@ string-width@^4.1.0: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -2167,23 +2152,16 @@ string-width@^5.0.1, string-width@^5.1.2: string-width@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518" + resolved "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz" integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ== dependencies: eastasianwidth "^0.2.0" emoji-regex "^10.2.1" strip-ansi "^7.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - stringify-entities@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== dependencies: character-entities-html4 "^2.0.0" @@ -2191,77 +2169,72 @@ stringify-entities@^4.0.0: "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.0, strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^9.0.0: version "9.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz" integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" trough@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== type-fest@^3.8.0: version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.11.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.11.1.tgz#432ea6e8efd54a48569705a699e62d8f4981b197" - integrity sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ== - unified-args@^11.0.0: version "11.0.1" - resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-11.0.1.tgz#5c82564616288b8d99feed7326c2223097d30726" + resolved "https://registry.npmjs.org/unified-args/-/unified-args-11.0.1.tgz" integrity sha512-WEQghE91+0s3xPVs0YW6a5zUduNLjmANswX7YbBfksHNDGMjHxaWCql4SR7c9q0yov/XiIEdk6r/LqfPjaYGcw== dependencies: "@types/text-table" "^0.2.0" @@ -2276,7 +2249,7 @@ unified-args@^11.0.0: unified-engine@^11.0.0: version "11.2.1" - resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-11.2.1.tgz#8f9c05b3f262930666b1cdb83108c15dd39d6cdd" + resolved "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.1.tgz" integrity sha512-xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg== dependencies: "@types/concat-stream" "^2.0.0" @@ -2301,19 +2274,9 @@ unified-engine@^11.0.0: vfile-statistics "^3.0.0" yaml "^2.0.0" -unified-lint-rule@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-2.1.2.tgz#3ca2c6199b84aa8b48b60fda0f61b8eba55807d5" - integrity sha512-JWudPtRN7TLFHVLEVZ+Rm8FUb6kCAtHxEXFgBGDxRSdNMnGyTU5zyYvduHSF/liExlFB3vdFvsAHnNVE/UjAwA== - dependencies: - "@types/unist" "^2.0.0" - trough "^2.0.0" - unified "^10.0.0" - vfile "^5.0.0" - unified-lint-rule@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz#75f8d7fbd9664e198a65f1399ab06c3950b54a70" + resolved "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz" integrity sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew== dependencies: "@types/unist" "^3.0.0" @@ -2321,9 +2284,19 @@ unified-lint-rule@^3.0.0: unified "^11.0.0" vfile "^6.0.0" +unified-lint-rule@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.2.tgz" + integrity sha512-JWudPtRN7TLFHVLEVZ+Rm8FUb6kCAtHxEXFgBGDxRSdNMnGyTU5zyYvduHSF/liExlFB3vdFvsAHnNVE/UjAwA== + dependencies: + "@types/unist" "^2.0.0" + trough "^2.0.0" + unified "^10.0.0" + vfile "^5.0.0" + unified-message-control@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-5.0.0.tgz#7268a9a5d695c2591149ebe35e37eb200b852d7e" + resolved "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz" integrity sha512-B2cSAkpuMVVmPP90KCfKdBhm1e9KYJ+zK3x5BCa0N65zpq1Ybkc9C77+M5qwR8FWO7RF3LM5QRRPZtgjW6DUCw== dependencies: "@types/unist" "^3.0.0" @@ -2337,7 +2310,7 @@ unified-message-control@^5.0.0: unified@^10.0.0: version "10.1.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + resolved "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz" integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== dependencies: "@types/unist" "^2.0.0" @@ -2350,7 +2323,7 @@ unified@^10.0.0: unified@^11.0.0: version "11.0.5" - resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== dependencies: "@types/unist" "^3.0.0" @@ -2363,28 +2336,28 @@ unified@^11.0.0: unist-util-inspect@^8.0.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz#ff2729b543c483041b3c29cbe04c5460a406ee25" + resolved "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz" integrity sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ== dependencies: "@types/unist" "^3.0.0" unist-util-is@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== dependencies: "@types/unist" "^3.0.0" unist-util-position@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: "@types/unist" "^3.0.0" unist-util-remove-position@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz" integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== dependencies: "@types/unist" "^3.0.0" @@ -2392,21 +2365,21 @@ unist-util-remove-position@^5.0.0: unist-util-stringify-position@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz" integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== dependencies: "@types/unist" "^3.0.0" unist-util-visit-parents@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== dependencies: "@types/unist" "^3.0.0" @@ -2414,7 +2387,7 @@ unist-util-visit-parents@^6.0.0: unist-util-visit@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== dependencies: "@types/unist" "^3.0.0" @@ -2423,19 +2396,19 @@ unist-util-visit@^5.0.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== validate-npm-package-license@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -2443,12 +2416,12 @@ validate-npm-package-license@^3.0.4: validate-npm-package-name@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz" integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== vfile-location@^5.0.0: version "5.0.3" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz" integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== dependencies: "@types/unist" "^3.0.0" @@ -2456,7 +2429,7 @@ vfile-location@^5.0.0: vfile-message@^3.0.0: version "3.1.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz" integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== dependencies: "@types/unist" "^2.0.0" @@ -2464,7 +2437,7 @@ vfile-message@^3.0.0: vfile-message@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: "@types/unist" "^3.0.0" @@ -2472,7 +2445,7 @@ vfile-message@^4.0.0: vfile-reporter@^8.0.0: version "8.1.1" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-8.1.1.tgz#ac06a5a68f1b480609c443062dffea1cfa2d11b1" + resolved "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz" integrity sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g== dependencies: "@types/supports-color" "^8.0.0" @@ -2486,7 +2459,7 @@ vfile-reporter@^8.0.0: vfile-sort@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-4.0.0.tgz#fa1929065b62fe5311e5391c9434f745e8641703" + resolved "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz" integrity sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ== dependencies: vfile "^6.0.0" @@ -2494,7 +2467,7 @@ vfile-sort@^4.0.0: vfile-statistics@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-3.0.0.tgz#0f5cd00c611c1862b13a9b5bc5599efaf465f2cf" + resolved "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz" integrity sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w== dependencies: vfile "^6.0.0" @@ -2502,7 +2475,7 @@ vfile-statistics@^3.0.0: vfile@^5.0.0: version "5.3.7" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + resolved "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz" integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== dependencies: "@types/unist" "^2.0.0" @@ -2512,7 +2485,7 @@ vfile@^5.0.0: vfile@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.2.tgz#ef49548ea3d270097a67011921411130ceae7deb" + resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz" integrity sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg== dependencies: "@types/unist" "^3.0.0" @@ -2521,26 +2494,26 @@ vfile@^6.0.0: walk-up-path@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz" integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" which@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + resolved "https://registry.npmjs.org/which/-/which-4.0.0.tgz" integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== dependencies: isexe "^3.1.1" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -2549,29 +2522,24 @@ which@^4.0.0: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" string-width "^5.0.1" strip-ansi "^7.0.1" -yaml@2.3.3: +yaml@^2.0.0, yaml@2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz" integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== -yaml@^2.0.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" - integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== - yocto-queue@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz" integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== zwitch@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git a/.ci/vale/styles/InfluxDB3-Core/Branding.yml b/.ci/vale/styles/InfluxDB3-Core/Branding.yml new file mode 100644 index 000000000..491104f79 --- /dev/null +++ b/.ci/vale/styles/InfluxDB3-Core/Branding.yml @@ -0,0 +1,11 @@ +extends: substitution +message: Did you mean '%s' instead of '%s' +level: warning +ignorecase: false +# swap maps tokens in form of bad: good + # NOTE: The left-hand (bad) side can match the right-hand (good) side; + # Vale ignores alerts that match the intended form. +swap: + 'cloud-serverless|cloud-dedicated|clustered': core + 'Cloud Serverless|Cloud Dedicated|Clustered': Core + 'API token': database token diff --git a/.ci/vale/styles/InfluxDB3-Core/v3Schema.yml b/.ci/vale/styles/InfluxDB3-Core/v3Schema.yml new file mode 100644 index 000000000..a95342af8 --- /dev/null +++ b/.ci/vale/styles/InfluxDB3-Core/v3Schema.yml @@ -0,0 +1,10 @@ +extends: substitution +message: Did you mean '%s' instead of '%s' +level: warning +ignorecase: false +# swap maps tokens in form of bad: good + # NOTE: The left-hand (bad) side can match the right-hand (good) side; + # Vale ignores alerts that match the intended form. +swap: + '(?i)bucket': database + '(?i)measurement': table \ No newline at end of file diff --git a/.frontmatter-schema.json b/.frontmatter-schema.json new file mode 100644 index 000000000..b57b6af36 --- /dev/null +++ b/.frontmatter-schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title of the page" + }, + "description": { + "type": "string", + "description": "Page description that supports multi-line text" + }, + "menu": { + "type": "object", + "properties": { + "influxdb3_core": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Menu item name" + } + }, + "required": ["name"] + } + } + }, + "weight": { + "type": "integer", + "description": "Order weight for menu items", + "minimum": 0 + }, + "source": { + "type": "string", + "description": "Path to source content file", + "pattern": "^/shared/.+\\.md$" + } + }, + "required": ["title", "description", "menu", "weight"] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 254ec132e..445d595f8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ node_modules *.log /resources .hugo_build.lock -/content/influxdb/*/api/**/*.html +/content/influxdb*/**/api/**/*.html /api-docs/redoc-static.html* .vscode/* .idea diff --git a/.vscode/settings.json b/.vscode/settings.json index 4e9df44ce..9f74fc71e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,17 @@ { - "vale.valeCLI.config": " \"${workspaceFolder}/.vale.ini\"", + "commentAnchors.tags.anchors": + { "SOURCE": { + "scope": "file", + "behavior": "link", + "iconColor": "#FF0000", + "highlightColor": "#FF0000", + "style": "bold" + }}, + "commentAnchors.workspace.matchFiles": "**/*.{md,ini,json,yaml,yml}", + "commentAnchors.workspace.enabled": true, + "yaml.schemas": { + "./.frontmatter-schema.json": "${workspaceFolder}/content/**/*.md" + }, + "vale.valeCLI.config": "${workspaceFolder}/.vale.ini", "vale.valeCLI.minAlertLevel": "warning", } \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aad3f3e96..e90dd2f31 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,18 +45,22 @@ To install dependencies listed in package.json: 3. Run `yarn` to install dependencies (including Hugo). 4. Install the Yarn package manager and run `yarn` to install project dependencies. -`package.json` contains dependencies for linting and running Git hooks. +`package.json` contains dependencies used in `/assets/js` JavaScript code and +dev dependencies used in pre-commit hooks for linting, syntax-checking, and testing. -- **[husky](https://github.com/typicode/husky)**: manages Git hooks, including the pre-commit hook for linting and testing -- **[lint-staged](https://github.com/lint-staged/lint-staged)**: passes staged files to commands -- **[prettier](https://prettier.io/docs/en/)**: formats code, including Markdown, according to style rules for consistency +Dev dependencies include: + +- [Lefthook](https://github.com/evilmartians/lefthook): configures and +manages pre-commit hooks for linting and testing Markdown content. +- [prettier](https://prettier.io/docs/en/): formats code, including Markdown, according to style rules for consistency +- [Cypress]: e2e testing for UI elements and URLs in content ### Install Docker -Install [Docker](https://docs.docker.com/get-docker/) for your system. - docs-v2 includes Docker configurations (`compose.yaml` and Dockerfiles) for running the Vale style linter and tests for code blocks (Shell, Bash, and Python) in Markdown files. +Install [Docker](https://docs.docker.com/get-docker/) for your system. + #### Build the test dependency image After you have installed Docker, run the following command to build the test @@ -65,13 +69,24 @@ The tests defined in `compose.yaml` use the dependencies and execution environment from this image. ```bash -docker build -t influxdata:docs-pytest -f Dockerfile.pytest . +docker build -t influxdata/docs-pytest:latest -f Dockerfile.pytest . ``` ### Run the documentation locally (optional) To run the documentation locally, follow the instructions provided in the README. +### Install Visual Studio Code extensions + +If you use Microsoft Visual Studio (VS) Code, you can install extensions +to help you navigate, check, and edit files. + +docs-v2 contains a `./.vscode/settings.json` that configures the following extensions: + +- Comment Anchors: recognizes tags (for example, `//SOURCE`) and makes links and filepaths clickable in comments. +- Vale: shows linter errors and suggestions in the editor. +- YAML Schemas: validates frontmatter attributes. + ### Make your changes Make your suggested changes being sure to follow the [style and formatting guidelines](#style--formatting) outline below. @@ -80,15 +95,16 @@ Make your suggested changes being sure to follow the [style and formatting guide ### Automatic pre-commit checks -docs-v2 uses Husky to manage Git hook scripts. -When you try to commit your changes (for example, `git commit`), Git runs -scripts configured in `.husky/pre-commit`, including linting and tests for your **staged** files. +docs-v2 uses Lefthook to manage Git hooks, such as pre-commit hooks that lint Markdown and test code blocks. +When you try to commit changes (`git commit`), Git runs +the commands configured in `lefthook.yml` which pass your **staged** files to Vale, +Prettier, Cypress (for UI tests and link-checking), and Pytest (for testing Python and shell code in code blocks). ### Skip pre-commit hooks **We strongly recommend running linting and tests**, but you can skip them (and avoid installing dependencies) -by including the `HUSKY=0` environment variable or the `--no-verify` flag with +by including the `LEFTHOOK=0` environment variable or the `--no-verify` flag with your commit--for example: ```sh @@ -96,13 +112,14 @@ git commit -m "" --no-verify ``` ```sh -HUSKY=0 git commit +LEFTHOOK=0 git commit ``` -For more options, see the [Husky documentation](https://typicode.github.io/husky/how-to.html#skipping-git-hooks). - ### Set up test scripts and credentials +Tests for code blocks require your InfluxDB credentials and other typical +InfluxDB configuration. + To set up your docs-v2 instance to run tests locally, do the following: 1. **Set executable permissions on test scripts** in `./test/src`: @@ -118,91 +135,38 @@ To set up your docs-v2 instance to run tests locally, do the following: Cloud Dedicated instance for testing in most cases. To avoid conflicts when running tests, create separate Cloud Dedicated and Clustered databases. -3. **Create .env.test**: Copy the `./test/env.test.example` file into each +1. **Create .env.test**: Copy the `./test/env.test.example` file into each product directory to test and rename the file as `.env.test`--for example: ```sh ./content/influxdb/cloud-dedicated/.env.test ``` -4. Inside each product's `.env.test` file, assign your InfluxDB credentials to - environment variables. +2. Inside each product's `.env.test` file, assign your InfluxDB credentials to + environment variables: - In addition to the usual `INFLUX_` environment variables, in your - `cloud-dedicated/.env.test` and `clustered/.env.test` files define the + - Include the usual `INFLUX_` environment variables + - In + `cloud-dedicated/.env.test` and `clustered/.env.test` files, also define the following variables: - - `ACCOUNT_ID`, `CLUSTER_ID`: You can find these values in your `influxctl` - `config.toml` configuration file. - - `MANAGEMENT_TOKEN`: Use the `influxctl management create` command to generate - a long-lived management token to authenticate Management API requests + - `ACCOUNT_ID`, `CLUSTER_ID`: You can find these values in your `influxctl` + `config.toml` configuration file. + - `MANAGEMENT_TOKEN`: Use the `influxctl management create` command to generate + a long-lived management token to authenticate Management API requests - For the full list of variables you'll need to include, see the substitution - patterns in `./test/src/prepare-content.sh`. + See the substitution + patterns in `./test/src/prepare-content.sh` for the full list of variables you may need to define in your `.env.test` files. - **Warning**: The database you configure in `.env.test` and any written data may -be deleted during test runs. - - **Warning**: To prevent accidentally adding credentials to the docs-v2 repo, -Git is configured to ignore `.env*` files. Don't add your `.env.test` files to Git. -Consider backing them up on your local machine in case of accidental deletion. - -5. For influxctl commands to run in tests, move or copy your `config.toml` file +3. For influxctl commands to run in tests, move or copy your `config.toml` file to the `./test` directory. -### Pre-commit linting and testing - -When you try to commit your changes using `git commit` or your editor, -the project automatically runs pre-commit checks for spelling, punctuation, -and style on your staged files. - -`.husky/pre-commit` script runs Git pre-commit hook commands, including -[`lint-staged`](https://github.com/lint-staged/lint-staged). - -The `.lintstagedrc.mjs` lint-staged configuration maps product-specific glob -patterns to lint and test commands and passes a product-specific -`.env.test` file to a test runner Docker container. -The container then loads the `.env` file into the container's environment variables. - -To test or troubleshoot testing and linting scripts and configurations before -committing, choose from the following: - -- To run pre-commit scripts without actually committing, append `exit 1` to the -`.husky/pre-commit` script--for example: - - ```sh - ./test/src/monitor-tests.sh start - npx lint-staged --relative - ./test/src/monitor-tests.sh kill - exit 1 - ``` - - And then run `git commit`. - - The `exit 1` status fails the commit, even if all the tasks succeed. - -- Use `yarn` to run one of the lint or test scripts configured in - `package.json`--for example: - - ```sh - yarn run test - ``` - -- Run `lint-staged` directly and specify options: - - ```sh - npx lint-staged --relative --verbose - ``` - -The pre-commit linting configuration checks for _error-level_ problems. -An error-level rule violation fails the commit and you must do one of the following before you can commit your changes: - -- fix the reported problem in the content - -- edit the linter rules to permanently allow the content. - See **Configure style rules**. - -- temporarily override the hook (using `git commit --no-verify`) +> [!Warning] +> +> - The database you configure in `.env.test` and any written data may +be deleted during test runs. +> - Don't add your `.env.test` files to Git. To prevent accidentally adding credentials to the docs-v2 repo, +Git is configured to ignore `.env*` files. Consider backing them up on your local machine in case of accidental deletion. #### Test shell and python code blocks @@ -249,7 +213,7 @@ You probably don't want to display this syntax in the docs, which unfortunately means you'd need to include the test block separately from the displayed code block. To hide it from users, wrap the code block inside an HTML comment. -Pytest-codeblocks will still collect and run the code block. +pytest-codeblocks will still collect and run the code block. ##### Mark tests to skip @@ -546,6 +510,25 @@ Insert warning markdown content here. {{% /warn %}} ``` +### Product data + +Display the full product name and version name for the current page--for example: + +- InfluxDB 3 Core +- InfluxDB 3 Cloud Dedicated + +```md +{{% product-name %}} +``` + +Display the short version name (part of the key used in `products.yml`) from the current page URL--for example: + +- `/influxdb3/core` returns `core` + +```md +{{% product-key %}} +``` + ### Enterprise Content For sections content that relate specifically to InfluxDB Enterprise, use the `{{% enterprise %}}` shortcode. diff --git a/Dockerfile.pytest b/Dockerfile.pytest index d6c9e2fd2..c624960f3 100644 --- a/Dockerfile.pytest +++ b/Dockerfile.pytest @@ -32,7 +32,13 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \ python3-venv \ rsync \ telegraf \ - wget + wget \ + yq + +# Install InfluxDB 3 Core +RUN curl -O https://www.influxdata.com/d/install_influxdb3.sh \ +&& chmod +x install_influxdb3.sh \ +&& bash -c yes | ./install_influxdb3.sh RUN ln -s /usr/bin/python3 /usr/bin/python diff --git a/api-docs/README.md b/api-docs/README.md index 3c8d121db..3e59d120c 100755 --- a/api-docs/README.md +++ b/api-docs/README.md @@ -237,7 +237,7 @@ InfluxDB Cloud releases are frequent and not versioned, so the Cloud API spec is We regenerate API reference docs from `influxdata/openapi` **master** branch as features are released. -### InfluxDB OSS version +### InfluxDB OSS v2 version Given that `influxdata/openapi` **master** may contain OSS spec changes not implemented diff --git a/api-docs/generate-api-docs.sh b/api-docs/generate-api-docs.sh index 07d42eda1..1e7820a7e 100755 --- a/api-docs/generate-api-docs.sh +++ b/api-docs/generate-api-docs.sh @@ -41,7 +41,6 @@ function generateHtml { local productName="$3" local api="$4" local configPath="$5" - local isDefault=$6 # Use the product name to define the menu for the Hugo template local menu="$(echo $productVersion | sed 's/\./_/g;s/-/_/g;s/\//_/g;')" @@ -55,12 +54,23 @@ function generateHtml { # Use the title and summary defined in the product API's info.yml file. local title=$(yq '.title' $productVersion/$apiName/content/info.yml) local menuTitle=$(yq '.x-influxdata-short-title' $productVersion/$apiName/content/info.yml) - local description=$(yq '.summary' $productVersion/$apiName/content/info.yml) + # Get the shortened description to use for metadata. + local shortDescription=$(yq '.x-influxdata-short-description' $productVersion/$apiName/content/info.yml) + # Get the aliases array from the configuration file. + local aliases=$(yq e ".apis | .$api | .x-influxdata-docs-aliases" "$configPath") + # If aliases is null, set it to an empty YAML array. + if [[ "$aliases" == "null" ]]; then + aliases='[]' + fi + local weight=102 + if [[ $apiName == "v1-compatibility" ]]; then + weight=304 + fi # Define the file name for the Redoc HTML output. local specbundle=redoc-static_index.html # Define the temporary file for the Hugo template and Redoc HTML. local tmpfile="${productVersion}-${api}_index.tmp" - + echo "Bundling $specPath" # Use npx to install and run the specified version of redoc-cli. @@ -70,75 +80,31 @@ function generateHtml { npm_config_yes=true npx redoc-cli@0.12.3 bundle $specPath \ --config $configPath \ -t template.hbs \ - --title=$title \ + --title="$title" \ --options.sortPropsAlphabetically \ --options.menuToggle \ --options.hideDownloadButton \ --options.hideHostname \ --options.noAutoAuth \ --output=$specbundle \ - --templateOptions.description=$description \ + --templateOptions.description="$shortDescription" \ --templateOptions.product="$productVersion" \ --templateOptions.productName="$productName" - if [[ $apiName == "v1-compatibility" ]]; then - frontmatter="--- -title: $title -description: $description -layout: api -menu: - $menu: - parent: InfluxDB HTTP API - name: $menuTitle - identifier: api-reference-$apiName -weight: 304 -aliases: - - /influxdb/$versionDir/api/v1/ + local frontmatter=$(yq eval -n \ + ".title = \"$title\" | + .description = \"$shortDescription\" | + .layout = \"api\" | + .weight = $weight | + .menu.[\"$menu\"].parent = \"InfluxDB HTTP API\" | + .menu.[\"$menu\"].name = \"$menuTitle\" | + .menu.[\"$menu\"].identifier = \"api-reference-$apiName\" | + .aliases = \"$aliases\"") + + frontmatter="--- +$frontmatter --- " - elif [[ $apiVersion == "0" ]]; then - echo $productName $apiName - frontmatter="--- -title: $title -description: $description -layout: api -weight: 102 -menu: - $menu: - parent: InfluxDB HTTP API - name: $menuTitle - identifier: api-reference-$apiName ---- -" - elif [[ $isDefault == true ]]; then - frontmatter="--- -title: $title -description: $description -layout: api -menu: - $menu: - parent: InfluxDB HTTP API - name: $menuTitle - identifier: api-reference-$apiName -weight: 102 -aliases: - - /influxdb/$versionDir/api/ ---- -" - else - frontmatter="--- -title: $title -description: $description -layout: api -menu: - $menu: - parent: InfluxDB HTTP API - name: $menuTitle - identifier: api-reference-$apiName -weight: 102 ---- -" - fi # Create the Hugo template file with the frontmatter and Redoc HTML echo "$frontmatter" >> $tmpfile @@ -174,9 +140,10 @@ function build { # Get the version API configuration file. local configPath="$version/.config.yml" if [ ! -f "$configPath" ]; then - configPath=".config.yml" + # Skip to the next version if the configuration file doesn't exist. + continue fi - echo "Using config $configPath" + echo "Using config $version $configPath" # Get the product name from the configuration. local versionName versionName=$(yq e '.x-influxdata-product-name' "$configPath") @@ -198,13 +165,7 @@ function build { if [ -d "$specPath" ] || [ ! -f "$specPath" ]; then echo "OpenAPI spec $specPath doesn't exist." fi - # Get default status from the configuration. - local isDefault=false - local defaultStatus - defaultStatus=$(yq e ".apis | .$api | .x-influxdata-default" "$configPath") - if [[ $defaultStatus == "true" ]]; then - isDefault=true - fi + # If the spec file differs from master, regenerate the HTML. local update=0 @@ -218,9 +179,9 @@ function build { if [[ $update -eq 0 ]]; then echo "Regenerating $version $api" - generateHtml "$specPath" "$version" "$versionName" "$api" "$configPath" "$isDefault" + generateHtml "$specPath" "$version" "$versionName" "$api" "$configPath" fi - echo "========Done with $version $api========" + echo -e "========Finished $version $api========\n\n" done <<< "$apis" done } diff --git a/api-docs/getswagger.sh b/api-docs/getswagger.sh index 3b650fd5f..c3c9a36a1 100755 --- a/api-docs/getswagger.sh +++ b/api-docs/getswagger.sh @@ -62,7 +62,7 @@ function showHelp { subcommand=$1 case "$subcommand" in - cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|all) + cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|core-v3|enterprise-v3|all) product=$1 shift @@ -176,17 +176,6 @@ function updateCloudDedicatedV2 { postProcess $outFile 'influxdb3/cloud-dedicated/.config.yml' v2@2 } -function updateClusteredV2 { - outFile="influxdb3/clustered/v2/ref.yml" - if [[ -z "$baseUrl" ]]; - then - echo "Using existing $outFile" - else - curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile - fi - postProcess $outFile 'influxdb3/clustered/.config.yml' v2@2 -} - function updateCloudServerlessV2 { outFile="influxdb3/cloud-serverless/v2/ref.yml" if [[ -z "$baseUrl" ]]; @@ -198,15 +187,50 @@ function updateCloudServerlessV2 { postProcess $outFile 'influxdb3/cloud-serverless/.config.yml' v2@2 } +function updateClusteredV2 { + outFile="influxdb3/clustered/v2/ref.yml" + if [[ -z "$baseUrl" ]]; + then + echo "Using existing $outFile" + else + curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile + fi + postProcess $outFile 'influxdb3/clustered/.config.yml' v2@2 +} + +function updateCoreV3 { + outFile="influxdb3/core/v3/ref.yml" + if [[ -z "$baseUrl" ]]; + then + echo "Using existing $outFile" + else + local url="${baseUrl}/TO_BE_DECIDED" + curl $UPDATE_OPTIONS $url -o $outFile + fi + postProcess $outFile 'influxdb3/core/.config.yml' v3@3 +} + +function updateEnterpriseV3 { + outFile="influxdb3/enterprise/v3/ref.yml" + if [[ -z "$baseUrl" ]]; + then + echo "Using existing $outFile" + else + local url="${baseUrl}/TO_BE_DECIDED" + curl $UPDATE_OPTIONS $url -o $outFile + fi + postProcess $outFile 'influxdb3/enterprise/.config.yml' v3@3 +} + function updateOSSV2 { - outFile="influxdb/v2/ref.yml" + outFile="influxdb/v2/v2/ref.yml" if [[ -z "$baseUrlOSS" ]]; then echo "Using existing $outFile" else curl $UPDATE_OPTIONS ${baseUrlOSS}/contracts/ref/oss.yml -o $outFile fi - postProcess $outFile 'influxdb/v2/.config.yml' '@2' + postProcess $outFile 'influxdb/v2/.config.yml' 'v2@2' } function updateV1Compat { @@ -220,7 +244,7 @@ function updateV1Compat { postProcess $outFile 'influxdb/cloud/.config.yml' 'v1-compatibility' outFile="influxdb/v2/v1-compatibility/swaggerV1Compat.yml" - cp cloud/v1-compatibility/swaggerV1Compat.yml $outFile + cp influxdb/cloud/v1-compatibility/swaggerV1Compat.yml $outFile postProcess $outFile 'influxdb/v2/.config.yml' 'v1-compatibility' outFile="influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml" @@ -257,6 +281,12 @@ then elif [ "$product" = "clustered-v2" ]; then updateClusteredV2 +elif [ "$product" = "core-v3" ]; +then + updateCoreV3 +elif [ "$product" = "enterprise-v3" ]; +then + updateEnterpriseV3 elif [ "$product" = "v2" ]; then updateOSSV2 @@ -270,9 +300,11 @@ then updateCloudDedicatedManagement updateCloudServerlessV2 updateClusteredV2 + updateCoreV3 + updateEnterpriseV3 updateOSSV2 updateV1Compat else - echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, clustered-v2, v2, v1-compat, or all." + echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, cloud-dedicated-management, clustered-v2, core-v3, enterprise-v3, v2, v1-compat, or all." showHelp fi diff --git a/api-docs/influxdb/cloud/.config.yml b/api-docs/influxdb/cloud/.config.yml index 49632b887..e2c6e000f 100644 --- a/api-docs/influxdb/cloud/.config.yml +++ b/api-docs/influxdb/cloud/.config.yml @@ -8,6 +8,9 @@ x-influxdata-product-name: InfluxDB v2 Cloud apis: v2@2: root: v2/ref.yml - x-influxdata-default: true + x-influxdata-docs-aliases: + - /influxdb/cloud/api/ v1-compatibility@2: root: v1-compatibility/swaggerV1Compat.yml + x-influxdata-docs-aliases: + - /influxdb/cloud/api/v1/ diff --git a/api-docs/influxdb/cloud/v1-compatibility/content/info.yml b/api-docs/influxdb/cloud/v1-compatibility/content/info.yml index 07ae7e9e7..b6a8e2171 100644 --- a/api-docs/influxdb/cloud/v1-compatibility/content/info.yml +++ b/api-docs/influxdb/cloud/v1-compatibility/content/info.yml @@ -1,11 +1,17 @@ -title: InfluxDB v1 HTTP API for InfluxDB Cloud +title: InfluxDB v1 HTTP API for InfluxDB Cloud (TSM) x-influxdata-short-title: v1 Compatibility API -summary: The InfluxDB v1 compatibility API provides a programmatic interface for interactions with InfluxDB Cloud using InfluxDB v1-compatible endpoints. +x-influxdata-short-description: The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB v2 bucket using InfluxDB v1 endpoints. description: | - The InfluxDB 1.x compatibility /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB v2 bucket using InfluxDB v1 endpoints. + + The `/write` and `/query` endpoints support InfluxDB 1.x client libraries and third-party integrations such as Grafana. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/swaggerV1Compat.yml). license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com diff --git a/api-docs/influxdb/cloud/v1-compatibility/swaggerV1Compat.yml b/api-docs/influxdb/cloud/v1-compatibility/swaggerV1Compat.yml index 56853fefa..eff69ff75 100644 --- a/api-docs/influxdb/cloud/v1-compatibility/swaggerV1Compat.yml +++ b/api-docs/influxdb/cloud/v1-compatibility/swaggerV1Compat.yml @@ -1,16 +1,21 @@ openapi: 3.0.0 info: - title: InfluxDB v1 HTTP API for InfluxDB Cloud + title: InfluxDB v1 HTTP API for InfluxDB Cloud (TSM) version: '' description: | - The InfluxDB 1.x compatibility /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB v2 bucket using InfluxDB v1 endpoints. + + The `/write` and `/query` endpoints support InfluxDB 1.x client libraries and third-party integrations such as Grafana. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/swaggerV1Compat.yml). license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v1 compatibility API provides a programmatic interface for interactions with InfluxDB Cloud using InfluxDB v1-compatible endpoints. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -276,9 +281,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -327,12 +332,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object InfluxQLCSVResponse: diff --git a/api-docs/influxdb/cloud/v2/content/info.yml b/api-docs/influxdb/cloud/v2/content/info.yml index 0504afa39..b8f780933 100644 --- a/api-docs/influxdb/cloud/v2/content/info.yml +++ b/api-docs/influxdb/cloud/v2/content/info.yml @@ -1,8 +1,9 @@ title: InfluxDB Cloud API Service x-influxdata-short-title: v2 API -summary: The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. +x-influxdata-short-description: The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. description: | - The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. + Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml). @@ -10,3 +11,7 @@ version: 2.x license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb/cloud/v2/content/tag-groups.yml b/api-docs/influxdb/cloud/v2/content/tag-groups.yml index 62cc43226..7fcd8cc8d 100644 --- a/api-docs/influxdb/cloud/v2/content/tag-groups.yml +++ b/api-docs/influxdb/cloud/v2/content/tag-groups.yml @@ -6,8 +6,5 @@ - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: [] diff --git a/api-docs/influxdb/cloud/v2/ref.yml b/api-docs/influxdb/cloud/v2/ref.yml index df84bf180..6bb9bb583 100644 --- a/api-docs/influxdb/cloud/v2/ref.yml +++ b/api-docs/influxdb/cloud/v2/ref.yml @@ -3,14 +3,18 @@ info: title: InfluxDB Cloud API Service version: 2.x description: | - The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. + Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml). license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with InfluxDB v2. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: https://{baseurl} description: InfluxDB Cloud API URL @@ -97,8 +101,8 @@ tags: - name: Dashboards - name: Data I/O endpoints - description: | - The InfluxDB 1.x data model includes [databases](/influxdb/v1.8/concepts/glossary/#database) - and [retention policies](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + The InfluxDB 1.x data model includes [databases](/influxdb/cloud/reference/glossary/#database) + and [retention policies](/influxdb/cloud/reference/glossary/#retention-policy-rp). InfluxDB 2.x replaces databases and retention policies with buckets. To support InfluxDB 1.x query and write patterns in InfluxDB 2.x, databases and retention policies are mapped to buckets using the @@ -410,7 +414,7 @@ paths: Specifies an authorization by its `token` property value and returns the authorization. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't support this parameter. InfluxDB OSS ignores the `token=` parameter, applies other parameters, and then returns the result. @@ -437,11 +441,11 @@ paths: token used in the request has `read-user` permission for the users (`userID` property value) in those authorizations. - #### InfluxDB OSS + #### InfluxDB OSS v2 - **Warning**: The response body contains authorizations with their [API token](/influxdb/cloud/reference/glossary/#token) values in clear text. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, + - If the request uses an _[operator token](/influxdb/v2/security/tokens/#operator-token)_, InfluxDB OSS returns authorizations for all organizations in the instance. '400': $ref: '#/components/responses/GeneralServerError' @@ -593,11 +597,11 @@ paths: Use this endpoint to retrieve information about an API token, including the token's permissions and the user that the token is scoped to. - #### InfluxDB OSS + #### InfluxDB OSS v2 - InfluxDB OSS returns [API token](/influxdb/cloud/reference/glossary/#token) values in authorizations. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, + - If the request uses an _[operator token](/influxdb/v2/security/tokens/#operator-token)_, InfluxDB OSS returns authorizations for all organizations in the instance. #### Related guides @@ -710,7 +714,7 @@ paths: If no query parameters are passed, InfluxDB returns all buckets up to the default `limit`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - If you use an _[operator token](/influxdb/cloud/security/tokens/#operator-token)_ to authenticate your request, InfluxDB retrieves resources for _all @@ -742,7 +746,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Lists buckets for the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Lists buckets for the specified organization. in: query @@ -757,7 +761,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Lists buckets for the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Lists buckets for the specified organization. @@ -842,7 +846,7 @@ paths: [retention period](/influxdb/cloud/reference/glossary/#retention-period) is 30 days. - #### InfluxDB OSS + #### InfluxDB OSS v2 - A single InfluxDB OSS instance supports active writes or queries for approximately 20 buckets across all organizations at a given time. @@ -985,7 +989,7 @@ paths: 2. Returns an HTTP `204` status code if queued; _error_ otherwise. 3. Handles the delete asynchronously. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -1016,7 +1020,7 @@ paths: #### InfluxDB Cloud - The bucket is queued for deletion. - #### InfluxDB OSS + #### InfluxDB OSS v2 - The bucket is deleted. '400': content: @@ -1153,7 +1157,7 @@ paths: - Requires the `retentionRules` property in the request body. If you don't provide `retentionRules`, InfluxDB responds with an HTTP `403` status code. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't require `retentionRules`. @@ -3452,7 +3456,7 @@ paths: schema: type: string - description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + A [retention policy](/influxdb/cloud/reference/glossary/#retention-policy-rp). Specifies the 1.x retention policy to filter on. in: query name: rp @@ -3857,7 +3861,7 @@ paths: Because writes and deletes are asynchronous, your change might not yet be readable when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -3891,7 +3895,7 @@ paths: - Deletes data from the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - Deletes data from the bucket in the specified organization. @@ -3919,7 +3923,7 @@ paths: - Deletes data from the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - Deletes data from the bucket in the specified organization. @@ -3973,7 +3977,7 @@ paths: Because writes are asynchronous, data might not yet be written when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Deleted the data. '400': @@ -3991,7 +3995,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -4031,16 +4035,12 @@ paths: 1. Use [token authentication](#section/Authentication/TokenAuthentication) or a [user session](#tag/Signin) with this endpoint to retrieve feature flags and their values. - 2. Follow the instructions to [enable, disable, or override values for feature flags](/influxdb/cloud/reference/config-options/#feature-flags). + 2. Follow the instructions to enable, disable, or override values for feature flags. 3. **Optional**: To confirm that your change is applied, do one of the following: - Send a request to this endpoint to retrieve the current feature flag values. - Send a request to the [`GET /api/v2/config` endpoint](#operation/GetConfig) to retrieve the current runtime server configuration. - - #### Related guides - - - [InfluxDB configuration options](/influxdb/cloud/reference/config-options/) operationId: GetFlags parameters: - $ref: '#/components/parameters/TraceSpan' @@ -4262,7 +4262,7 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PutMePassword parameters: - $ref: '#/components/parameters/TraceSpan' @@ -4298,7 +4298,7 @@ paths: - Doesn't let you manage user passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. '401': @@ -5111,7 +5111,7 @@ paths: 2. Returns an HTTP `204` status code if queued; _error_ otherwise. 3. Handles the delete asynchronously. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -5141,7 +5141,7 @@ paths: #### InfluxDB Cloud - The organization is queued for deletion. - #### InfluxDB OSS + #### InfluxDB OSS v2 - The organization is deleted. '400': $ref: '#/components/responses/BadRequestError' @@ -6076,7 +6076,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Queries the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Queries the bucket in the specified organization. @@ -6092,7 +6092,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Queries the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Queries the bucket in the specified organization. @@ -6156,7 +6156,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -6172,7 +6172,7 @@ paths: [global limit](/influxdb/cloud/account-management/limits/#global-limits) - returns `Retry-After` header that describes when to try the write again. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - doesn't return this error. headers: Retry-After: @@ -8508,7 +8508,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. '401': @@ -9857,7 +9857,7 @@ paths: - Always returns this error; doesn't support cancelling tasks. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't return this error. '500': @@ -11184,7 +11184,7 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PostUsersIDPassword parameters: - $ref: '#/components/parameters/TraceSpan' @@ -11222,7 +11222,7 @@ paths: - Doesn't allow you to manage passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. default: @@ -11259,7 +11259,7 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PutUsersIDPassword parameters: - $ref: '#/components/parameters/TraceSpan' @@ -11297,7 +11297,7 @@ paths: - Doesn't allow you to manage passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. default: @@ -11600,7 +11600,7 @@ paths: Because writes and deletes are asynchronous, your change might not yet be readable when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request and handles the write synchronously. - If all points were written successfully, responds with HTTP `2xx` status code; @@ -11671,7 +11671,7 @@ paths: - Returns only `application/json` for format and limit errors. - Returns only `text/html` for some quota limit errors. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns only `application/json` for format and limit errors. @@ -11695,7 +11695,7 @@ paths: - Writes data to the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - If you pass both `orgID` and `org`, they must both be valid. @@ -11715,7 +11715,7 @@ paths: - Writes data to the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - If you pass both `orgID` and `org`, they must both be valid. @@ -11772,7 +11772,7 @@ paths: - Validated and queued the request. - Handles the write asynchronously - the write might not have completed yet. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Successfully wrote all points in the batch. @@ -11807,7 +11807,7 @@ paths: - Returns this error for bucket schema conflicts. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -11848,7 +11848,7 @@ paths: - Returns this error if the payload exceeds the 50MB size limit. - Returns `Content-Type: text/html` for this error. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - Returns this error only if the [Go (golang) `ioutil.ReadAll()`](https://pkg.go.dev/io/ioutil#ReadAll) function raises an error. - Returns `Content-Type: application/json` for this error. @@ -11866,7 +11866,7 @@ paths: Rates (data-in (writes), queries (reads), and deletes) accrue within a fixed five-minute window. Once a rate limit is exceeded, InfluxDB returns an error response until the current five-minute window resets. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't return this error. headers: @@ -12186,7 +12186,7 @@ paths: - description: | The database to query data from. This is mapped to an InfluxDB [bucket](/influxdb/cloud/reference/glossary/#bucket). - For more information, see [Database and retention policy mapping](/influxdb/cloud/api/influxdb-1x/dbrp/). + For more information, see [Database and retention policy mapping](/influxdb/cloud/api-guide/influxdb-1x/dbrp/). in: query name: db required: true @@ -12195,7 +12195,7 @@ paths: - description: | The retention policy to query data from. This is mapped to an InfluxDB [bucket](/influxdb/cloud/reference/glossary/#bucket). - For more information, see [Database and retention policy mapping](/influxdb/cloud/api/influxdb-1x/dbrp/). + For more information, see [Database and retention policy mapping](/influxdb/cloud/api-guide/influxdb-1x/dbrp/). in: query name: rp schema: @@ -12208,7 +12208,7 @@ paths: type: string - description: | A unix timestamp precision. - Formats timestamps as [unix (epoch) timestamps](/influxdb/cloud/reference/glossary/#unix-timestamp) the specified precision + Formats timestamps as [unix (epoch) timestamps](/influxdb/cloud/reference/glossary/#unix-timestamp) with the specified precision instead of [RFC3339 timestamps](/influxdb/cloud/reference/glossary/#rfc3339-timestamp) with nanosecond precision. in: query name: epoch @@ -12271,7 +12271,7 @@ paths: [global limit](/influxdb/cloud/account-management/limits/#global-limits) - returns `Retry-After` header that describes when to try the write again. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - doesn't return this error. headers: Retry-After: @@ -12550,7 +12550,7 @@ components: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. GeneralServerError: @@ -13448,7 +13448,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/cloud/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string virtual: @@ -13491,7 +13491,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/cloud/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string required: @@ -13515,7 +13515,7 @@ components: type: boolean retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/cloud/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string DBRPs: @@ -14600,9 +14600,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -14651,12 +14651,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object IntegerLiteral: @@ -15997,7 +15997,7 @@ components: - Doesn't use `shardGroupDurationsSeconds`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Default value depends on the [bucket retention period](/influxdb/cloud/reference/internals/shards/#shard-group-duration). @@ -16130,7 +16130,7 @@ components: If you need compatibility with InfluxDB 1.x, specify a value for the `rp` property; otherwise, see the `retentionRules` property. - [Retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) + [Retention policy](/influxdb/cloud/reference/glossary/#retention-policy-rp) is an InfluxDB 1.x concept. The InfluxDB 2.x and Cloud equivalent is [retention period](/influxdb/cloud/reference/glossary/#retention-period). @@ -16147,7 +16147,7 @@ components: - Use `explicit` to enforce column names, tags, fields, and data types for your data. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't support `explicit` bucket schemas. required: @@ -16440,7 +16440,7 @@ components: - Does not use `shardGroupDurationsSeconds`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Default value depends on the [bucket retention period](/influxdb/cloud/reference/internals/shards/#shard-group-duration). @@ -16463,7 +16463,7 @@ components: - `retentionRules` is required. - #### InfluxDB OSS + #### InfluxDB OSS v2 - `retentionRules` isn't required. items: @@ -19156,9 +19156,6 @@ x-tagGroups: - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: - Authorizations (API tokens) diff --git a/api-docs/influxdb/v2/.config.yml b/api-docs/influxdb/v2/.config.yml index c7db819a6..d17efcdfc 100644 --- a/api-docs/influxdb/v2/.config.yml +++ b/api-docs/influxdb/v2/.config.yml @@ -6,8 +6,11 @@ extends: x-influxdata-product-name: InfluxDB v2 OSS apis: - '@2': - root: ref.yml - x-influxdata-default: true + v2@2: + root: v2/ref.yml + x-influxdata-docs-aliases: + - /influxdb/v2/api/ v1-compatibility@2: root: v1-compatibility/swaggerV1Compat.yml + x-influxdata-docs-aliases: + - /influxdb/v2/api/v1/ diff --git a/api-docs/influxdb/v2/content/info.yml b/api-docs/influxdb/v2/content/info.yml deleted file mode 100644 index 4a75f7efa..000000000 --- a/api-docs/influxdb/v2/content/info.yml +++ /dev/null @@ -1,12 +0,0 @@ -title: InfluxDB OSS API Service -x-influxdata-short-title: v2 API -summary: The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. -description: | - The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. - - This documentation is generated from the - [InfluxDB OpenAPI specification](https://github.com/influxdata/openapi/blob/influxdb-oss-v2.7.0/contracts/ref/oss.yml). -version: 2.x -license: - name: MIT - url: 'https://opensource.org/licenses/MIT' diff --git a/api-docs/influxdb/v2/v1-compatibility/content/info.yml b/api-docs/influxdb/v2/v1-compatibility/content/info.yml index f897815d3..f58bd21f1 100644 --- a/api-docs/influxdb/v2/v1-compatibility/content/info.yml +++ b/api-docs/influxdb/v2/v1-compatibility/content/info.yml @@ -1,12 +1,15 @@ title: InfluxDB v1 HTTP API for InfluxDB v2 OSS x-influxdata-short-title: v1 Compatibility API -summary: The InfluxDB v1 compatibility API provides a programmatic interface for interactions with InfluxDB v2 using InfluxDB v1-compatible endpoints. description: | + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB v2 bucket using InfluxDB v1 endpoints. The InfluxDB 1.x compatibility `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/swaggerV1Compat.yml). - license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb/v2/v1-compatibility/swaggerV1Compat.yml b/api-docs/influxdb/v2/v1-compatibility/swaggerV1Compat.yml index b008e0315..615df2a79 100644 --- a/api-docs/influxdb/v2/v1-compatibility/swaggerV1Compat.yml +++ b/api-docs/influxdb/v2/v1-compatibility/swaggerV1Compat.yml @@ -3,14 +3,18 @@ info: title: InfluxDB v1 HTTP API for InfluxDB v2 OSS version: '' description: | - The InfluxDB 1.x compatibility /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB v2 bucket using InfluxDB v1 endpoints. + The InfluxDB 1.x compatibility `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/swaggerV1Compat.yml). license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v1 compatibility API provides a programmatic interface for interactions with InfluxDB v2 using InfluxDB v1-compatible endpoints. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -276,9 +280,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -327,12 +331,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object InfluxQLCSVResponse: @@ -463,19 +467,3 @@ components: For examples and more information, see how to [authenticate with a username and password](/influxdb/cloud/reference/api/influxdb-1x/). -x-tagGroups: - - name: Using the InfluxDB HTTP API - tags: - - Quick start - - Authentication - - Supported operations - - Headers - - Pagination - - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - - name: All endpoints - tags: - - Query - - Write diff --git a/api-docs/influxdb/v2/v2/content/info.yml b/api-docs/influxdb/v2/v2/content/info.yml new file mode 100644 index 000000000..5edcba5c6 --- /dev/null +++ b/api-docs/influxdb/v2/v2/content/info.yml @@ -0,0 +1,17 @@ +title: InfluxDB OSS API Service +x-influxdata-short-title: v2 API +description: | + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. + + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. + + This documentation is generated from the + [InfluxDB OpenAPI specification](https://github.com/influxdata/openapi/blob/influxdb-oss-v2.7.0/contracts/ref/oss.yml). +version: 2.x +license: + name: MIT + url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb/v2/content/tag-groups.yml b/api-docs/influxdb/v2/v2/content/tag-groups.yml similarity index 67% rename from api-docs/influxdb/v2/content/tag-groups.yml rename to api-docs/influxdb/v2/v2/content/tag-groups.yml index 62cc43226..7fcd8cc8d 100644 --- a/api-docs/influxdb/v2/content/tag-groups.yml +++ b/api-docs/influxdb/v2/v2/content/tag-groups.yml @@ -6,8 +6,5 @@ - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: [] diff --git a/api-docs/influxdb/v2/ref.yml b/api-docs/influxdb/v2/v2/ref.yml similarity index 96% rename from api-docs/influxdb/v2/ref.yml rename to api-docs/influxdb/v2/v2/ref.yml index 28fbe371e..c2f5e9308 100644 --- a/api-docs/influxdb/v2/ref.yml +++ b/api-docs/influxdb/v2/v2/ref.yml @@ -3,6 +3,8 @@ info: title: InfluxDB OSS API Service version: 2.x description: | + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. + The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. Access the InfluxDB API using `/api/v2/` and InfluxDB v1-compatible endpoints. This documentation is generated from the @@ -10,7 +12,10 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v2 HTTP API provides a programmatic interface for all interactions with an InfluxDB v2 instance. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -39,7 +44,7 @@ tags: Optionally, when creating an authorization, you can scope it to a specific user. If a user signs in with username and password, creating a _user session_, the session carries the permissions granted by all the user's authorizations. - For more information, see [how to assign a token to a specific user](/influxdb/latest/security/tokens/create-token/). + For more information, see [how to assign a token to a specific user](/influxdb/v2/security/tokens/create-token/). To create a user session, use the [`POST /api/v2/signin` endpoint](#operation/PostSignin). ### Related endpoints @@ -49,22 +54,22 @@ tags: ### Related guides - - [Authorize API requests](/influxdb/latest/api-guide/api_intro/#authentication) - - [Manage API tokens](/influxdb/latest/security/tokens/) - - [Assign a token to a specific user](/influxdb/latest/security/tokens/create-token/) + - [Authorize API requests](/influxdb/v2/api-guide/api_intro/#authentication) + - [Manage API tokens](/influxdb/v2/security/tokens/) + - [Assign a token to a specific user](/influxdb/v2/security/tokens/create-token/) name: Authorizations (API tokens) - name: Backup - description: | - Store your data in InfluxDB [buckets](/influxdb/latest/reference/glossary/#bucket). + Store your data in InfluxDB [buckets](/influxdb/v2/reference/glossary/#bucket). A bucket is a named location where time series data is stored. All buckets - have a [retention period](/influxdb/latest/reference/glossary/#retention-period), + have a [retention period](/influxdb/v2/reference/glossary/#retention-period), a duration of time that each data point persists. InfluxDB drops all points with timestamps older than the bucket’s retention period. A bucket belongs to an organization. ### Related guides - - [Manage buckets](/influxdb/latest/organizations/buckets/) + - [Manage buckets](/influxdb/v2/organizations/buckets/) name: Buckets - name: Cells - name: Checks @@ -77,18 +82,18 @@ tags: | Query parameter | Value type | Description | |:------------------------ |:--------------------- |:-------------------------------------------| - | `bucket` | string | The bucket name or ID ([find your bucket](/influxdb/latest/organizations/buckets/view-buckets/). | - | `bucketID` | string | The bucket ID ([find your bucket](/influxdb/latest/organizations/buckets/view-buckets/). | - | `org` | string | The organization name or ID ([find your organization](/influxdb/latest/organizations/view-orgs/). | - | `orgID` | 16-byte string | The organization ID ([find your organization](/influxdb/latest/organizations/view-orgs/). | + | `bucket` | string | The bucket name or ID ([find your bucket](/influxdb/v2/organizations/buckets/view-buckets/). | + | `bucketID` | string | The bucket ID ([find your bucket](/influxdb/v2/organizations/buckets/view-buckets/). | + | `org` | string | The organization name or ID ([find your organization](/influxdb/v2/organizations/view-orgs/). | + | `orgID` | 16-byte string | The organization ID ([find your organization](/influxdb/v2/organizations/view-orgs/). | name: Common parameters x-traitTag: true - name: Config - name: Dashboards - name: Data I/O endpoints - description: | - The InfluxDB 1.x data model includes [databases](/influxdb/v1.8/concepts/glossary/#database) - and [retention policies](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + The InfluxDB 1.x data model includes [databases](/influxdb/v2/reference/glossary/#database) + and [retention policies](/influxdb/v2/reference/glossary/#retention-policy-rp). InfluxDB 2.x replaces databases and retention policies with buckets. To support InfluxDB 1.x query and write patterns in InfluxDB 2.x, databases and retention policies are mapped to buckets using the @@ -98,7 +103,7 @@ tags: ### Related guides - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) name: DBRPs - description: | Generate profiling and trace reports. @@ -141,7 +146,7 @@ tags: - name: NotificationEndpoints - name: NotificationRules - description: | - Create and manage your [organizations](/influxdb/latest/reference/glossary/#organization). + Create and manage your [organizations](/influxdb/v2/reference/glossary/#organization). An organization is a workspace for a group of users. Organizations can be used to separate different environments, projects, teams or users within InfluxDB. @@ -190,10 +195,10 @@ tags: Retrieve data, analyze queries, and get query suggestions. name: Query - description: | - See the [**API Quick Start**](/influxdb/latest/api-guide/api_intro/) + See the [**API Quick Start**](/influxdb/v2/api-guide/api_intro/) to get up and running authenticating with tokens, writing to buckets, and querying data. - [**InfluxDB API client libraries**](/influxdb/latest/api-guide/client-libraries/) + [**InfluxDB API client libraries**](/influxdb/v2/api-guide/client-libraries/) are available for popular languages and ready to import into your application. name: Quick start x-traitTag: true @@ -214,7 +219,7 @@ tags: | `200` | Success | | | `204` | Success. No content | InfluxDB doesn't return data for the request. | | `400` | Bad request | May indicate one of the following: | - | `401` | Unauthorized | May indicate one of the following: | + | `401` | Unauthorized | May indicate one of the following: | | `404` | Not found | Requested resource was not found. `message` in the response body provides details about the requested resource. | | `413` | Request entity too large | Request payload exceeds the size limit. | | `422` | Unprocessable entity | Request data is invalid. `code` and `message` in the response body provide details about the problem. | @@ -238,7 +243,7 @@ tags: x-traitTag: true - name: System information endpoints - description: | - Process and analyze your data with [tasks](/influxdb/latest/reference/glossary/#task) + Process and analyze your data with [tasks](/influxdb/v2/reference/glossary/#task) in the InfluxDB task engine. Use the `/api/v2/tasks` endpoints to schedule and manage tasks, retry task runs, and retrieve run logs. @@ -257,8 +262,8 @@ tags: ### Related guides - - [Get started with tasks](/influxdb/latest/process-data/get-started/) - - [Common data processing tasks](/influxdb/latest/process-data/common-tasks/) + - [Get started with tasks](/influxdb/v2/process-data/get-started/) + - [Common data processing tasks](/influxdb/v2/process-data/common-tasks/) name: Tasks - name: Telegraf Plugins - name: Telegrafs @@ -283,8 +288,8 @@ tags: ### Related guides - - [InfluxDB stacks](/influxdb/latest/influxdb-templates/stacks/) - - [InfluxDB templates](/influxdb/latest/influxdb-templates/) + - [InfluxDB stacks](/influxdb/v2/influxdb-templates/stacks/) + - [InfluxDB templates](/influxdb/v2/influxdb-templates/) name: Templates - description: | Manage users for your organization. @@ -301,13 +306,13 @@ tags: ### Related guides - - [Manage users](/influxdb/latest/influxdb/latest/users/) - - [Create a token scoped to a user](/influxdb/latest/latest/security/tokens/create-token/#create-a-token-scoped-to-a-user) + - [Manage users](/influxdb/v2/influxdb/v2/users/) + - [Create a token scoped to a user](/influxdb/v2/latest/security/tokens/create-token/#create-a-token-scoped-to-a-user) name: Users - name: Variables - name: Views - description: | - Write time series data to [buckets](/influxdb/latest/reference/glossary/#bucket). + Write time series data to [buckets](/influxdb/v2/reference/glossary/#bucket). name: Write paths: /api/v2: @@ -347,7 +352,7 @@ paths: #### InfluxDB Cloud - - InfluxDB Cloud doesn't expose [API token](/influxdb/latest/reference/glossary/#token) + - InfluxDB Cloud doesn't expose [API token](/influxdb/v2/reference/glossary/#token) values in `GET /api/v2/authorizations` responses; returns `token: redacted` for all authorizations. @@ -361,42 +366,42 @@ paths: #### Related guides - - [View tokens](/influxdb/latest/security/tokens/view-tokens/) + - [View tokens](/influxdb/v2/security/tokens/view-tokens/) operationId: GetAuthorizations parameters: - $ref: '#/components/parameters/TraceSpan' - description: | A user ID. - Only returns authorizations scoped to the specified [user](/influxdb/latest/reference/glossary/#user). + Only returns authorizations scoped to the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: userID schema: type: string - description: | A user name. - Only returns authorizations scoped to the specified [user](/influxdb/latest/reference/glossary/#user). + Only returns authorizations scoped to the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: user schema: type: string - - description: An organization ID. Only returns authorizations that belong to the specified [organization](/influxdb/latest/reference/glossary/#organization). + - description: An organization ID. Only returns authorizations that belong to the specified [organization](/influxdb/v2/reference/glossary/#organization). in: query name: orgID schema: type: string - description: | An organization name. - Only returns authorizations that belong to the specified [organization](/influxdb/latest/reference/glossary/#organization). + Only returns authorizations that belong to the specified [organization](/influxdb/v2/reference/glossary/#organization). in: query name: org schema: type: string - description: | - An API [token](/influxdb/latest/reference/glossary/#token) value. + An API [token](/influxdb/v2/reference/glossary/#token) value. Specifies an authorization by its `token` property value and returns the authorization. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't support this parameter. InfluxDB OSS ignores the `token=` parameter, applies other parameters, and then returns the result. @@ -423,11 +428,11 @@ paths: token used in the request has `read-user` permission for the users (`userID` property value) in those authorizations. - #### InfluxDB OSS + #### InfluxDB OSS v2 - **Warning**: The response body contains authorizations with their - [API token](/influxdb/latest/reference/glossary/#token) values in clear text. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, + [API token](/influxdb/v2/reference/glossary/#token) values in clear text. + - If the request uses an _[operator token](/influxdb/v2/security/tokens/#operator-token)_, InfluxDB OSS returns authorizations for all organizations in the instance. '400': $ref: '#/components/responses/GeneralServerError' @@ -446,7 +451,7 @@ paths: post: description: | Creates an authorization and returns the authorization with the - generated API [token](/influxdb/latest/reference/glossary/#token). + generated API [token](/influxdb/v2/reference/glossary/#token). Use this endpoint to create an authorization, which generates an API token with permissions to `read` or `write` to a specific resource or `type` of resource. @@ -471,7 +476,7 @@ paths: #### Related guides - - [Create a token](/influxdb/latest/security/tokens/create-token/) + - [Create a token](/influxdb/v2/security/tokens/create-token/) operationId: PostAuthorizations parameters: - $ref: '#/components/parameters/TraceSpan' @@ -579,19 +584,19 @@ paths: Use this endpoint to retrieve information about an API token, including the token's permissions and the user that the token is scoped to. - #### InfluxDB OSS + #### InfluxDB OSS v2 - InfluxDB OSS returns - [API token](/influxdb/latest/reference/glossary/#token) values in authorizations. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, + [API token](/influxdb/v2/reference/glossary/#token) values in authorizations. + - If the request uses an _[operator token](/influxdb/v2/security/tokens/#operator-token)_, InfluxDB OSS returns authorizations for all organizations in the instance. #### Related guides - - [View tokens](/influxdb/latest/security/tokens/view-tokens/) + - [View tokens](/influxdb/v2/security/tokens/view-tokens/) externalDocs: description: View tokens - url: https://docs.influxdata.com/influxdb/latest/security/tokens/view-tokens/ + url: https://docs.influxdata.com/influxdb/v2/security/tokens/view-tokens/ operationId: GetAuthorizationsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -768,7 +773,7 @@ paths: schema: format: int64 type: integer - - description: The earliest time [RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp) to include in the snapshot. + - description: The earliest time [RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp) to include in the snapshot. examples: RFC3339: summary: RFC3339 date/time format @@ -812,19 +817,19 @@ paths: /api/v2/buckets: get: description: | - Lists [buckets](/influxdb/latest/reference/glossary/#bucket). + Lists [buckets](/influxdb/v2/reference/glossary/#bucket). InfluxDB retrieves buckets owned by the - [organization](/influxdb/latest/reference/glossary/#organization) + [organization](/influxdb/v2/reference/glossary/#organization) associated with the authorization - ([API token](/influxdb/latest/reference/glossary/#token)). + ([API token](/influxdb/v2/reference/glossary/#token)). To limit which buckets are returned, pass query parameters in your request. If no query parameters are passed, InfluxDB returns all buckets up to the default `limit`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - - If you use an _[operator token](/influxdb/latest/security/tokens/#operator-token)_ + - If you use an _[operator token](/influxdb/v2/security/tokens/#operator-token)_ to authenticate your request, InfluxDB retrieves resources for _all organizations_ in the instance. To retrieve resources for only a specific organization, use the @@ -835,11 +840,11 @@ paths: | Action | Permission required | |:--------------------------|:--------------------| | Retrieve _user buckets_ | `read-buckets` | - | Retrieve [_system buckets_](/influxdb/latest/reference/internals/system-buckets/) | `read-orgs` | + | Retrieve [_system buckets_](/influxdb/v2/reference/internals/system-buckets/) | `read-orgs` | #### Related Guides - - [Manage buckets](/influxdb/latest/organizations/buckets/) + - [Manage buckets](/influxdb/v2/organizations/buckets/) operationId: GetBuckets parameters: - $ref: '#/components/parameters/TraceSpan' @@ -854,7 +859,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Lists buckets for the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Lists buckets for the specified organization. in: query @@ -869,7 +874,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Lists buckets for the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Lists buckets for the specified organization. @@ -948,13 +953,13 @@ paths: --header "Content-Type: application/json" post: description: | - Creates a [bucket](/influxdb/latest/reference/glossary/#bucket) + Creates a [bucket](/influxdb/v2/reference/glossary/#bucket) and returns the bucket resource. The default data - [retention period](/influxdb/latest/reference/glossary/#retention-period) + [retention period](/influxdb/v2/reference/glossary/#retention-period) is 30 days. - #### InfluxDB OSS + #### InfluxDB OSS v2 - A single InfluxDB OSS instance supports active writes or queries for approximately 20 buckets across all organizations at a given time. @@ -970,8 +975,8 @@ paths: #### Related Guides - - [Create a bucket](/influxdb/latest/organizations/buckets/create-bucket/) - - [Create bucket CLI reference](/influxdb/latest/reference/cli/influx/bucket/create) + - [Create a bucket](/influxdb/v2/organizations/buckets/create-bucket/) + - [Create bucket CLI reference](/influxdb/v2/reference/cli/influx/bucket/create) operationId: PostBuckets parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1097,7 +1102,7 @@ paths: 2. Returns an HTTP `204` status code if queued; _error_ otherwise. 3. Handles the delete asynchronously. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -1108,7 +1113,7 @@ paths: #### Related Guides - - [Delete a bucket](/influxdb/latest/organizations/buckets/delete-bucket/#delete-a-bucket-in-the-influxdb-ui) + - [Delete a bucket](/influxdb/v2/organizations/buckets/delete-bucket/#delete-a-bucket-in-the-influxdb-ui) operationId: DeleteBucketsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1128,7 +1133,7 @@ paths: #### InfluxDB Cloud - The bucket is queued for deletion. - #### InfluxDB OSS + #### InfluxDB OSS v2 - The bucket is deleted. '400': content: @@ -1265,13 +1270,13 @@ paths: - Requires the `retentionRules` property in the request body. If you don't provide `retentionRules`, InfluxDB responds with an HTTP `403` status code. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't require `retentionRules`. #### Related Guides - - [Update a bucket](/influxdb/latest/organizations/buckets/update-bucket/) + - [Update a bucket](/influxdb/v2/organizations/buckets/update-bucket/) operationId: PatchBucketsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1409,7 +1414,7 @@ paths: #### Related guides - Use the [`/api/v2/labels` InfluxDB API endpoint](#tag/Labels) to retrieve and manage labels. - - [Manage labels in the InfluxDB UI](/influxdb/latest/visualize-data/labels/) + - [Manage labels in the InfluxDB UI](/influxdb/v2/visualize-data/labels/) operationId: GetBucketsIDLabels parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1473,7 +1478,7 @@ paths: #### Related guides - Use the [`/api/v2/labels` InfluxDB API endpoint](#tag/Labels) to retrieve and manage labels. - - [Manage labels in the InfluxDB UI](/influxdb/latest/visualize-data/labels/) + - [Manage labels in the InfluxDB UI](/influxdb/v2/visualize-data/labels/) operationId: PostBucketsIDLabels parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1599,18 +1604,18 @@ paths: description: | Lists all users for a bucket. - InfluxDB [users](/influxdb/latest/reference/glossary/#user) have + InfluxDB [users](/influxdb/v2/reference/glossary/#user) have permission to access InfluxDB. - [Members](/influxdb/latest/reference/glossary/#member) are users in + [Members](/influxdb/v2/reference/glossary/#member) are users in an organization with access to the specified resource. Use this endpoint to retrieve all users with access to a bucket. #### Related guides - - [Manage users](/influxdb/latest/users/) - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage users](/influxdb/v2/users/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: GetBucketsIDMembers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1669,18 +1674,18 @@ paths: description: | Add a user to a bucket and return the new user information. - InfluxDB [users](/influxdb/latest/reference/glossary/#user) have + InfluxDB [users](/influxdb/v2/reference/glossary/#user) have permission to access InfluxDB. - [Members](/influxdb/latest/reference/glossary/#member) are users in + [Members](/influxdb/v2/reference/glossary/#member) are users in an organization. Use this endpoint to give a user member privileges to a bucket. #### Related guides - - [Manage users](/influxdb/latest/users/) - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage users](/influxdb/v2/users/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: PostBucketsIDMembers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1760,8 +1765,8 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage users](/influxdb/v2/users/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: DeleteBucketsIDMembersID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1802,7 +1807,7 @@ paths: /api/v2/buckets/{bucketID}/owners: get: description: | - Lists all [owners](/influxdb/latest/reference/glossary/#owner) + Lists all [owners](/influxdb/v2/reference/glossary/#owner) of a bucket. Bucket owners have permission to delete buckets and remove user and member @@ -1831,7 +1836,7 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) + - [Manage users](/influxdb/v2/users/) operationId: GetBucketsIDOwners parameters: - $ref: '#/components/parameters/TraceSpan' @@ -1882,7 +1887,7 @@ paths: - Buckets post: description: | - Adds an owner to a bucket and returns the [owners](/influxdb/latest/reference/glossary/#owner) + Adds an owner to a bucket and returns the [owners](/influxdb/v2/reference/glossary/#owner) with role and user detail. Use this endpoint to create a _resource owner_ for the bucket. @@ -1911,7 +1916,7 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) + - [Manage users](/influxdb/v2/users/) operationId: PostBucketsIDOwners parameters: - $ref: '#/components/parameters/TraceSpan' @@ -2013,7 +2018,7 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) + - [Manage users](/influxdb/v2/users/) operationId: DeleteBucketsIDOwnersID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -2382,7 +2387,7 @@ paths: #### Related guides - - [View your runtime server configuration](/influxdb/latest/reference/config-options/#view-your-runtime-server-configuration) + - [View your runtime server configuration](/influxdb/v2/reference/config-options/#view-your-runtime-server-configuration) operationId: GetConfig parameters: - $ref: '#/components/parameters/TraceSpan' @@ -2406,18 +2411,18 @@ paths: /api/v2/dashboards: get: description: | - Lists [dashboards](/influxdb/latest/reference/glossary/#dashboard). + Lists [dashboards](/influxdb/v2/reference/glossary/#dashboard). #### Related guides - - [Manage dashboards](/influxdb/latest/visualize-data/dashboards/). + - [Manage dashboards](/influxdb/v2/visualize-data/dashboards/). operationId: GetDashboards parameters: - $ref: '#/components/parameters/TraceSpan' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Descending' - - description: A user ID. Only returns [dashboards](/influxdb/latest/reference/glossary/#dashboard) where the specified user has the `owner` role. + - description: A user ID. Only returns [dashboards](/influxdb/v2/reference/glossary/#dashboard) where the specified user has the `owner` role. in: query name: owner schema: @@ -2433,7 +2438,7 @@ paths: type: string - description: | A list of dashboard IDs. - Returns only the specified [dashboards](/influxdb/latest/reference/glossary/#dashboard). + Returns only the specified [dashboards](/influxdb/v2/reference/glossary/#dashboard). If you specify `id` and `owner`, only `id` is used. in: query name: id @@ -2443,16 +2448,16 @@ paths: type: array - description: | An organization ID. - Only returns [dashboards](/influxdb/latest/reference/glossary/#dashboard) that belong to the specified - [organization](/influxdb/latest/reference/glossary/#organization). + Only returns [dashboards](/influxdb/v2/reference/glossary/#dashboard) that belong to the specified + [organization](/influxdb/v2/reference/glossary/#organization). in: query name: orgID schema: type: string - description: | An organization name. - Only returns [dashboards](/influxdb/latest/reference/glossary/#dashboard) that belong to the specified - [organization](/influxdb/latest/reference/glossary/#organization). + Only returns [dashboards](/influxdb/v2/reference/glossary/#dashboard) that belong to the specified + [organization](/influxdb/v2/reference/glossary/#organization). in: query name: org schema: @@ -3153,7 +3158,7 @@ paths: #### Related guide - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) operationId: GetDBRPs parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3198,7 +3203,7 @@ paths: schema: type: string - description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + A [retention policy](/influxdb/v2/reference/glossary/#retention-policy-rp). Specifies the 1.x retention policy to filter on. in: query name: rp @@ -3264,7 +3269,7 @@ paths: #### Related guide - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) operationId: PostDBRP parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3279,7 +3284,7 @@ paths: Note that _`retention_policy`_ is a required parameter in the request body. The value of _`retention_policy`_ can be any arbitrary `string` name or value, with the default value commonly set as `autogen`. - The value of _`retention_policy`_ isn't a [retention_policy](/influxdb/latest/reference/glossary/#retention-policy-rp) + The value of _`retention_policy`_ isn't a [retention_policy](/influxdb/v2/reference/glossary/#retention-policy-rp) required: true responses: '201': @@ -3349,7 +3354,7 @@ paths: #### Related guide - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) operationId: DeleteDBRPID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3412,7 +3417,7 @@ paths: #### Related guide - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) operationId: GetDBRPsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3521,7 +3526,7 @@ paths: #### Related guide - - [Database and retention policy mapping](/influxdb/latest/reference/api/influxdb-1x/dbrp/) + - [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/) required: true responses: '200': @@ -3590,7 +3595,7 @@ paths: - **allocs**: All past memory allocations - **block**: Stack traces that led to blocking on synchronization primitives - **cpu**: (Optional) Program counters sampled from the executing stack. - Include by passing the `cpu` query parameter with a [duration](/influxdb/latest/reference/glossary/#duration) value. + Include by passing the `cpu` query parameter with a [duration](/influxdb/v2/reference/glossary/#duration) value. Equivalent to the report from [`GET /debug/pprof/profile?seconds=NUMBER_OF_SECONDS`](#operation/GetDebugPprofProfile). - **goroutine**: All current goroutines - **heap**: Memory allocations for live objects @@ -3600,13 +3605,13 @@ paths: parameters: - $ref: '#/components/parameters/TraceSpan' - description: | - Collects and returns CPU profiling data for the specified [duration](/influxdb/latest/reference/glossary/#duration). + Collects and returns CPU profiling data for the specified [duration](/influxdb/v2/reference/glossary/#duration). in: query name: cpu schema: externalDocs: description: InfluxDB duration - url: https://docs.influxdata.com/influxdb/latest/reference/glossary/#duration + url: https://docs.influxdata.com/influxdb/v2/reference/glossary/#duration format: duration type: string responses: @@ -4329,7 +4334,7 @@ paths: Because writes and deletes are asynchronous, your change might not yet be readable when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -4347,8 +4352,8 @@ paths: #### Related guides - - [Delete data](/influxdb/latest/write-data/delete-data/) - - Learn how to use [delete predicate syntax](/influxdb/latest/reference/syntax/delete-predicate/). + - [Delete data](/influxdb/v2/write-data/delete-data/) + - Learn how to use [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/). - Learn how InfluxDB handles [deleted tags](https://docs.influxdata.com/flux/v0.x/stdlib/influxdata/influxdb/schema/measurementtagkeys/) and [deleted fields](https://docs.influxdata.com/flux/v0.x/stdlib/influxdata/influxdb/schema/measurementfieldkeys/). operationId: PostDelete @@ -4363,7 +4368,7 @@ paths: - Deletes data from the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - Deletes data from the bucket in the specified organization. @@ -4391,7 +4396,7 @@ paths: - Deletes data from the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - Deletes data from the bucket in the specified organization. @@ -4425,8 +4430,8 @@ paths: #### Related guides - - [Delete data](/influxdb/latest/write-data/delete-data/) - - Learn how to use [delete predicate syntax](/influxdb/latest/reference/syntax/delete-predicate/). + - [Delete data](/influxdb/v2/write-data/delete-data/) + - Learn how to use [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/). required: true responses: '204': @@ -4445,7 +4450,7 @@ paths: Because writes are asynchronous, data might not yet be written when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Deleted the data. '400': @@ -4463,7 +4468,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -4503,7 +4508,7 @@ paths: 1. Use [token authentication](#section/Authentication/TokenAuthentication) or a [user session](#tag/Signin) with this endpoint to retrieve feature flags and their values. - 2. Follow the instructions to [enable, disable, or override values for feature flags](/influxdb/latest/reference/config-options/#feature-flags). + 2. Follow the instructions to [enable, disable, or override values for feature flags](/influxdb/v2/reference/config-options/#feature-flags). 3. **Optional**: To confirm that your change is applied, do one of the following: - Send a request to this endpoint to retrieve the current feature flag values. @@ -4512,7 +4517,7 @@ paths: #### Related guides - - [InfluxDB configuration options](/influxdb/latest/reference/config-options/) + - [InfluxDB configuration options](/influxdb/v2/reference/config-options/) operationId: GetFlags parameters: - $ref: '#/components/parameters/TraceSpan' @@ -4737,7 +4742,7 @@ paths: /api/v2/me/password: put: description: | - Updates the password for the signed-in [user](/influxdb/latest/reference/glossary/#user). + Updates the password for the signed-in [user](/influxdb/v2/reference/glossary/#user). This endpoint represents the third step in the following three-step process to let a user with a user session update their password: @@ -4763,18 +4768,18 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PutMePassword parameters: - $ref: '#/components/parameters/TraceSpan' - description: | The user session cookie for the - [user](/influxdb/latest/reference/glossary/#user) + [user](/influxdb/v2/reference/glossary/#user) signed in with [Basic authentication credentials](#section/Authentication/BasicAuthentication). #### Related guides - - [Manage users](/influxdb/v2.7/users/) + - [Manage users](/influxdb/v2/users/) example: influxdb-oss-session=19aaaZZZGOvP2GGryXVT2qYftlFKu3bIopurM6AGFow1yF1abhtOlbHfsc-d8gozZFC_6WxmlQIAwLMW5xs523w== in: cookie name: influxdb-oss-session @@ -4799,7 +4804,7 @@ paths: - Doesn't let you manage user passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. '401': @@ -4824,9 +4829,9 @@ paths: #### Related guides - - For the list of metrics categories, see [InfluxDB OSS metrics](/influxdb/latest/reference/internals/metrics/). - - Learn how to use InfluxDB to [scrape Prometheus metrics](/influxdb/latest/write-data/developer-tools/scrape-prometheus-metrics/). - - Learn how InfluxDB [parses the Prometheus exposition format](/influxdb/latest/reference/prometheus-metrics/). + - For the list of metrics categories, see [InfluxDB OSS metrics](/influxdb/v2/reference/internals/metrics/). + - Learn how to use InfluxDB to [scrape Prometheus metrics](/influxdb/v2/write-data/developer-tools/scrape-prometheus-metrics/). + - Learn how InfluxDB [parses the Prometheus exposition format](/influxdb/v2/reference/prometheus-metrics/). operationId: GetMetrics parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5487,7 +5492,7 @@ paths: /api/v2/orgs: get: description: | - Lists [organizations](/influxdb/latest/reference/glossary/#organization/). + Lists [organizations](/influxdb/v2/reference/glossary/#organization/). To limit which organizations are returned, pass query parameters in your request. If no query parameters are passed, InfluxDB returns all organizations up to the default `limit`. @@ -5498,7 +5503,7 @@ paths: #### Related guides - - [View organizations](/influxdb/latest/organizations/view-orgs/) + - [View organizations](/influxdb/v2/organizations/view-orgs/) operationId: GetOrgs parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5570,7 +5575,7 @@ paths: - Security and access endpoints post: description: | - Creates an [organization](/influxdb/latest/reference/glossary/#organization) + Creates an [organization](/influxdb/v2/reference/glossary/#organization) and returns the newly created organization. #### InfluxDB Cloud @@ -5579,7 +5584,7 @@ paths: #### Related guides - - [Manage organizations](/influxdb/latest/organizations) + - [Manage organizations](/influxdb/v2/organizations) operationId: PostOrgs parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5666,7 +5671,7 @@ paths: 2. Returns an HTTP `204` status code if queued; _error_ otherwise. 3. Handles the delete asynchronously. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request, handles the delete synchronously, and then responds with success or failure. @@ -5677,7 +5682,7 @@ paths: #### Related guides - - [Delete organizations](/influxdb/latest/organizations/delete-orgs/) + - [Delete organizations](/influxdb/v2/organizations/delete-orgs/) operationId: DeleteOrgsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5696,7 +5701,7 @@ paths: #### InfluxDB Cloud - The organization is queued for deletion. - #### InfluxDB OSS + #### InfluxDB OSS v2 - The organization is deleted. '400': $ref: '#/components/responses/BadRequestError' @@ -5736,7 +5741,7 @@ paths: #### Related guides - - [View organizations](/influxdb/latest/organizations/view-orgs/) + - [View organizations](/influxdb/v2/organizations/view-orgs/) operationId: GetOrgsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5806,7 +5811,7 @@ paths: #### Related Guides - - [Update an organization](/influxdb/latest/organizations/update-org/) + - [Update an organization](/influxdb/v2/organizations/update-org/) operationId: PatchOrgsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5853,10 +5858,10 @@ paths: description: | Lists all users that belong to an organization. - InfluxDB [users](/influxdb/latest/reference/glossary/#user) have + InfluxDB [users](/influxdb/v2/reference/glossary/#user) have permission to access InfluxDB. - [Members](/influxdb/latest/reference/glossary/#member) are users + [Members](/influxdb/v2/reference/glossary/#member) are users within the organization. #### InfluxDB Cloud @@ -5878,8 +5883,8 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage users](/influxdb/v2/users/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: GetOrgsIDMembers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -5952,10 +5957,10 @@ paths: description: | Add a user to an organization. - InfluxDB [users](/influxdb/latest/reference/glossary/#user) have + InfluxDB [users](/influxdb/v2/reference/glossary/#user) have permission to access InfluxDB. - [Members](/influxdb/latest/reference/glossary/#member) are users + [Members](/influxdb/v2/reference/glossary/#member) are users within the organization. #### InfluxDB Cloud @@ -5975,8 +5980,8 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/users/) - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage users](/influxdb/v2/users/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: PostOrgsIDMembers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -6075,7 +6080,7 @@ paths: #### Related guides - - [Manage members](/influxdb/latest/organizations/members/) + - [Manage members](/influxdb/v2/organizations/members/) operationId: DeleteOrgsIDMembersID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -6258,7 +6263,7 @@ paths: /api/v2/orgs/{orgID}/owners/{userID}: delete: description: | - Removes an [owner](/influxdb/latest/reference/glossary/#owner) from + Removes an [owner](/influxdb/v2/reference/glossary/#owner) from the organization. Organization owners have permission to delete organizations and remove user and member @@ -6449,7 +6454,7 @@ paths: #### Related guides - - [Influx ping](/influxdb/latest/reference/cli/influx/ping/) + - [Influx ping](/influxdb/v2/reference/cli/influx/ping/) operationId: GetPing responses: '204': @@ -6493,7 +6498,7 @@ paths: #### Related guides - - [Influx ping](/influxdb/latest/reference/cli/influx/ping/) + - [Influx ping](/influxdb/v2/reference/cli/influx/ping/) operationId: HeadPing responses: '204': @@ -6536,7 +6541,7 @@ paths: #### Related guides - - [Query with the InfluxDB API](/influxdb/latest/query-data/execute-queries/influx-api/) + - [Query with the InfluxDB API](/influxdb/v2/query-data/execute-queries/influx-api/) - [Get started with Flux](https://docs.influxdata.com/flux/v0.x/get-started/) operationId: PostQuery parameters: @@ -6566,7 +6571,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Queries the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Queries the bucket in the specified organization. @@ -6582,7 +6587,7 @@ paths: - Doesn't use the `org` parameter or `orgID` parameter. - Queries the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or `orgID` parameter. - Queries the bucket in the specified organization. @@ -6646,7 +6651,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -6657,12 +6662,12 @@ paths: description: | #### InfluxDB Cloud: - returns this error if a **read** or **write** request exceeds your - plan's [adjustable service quotas](/influxdb/latest/account-management/limits/#adjustable-service-quotas) + plan's [adjustable service quotas](/influxdb/v2/account-management/limits/#adjustable-service-quotas) or if a **delete** request exceeds the maximum - [global limit](/influxdb/latest/account-management/limits/#global-limits) + [global limit](/influxdb/v2/account-management/limits/#global-limits) - returns `Retry-After` header that describes when to try the write again. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - doesn't return this error. headers: Retry-After: @@ -6843,7 +6848,7 @@ paths: post: description: | Analyzes a Flux query and returns a complete package source [Abstract Syntax - Tree (AST)](/influxdb/latest/reference/glossary/#abstract-syntax-tree-ast) + Tree (AST)](/influxdb/v2/reference/glossary/#abstract-syntax-tree-ast) for the query. Use this endpoint for deep query analysis such as debugging unexpected query @@ -9026,7 +9031,7 @@ paths: post: description: | Authenticates [Basic authentication credentials](#section/Authentication/BasicAuthentication) - for a [user](/influxdb/latest/reference/glossary/#user), + for a [user](/influxdb/v2/reference/glossary/#user), and then, if successful, generates a user session. To authenticate a user, pass the HTTP `Authorization` header with the @@ -9435,12 +9440,12 @@ paths: #### Related guides - - [View InfluxDB stacks](/influxdb/latest/influxdb-templates/stacks/). + - [View InfluxDB stacks](/influxdb/v2/influxdb-templates/stacks/). operationId: ListStacks parameters: - description: | An organization ID. - Only returns stacks owned by the specified [organization](/influxdb/latest/reference/glossary/#organization). + Only returns stacks owned by the specified [organization](/influxdb/v2/reference/glossary/#organization). #### InfluxDB Cloud @@ -9517,7 +9522,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. '401': @@ -9553,8 +9558,8 @@ paths: #### Related guides - - [Initialize an InfluxDB stack](/influxdb/latest/influxdb-templates/stacks/init/). - - [Use InfluxDB templates](/influxdb/latest/influxdb-templates/use/#apply-templates-to-an-influxdb-instance). + - [Initialize an InfluxDB stack](/influxdb/v2/influxdb-templates/stacks/init/). + - [Use InfluxDB templates](/influxdb/v2/influxdb-templates/use/#apply-templates-to-an-influxdb-instance). operationId: CreateStack requestBody: content: @@ -9748,19 +9753,19 @@ paths: /api/v2/tasks: get: description: | - Retrieves a list of [tasks](/influxdb/latest/reference/glossary/#task). + Retrieves a list of [tasks](/influxdb/v2/reference/glossary/#task). To limit which tasks are returned, pass query parameters in your request. If no query parameters are passed, InfluxDB returns all tasks up to the default `limit`. #### Related guide - - [Process data with InfluxDB tasks](/influxdb/latest/process-data/) + - [Process data with InfluxDB tasks](/influxdb/v2/process-data/) operationId: GetTasks parameters: - $ref: '#/components/parameters/TraceSpan' - description: | - A [task](/influxdb/latest/reference/glossary/#task) name. + A [task](/influxdb/v2/reference/glossary/#task) name. Only returns tasks with the specified name. Different tasks may have the same name. in: query @@ -9768,35 +9773,35 @@ paths: schema: type: string - description: | - A [task](/influxdb/latest/reference/glossary/#task) ID. + A [task](/influxdb/v2/reference/glossary/#task) ID. Only returns tasks created after the specified task. in: query name: after schema: type: string - description: | - A [user](/influxdb/latest/reference/glossary/#user) ID. + A [user](/influxdb/v2/reference/glossary/#user) ID. Only returns tasks owned by the specified user. in: query name: user schema: type: string - description: | - An [organization](/influxdb/latest/reference/glossary/#organization) name. + An [organization](/influxdb/v2/reference/glossary/#organization) name. Only returns tasks owned by the specified organization. in: query name: org schema: type: string - description: | - An [organization](/influxdb/latest/reference/glossary/#organization) ID. + An [organization](/influxdb/v2/reference/glossary/#organization) ID. Only returns tasks owned by the specified organization. in: query name: orgID schema: type: string - description: | - A [task](/influxdb/latest/reference/glossary/#task) status. + A [task](/influxdb/v2/reference/glossary/#task) status. Only returns tasks that have the specified status (`active` or `inactive`). in: query name: status @@ -9806,7 +9811,7 @@ paths: - inactive type: string - description: | - The maximum number of [tasks](/influxdb/latest/reference/glossary/#task) to return. + The maximum number of [tasks](/influxdb/v2/reference/glossary/#task) to return. Default is `100`. The minimum is `1` and the maximum is `500`. @@ -9820,7 +9825,7 @@ paths: minimum: 1 type: integer - description: | - A [task](/influxdb/latest/reference/glossary/#task) type (`basic` or `system`). + A [task](/influxdb/v2/reference/glossary/#task) type (`basic` or `system`). Default is `system`. Specifies the level of detail for tasks in the response. The default (`system`) response contains all the metadata properties for tasks. @@ -9927,14 +9932,14 @@ paths: --header 'Authorization: Token INFLUX_API_TOKEN' post: description: | - Creates a [task](/influxdb/latest/reference/glossary/#task) and returns the task. + Creates a [task](/influxdb/v2/reference/glossary/#task) and returns the task. #### Related guides - - [Get started with tasks](/influxdb/latest/process-data/get-started/) - - [Create a task](/influxdb/latest/process-data/manage-tasks/create-task/) - - [Common tasks](/influxdb/latest/process-data/common-tasks/) - - [Task configuration options](/influxdb/latest/process-data/task-options/) + - [Get started with tasks](/influxdb/v2/process-data/get-started/) + - [Create a task](/influxdb/v2/process-data/manage-tasks/create-task/) + - [Common tasks](/influxdb/v2/process-data/common-tasks/) + - [Task configuration options](/influxdb/v2/process-data/task-options/) operationId: PostTasks parameters: - $ref: '#/components/parameters/TraceSpan' @@ -9972,7 +9977,7 @@ paths: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if an incorrect value is passed for `org` or `orgID`. '401': @@ -10043,7 +10048,7 @@ paths: - Tasks get: description: | - Retrieves a [task](/influxdb/latest/reference/glossary/#task). + Retrieves a [task](/influxdb/v2/reference/glossary/#task). operationId: GetTasksID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -10234,7 +10239,7 @@ paths: /api/v2/tasks/{taskID}/logs: get: description: | - Retrieves a list of all logs for a [task](/influxdb/latest/reference/glossary/#task). + Retrieves a list of all logs for a [task](/influxdb/v2/reference/glossary/#task). When an InfluxDB task runs, a “run” record is created in the task’s history. Logs associated with each run provide relevant log messages, timestamps, and the exit status of the run attempt. @@ -10304,7 +10309,7 @@ paths: **Deprecated**: Tasks don't use `owner` and `member` roles. Use [`/api/v2/authorizations`](#tag/Authorizations-(API-tokens)) to assign user permissions. - Lists all users that have the `member` role for the specified [task](/influxdb/latest/reference/glossary/#task). + Lists all users that have the `member` role for the specified [task](/influxdb/v2/reference/glossary/#task). operationId: GetTasksIDMembers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -10378,7 +10383,7 @@ paths: **Deprecated**: Tasks don't use `owner` and `member` roles. Use [`/api/v2/authorizations`](#tag/Authorizations-(API-tokens)) to assign user permissions. - Removes a member from a [task](/influxdb/latest/reference/glossary/#task). + Removes a member from a [task](/influxdb/v2/reference/glossary/#task). operationId: DeleteTasksIDMembersID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -10567,7 +10572,7 @@ paths: /api/v2/tasks/{taskID}/runs: get: description: | - Retrieves a list of runs for a [task](/influxdb/latest/process-data/). + Retrieves a list of runs for a [task](/influxdb/v2/process-data/). To limit which task runs are returned, pass query parameters in your request. If no query parameters are passed, InfluxDB returns all task runs up to the default `limit`. @@ -10597,7 +10602,7 @@ paths: minimum: 1 type: integer - description: | - A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)). + A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)). Only returns runs scheduled after this time. in: query name: afterTime @@ -10605,7 +10610,7 @@ paths: format: date-time type: string - description: | - A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)). + A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)). Only returns runs scheduled before this time. in: query name: beforeTime @@ -10671,7 +10676,7 @@ paths: /api/v2/tasks/{taskID}/runs/{runID}: delete: description: | - Cancels a running [task](/influxdb/latest/reference/glossary/#task). + Cancels a running [task](/influxdb/v2/reference/glossary/#task). Use this endpoint with InfluxDB OSS to cancel a running task. @@ -10720,7 +10725,7 @@ paths: - Always returns this error; doesn't support cancelling tasks. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't return this error. '500': @@ -10732,7 +10737,7 @@ paths: - Tasks get: description: | - Retrieves a specific run for a [task](/influxdb/latest/reference/glossary/#task). + Retrieves a specific run for a [task](/influxdb/v2/reference/glossary/#task). Use this endpoint to retrieve detail and logs for a specific task run. operationId: GetTasksIDRunsID @@ -10865,7 +10870,7 @@ paths: /api/v2/tasks/{taskID}/runs/{runID}/retry: post: description: | - Queues a [task](/influxdb/latest/reference/glossary/#task) run to + Queues a [task](/influxdb/v2/reference/glossary/#task) run to retry and returns the scheduled run. To manually start a _new_ task run, use the @@ -10878,7 +10883,7 @@ paths: parameters: - $ref: '#/components/parameters/TraceSpan' - description: | - A [task](/influxdb/latest/reference/glossary/#task) ID. + A [task](/influxdb/v2/reference/glossary/#task) ID. Specifies the task to retry. in: path name: taskID @@ -10886,7 +10891,7 @@ paths: schema: type: string - description: | - A [task](/influxdb/latest/reference/glossary/#task) run ID. + A [task](/influxdb/v2/reference/glossary/#task) run ID. Specifies the task run to retry. To find a task run ID, use the @@ -11412,8 +11417,8 @@ paths: post: description: | Applies a template to - create or update a [stack](/influxdb/latest/influxdb-templates/stacks/) of InfluxDB - [resources](/influxdb/latest/reference/cli/influx/export/all/#resources). + create or update a [stack](/influxdb/v2/influxdb-templates/stacks/) of InfluxDB + [resources](/influxdb/v2/reference/cli/influx/export/all/#resources). The response contains the diff of changes and the stack ID. Use this endpoint to install an InfluxDB template to an organization. @@ -11429,18 +11434,18 @@ paths: #### Custom values for templates - - Some templates may contain [environment references](/influxdb/latest/influxdb-templates/create/#include-user-definable-resource-names) for custom metadata. + - Some templates may contain [environment references](/influxdb/v2/influxdb-templates/create/#include-user-definable-resource-names) for custom metadata. To provide custom values for environment references, pass the _`envRefs`_ property in the request body. For more information and examples, see how to - [define environment references](/influxdb/latest/influxdb-templates/use/#define-environment-references). + [define environment references](/influxdb/v2/influxdb-templates/use/#define-environment-references). - Some templates may contain queries that use - [secrets](/influxdb/latest/security/secrets/). + [secrets](/influxdb/v2/security/secrets/). To provide custom secret values, pass the _`secrets`_ property in the request body. Don't expose secret values in templates. - For more information, see [how to pass secrets when installing a template](/influxdb/latest/influxdb-templates/use/#pass-secrets-when-installing-a-template). + For more information, see [how to pass secrets when installing a template](/influxdb/v2/influxdb-templates/use/#pass-secrets-when-installing-a-template). #### Required permissions @@ -11453,8 +11458,8 @@ paths: #### Related guides - - [Use templates](/influxdb/latest/influxdb-templates/use/) - - [Stacks](/influxdb/latest/influxdb-templates/stacks/) + - [Use templates](/influxdb/v2/influxdb-templates/use/) + - [Stacks](/influxdb/v2/influxdb-templates/stacks/) operationId: ApplyTemplate requestBody: content: @@ -11740,7 +11745,7 @@ paths: /api/v2/users: get: description: | - Lists [users](/influxdb/latest/reference/glossary/#user). + Lists [users](/influxdb/v2/reference/glossary/#user). Default limit is `20`. To limit which users are returned, pass query parameters in your request. @@ -11749,14 +11754,14 @@ paths: | Action | Permission required | Restriction | |:-------|:--------------------|:------------| - | List all users | _[Operator token](/influxdb/latest/security/tokens/#operator-token)_ | | + | List all users | _[Operator token](/influxdb/v2/security/tokens/#operator-token)_ | | | List a specific user | `read-users` or `read-user USER_ID` | | *`USER_ID`* is the ID of the user that you want to retrieve. #### Related guides - - [View users](/influxdb/latest/users/view-users/). + - [View users](/influxdb/v2/users/view-users/). operationId: GetUsers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -11765,14 +11770,14 @@ paths: - $ref: '#/components/parameters/After' - description: | A user name. - Only lists the specified [user](/influxdb/latest/reference/glossary/#user). + Only lists the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: name schema: type: string - description: | A user ID. - Only lists the specified [user](/influxdb/latest/reference/glossary/#user). + Only lists the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: id schema: @@ -11821,7 +11826,7 @@ paths: - Users post: description: | - Creates a [user](/influxdb/latest/reference/glossary/#user) that can access InfluxDB. + Creates a [user](/influxdb/v2/reference/glossary/#user) that can access InfluxDB. Returns the user. Use this endpoint to create a user that can sign in to start a user session @@ -11843,12 +11848,12 @@ paths: | Action | Permission required | Restriction | |:-------|:--------------------|:------------| - | Create a user | _[Operator token](/influxdb/latest/security/tokens/#operator-token)_ | | + | Create a user | _[Operator token](/influxdb/v2/security/tokens/#operator-token)_ | | #### Related guides - - [Create a user](/influxdb/latest/users/create-user/) - - [Create an API token scoped to a user](/influxdb/latest/security/tokens/create-token/#create-a-token-scoped-to-a-user) + - [Create a user](/influxdb/v2/users/create-user/) + - [Create an API token scoped to a user](/influxdb/v2/security/tokens/create-token/#create-a-token-scoped-to-a-user) operationId: PostUsers parameters: - $ref: '#/components/parameters/TraceSpan' @@ -11936,7 +11941,7 @@ paths: /api/v2/users/{userID}: delete: description: | - Deletes a [user](/influxdb/latest/reference/glossary/#user). + Deletes a [user](/influxdb/v2/reference/glossary/#user). #### Required permissions @@ -11948,13 +11953,13 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/organizations/users/) + - [Manage users](/influxdb/v2/organizations/users/) operationId: DeleteUsersID parameters: - $ref: '#/components/parameters/TraceSpan' - description: | A user ID. - Specifies the [user](/influxdb/latest/reference/glossary/#user) to delete. + Specifies the [user](/influxdb/v2/reference/glossary/#user) to delete. in: path name: userID required: true @@ -11983,17 +11988,17 @@ paths: - Users get: description: | - Retrieves a [user](/influxdb/latest/reference/glossary/#user). + Retrieves a [user](/influxdb/v2/reference/glossary/#user). #### Related guides - - [Manage users](/influxdb/latest/organizations/users/) + - [Manage users](/influxdb/v2/organizations/users/) operationId: GetUsersID parameters: - $ref: '#/components/parameters/TraceSpan' - description: | A user ID. - Retrieves the specified [user](/influxdb/latest/reference/glossary/#user). + Retrieves the specified [user](/influxdb/v2/reference/glossary/#user). in: path name: userID required: true @@ -12015,7 +12020,7 @@ paths: - Users patch: description: | - Updates a [user](/influxdb/latest/reference/glossary/#user) and returns the user. + Updates a [user](/influxdb/v2/reference/glossary/#user) and returns the user. #### Required permissions @@ -12027,13 +12032,13 @@ paths: #### Related guides - - [Manage users](/influxdb/latest/organizations/users/) + - [Manage users](/influxdb/v2/organizations/users/) operationId: PatchUsersID parameters: - $ref: '#/components/parameters/TraceSpan' - description: | A user ID. - Specifies the [user](/influxdb/latest/reference/glossary/#user) to update. + Specifies the [user](/influxdb/v2/reference/glossary/#user) to update. in: path name: userID required: true @@ -12081,7 +12086,7 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PostUsersIDPassword parameters: - $ref: '#/components/parameters/TraceSpan' @@ -12119,7 +12124,7 @@ paths: - Doesn't allow you to manage passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. default: @@ -12156,7 +12161,7 @@ paths: #### Related guides - [InfluxDB Cloud - Change your password](/influxdb/cloud/account-management/change-password/) - - [InfluxDB OSS - Change your password](/influxdb/latest/users/change-password/) + - [InfluxDB OSS - Change your password](/influxdb/v2/users/change-password/) operationId: PutUsersIDPassword parameters: - $ref: '#/components/parameters/TraceSpan' @@ -12194,7 +12199,7 @@ paths: - Doesn't allow you to manage passwords through the API; always responds with this status. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't understand a value passed in the request. default: @@ -12481,7 +12486,7 @@ paths: description: | Writes data to a bucket. - Use this endpoint to send data in [line protocol](/influxdb/latest/reference/syntax/line-protocol/) format to InfluxDB. + Use this endpoint to send data in [line protocol](/influxdb/v2/reference/syntax/line-protocol/) format to InfluxDB. #### InfluxDB Cloud @@ -12497,7 +12502,7 @@ paths: Because writes and deletes are asynchronous, your change might not yet be readable when you receive the response. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Validates the request and handles the write synchronously. - If all points were written successfully, responds with HTTP `2xx` status code; @@ -12516,9 +12521,9 @@ paths: #### Related guides - - [Write data with the InfluxDB API](/influxdb/latest/write-data/developer-tools/api) - - [Optimize writes to InfluxDB](/influxdb/latest/write-data/best-practices/optimize-writes/) - - [Troubleshoot issues writing data](/influxdb/latest/write-data/troubleshoot/) + - [Write data with the InfluxDB API](/influxdb/v2/write-data/developer-tools/api) + - [Optimize writes to InfluxDB](/influxdb/v2/write-data/best-practices/optimize-writes/) + - [Troubleshoot issues writing data](/influxdb/v2/write-data/troubleshoot/) operationId: PostWrite parameters: - $ref: '#/components/parameters/TraceSpan' @@ -12568,13 +12573,13 @@ paths: - Returns only `application/json` for format and limit errors. - Returns only `text/html` for some quota limit errors. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns only `application/json` for format and limit errors. #### Related guides - - [Troubleshoot issues writing data](/influxdb/latest/write-data/troubleshoot/) + - [Troubleshoot issues writing data](/influxdb/v2/write-data/troubleshoot/) in: header name: Accept schema: @@ -12592,7 +12597,7 @@ paths: - Writes data to the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - If you pass both `orgID` and `org`, they must both be valid. @@ -12612,7 +12617,7 @@ paths: - Writes data to the bucket in the organization associated with the authorization (API token). - #### InfluxDB OSS + #### InfluxDB OSS v2 - Requires either the `org` parameter or the `orgID` parameter. - If you pass both `orgID` and `org`, they must both be valid. @@ -12647,7 +12652,7 @@ paths: format: byte type: string description: | - In the request body, provide data in [line protocol format](/influxdb/latest/reference/syntax/line-protocol/). + In the request body, provide data in [line protocol format](/influxdb/v2/reference/syntax/line-protocol/). To send compressed data, do the following: @@ -12657,7 +12662,7 @@ paths: #### Related guides - - [Best practices for optimizing writes](/influxdb/latest/write-data/best-practices/optimize-writes/) + - [Best practices for optimizing writes](/influxdb/v2/write-data/best-practices/optimize-writes/) required: true responses: '204': @@ -12669,13 +12674,13 @@ paths: - Validated and queued the request. - Handles the write asynchronously - the write might not have completed yet. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Successfully wrote all points in the batch. #### Related guides - - [How to check for write errors](/influxdb/latest/write-data/troubleshoot/) + - [How to check for write errors](/influxdb/v2/write-data/troubleshoot/) '400': content: application/json: @@ -12702,7 +12707,7 @@ paths: - Returns this error for bucket schema conflicts. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': @@ -12743,7 +12748,7 @@ paths: - Returns this error if the payload exceeds the 50MB size limit. - Returns `Content-Type: text/html` for this error. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - Returns this error only if the [Go (golang) `ioutil.ReadAll()`](https://pkg.go.dev/io/ioutil#ReadAll) function raises an error. - Returns `Content-Type: application/json` for this error. @@ -12761,7 +12766,7 @@ paths: Rates (data-in (writes), queries (reads), and deletes) accrue within a fixed five-minute window. Once a rate limit is exceeded, InfluxDB returns an error response until the current five-minute window resets. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't return this error. headers: @@ -12798,28 +12803,28 @@ paths: - $ref: '#/components/parameters/TraceSpan' - description: | A user ID. - Only returns legacy authorizations scoped to the specified [user](/influxdb/v2.7/reference/glossary/#user). + Only returns legacy authorizations scoped to the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: userID schema: type: string - description: | A user name. - Only returns legacy authorizations scoped to the specified [user](/influxdb/v2.7/reference/glossary/#user). + Only returns legacy authorizations scoped to the specified [user](/influxdb/v2/reference/glossary/#user). in: query name: user schema: type: string - description: | An organization ID. - Only returns legacy authorizations that belong to the specified [organization](/influxdb/v2.7/reference/glossary/#organization). + Only returns legacy authorizations that belong to the specified [organization](/influxdb/v2/reference/glossary/#organization). in: query name: orgID schema: type: string - description: | An organization name. - Only returns legacy authorizations that belong to the specified [organization](/influxdb/v2.7/reference/glossary/#organization). + Only returns legacy authorizations that belong to the specified [organization](/influxdb/v2/reference/glossary/#organization). in: query name: org schema: @@ -13045,7 +13050,7 @@ paths: description: | Media type that the client can understand. - **Note**: With `application/csv`, query results include [**unix timestamps**](/influxdb/v2.7/reference/glossary/#unix-timestamp) instead of [RFC3339 timestamps](/influxdb/v2.7/reference/glossary/#rfc3339-timestamp). + **Note**: With `application/csv`, query results include [**unix timestamps**](/influxdb/v2/reference/glossary/#unix-timestamp) instead of [RFC3339 timestamps](/influxdb/v2/reference/glossary/#rfc3339-timestamp). enum: - application/json - application/csv @@ -13080,8 +13085,8 @@ paths: type: string - description: | The database to query data from. - This is mapped to an InfluxDB [bucket](/influxdb/v2.7/reference/glossary/#bucket). - For more information, see [Database and retention policy mapping](/influxdb/v2.7/api/influxdb-1x/dbrp/). + This is mapped to an InfluxDB [bucket](/influxdb/v2/reference/glossary/#bucket). + For more information, see [Database and retention policy mapping](/influxdb/v2/api/influxdb-1x/dbrp/). in: query name: db required: true @@ -13089,8 +13094,8 @@ paths: type: string - description: | The retention policy to query data from. - This is mapped to an InfluxDB [bucket](/influxdb/v2.7/reference/glossary/#bucket). - For more information, see [Database and retention policy mapping](/influxdb/v2.7/api/influxdb-1x/dbrp/). + This is mapped to an InfluxDB [bucket](/influxdb/v2/reference/glossary/#bucket). + For more information, see [Database and retention policy mapping](/influxdb/v2/api/influxdb-1x/dbrp/). in: query name: rp schema: @@ -13103,8 +13108,8 @@ paths: type: string - description: | A unix timestamp precision. - Formats timestamps as [unix (epoch) timestamps](/influxdb/v2.7/reference/glossary/#unix-timestamp) the specified precision - instead of [RFC3339 timestamps](/influxdb/v2.7/reference/glossary/#rfc3339-timestamp) with nanosecond precision. + Formats timestamps as [unix (epoch) timestamps](/influxdb/v2/reference/glossary/#unix-timestamp) with the specified precision + instead of [RFC3339 timestamps](/influxdb/v2/reference/glossary/#rfc3339-timestamp) with nanosecond precision. in: query name: epoch schema: @@ -13161,12 +13166,12 @@ paths: description: | #### InfluxDB Cloud: - returns this error if a **read** or **write** request exceeds your - plan's [adjustable service quotas](/influxdb/v2.7/account-management/limits/#adjustable-service-quotas) + plan's [adjustable service quotas](/influxdb/v2/account-management/limits/#adjustable-service-quotas) or if a **delete** request exceeds the maximum - [global limit](/influxdb/v2.7/account-management/limits/#global-limits) + [global limit](/influxdb/v2/account-management/limits/#global-limits) - returns `Retry-After` header that describes when to try the write again. - #### InfluxDB OSS: + #### InfluxDB OSS v2: - doesn't return this error. headers: Retry-After: @@ -13333,7 +13338,7 @@ components: results don't include the specified record. Use `after` instead of the `offset` parameter. - For more information about pagination parameters, see [Pagination](/influxdb/latest/api/#tag/Pagination). + For more information about pagination parameters, see [Pagination](/influxdb/v2/api/#tag/Pagination). in: query name: after required: false @@ -13362,7 +13367,7 @@ components: The offset for pagination. The number of records to skip. - For more information about pagination parameters, see [Pagination](/influxdb/latest/api/#tag/Pagination). + For more information about pagination parameters, see [Pagination](/influxdb/v2/api/#tag/Pagination). in: query name: offset required: false @@ -13431,7 +13436,7 @@ components: Bad request. The response body contains detail about the error. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. GeneralServerError: @@ -13559,14 +13564,14 @@ components: org: description: | The organization name. - Specifies the [organization](/influxdb/v2.7/reference/glossary/#organization) + Specifies the [organization](/influxdb/v2/reference/glossary/#organization) that the token is scoped to. readOnly: true type: string orgID: description: | The organization ID. - Specifies the [organization](/influxdb/v2.7/reference/glossary/#organization) that the authorization is scoped to. + Specifies the [organization](/influxdb/v2/reference/glossary/#organization) that the authorization is scoped to. type: string permissions: description: | @@ -13580,7 +13585,7 @@ components: description: | The API token. The token value is unique to the authorization. - [API tokens](/influxdb/v2.7/reference/glossary/#token) are + [API tokens](/influxdb/v2/reference/glossary/#token) are used to authenticate and authorize InfluxDB API requests and `influx` CLI commands--after receiving the request, InfluxDB checks that the token is valid and that the `permissions` allow the requested action(s). @@ -13593,13 +13598,13 @@ components: user: description: | The user name. - Specifies the [user](/influxdb/v2.7/reference/glossary/#user) that owns the authorization. + Specifies the [user](/influxdb/v2/reference/glossary/#user) that owns the authorization. If the authorization is _scoped_ to a user, the user; otherwise, the creator of the authorization. readOnly: true type: string userID: - description: The user ID. Specifies the [user](/influxdb/v2.7/reference/glossary/#user) that owns the authorization. If _scoped_, the user that the authorization is scoped to; otherwise, the creator of the authorization. + description: The user ID. Specifies the [user](/influxdb/v2/reference/glossary/#user) that owns the authorization. If _scoped_, the user that the authorization is scoped to; otherwise, the creator of the authorization. readOnly: true type: string type: object @@ -14116,7 +14121,7 @@ components: readOnly: true type: string latestCompleted: - description: A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. + description: A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. format: date-time readOnly: true type: string @@ -14359,11 +14364,11 @@ components: orgID: description: | An organization ID. - Identifies the [organization](/influxdb/latest/reference/glossary/#organization) that owns the mapping. + Identifies the [organization](/influxdb/v2/reference/glossary/#organization) that owns the mapping. type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/v2/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string virtual: @@ -14397,16 +14402,16 @@ components: org: description: | An organization name. - Identifies the [organization](/influxdb/latest/reference/glossary/#organization) that owns the mapping. + Identifies the [organization](/influxdb/v2/reference/glossary/#organization) that owns the mapping. type: string orgID: description: | An organization ID. - Identifies the [organization](/influxdb/latest/reference/glossary/#organization) that owns the mapping. + Identifies the [organization](/influxdb/v2/reference/glossary/#organization) that owns the mapping. type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/v2/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string required: @@ -14430,7 +14435,7 @@ components: type: boolean retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb/v2/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string DBRPs: @@ -14584,7 +14589,7 @@ components: $ref: '#/components/schemas/Links' type: object DateTimeLiteral: - description: Represents an instant in time with nanosecond precision in [RFC3339Nano date/time format](/influxdb/latest/reference/glossary/#rfc3339nano-timestamp). + description: Represents an instant in time with nanosecond precision in [RFC3339Nano date/time format](/influxdb/v2/reference/glossary/#rfc3339nano-timestamp). properties: type: $ref: '#/components/schemas/NodeType' @@ -14649,18 +14654,18 @@ components: properties: predicate: description: | - An expression in [delete predicate syntax](/influxdb/latest/reference/syntax/delete-predicate/). + An expression in [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/). example: tag1="value1" and (tag2="value2" and tag3!="value3") type: string start: description: | - A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)). + A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)). The earliest time to delete from. format: date-time type: string stop: description: | - A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)). + A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)). The latest time to delete from. format: date-time type: string @@ -14671,7 +14676,7 @@ components: Dialect: description: | Options for tabular data output. - Default output is [annotated CSV](/influxdb/latest/reference/syntax/annotated-csv/#csv-response-format) with headers. + Default output is [annotated CSV](/influxdb/v2/reference/syntax/annotated-csv/#csv-response-format) with headers. For more information about tabular data **dialect**, see [W3 metadata vocabulary for tabular data](https://www.w3.org/TR/2015/REC-tabular-metadata-20151217/#dialect-descriptions). @@ -14683,7 +14688,7 @@ components: #### Related guides - - See [Annotated CSV annotations](/influxdb/latest/reference/syntax/annotated-csv/#annotations) for examples and more information. + - See [Annotated CSV annotations](/influxdb/v2/reference/syntax/annotated-csv/#annotations) for examples and more information. For more information about **annotations** in tabular data, see [W3 metadata vocabulary for tabular data](https://www.w3.org/TR/2015/REC-tabular-data-model-20151217/#columns). @@ -14705,7 +14710,7 @@ components: default: RFC3339 description: | The format for timestamps in results. - Default is [`RFC3339` date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp). + Default is [`RFC3339` date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp). To include nanoseconds in timestamps, use `RFC3339Nano`. #### Example formatted date/time values @@ -15515,9 +15520,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -15566,12 +15571,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object IntegerLiteral: @@ -15930,7 +15935,7 @@ components: readOnly: true type: string time: - description: The time ([RFC3339Nano date/time format](/influxdb/latest/reference/glossary/#rfc3339nano-timestamp)) that the event occurred. + description: The time ([RFC3339Nano date/time format](/influxdb/v2/reference/glossary/#rfc3339nano-timestamp)) that the event occurred. example: 2006-01-02T15:04:05.999999999Z07:00 format: date-time readOnly: true @@ -16269,7 +16274,7 @@ components: readOnly: true type: string latestCompleted: - description: A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. + description: A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. format: date-time readOnly: true type: string @@ -16621,20 +16626,20 @@ components: type: integer shardGroupDurationSeconds: description: | - The [shard group duration](/influxdb/latest/reference/glossary/#shard). + The [shard group duration](/influxdb/v2/reference/glossary/#shard). The number of seconds that each shard group covers. #### InfluxDB Cloud - Doesn't use `shardGroupDurationsSeconds`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - - Default value depends on the [bucket retention period](/influxdb/latest/reference/internals/shards/#shard-group-duration). + - Default value depends on the [bucket retention period](/influxdb/v2/reference/internals/shards/#shard-group-duration). #### Related guides - - InfluxDB [shards and shard groups](/influxdb/latest/reference/internals/shards/) + - InfluxDB [shards and shard groups](/influxdb/v2/reference/internals/shards/) format: int64 type: integer type: @@ -16761,10 +16766,10 @@ components: If you need compatibility with InfluxDB 1.x, specify a value for the `rp` property; otherwise, see the `retentionRules` property. - [Retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) + [Retention policy](/influxdb/v2/reference/glossary/#retention-policy-rp) is an InfluxDB 1.x concept. The InfluxDB 2.x and Cloud equivalent is - [retention period](/influxdb/latest/reference/glossary/#retention-period). + [retention period](/influxdb/v2/reference/glossary/#retention-period). The InfluxDB `/api/v2` API uses `RetentionRules` to configure the retention period. type: string schemaType: @@ -16778,7 +16783,7 @@ components: - Use `explicit` to enforce column names, tags, fields, and data types for your data. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Doesn't support `explicit` bucket schemas. required: @@ -17268,10 +17273,10 @@ components: - Does not use `shardGroupDurationsSeconds`. - #### InfluxDB OSS + #### InfluxDB OSS v2 - Default value depends on the - [bucket retention period](/influxdb/latest/reference/internals/shards/#shard-group-duration). + [bucket retention period](/influxdb/v2/reference/internals/shards/#shard-group-duration). format: int64 type: integer type: @@ -17285,13 +17290,13 @@ components: RetentionRules: description: | Retention rules to expire or retain data. - The InfluxDB `/api/v2` API uses `RetentionRules` to configure the [retention period](/influxdb/latest/reference/glossary/#retention-period). + The InfluxDB `/api/v2` API uses `RetentionRules` to configure the [retention period](/influxdb/v2/reference/glossary/#retention-period). #### InfluxDB Cloud - `retentionRules` is required. - #### InfluxDB OSS + #### InfluxDB OSS v2 - `retentionRules` isn't required. items: @@ -17434,13 +17439,13 @@ components: readOnly: true type: array requestedAt: - description: The time ([RFC3339Nano date/time format](/influxdb/latest/reference/glossary/#rfc3339nano-timestamp)) the run was manually requested. + description: The time ([RFC3339Nano date/time format](/influxdb/v2/reference/glossary/#rfc3339nano-timestamp)) the run was manually requested. example: 2006-01-02T15:04:05.999999999Z07:00 format: date-time readOnly: true type: string scheduledFor: - description: The time [RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp) used for the run's `now` option. + description: The time [RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp) used for the run's `now` option. format: date-time type: string startedAt: @@ -17465,7 +17470,7 @@ components: properties: scheduledFor: description: | - The time [RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp) + The time [RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp) used for the run's `now` option. Default is the server _now_ time. format: date-time @@ -18177,7 +18182,7 @@ components: description: A description of the task. type: string every: - description: The interval ([duration literal](/influxdb/latest/reference/glossary/#rfc3339-timestamp)) at which the task runs. `every` also determines when the task first runs, depending on the specified time. + description: The interval ([duration literal](/influxdb/v2/reference/glossary/#rfc3339-timestamp)) at which the task runs. `every` also determines when the task first runs, depending on the specified time. format: duration type: string flux: @@ -18200,7 +18205,7 @@ components: readOnly: true type: string latestCompleted: - description: A timestamp ([RFC3339 date/time format](/influxdb/latest/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. + description: A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)) of the latest scheduled and completed run. format: date-time readOnly: true type: string @@ -18236,17 +18241,17 @@ components: type: string org: description: | - An [organization](/influxdb/latest/reference/glossary/#organization) name. + An [organization](/influxdb/v2/reference/glossary/#organization) name. Specifies the organization that owns the task. type: string orgID: description: | - An [organization](/influxdb/latest/reference/glossary/#organization) ID. + An [organization](/influxdb/v2/reference/glossary/#organization) ID. Specifies the organization that owns the task. type: string ownerID: description: | - A [user](/influxdb/latest/reference/glossary/#user) ID. + A [user](/influxdb/v2/reference/glossary/#user) ID. Specifies the owner of the task. To find a user ID, you can use the @@ -18598,7 +18603,7 @@ components: When you apply a template, InfluxDB replaces `envRef` objects in the template with the values that you provide in the `envRefs` parameter. - For more examples, see how to [define environment references](/influxdb/latest/influxdb-templates/use/#define-environment-references). + For more examples, see how to [define environment references](/influxdb/v2/influxdb-templates/use/#define-environment-references). The following template fields may use environment references: @@ -18607,7 +18612,7 @@ components: - `spec.associations.name` For more information about including environment references in template fields, see how to - [include user-definable resource names](/influxdb/latest/influxdb-templates/create/#include-user-definable-resource-names). + [include user-definable resource names](/influxdb/v2/influxdb-templates/create/#include-user-definable-resource-names). type: object orgID: description: | @@ -18616,7 +18621,7 @@ components: The organization owns all resources created by the template. To find your organization, see how to - [view organizations](/influxdb/latest/organizations/view-orgs/). + [view organizations](/influxdb/v2/organizations/view-orgs/). type: string remotes: description: | @@ -18677,7 +18682,7 @@ components: #### Related guides - - [How to pass secrets when installing a template](/influxdb/latest/influxdb-templates/use/#pass-secrets-when-installing-a-template) + - [How to pass secrets when installing a template](/influxdb/v2/influxdb-templates/use/#pass-secrets-when-installing-a-template) type: object stackID: description: | @@ -18691,8 +18696,8 @@ components: #### Related guides - - [Stacks](/influxdb/latest/influxdb-templates/stacks/) - - [View stacks](/influxdb/latest/influxdb-templates/stacks/view/) + - [Stacks](/influxdb/v2/influxdb-templates/stacks/) + - [View stacks](/influxdb/v2/influxdb-templates/stacks/view/) type: string template: description: | @@ -19938,7 +19943,7 @@ components: In the examples, replace the following: - **`USERNAME`**: InfluxDB username - - **`PASSWORD`**: InfluxDB [API token](/influxdb/latest/reference/glossary/#token) + - **`PASSWORD`**: InfluxDB [API token](/influxdb/v2/reference/glossary/#token) - **`INFLUX_URL`**: your InfluxDB URL #### Encode credentials with cURL @@ -20011,7 +20016,7 @@ components: Replace the following: - *`INFLUX_URL`*: your InfluxDB URL - - *`INFLUX_API_TOKEN`*: your [InfluxDB API token](/influxdb/latest/reference/glossary/#token) + - *`INFLUX_API_TOKEN`*: your [InfluxDB API token](/influxdb/v2/reference/glossary/#token) ### Related endpoints @@ -20019,8 +20024,8 @@ components: ### Related guides - - [Authorize API requests](/influxdb/latest/api-guide/api_intro/#authentication) - - [Manage API tokens](/influxdb/latest/security/tokens/) + - [Authorize API requests](/influxdb/v2/api-guide/api_intro/#authentication) + - [Manage API tokens](/influxdb/v2/security/tokens/) in: header name: Authorization type: apiKey @@ -20033,9 +20038,6 @@ x-tagGroups: - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: - Authorizations (API tokens) diff --git a/api-docs/influxdb3/cloud-dedicated/.config.yml b/api-docs/influxdb3/cloud-dedicated/.config.yml index 2febde2ac..9f8eebb6e 100644 --- a/api-docs/influxdb3/cloud-dedicated/.config.yml +++ b/api-docs/influxdb3/cloud-dedicated/.config.yml @@ -10,6 +10,9 @@ apis: root: management/openapi.yml v2@2: root: v2/ref.yml - x-influxdata-default: true + x-influxdata-docs-aliases: + - /influxdb3/cloud-dedicated/api/ v1-compatibility@2: root: v1-compatibility/swaggerV1Compat.yml + x-influxdata-docs-aliases: + - /influxdb3/cloud-dedicated/api/v1/ diff --git a/api-docs/influxdb3/cloud-dedicated/management/content/info.yml b/api-docs/influxdb3/cloud-dedicated/management/content/info.yml index 5b533dd20..b18e6956f 100644 --- a/api-docs/influxdb3/cloud-dedicated/management/content/info.yml +++ b/api-docs/influxdb3/cloud-dedicated/management/content/info.yml @@ -1,12 +1,15 @@ title: InfluxDB 3 Cloud Dedicated Management API x-influxdata-short-title: Management API -summary: | - The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated instance. description: | - The Management API lets you manage an InfluxDB 3 Cloud Dedicated instance and integrate functions such as creating and managing databases, permissions, and tokens into your workflow or application. + The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated cluster. + The Management API lets you integrate functions such as creating and managing databases, permissions, and tokens into your workflow or application. This documentation is generated from the InfluxDB OpenAPI specification. license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml index edadccd7f..74868b46b 100644 --- a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml +++ b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml @@ -2,16 +2,19 @@ openapi: 3.1.0 info: title: InfluxDB 3 Cloud Dedicated Management API description: | - The Management API lets you manage an InfluxDB 3 Cloud Dedicated instance and integrate functions such as creating and managing databases, permissions, and tokens into your workflow or application. + The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated cluster. + The Management API lets you integrate functions such as creating and managing databases, permissions, and tokens into your workflow or application. This documentation is generated from the InfluxDB OpenAPI specification. - summary: | - The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated instance. license: name: MIT url: https://opensource.org/licenses/MIT version: '' + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: https://{baseurl}/api/v0 description: InfluxDB 3 Cloud Dedicated Management API URL @@ -37,8 +40,6 @@ tags: See how to [create a management token](/influxdb3/cloud-dedicated/admin/tokens/management/). By default, management tokens in InfluxDB 3 are short-lived tokens issued by an OAuth2 identity provider that grant a specific user administrative access to your InfluxDB cluster. However, for automation purposes, you can manually create management tokens that authenticate directly with your InfluxDB cluster and do not require human interaction with your identity provider. - - - name: Database tokens description: Manage database read/write tokens for a cluster - name: Databases @@ -1020,7 +1021,6 @@ paths: For example, see how to [authenticate Telegraf using tokens in your OS secret store](https://github.com/influxdata/telegraf/tree/master/plugins/secretstores/os). If you lose a token, [delete the token from InfluxDB](/influxdb3/cloud-dedicated/admin/tokens/database/delete/) and create a new one. - parameters: - name: accountId in: path diff --git a/api-docs/influxdb3/cloud-dedicated/v1-compatibility/content/info.yml b/api-docs/influxdb3/cloud-dedicated/v1-compatibility/content/info.yml index 5a162fa57..01296adc6 100644 --- a/api-docs/influxdb3/cloud-dedicated/v1-compatibility/content/info.yml +++ b/api-docs/influxdb3/cloud-dedicated/v1-compatibility/content/info.yml @@ -1,7 +1,9 @@ title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Dedicated x-influxdata-short-title: v1 Compatibility API -summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database. +x-influxdata-short-description: The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database using InfluxDB v1 endpoints. description: | + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database using InfluxDB v1 endpoints. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -13,3 +15,7 @@ description: | license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com diff --git a/api-docs/influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml b/api-docs/influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml index 46de3a497..55f91d971 100644 --- a/api-docs/influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml +++ b/api-docs/influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml @@ -3,6 +3,8 @@ info: title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Dedicated version: '' description: | + The v1-compatibility HTTP API provides compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database using InfluxDB v1 endpoints. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -14,7 +16,10 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -35,6 +40,7 @@ tags: x-traitTag: true + - name: Ping - name: Query - name: Write paths: @@ -244,7 +250,7 @@ paths: get: description: | Reports the InfluxQL bridge querier health and the InfluxDB version of the instance. - + The response is a HTTP `204` status code to inform you the querier is available. For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters. @@ -282,7 +288,7 @@ paths: head: description: | Reports the InfluxQL bridge querier health and the InfluxDB version of the instance. - + The response is a HTTP `204` status code to inform you the querier is available. For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters. @@ -290,7 +296,6 @@ paths: To check the health of ingesters before writing data, send a request to one of the [write endpoints](/influxdb3/cloud-dedicated/api/v2/#tag/Write). This endpoint doesn't require authentication. - operationId: HeadPing responses: '204': @@ -357,9 +362,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -408,12 +413,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object InfluxQLCSVResponse: diff --git a/api-docs/influxdb3/cloud-dedicated/v2/content/info.yml b/api-docs/influxdb3/cloud-dedicated/v2/content/info.yml index e8b72ba41..ec3537315 100644 --- a/api-docs/influxdb3/cloud-dedicated/v2/content/info.yml +++ b/api-docs/influxdb3/cloud-dedicated/v2/content/info.yml @@ -1,12 +1,17 @@ title: InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated x-influxdata-short-title: v2 API -summary: The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Cloud Dedicated database. - +x-influxdata-short-description: The InfluxDB v2 HTTP API provides a v2-compatible programmatic interface for writing and managing data stored in an InfluxDB 3 Cloud Dedicated database. description: | - The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. + The InfluxDB v2 HTTP API provides a v2-compatible programmatic interface for writing and managing data stored in an InfluxDB 3 Cloud Dedicated database. + + Use the InfluxDB v2 HTTP API `/api/v2` endpoints to manage retention policy mappings and write data to an InfluxDB 3 instance. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml). license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/cloud-dedicated/v2/content/tag-groups.yml b/api-docs/influxdb3/cloud-dedicated/v2/content/tag-groups.yml index 9d95bccab..ace9fe77d 100644 --- a/api-docs/influxdb3/cloud-dedicated/v2/content/tag-groups.yml +++ b/api-docs/influxdb3/cloud-dedicated/v2/content/tag-groups.yml @@ -6,7 +6,6 @@ - Headers - Pagination - Response codes - - System information endpoints - name: All endpoints tags: - Ping diff --git a/api-docs/influxdb3/cloud-dedicated/v2/ref.yml b/api-docs/influxdb3/cloud-dedicated/v2/ref.yml index eec0b7d3a..c4b645464 100644 --- a/api-docs/influxdb3/cloud-dedicated/v2/ref.yml +++ b/api-docs/influxdb3/cloud-dedicated/v2/ref.yml @@ -2,15 +2,20 @@ openapi: 3.0.0 info: title: InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated description: | - The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. + The InfluxDB v2 HTTP API provides a v2-compatible programmatic interface for writing and managing data stored in an InfluxDB 3 Cloud Dedicated database. + + Use the InfluxDB v2 HTTP API `/api/v2` endpoints to manage retention policy mappings and write data to an InfluxDB 3 instance. This documentation is generated from the [InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml). license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Cloud Dedicated database. version: '' + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: https://{baseurl} description: InfluxDB 3 Cloud Dedicated API URL @@ -150,7 +155,7 @@ paths: get: description: | Reports the InfluxQL bridge querier health and the InfluxDB version of the instance. - + The response is a HTTP `204` status code to inform you the querier is available. For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters. @@ -188,7 +193,7 @@ paths: head: description: | Reports the InfluxQL bridge querier health and the InfluxDB version of the instance. - + The response is a HTTP `204` status code to inform you the querier is available. For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters. @@ -499,7 +504,7 @@ paths: type: string - description: | A unix timestamp precision. - Formats timestamps as [unix (epoch) timestamps](/influxdb3/cloud-dedicated/reference/glossary/#unix-timestamp) the specified precision + Formats timestamps as [unix (epoch) timestamps](/influxdb3/cloud-dedicated/reference/glossary/#unix-timestamp) with the specified precision instead of [RFC3339 timestamps](/influxdb3/cloud-dedicated/reference/glossary/#rfc3339-timestamp) with nanosecond precision. in: query name: epoch @@ -932,7 +937,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-dedicated/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string virtual: @@ -975,7 +980,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-dedicated/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string required: @@ -999,7 +1004,7 @@ components: type: boolean retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-dedicated/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string DBRPs: @@ -1243,9 +1248,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -1294,12 +1299,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object IntegerLiteral: @@ -2138,7 +2143,6 @@ x-tagGroups: - Headers - Pagination - Response codes - - System information endpoints - name: All endpoints tags: - Ping diff --git a/api-docs/influxdb3/cloud-serverless/.config.yml b/api-docs/influxdb3/cloud-serverless/.config.yml index 1e02231fc..684da1b8c 100644 --- a/api-docs/influxdb3/cloud-serverless/.config.yml +++ b/api-docs/influxdb3/cloud-serverless/.config.yml @@ -8,6 +8,9 @@ x-influxdata-product-name: InfluxDB 3 Serverless apis: v2@2: root: v2/ref.yml - x-influxdata-default: true + x-influxdata-docs-aliases: + - /influxdb3/cloud-serverless/api/ v1-compatibility@2: root: v1-compatibility/swaggerV1Compat.yml + x-influxdata-docs-aliases: + - /influxdb3/cloud-serverless/api/v1/ diff --git a/api-docs/influxdb3/cloud-serverless/v1-compatibility/content/info.yml b/api-docs/influxdb3/cloud-serverless/v1-compatibility/content/info.yml index 1e2d82d4c..ceb3cd409 100644 --- a/api-docs/influxdb3/cloud-serverless/v1-compatibility/content/info.yml +++ b/api-docs/influxdb3/cloud-serverless/v1-compatibility/content/info.yml @@ -1,7 +1,9 @@ title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Serverless x-influxdata-short-title: v1 Compatibility API -summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. +x-influxdata-short-description: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. description: | + The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -13,3 +15,7 @@ description: | license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml b/api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml index 12332cb35..744692e6d 100644 --- a/api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml +++ b/api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml @@ -3,6 +3,8 @@ info: title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Serverless version: '' description: | + The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -14,7 +16,10 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -280,9 +285,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -331,12 +336,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object InfluxQLCSVResponse: diff --git a/api-docs/influxdb3/cloud-serverless/v2/content/info.yml b/api-docs/influxdb3/cloud-serverless/v2/content/info.yml index f175cf3c7..4a23ed31d 100644 --- a/api-docs/influxdb3/cloud-serverless/v2/content/info.yml +++ b/api-docs/influxdb3/cloud-serverless/v2/content/info.yml @@ -1,8 +1,9 @@ title: InfluxDB 3 Cloud Serverless API Service x-influxdata-short-title: v2 API -summary: | - The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. +x-influxdata-short-description: The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. description: | + The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. + The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. This documentation is generated from the @@ -10,3 +11,7 @@ description: | license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/cloud-serverless/v2/content/tag-groups.yml b/api-docs/influxdb3/cloud-serverless/v2/content/tag-groups.yml index f4cfceced..e5f232313 100644 --- a/api-docs/influxdb3/cloud-serverless/v2/content/tag-groups.yml +++ b/api-docs/influxdb3/cloud-serverless/v2/content/tag-groups.yml @@ -6,9 +6,6 @@ - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: - Authorizations (API tokens) diff --git a/api-docs/influxdb3/cloud-serverless/v2/ref.yml b/api-docs/influxdb3/cloud-serverless/v2/ref.yml index 78e7ff814..6b57c22c8 100644 --- a/api-docs/influxdb3/cloud-serverless/v2/ref.yml +++ b/api-docs/influxdb3/cloud-serverless/v2/ref.yml @@ -2,6 +2,8 @@ openapi: 3.0.0 info: title: InfluxDB 3 Cloud Serverless API Service description: | + The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. + The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. This documentation is generated from the @@ -9,9 +11,11 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: | - The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. version: '' + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: https://{baseurl} description: InfluxDB 3 Cloud Serverless API URL @@ -122,16 +126,16 @@ tags: |:------------------------ |:--------------------- |:-------------------------------------------| | `bucket` | string | The bucket name or ID ([find your bucket](/influxdb3/cloud-serverless/admin/buckets/view-buckets/). | | `bucketID` | string | The bucket ID ([find your bucket](/influxdb3/cloud-serverless/admin/buckets/view-buckets/). | - | `org` | string | The organization name or ID ([find your organization](/influxdb3/cloud-serverless/organizations/view-orgs/). | - | `orgID` | 16-byte string | The organization ID ([find your organization](/influxdb3/cloud-serverless/organizations/view-orgs/). | + | `org` | string | The organization name or ID ([find your organization](/influxdb3/cloud-serverless/admin/organizations/view-orgs/). | + | `orgID` | 16-byte string | The organization ID ([find your organization](/influxdb3/cloud-serverless/admin/organizations/view-orgs/). | name: Common parameters x-traitTag: true - name: Config - name: Dashboards - name: Data I/O endpoints - description: | - The InfluxDB 1.x data model includes [databases](/influxdb/v1.8/concepts/glossary/#database) - and [retention policies](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + The InfluxDB 1.x data model includes [databases](/influxdb3/cloud-serverless/reference/glossary/#database) + and [retention policies](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp). InfluxDB 2.x replaces databases and retention policies with buckets. To support InfluxDB 1.x query and write patterns in InfluxDB 2.x, databases and retention policies are mapped to buckets using the @@ -439,11 +443,6 @@ paths: Specifies an authorization by its `token` property value and returns the authorization. - #### InfluxDB OSS - - - Doesn't support this parameter. InfluxDB OSS ignores the `token=` parameter, - applies other parameters, and then returns the result. - #### Limitations - The parameter is non-repeatable. If you specify more than one, @@ -465,13 +464,6 @@ paths: If the response body is missing authorizations that you expect, check that the API token used in the request has `read-user` permission for the users (`userID` property value) in those authorizations. - - #### InfluxDB OSS - - - **Warning**: The response body contains authorizations with their - [API token](/influxdb3/cloud-serverless/reference/glossary/#token) values in clear text. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, - InfluxDB OSS returns authorizations for all organizations in the instance. '400': $ref: '#/components/responses/GeneralServerError' description: Invalid request @@ -621,14 +613,6 @@ paths: Use this endpoint to retrieve information about an API token, including the token's permissions and the user that the token is scoped to. - - #### InfluxDB OSS - - - InfluxDB OSS returns - [API token](/influxdb3/cloud-serverless/reference/glossary/#token) values in authorizations. - - If the request uses an _[operator token](/influxdb/latest/security/tokens/#operator-token)_, - InfluxDB OSS returns authorizations for all organizations in the instance. - #### Related guides - [View tokens](/influxdb3/cloud-serverless/security/tokens/view-tokens/) @@ -736,14 +720,6 @@ paths: If no query parameters are passed, InfluxDB returns all buckets up to the default `limit`. - #### InfluxDB OSS - - - If you use an _[operator token](/influxdb3/cloud-serverless/security/tokens/#operator-token)_ - to authenticate your request, InfluxDB retrieves resources for _all - organizations_ in the instance. - To retrieve resources for only a specific organization, use the - `org` parameter or the `orgID` parameter to specify the organization. - #### Required permissions | Action | Permission required | @@ -859,13 +835,6 @@ paths: [retention period](/influxdb3/cloud-serverless/reference/glossary/#retention-period) is 30 days. - #### InfluxDB OSS - - - A single InfluxDB OSS instance supports active writes or queries for - approximately 20 buckets across all organizations at a given time. - Reading or writing to more than 20 buckets at a time can adversely affect - performance. - #### Limitations - InfluxDB Cloud Free Plan allows users to create up to two buckets. @@ -2381,7 +2350,7 @@ paths: schema: type: string - description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp). + A [retention policy](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp). Specifies the 1.x retention policy to filter on. in: query name: rp @@ -2851,10 +2820,6 @@ paths: description: | Bad request. The response body contains detail about the error. - - #### InfluxDB OSS - - - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': $ref: '#/components/responses/AuthorizationError' '404': @@ -2906,7 +2871,7 @@ paths: #### Related guides - - [View organizations](/influxdb3/cloud-serverless/organizations/view-orgs/) + - [View organizations](/influxdb3/cloud-serverless/admin/organizations/view-orgs/) operationId: GetOrgs parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3071,11 +3036,6 @@ paths: 2. Returns an HTTP `204` status code if queued; _error_ otherwise. 3. Handles the delete asynchronously. - #### InfluxDB OSS - - - Validates the request, handles the delete synchronously, - and then responds with success or failure. - #### Limitations - Only one organization can be deleted per request. @@ -3100,9 +3060,6 @@ paths: #### InfluxDB Cloud - The organization is queued for deletion. - - #### InfluxDB OSS - - The organization is deleted. '400': $ref: '#/components/responses/BadRequestError' '401': @@ -3141,7 +3098,7 @@ paths: #### Related guides - - [View organizations](/influxdb3/cloud-serverless/organizations/view-orgs/) + - [View organizations](/influxdb3/cloud-serverless/admin/organizations/view-orgs/) operationId: GetOrgsID parameters: - $ref: '#/components/parameters/TraceSpan' @@ -3905,10 +3862,6 @@ paths: description: | Bad request. The response body contains detail about the error. - - #### InfluxDB OSS - - - Returns this error if the `org` parameter or `orgID` parameter doesn't match an organization. '401': $ref: '#/components/responses/AuthorizationError' '404': @@ -4890,10 +4843,6 @@ paths: description: | Bad request. The response body contains detail about the error. - - #### InfluxDB OSS - - - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. '401': $ref: '#/components/responses/AuthorizationError' '500': @@ -6230,10 +6179,6 @@ paths: #### InfluxDB Cloud - Always returns this error; doesn't support cancelling tasks. - - #### InfluxDB OSS - - - Doesn't return this error. '500': $ref: '#/components/responses/InternalServerError' default: @@ -7823,7 +7768,7 @@ paths: type: string - description: | A unix timestamp precision. - Formats timestamps as [unix (epoch) timestamps](/influxdb3/cloud-serverless/reference/glossary/#unix-timestamp) the specified precision + Formats timestamps as [unix (epoch) timestamps](/influxdb3/cloud-serverless/reference/glossary/#unix-timestamp) with the specified precision instead of [RFC3339 timestamps](/influxdb3/cloud-serverless/reference/glossary/#rfc3339-timestamp) with nanosecond precision. in: query name: epoch @@ -8229,10 +8174,6 @@ components: description: | Bad request. The response body contains detail about the error. - - #### InfluxDB OSS - - - Returns this error if an incorrect value is passed in the `org` parameter or `orgID` parameter. GeneralServerError: content: application/json: @@ -9128,7 +9069,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string virtual: @@ -9171,7 +9112,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string required: @@ -9195,7 +9136,7 @@ components: type: boolean retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string DBRPs: @@ -11677,10 +11618,6 @@ components: - Doesn't use `shardGroupDurationsSeconds`. - #### InfluxDB OSS - - - Default value depends on the [bucket retention period](/influxdb3/cloud-serverless/reference/internals/shards/#shard-group-duration). - #### Related guides - InfluxDB [shards and shard groups](/influxdb3/cloud-serverless/reference/internals/shards/) @@ -11810,7 +11747,7 @@ components: If you need compatibility with InfluxDB 1.x, specify a value for the `rp` property; otherwise, see the `retentionRules` property. - [Retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) + [Retention policy](/influxdb3/cloud-serverless/reference/glossary/#retention-policy-rp) is an InfluxDB 1.x concept. The InfluxDB 2.x and Cloud equivalent is [retention period](/influxdb3/cloud-serverless/reference/glossary/#retention-period). @@ -12128,10 +12065,6 @@ components: #### InfluxDB 3 Cloud Serverless - `retentionRules` is required. - - #### InfluxDB OSS - - - `retentionRules` isn't required. items: $ref: '#/components/schemas/RetentionRule' type: array @@ -13396,7 +13329,7 @@ components: The organization owns all resources created by the template. To find your organization, see how to - [view organizations](/influxdb3/cloud-serverless/organizations/view-orgs/). + [view organizations](/influxdb3/cloud-serverless/admin/organizations/view-orgs/). type: string remotes: description: | @@ -14813,9 +14746,6 @@ x-tagGroups: - Headers - Pagination - Response codes - - Data I/O endpoints - - Security and access endpoints - - System information endpoints - name: All endpoints tags: - Authorizations (API tokens) diff --git a/api-docs/influxdb3/clustered/.config.yml b/api-docs/influxdb3/clustered/.config.yml index 53febaaa1..ca9356a9e 100644 --- a/api-docs/influxdb3/clustered/.config.yml +++ b/api-docs/influxdb3/clustered/.config.yml @@ -8,6 +8,9 @@ x-influxdata-product-name: InfluxDB 3 Clustered apis: v2@2: root: v2/ref.yml - x-influxdata-default: true + x-influxdata-docs-aliases: + - /influxdb3/clustered/api/ v1-compatibility@2: root: v1-compatibility/swaggerV1Compat.yml + x-influxdata-docs-aliases: + - /influxdb3/clustered/api/v1/ diff --git a/api-docs/influxdb3/clustered/v1-compatibility/content/info.yml b/api-docs/influxdb3/clustered/v1-compatibility/content/info.yml index 80ab8c17f..8c7102361 100644 --- a/api-docs/influxdb3/clustered/v1-compatibility/content/info.yml +++ b/api-docs/influxdb3/clustered/v1-compatibility/content/info.yml @@ -1,7 +1,9 @@ title: InfluxDB v1 HTTP API for InfluxDB 3 Clustered x-influxdata-short-title: v1 Compatibility API -summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. +x-influxdata-short-description: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. description: | + The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -13,3 +15,7 @@ description: | license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/clustered/v1-compatibility/swaggerV1Compat.yml b/api-docs/influxdb3/clustered/v1-compatibility/swaggerV1Compat.yml index 7bfc57eda..36c3e08b0 100644 --- a/api-docs/influxdb3/clustered/v1-compatibility/swaggerV1Compat.yml +++ b/api-docs/influxdb3/clustered/v1-compatibility/swaggerV1Compat.yml @@ -3,6 +3,8 @@ info: title: InfluxDB v1 HTTP API for InfluxDB 3 Clustered version: '' description: | + The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. + The InfluxDB 1.x `/write` and `/query` endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others. This documentation is generated from the @@ -14,7 +16,10 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: / security: @@ -280,9 +285,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -331,12 +336,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object InfluxQLCSVResponse: diff --git a/api-docs/influxdb3/clustered/v2/content/info.yml b/api-docs/influxdb3/clustered/v2/content/info.yml index bc01b768f..cbd9281e2 100644 --- a/api-docs/influxdb3/clustered/v2/content/info.yml +++ b/api-docs/influxdb3/clustered/v2/content/info.yml @@ -1,7 +1,9 @@ title: InfluxDB 3 Clustered API Service x-influxdata-short-title: v2 API -summary: The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. +x-influxdata-short-description: The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. description: | + The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. + The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. This documentation is generated from the @@ -9,3 +11,7 @@ description: | license: name: MIT url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/clustered/v2/content/tag-groups.yml b/api-docs/influxdb3/clustered/v2/content/tag-groups.yml index 6b870e7ca..47deee8ef 100644 --- a/api-docs/influxdb3/clustered/v2/content/tag-groups.yml +++ b/api-docs/influxdb3/clustered/v2/content/tag-groups.yml @@ -5,7 +5,6 @@ - Headers - Pagination - Response codes - - System information endpoints - name: All endpoints tags: - Ping diff --git a/api-docs/influxdb3/clustered/v2/ref.yml b/api-docs/influxdb3/clustered/v2/ref.yml index 71245c9c2..09afff6d0 100644 --- a/api-docs/influxdb3/clustered/v2/ref.yml +++ b/api-docs/influxdb3/clustered/v2/ref.yml @@ -3,6 +3,8 @@ info: title: InfluxDB 3 Clustered API Service version: '' description: | + The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. + The InfluxDB v2 HTTP API lets you use `/api/v2` endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance. This documentation is generated from the @@ -10,7 +12,10 @@ info: license: name: MIT url: https://opensource.org/licenses/MIT - summary: The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com servers: - url: https://{baseurl} description: InfluxDB 3 Clustered API URL @@ -412,16 +417,6 @@ paths: '429': description: | Too many requests. - - #### InfluxDB Cloud - - - Returns this error if a **read** or **write** request exceeds your plan's [adjustable service quotas](/influxdb3/clustered/account-management/limits/#adjustable-service-quotas) - or if a **delete** request exceeds the maximum [global limit](/influxdb3/clustered/account-management/limits/#global-limits). - - For rate limits that reset automatically, returns a `Retry-After` header that describes when to try the write again. - - For limits that can't reset (for example, **cardinality limit**), doesn't return a `Retry-After` header. - - Rates (data-in (writes), queries (reads), and deletes) accrue within a fixed five-minute window. - Once a rate limit is exceeded, InfluxDB returns an error response until the current five-minute window resets. headers: Retry-After: description: Non-negative decimal integer indicating seconds to wait before retrying the request. @@ -517,7 +512,7 @@ paths: type: string - description: | A unix timestamp precision. - Formats timestamps as [unix (epoch) timestamps](/influxdb3/clustered/reference/glossary/#unix-timestamp) the specified precision + Formats timestamps as [unix (epoch) timestamps](/influxdb3/clustered/reference/glossary/#unix-timestamp) with the specified precision instead of [RFC3339 timestamps](/influxdb3/clustered/reference/glossary/#rfc3339-timestamp) with nanosecond precision. in: query name: epoch @@ -573,12 +568,7 @@ paths: type: string '429': description: | - #### InfluxDB Cloud: - - returns this error if a **read** or **write** request exceeds your - plan's [adjustable service quotas](/influxdb3/clustered/account-management/limits/#adjustable-service-quotas) - or if a **delete** request exceeds the maximum - [global limit](/influxdb3/clustered/account-management/limits/#global-limits) - - returns `Retry-After` header that describes when to try the write again. + Token is temporarily over quota. The Retry-After header describes when to try the write again. headers: Retry-After: description: A non-negative decimal integer indicating the seconds to delay after the response is received. @@ -924,7 +914,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/clustered/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string virtual: @@ -967,7 +957,7 @@ components: type: string retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/clustered/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string required: @@ -991,7 +981,7 @@ components: type: boolean retention_policy: description: | - A [retention policy](/influxdb/v1.8/concepts/glossary/#retention-policy-rp) name. + A [retention policy](/influxdb3/clustered/reference/glossary/#retention-policy-rp) name. Identifies the InfluxDB v1 retention policy mapping. type: string DBRPs: @@ -1235,9 +1225,9 @@ components: properties: results: description: | - A resultset object that contains the `statement_id` and the `series` array. + A resultset object that contains the `statement_id` and the `series` array. - Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. + Except for `statement_id`, all properties are optional and omitted if empty. If a property is not present, it is assumed to be `null`. items: properties: error: @@ -1286,12 +1276,12 @@ components: type: integer type: object oneOf: - - required: - - statement_id - - error - - required: - - statement_id - - series + - required: + - statement_id + - error + - required: + - statement_id + - series type: array type: object IntegerLiteral: @@ -2129,7 +2119,6 @@ x-tagGroups: - Headers - Pagination - Response codes - - System information endpoints - name: All endpoints tags: - Ping diff --git a/api-docs/influxdb3/core/v3/content/info.yml b/api-docs/influxdb3/core/v3/content/info.yml new file mode 100644 index 000000000..87d7ffafb --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/info.yml @@ -0,0 +1,34 @@ +title: InfluxDB 3 Core API Service +x-influxdata-short-title: InfluxDB 3 API +x-influxdata-version-matrix: + v1: Compatibility layer for InfluxDB 1.x clients (supported) + v2: Compatibility layer for InfluxDB 2.x clients (supported) + v3: Native API for InfluxDB 3.x (current) +x-influxdata-short-description: The InfluxDB 3 HTTP API provides a programmatic interface for interactions with InfluxDB, including writing, querying, and processing data, and managing an InfluxDB 3 instance. +description: | + The InfluxDB HTTP API for InfluxDB 3 Core provides a programmatic interface for + interacting with InfluxDB 3 Core databases and resources. + Use this API to: + + - Write data to InfluxDB 3 Core databases + - Query data using SQL or InfluxQL + - Process data using Processing engine plugins + - Manage databases, tables, and Processing engine triggers + - Perform administrative tasks and access system information + + The API includes endpoints under the following paths: + - `/api/v3`: InfluxDB 3 Core native endpoints + - `/`: Compatibility endpoints for InfluxDB v1 workloads and clients + - `/api/v2/write`: Compatibility endpoint for InfluxDB v2 workloads and clients + + +license: + name: MIT + url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/core/v3/content/servers.yml b/api-docs/influxdb3/core/v3/content/servers.yml new file mode 100644 index 000000000..213371401 --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/servers.yml @@ -0,0 +1,8 @@ +- url: https://{baseurl} + description: InfluxDB 3 Core API URL + variables: + baseurl: + enum: + - 'localhost:8181' + default: 'localhost:8181' + description: InfluxDB 3 Core URL diff --git a/api-docs/influxdb3/core/v3/content/tag-groups.yml b/api-docs/influxdb3/core/v3/content/tag-groups.yml new file mode 100644 index 000000000..5289ddb33 --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/tag-groups.yml @@ -0,0 +1,12 @@ +- name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Common parameters + - Response codes + - Compatibility endpoints + - Data I/O + - Databases + - Processing engine + - Server information + - Tables diff --git a/api-docs/influxdb3/core/v3/ref.yml b/api-docs/influxdb3/core/v3/ref.yml new file mode 100644 index 000000000..1ca927730 --- /dev/null +++ b/api-docs/influxdb3/core/v3/ref.yml @@ -0,0 +1,1792 @@ +openapi: 3.0.3 +info: + title: InfluxDB 3 Core API Service + description: | + The InfluxDB HTTP API for InfluxDB 3 Core provides a programmatic interface for + interacting with InfluxDB 3 Core databases and resources. + Use this API to: + + - Write data to InfluxDB 3 Core databases + - Query data using SQL or InfluxQL + - Process data using Processing engine plugins + - Manage databases, tables, and Processing engine triggers + - Perform administrative tasks and access system information + + The API includes endpoints under the following paths: + - `/api/v3`: InfluxDB 3 Core native endpoints + - `/`: Compatibility endpoints for InfluxDB v1 workloads and clients + - `/api/v2/write`: Compatibility endpoint for InfluxDB v2 workloads and clients + + + version: '' + license: + name: MIT + url: https://opensource.org/licenses/MIT + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com +servers: + - url: https://{baseurl} + description: InfluxDB 3 Core API URL + variables: + baseurl: + enum: + - localhost:8181 + default: localhost:8181 + description: InfluxDB 3 Core URL +security: + - BearerAuth: [] +tags: + - name: Authentication + description: | + During the initial Alpha phase, InfluxDB 3 Core does not require authentication. + x-traitTag: true + - name: Compatibility endpoints + description: | + InfluxDB 3 provides compatibility endpoints for InfluxDB 1.x and InfluxDB 2.x workloads and clients. + + ### Write data using v1- or v2-compatible endpoints + + - [`/api/v2/write` endpoint](#operation/PostV2Write) + for InfluxDB v2 clients and when you bring existing InfluxDB v2 write workloads to InfluxDB 3. + - [`/write` endpoint](#operation/PostV1Write) for InfluxDB v1 clients and when you bring existing InfluxDB v1 write workloads to InfluxDB 3. + + For new workloads, use the [`/api/v3/write_lp` endpoint](#operation/PostWriteLP). + + All endpoints accept the same line protocol format. + + ### Query data + + Use the HTTP [`/query`](#operation/GetV1ExecuteQuery) endpoint for InfluxDB v1 clients and v1 query workloads using InfluxQL. + + For new workloads, use one of the following: + + - HTTP [`/api/v3/query_sql` endpoint](#operation/GetExecuteQuerySQL) for new query workloads using SQL. + - HTTP [`/api/v3/query_influxql` endpoint](#operation/GetExecuteInfluxQLQuery) for new query workloads using InfluxQL. + - Flight SQL and InfluxDB 3 _Flight+gRPC_ APIs for querying with SQL or InfluxQL. For more information about using Flight APIs, see [InfluxDB 3 client libraries](https://github.com/InfluxCommunity). + + ### Server information + + Server information endpoints such as `/health` and `metrics` are compatible with InfluxDB 1.x and InfluxDB 2.x clients. + - name: Data I/O + description: | + Write and query data + + #### Data flow in InfluxDB 3 Core + + 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. + 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. + 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. + 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. + 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + - name: Databases + description: Create, read, update, and delete database and cache resources + - description: | + Most InfluxDB API endpoints require parameters in the request--for example, specifying the database to use. + + ### Common parameters + + The following table shows common parameters used by many InfluxDB API endpoints. + Many endpoints may require other parameters in the query string or in the + request body that perform functions specific to those endpoints. + + | Query parameter | Value type | Description | + |:------------------------ |:--------------------- |:-------------------------------------------| + | `db` | string | The database name | + + InfluxDB HTTP API endpoints use standard HTTP request and response headers. + The following table shows common headers used by many InfluxDB API endpoints. + Some endpoints may use other headers that perform functions more specific to those endpoints--for example, + the write endpoints accept the `Content-Encoding` header to indicate that line protocol is compressed in the request body. + + | Header | Value type | Description | + |:------------------------ |:--------------------- |:-------------------------------------------| + | `Accept` | string | The content type that the client can understand. | + | `Authorization` | string | The authorization scheme and credential. | + | `Content-Length` | integer | The size of the entity-body, in bytes. | + | `Content-Type` | string | The format of the data in the request body. | + name: Headers and parameters + x-traitTag: true + - name: Processing engine + description: | + Manage Processing engine triggers, test plugins, and send requests to trigger On Request plugins. + + InfluxDB 3 Core provides the InfluxDB 3 Processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. + Use Processing engine plugins and triggers to run code and perform tasks for different database events. + + To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/core/processing-engine/) guide. + - name: Quick start + description: | + 1. [Check the status](#section/Server-information) of the InfluxDB server. + + ```bash + curl "http://localhost:8181/health" + ``` + + 2. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. + + ```bash + curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" \ + --data-raw "home,room=Kitchen temp=72.0 + home,room=Living\ room temp=71.5" + ``` + + If all data is written, the response is `204 No Content`. + + 3. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. + + ```bash + curl -G "http://localhost:8181/api/v3/query_sql" \ + --data-urlencode "db=sensors" \ + --data-urlencode "q=SELECT * FROM home WHERE room='Living room'" \ + --data-urlencode "format=jsonl" + ``` + + Output: + + ```jsonl + {"room":"Living room","temp":71.5,"time":"2025-02-25T20:19:34.984098"} + ``` + + For more information about using InfluxDB 3 Core, see the [Get started](/influxdb3/core/get-started/) guide. + x-traitTag: true + - name: Server information + description: Retrieve server metrics, status, and version information + - name: Tables + description: Manage table schemas and data +paths: + /write: + post: + operationId: PostV1Write + summary: Write line protocol (v1-compatible) + description: | + Writes line protocol to the specified database. + + This endpoint provides backward compatibility for InfluxDB 1.x write workloads using tools such as InfluxDB 1.x client libraries, the Telegraf `outputs.influxdb` output plugin, or third-party tools. + + Use this endpoint to send data in [line protocol](https://docs.influxdata.com/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - $ref: '#/components/parameters/dbWriteParam' + - $ref: '#/components/parameters/compatibilityPrecisionParam' + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - name: Accept + in: header + description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + schema: + type: string + default: application/json + enum: + - application/json + required: false + - $ref: '#/components/parameters/ContentEncoding' + - $ref: '#/components/parameters/ContentLength' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: | + Bad request. Some (a _partial write_) or all of the data from the batch was rejected and not written. + If a partial write occurred, then some points from the batch are written and queryable. + + The response body: + - indicates if a partial write occurred or all data was rejected. + - contains details about the [rejected points](/influxdb3/core/write-data/troubleshoot/#troubleshoot-rejected-points), up to 100 points. + content: + application/json: + examples: + rejectedAllPoints: + summary: Rejected all points in the batch + value: | + { + "error": "write of line protocol failed", + "data": [ + { + "original_line": "dquote> home,room=Kitchen temp=hi", + "line_number": 2, + "error_message": "No fields were provided" + } + ] + } + partialWriteErrorWithRejectedPoints: + summary: Partial write rejected some points in the batch + value: | + { + "error": "partial write of line protocol occurred", + "data": [ + { + "original_line": "dquote> home,room=Kitchen temp=hi", + "line_number": 2, + "error_message": "No fields were provided" + } + ] + } + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + tags: + - Compatibility endpoints + - Data I/O + /api/v2/write: + post: + operationId: PostV2Write + summary: Write line protocol (v2-compatible) + description: | + Writes line protocol to the specified database. + + This endpoint provides backward compatibility for InfluxDB 2.x write workloads using tools such as InfluxDB 2.x client libraries, the Telegraf `outputs.influxdb_v2` output plugin, or third-party tools. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - description: | + The compression applied to the line protocol in the request payload. + To send a gzip payload, pass `Content-Encoding: gzip` header. + in: header + name: Content-Encoding + schema: + default: identity + description: | + Content coding. + Use `gzip` for compressed data or `identity` for unmodified, uncompressed data. + enum: + - gzip + - identity + type: string + - description: | + The size of the entity-body, in bytes, sent to InfluxDB. + in: header + name: Content-Length + schema: + description: The length in decimal number of octets. + type: integer + - description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + in: header + name: Accept + schema: + default: application/json + description: Error content type. + enum: + - application/json + type: string + - name: db + in: query + required: true + schema: + type: string + description: | + A database name. + InfluxDB creates the database if it doesn't already exist, and then + writes all points in the batch to the database. + - name: accept_partial + in: query + required: false + schema: + $ref: '#/components/schemas/AcceptPartial' + - $ref: '#/components/parameters/compatibilityPrecisionParam' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + tags: + - Compatibility endpoints + - Data I/O + /api/v3/write_lp: + post: + operationId: PostWriteLP + summary: Write line protocol + description: | + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - $ref: '#/components/parameters/dbWriteParam' + - $ref: '#/components/parameters/accept_partial' + - name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWrite' + description: Precision of timestamps. + - name: no_sync + in: query + schema: + $ref: '#/components/schemas/NoSync' + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - name: Accept + in: header + description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + schema: + type: string + default: application/json + enum: + - application/json + required: false + - $ref: '#/components/parameters/ContentEncoding' + - $ref: '#/components/parameters/ContentLength' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /api/v3/query_sql: + get: + operationId: GetExecuteQuerySQL + summary: Execute SQL query + description: Executes an SQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/db' + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + example: + results: + - series: + - name: mytable + columns: + - time + - value + values: + - - '2024-02-02T12:00:00Z' + - 42 + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + post: + operationId: PostExecuteQuerySQL + summary: Execute SQL query + description: Executes an SQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + requestBody: + $ref: '#/components/requestBodies/queryRequestBody' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /api/v3/query_influxql: + get: + operationId: GetExecuteInfluxQLQuery + summary: Execute InfluxQL query + description: Executes an InfluxQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/dbQueryParam' + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/AcceptQueryHeader' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + post: + operationId: PostExecuteQueryInfluxQL + summary: Execute InfluxQL query + description: Executes an InfluxQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + requestBody: + $ref: '#/components/requestBodies/queryRequestBody' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /query: + get: + operationId: GetV1ExecuteQuery + summary: Execute InfluxQL query (v1-compatible) + description: | + Executes an InfluxQL query to retrieve data from the specified database. + + This endpoint is compatible with InfluxDB 1.x client libraries and third-party integrations such as Grafana. + Use query parameters to specify the database and the InfluxQL query. + parameters: + - name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + - text/csv + required: false + description: | + The content type that the client can understand. + + If `text/csv` is specified, the `Content-type` response header is `application/csv` and the response is formatted as CSV. + + Returns an error if the format is invalid or non-UTF8. + - in: query + name: chunked + description: | + If true, the response is divided into chunks of size `chunk_size`. + schema: + type: boolean + default: false + - in: query + name: chunk_size + description: | + The number of records that will go into a chunk. + This parameter is only used if `chunked=true`. + schema: + type: integer + default: 10000 + - in: query + name: db + description: The database to query. If not provided, the InfluxQL query string must specify the database. + schema: + type: string + format: InfluxQL + - in: query + name: pretty + description: | + If true, the JSON response is formatted in a human-readable format. + schema: + type: boolean + default: false + - in: query + name: q + description: The InfluxQL query string. + required: true + schema: + type: string + - name: epoch + description: | + Formats timestamps as [unix (epoch) timestamps](/influxdb3/core/reference/glossary/#unix-timestamp) with the specified precision + instead of [RFC3339 timestamps](/influxdb3/core/reference/glossary/#rfc3339-timestamp) with nanosecond precision. + in: query + schema: + $ref: '#/components/schemas/EpochCompatibility' + responses: + '200': + description: | + Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + application/csv: + schema: + type: string + headers: + Content-Type: + description: | + The content type of the response. + Default is `application/json`. + + If the `Accept` request header is `application/csv` or `text/csv`, the `Content-type` response header is `application/csv` + and the response is formatted as CSV. + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + - Compatibility endpoints + post: + operationId: PostExecuteV1Query + summary: Execute InfluxQL query (v1-compatible) + description: Executes an InfluxQL query to retrieve data from the specified database. + requestBody: + content: + application/json: + schema: + type: object + properties: + db: + type: string + description: The database to query. If not provided, the InfluxQL query string must specify the database. + q: + description: The InfluxQL query string. + type: string + chunked: + description: | + If true, the response is divided into chunks of size `chunk_size`. + type: boolean + chunk_size: + description: | + The number of records that will go into a chunk. + This parameter is only used if `chunked=true`. + type: integer + default: 10000 + epoch: + description: | + A unix timestamp precision. + + - `h` for hours + - `m` for minutes + - `s` for seconds + - `ms` for milliseconds + - `u` or `µ` for microseconds + - `ns` for nanoseconds + + Formats timestamps as [unix (epoch) timestamps](/influxdb3/core/reference/glossary/#unix-timestamp) with the specified precision + instead of [RFC3339 timestamps](/influxdb3/core/reference/glossary/#rfc3339-timestamp) with nanosecond precision. + enum: + - ns + - u + - µ + - ms + - s + - m + - h + type: string + pretty: + description: | + If true, the JSON response is formatted in a human-readable format. + type: boolean + required: + - q + parameters: + - name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + - text/csv + required: false + description: | + The content type that the client can understand. + + If `text/csv` is specified, the `Content-type` response header is `application/csv` and the response is formatted as CSV. + + Returns an error if the format is invalid or non-UTF8. + responses: + '200': + description: | + Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + application/csv: + schema: + type: string + headers: + Content-Type: + description: | + The content type of the response. + Default is `application/json`. + + If the `Accept` request header is `application/csv` or `text/csv`, the `Content-type` response header is `application/csv` + and the response is formatted as CSV. + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + - Compatibility endpoints + /health: + get: + operationId: GetHealth + summary: Health check + description: Checks the status of the service. + responses: + '200': + description: Service is running. + '500': + description: Service is unavailable. + tags: + - Server information + /api/v1/health: + get: + operationId: GetHealthV1 + summary: Health check (v1) + description: Checks the status of the service. + responses: + '200': + description: Service is running. + '500': + description: Service is unavailable. + tags: + - Server information + - Compatibility endpoints + /ping: + get: + operationId: GetPing + tags: + - Server information + summary: Ping the server + description: Returns version information for the server. + responses: + '200': + description: Success. The response body contains server information. + content: + application/json: + schema: + example: + version: 0.1.0 + revision: f3d3d3d + /metrics: + get: + operationId: GetMetrics + summary: Metrics + description: Retrieves Prometheus-compatible server metrics. + responses: + '200': + description: Success. The response body contains Prometheus-compatible server metrics. + tags: + - Server information + /api/v3/configure/database: + get: + operationId: GetConfigureDatabase + summary: List databases + description: Retrieves a list of databases. + parameters: + - $ref: '#/components/parameters/formatRequired' + responses: + '200': + description: Success. The response body contains the list of databases. + content: + application/json: + schema: + $ref: '#/components/schemas/ShowDatabasesResponse' + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Databases + post: + operationId: PostConfigureDatabase + summary: Create a database + description: Creates a new database in the system. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDatabaseRequest' + responses: + '201': + description: Success. Database created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '409': + description: Database already exists. + tags: + - Databases + delete: + operationId: DeleteConfigureDatabase + summary: Delete a database + description: | + Soft deletes a database. + The database is scheduled for deletion and unavailable for querying. + parameters: + - $ref: '#/components/parameters/db' + responses: + '200': + description: Success. Database deleted. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Databases + /api/v3/configure/table: + post: + operationId: PostConfigureTable + summary: Create a table + description: Creates a new table within a database. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTableRequest' + responses: + '201': + description: Success. The table has been created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Tables + delete: + operationId: DeleteConfigureTable + summary: Delete a table + description: | + Soft deletes a table. + The table is scheduled for deletion and unavailable for querying. + parameters: + - $ref: '#/components/parameters/db' + - name: table + in: query + required: true + schema: + type: string + responses: + '200': + description: Success (no content). The table has been deleted. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Table not found. + tags: + - Tables + /api/v3/configure/distinct_cache: + post: + operationId: PostConfigureDistinctCache + summary: Create distinct cache + description: Creates a distinct cache for a table. + tags: + - Tables + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DistinctCacheCreateRequest' + responses: + '201': + description: Success. The distinct cache has been created. + '204': + description: Not created. A distinct cache with this configuration already exists. + '400': + description: | + Bad request. + + The server responds with status `400` if the request would overwrite an existing cache with a different configuration. + /api/v3/configure/last_cache: + post: + operationId: PostConfigureLastCache + summary: Create last cache + description: Creates a last cache for a table. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/LastCacheCreateRequest' + responses: + '201': + description: Success. Last cache created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Cache not found. + '409': + description: Cache already exists. + tags: + - Tables + delete: + operationId: DeleteConfigureLastCache + summary: Delete last cache + description: Deletes a last cache. + parameters: + - $ref: '#/components/parameters/db' + - name: table + in: query + required: true + schema: + type: string + - name: name + in: query + required: true + schema: + type: string + responses: + '200': + description: Success. The last cache has been deleted. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Cache not found. + tags: + - Tables + /api/v3/configure/processing_engine_trigger: + post: + operationId: PostConfigureProcessingEngineTrigger + summary: Create processing engine trigger + description: Creates a new processing engine trigger. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '201': + description: Success. Processing engine trigger created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + delete: + operationId: DeleteConfigureProcessingEngineTrigger + summary: Delete processing engine trigger + description: Deletes a processing engine trigger. + parameters: + - $ref: '#/components/parameters/db' + - name: trigger_name + in: query + required: true + schema: + type: string + - name: force + in: query + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Success. The processing engine trigger has been deleted. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/processing_engine_trigger/disable: + post: + operationId: PostDisableProcessingEngineTrigger + summary: Disable processing engine trigger + description: Disables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '200': + description: Success. The processing engine trigger has been disabled. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/processing_engine_trigger/enable: + post: + operationId: PostEnableProcessingEngineTrigger + summary: Enable processing engine trigger + description: Enables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '200': + description: Success. The processing engine trigger has been enabled. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_packages: + post: + operationId: PostInstallPluginPackages + summary: Install plugin packages + description: Installs packages for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The packages have been installed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_requirements: + post: + operationId: PostInstallPluginRequirements + summary: Install plugin requirements + description: Installs requirements for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The requirements have been installed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Processing engine + /api/v3/plugin_test/wal: + post: + operationId: PostTestWALPlugin + summary: Test WAL plugin + description: Executes a test of a write-ahead logging (WAL) plugin. + responses: + '200': + description: Success. The plugin test has been executed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not enabled. + tags: + - Processing engine + /api/v3/plugin_test/schedule: + post: + operationId: PostTestSchedulingPlugin + summary: Test scheduling plugin + description: Executes a test of a scheduling plugin. + responses: + '200': + description: Success. The plugin test has been executed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not enabled. + tags: + - Processing engine + /api/v3/engine/{plugin_path}: + parameters: + - name: plugin_path + description: | + The path configured in the `trigger-spec` for the plugin. + + For example, if you define a trigger with the following: + + ``` + trigger-spec: "request:hello-world" + ``` + + then, the HTTP API exposes the following plugin endpoint: + + ``` + /api/v3/engine/hello-world + ``` + in: path + required: true + schema: + type: string + get: + operationId: GetProcessingEnginePluginRequest + summary: On Request processing engine plugin request + description: | + Sends a request to invoke an _On Request_ processing engine plugin. + The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. + + An On Request plugin implements the following signature: + + ```python + def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None) + ``` + + The response depends on the plugin implementation. + responses: + '200': + description: Success. The plugin request has been executed. + '400': + description: Malformed request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not found. + '500': + description: Processing failure. + tags: + - Processing engine + post: + operationId: PostProcessingEnginePluginRequest + summary: On Request processing engine plugin request + description: | + Sends a request to invoke an _On Request_ processing engine plugin. + The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. + + An On Request plugin implements the following signature: + + ```python + def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None) + ``` + + The response depends on the plugin implementation. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: false + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The plugin request has been executed. + '400': + description: Malformed request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not found. + '500': + description: Processing failure. + tags: + - Processing engine +components: + parameters: + AcceptQueryHeader: + name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/jsonl + - application/vnd.apache.parquet + - text/csv + required: false + description: | + The content type that the client can understand. + ContentEncoding: + name: Content-Encoding + in: header + description: | + The compression applied to the line protocol in the request payload. + To send a gzip payload, pass `Content-Encoding: gzip` header. + schema: + $ref: '#/components/schemas/ContentEncoding' + required: false + ContentLength: + name: Content-Length + in: header + description: | + The size of the entity-body, in bytes, sent to InfluxDB. + schema: + $ref: '#/components/schemas/ContentLength' + ContentType: + name: Content-Type + description: | + The format of the data in the request body. + in: header + schema: + type: string + enum: + - application/json + required: false + db: + name: db + in: query + required: true + schema: + type: string + description: | + The name of the database. + dbWriteParam: + name: db + in: query + required: true + schema: + type: string + description: | + The name of the database. + The name of the database. + InfluxDB creates the database if it doesn't already exist, and then + writes all points in the batch to the database. + dbQueryParam: + name: db + in: query + required: false + schema: + type: string + description: | + The name of the database. + + If you provide a query that specifies the database, you can omit the 'db' parameter from your request. + accept_partial: + name: accept_partial + in: query + required: false + schema: + $ref: '#/components/schemas/AcceptPartial' + compatibilityPrecisionParam: + name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWriteCompatibility' + description: The precision for unix timestamps in the line protocol batch. + precisionParam: + name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWrite' + description: The precision for unix timestamps in the line protocol batch. + querySqlParam: + name: q + in: query + required: true + schema: + type: string + format: SQL + description: | + The query to execute. + format: + name: format + in: query + required: false + schema: + $ref: '#/components/schemas/Format' + formatRequired: + name: format + in: query + required: true + schema: + $ref: '#/components/schemas/Format' + requestBodies: + lineProtocolRequestBody: + required: true + content: + text/plain: + schema: + type: string + examples: + line: + summary: Example line protocol + value: measurement,tag=value field=1 1234567890 + multiline: + summary: Example line protocol with UTF-8 characters + value: | + measurement,tag=value field=1 1234567890 + measurement,tag=value field=2 1234567900 + measurement,tag=value field=3 1234568000 + queryRequestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/QueryRequestObject' + schemas: + ContentEncoding: + type: string + enum: + - gzip + - identity + description: | + Content coding. + Use `gzip` for compressed data or `identity` for unmodified, uncompressed data. + default: identity + LineProtocol: + type: string + enum: + - text/plain + - text/plain; charset=utf-8 + description: | + `text/plain` is the content type for line protocol. `UTF-8` is the default character set. + default: text/plain; charset=utf-8 + ContentLength: + type: integer + description: The length in decimal number of octets. + Database: + type: string + AcceptPartial: + type: boolean + default: true + description: Accept partial writes. + Format: + type: string + enum: + - json + - csv + - parquet + - jsonl + description: | + The format of data in the response body. + NoSync: + type: boolean + default: false + description: | + Acknowledges a successful write without waiting for WAL persistence. + + #### Data flow in InfluxDB 3 Core + + 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. + 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. + 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. + 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. + 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + PrecisionWriteCompatibility: + enum: + - ms + - s + - us + - ns + type: string + description: | + The precision for unix timestamps in the line protocol batch. + Use `ms` for milliseconds, `s` for seconds, `us` for microseconds, or `ns` for nanoseconds. + PrecisionWrite: + enum: + - auto + - millisecond + - second + - microsecond + - nanosecond + type: string + description: | + The precision for unix timestamps in the line protocol batch. + QueryRequestObject: + type: object + properties: + database: + description: | + The name of the database to query. + Required if the query (`query_str`) doesn't specify the database. + type: string + query_str: + description: The query to execute. + type: string + format: + description: The format of the query results. + type: string + enum: + - json + - csv + - parquet + - jsonl + - pretty + params: + description: | + Additional parameters for the query. + Use this field to pass query parameters. + type: object + additionalProperties: true + required: + - database + - query_str + example: + database: mydb + query_str: SELECT * FROM mytable + format: json + params: {} + CreateDatabaseRequest: + type: object + properties: + db: + type: string + required: + - db + CreateTableRequest: + type: object + properties: + db: + type: string + table: + type: string + tags: + type: array + items: + type: string + fields: + type: array + items: + type: object + properties: + name: + type: string + type: + type: string + enum: + - utf8 + - int64 + - uint64 + - float64 + - bool + required: + - name + - type + required: + - db + - table + - tags + DistinctCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + columns: + type: array + items: + type: string + max_cardinality: + type: integer + description: Optional maximum cardinality. + max_age: + type: integer + description: Optional maximum age in seconds. + required: + - db + - table + - columns + example: + db: mydb + table: mytable + columns: + - tag1 + - tag2 + max_cardinality: 1000 + max_age: 3600 + LastCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + key_columns: + type: array + items: + type: string + description: Optional list of key columns. + value_columns: + type: array + items: + type: string + description: Optional list of value columns. + count: + type: integer + description: Optional count. + ttl: + type: integer + description: Optional time-to-live in seconds. + required: + - db + - table + example: + db: mydb + table: mytable + key_columns: + - tag1 + value_columns: + - field1 + count: 100 + ttl: 3600 + ProcessingEngineTriggerRequest: + type: object + properties: + db: + type: string + plugin_filename: + type: string + trigger_name: + type: string + trigger_specification: + type: string + trigger_arguments: + type: object + additionalProperties: true + disabled: + type: boolean + required: + - db + - plugin_filename + - trigger_name + - trigger_specification + ShowDatabasesResponse: + type: object + properties: + databases: + type: array + items: + type: string + QueryResponse: + type: object + properties: + results: + type: array + items: + type: object + example: + results: + - series: + - name: mytable + columns: + - time + - value + values: + - - '2024-02-02T12:00:00Z' + - 42 + ErrorMessage: + type: object + properties: + error: + type: string + data: + type: object + nullable: true + LineProtocolError: + properties: + code: + description: Code is the machine-readable error code. + enum: + - internal error + - not found + - conflict + - invalid + - empty value + - unavailable + readOnly: true + type: string + err: + description: Stack of errors that occurred during processing of the request. Useful for debugging. + readOnly: true + type: string + line: + description: First line in the request body that contains malformed data. + format: int32 + readOnly: true + type: integer + message: + description: Human-readable message. + readOnly: true + type: string + op: + description: Describes the logical code operation when the error occurred. Useful for debugging. + readOnly: true + type: string + required: + - code + EpochCompatibility: + description: | + A unix timestamp precision. + - `h` for hours + - `m` for minutes + - `s` for seconds + - `ms` for milliseconds + - `u` or `µ` for microseconds + - `ns` for nanoseconds + enum: + - ns + - u + - µ + - ms + - s + - m + - h + type: string + responses: + Unauthorized: + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + BadRequest: + description: | + Request failed. Possible reasons: + + - Invalid database name + - Malformed request body + - Invalid timestamp precision + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Forbidden: + description: Access denied. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + NotFound: + description: Resource not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: | + _During Alpha release, an API token is not required._ + + A Bearer token for authentication. + + Provide the scheme and the API token in the `Authorization` header--for example: + + ```bash + curl http://localhost:8181/api/v3/query_influxql \ + --header "Authorization: Bearer API_TOKEN" + ``` +x-tagGroups: + - name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Common parameters + - Response codes + - Compatibility endpoints + - Data I/O + - Databases + - Processing engine + - Server information + - Tables diff --git a/api-docs/influxdb3/enterprise/v3/content/info.yml b/api-docs/influxdb3/enterprise/v3/content/info.yml new file mode 100644 index 000000000..75b1d1cc9 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/info.yml @@ -0,0 +1,34 @@ +title: InfluxDB 3 Enterprise API Service +x-influxdata-short-title: InfluxDB 3 API +x-influxdata-version-matrix: + v1: Compatibility layer for InfluxDB 1.x clients (supported) + v2: Compatibility layer for InfluxDB 2.x clients (supported) + v3: Native API for InfluxDB 3.x (current) +x-influxdata-short-description: The InfluxDB 3 HTTP API provides a programmatic interface for interactions with InfluxDB, including writing, querying, and processing data, and managing an InfluxDB 3 instance. +description: | + The InfluxDB HTTP API for InfluxDB 3 Enterprise provides a programmatic interface for + interacting with InfluxDB 3 Enterprise databases and resources. + Use this API to: + + - Write data to InfluxDB 3 Enterprise databases + - Query data using SQL or InfluxQL + - Process data using Processing engine plugins + - Manage databases, tables, and Processing engine triggers + - Perform administrative tasks and access system information + + The API includes endpoints under the following paths: + - `/api/v3`: InfluxDB 3 Enterprise native endpoints + - `/`: Compatibility endpoints for InfluxDB v1 workloads and clients + - `/api/v2/write`: Compatibility endpoint for InfluxDB v2 workloads and clients + + +license: + name: MIT + url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/enterprise/v3/content/servers.yml b/api-docs/influxdb3/enterprise/v3/content/servers.yml new file mode 100644 index 000000000..29f1a6e69 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/servers.yml @@ -0,0 +1,8 @@ +- url: https://{baseurl} + description: InfluxDB 3 Enterprise API URL + variables: + baseurl: + enum: + - 'localhost:8181' + default: 'localhost:8181' + description: InfluxDB 3 Enterprise URL diff --git a/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml new file mode 100644 index 000000000..5289ddb33 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml @@ -0,0 +1,12 @@ +- name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Common parameters + - Response codes + - Compatibility endpoints + - Data I/O + - Databases + - Processing engine + - Server information + - Tables diff --git a/api-docs/influxdb3/enterprise/v3/ref.yml b/api-docs/influxdb3/enterprise/v3/ref.yml new file mode 100644 index 000000000..e124d6775 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/ref.yml @@ -0,0 +1,1792 @@ +openapi: 3.0.3 +info: + title: InfluxDB 3 Enterprise API Service + description: | + The InfluxDB HTTP API for InfluxDB 3 Enterprise provides a programmatic interface for + interacting with InfluxDB 3 Enterprise databases and resources. + Use this API to: + + - Write data to InfluxDB 3 Enterprise databases + - Query data using SQL or InfluxQL + - Process data using Processing engine plugins + - Manage databases, tables, and Processing engine triggers + - Perform administrative tasks and access system information + + The API includes endpoints under the following paths: + - `/api/v3`: InfluxDB 3 Enterprise native endpoints + - `/`: Compatibility endpoints for InfluxDB v1 workloads and clients + - `/api/v2/write`: Compatibility endpoint for InfluxDB v2 workloads and clients + + + version: '' + license: + name: MIT + url: https://opensource.org/licenses/MIT + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com +servers: + - url: https://{baseurl} + description: InfluxDB 3 Enterprise API URL + variables: + baseurl: + enum: + - localhost:8181 + default: localhost:8181 + description: InfluxDB 3 Enterprise URL +security: + - BearerAuth: [] +tags: + - name: Authentication + description: | + During the initial Alpha phase, InfluxDB 3 Enterprise does not require authentication. + x-traitTag: true + - name: Compatibility endpoints + description: | + InfluxDB 3 provides compatibility endpoints for InfluxDB 1.x and InfluxDB 2.x workloads and clients. + + ### Write data using v1- or v2-compatible endpoints + + - [`/api/v2/write` endpoint](#operation/PostV2Write) + for InfluxDB v2 clients and when you bring existing InfluxDB v2 write workloads to InfluxDB 3. + - [`/write` endpoint](#operation/PostV1Write) for InfluxDB v1 clients and when you bring existing InfluxDB v1 write workloads to InfluxDB 3. + + For new workloads, use the [`/api/v3/write_lp` endpoint](#operation/PostWriteLP). + + All endpoints accept the same line protocol format. + + ### Query data + + Use the HTTP [`/query`](#operation/GetV1ExecuteQuery) endpoint for InfluxDB v1 clients and v1 query workloads using InfluxQL. + + For new workloads, use one of the following: + + - HTTP [`/api/v3/query_sql` endpoint](#operation/GetExecuteQuerySQL) for new query workloads using SQL. + - HTTP [`/api/v3/query_influxql` endpoint](#operation/GetExecuteInfluxQLQuery) for new query workloads using InfluxQL. + - Flight SQL and InfluxDB 3 _Flight+gRPC_ APIs for querying with SQL or InfluxQL. For more information about using Flight APIs, see [InfluxDB 3 client libraries](https://github.com/InfluxCommunity). + + ### Server information + + Server information endpoints such as `/health` and `metrics` are compatible with InfluxDB 1.x and InfluxDB 2.x clients. + - name: Data I/O + description: | + Write and query data + + #### Data flow in InfluxDB 3 Enterprise + + 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. + 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. + 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. + 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. + 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + - name: Databases + description: Create, read, update, and delete database and cache resources + - description: | + Most InfluxDB API endpoints require parameters in the request--for example, specifying the database to use. + + ### Common parameters + + The following table shows common parameters used by many InfluxDB API endpoints. + Many endpoints may require other parameters in the query string or in the + request body that perform functions specific to those endpoints. + + | Query parameter | Value type | Description | + |:------------------------ |:--------------------- |:-------------------------------------------| + | `db` | string | The database name | + + InfluxDB HTTP API endpoints use standard HTTP request and response headers. + The following table shows common headers used by many InfluxDB API endpoints. + Some endpoints may use other headers that perform functions more specific to those endpoints--for example, + the write endpoints accept the `Content-Encoding` header to indicate that line protocol is compressed in the request body. + + | Header | Value type | Description | + |:------------------------ |:--------------------- |:-------------------------------------------| + | `Accept` | string | The content type that the client can understand. | + | `Authorization` | string | The authorization scheme and credential. | + | `Content-Length` | integer | The size of the entity-body, in bytes. | + | `Content-Type` | string | The format of the data in the request body. | + name: Headers and parameters + x-traitTag: true + - name: Processing engine + description: | + Manage Processing engine triggers, test plugins, and send requests to trigger On Request plugins. + + InfluxDB 3 Enterprise provides the InfluxDB 3 Processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. + Use Processing engine plugins and triggers to run code and perform tasks for different database events. + + To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/enterprise/processing-engine/) guide. + - name: Quick start + description: | + 1. [Check the status](#section/Server-information) of the InfluxDB server. + + ```bash + curl "http://localhost:8181/health" + ``` + + 2. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. + + ```bash + curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" \ + --data-raw "home,room=Kitchen temp=72.0 + home,room=Living\ room temp=71.5" + ``` + + If all data is written, the response is `204 No Content`. + + 3. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. + + ```bash + curl -G "http://localhost:8181/api/v3/query_sql" \ + --data-urlencode "db=sensors" \ + --data-urlencode "q=SELECT * FROM home WHERE room='Living room'" \ + --data-urlencode "format=jsonl" + ``` + + Output: + + ```jsonl + {"room":"Living room","temp":71.5,"time":"2025-02-25T20:19:34.984098"} + ``` + + For more information about using InfluxDB 3 Enterprise, see the [Get started](/influxdb3/enterprise/get-started/) guide. + x-traitTag: true + - name: Server information + description: Retrieve server metrics, status, and version information + - name: Tables + description: Manage table schemas and data +paths: + /write: + post: + operationId: PostV1Write + summary: Write line protocol (v1-compatible) + description: | + Writes line protocol to the specified database. + + This endpoint provides backward compatibility for InfluxDB 1.x write workloads using tools such as InfluxDB 1.x client libraries, the Telegraf `outputs.influxdb` output plugin, or third-party tools. + + Use this endpoint to send data in [line protocol](https://docs.influxdata.com/influxdb3/enterprise/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - $ref: '#/components/parameters/dbWriteParam' + - $ref: '#/components/parameters/compatibilityPrecisionParam' + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - name: Accept + in: header + description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + schema: + type: string + default: application/json + enum: + - application/json + required: false + - $ref: '#/components/parameters/ContentEncoding' + - $ref: '#/components/parameters/ContentLength' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: | + Bad request. Some (a _partial write_) or all of the data from the batch was rejected and not written. + If a partial write occurred, then some points from the batch are written and queryable. + + The response body: + - indicates if a partial write occurred or all data was rejected. + - contains details about the [rejected points](/influxdb3/enterprise/write-data/troubleshoot/#troubleshoot-rejected-points), up to 100 points. + content: + application/json: + examples: + rejectedAllPoints: + summary: Rejected all points in the batch + value: | + { + "error": "write of line protocol failed", + "data": [ + { + "original_line": "dquote> home,room=Kitchen temp=hi", + "line_number": 2, + "error_message": "No fields were provided" + } + ] + } + partialWriteErrorWithRejectedPoints: + summary: Partial write rejected some points in the batch + value: | + { + "error": "partial write of line protocol occurred", + "data": [ + { + "original_line": "dquote> home,room=Kitchen temp=hi", + "line_number": 2, + "error_message": "No fields were provided" + } + ] + } + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + tags: + - Compatibility endpoints + - Data I/O + /api/v2/write: + post: + operationId: PostV2Write + summary: Write line protocol (v2-compatible) + description: | + Writes line protocol to the specified database. + + This endpoint provides backward compatibility for InfluxDB 2.x write workloads using tools such as InfluxDB 2.x client libraries, the Telegraf `outputs.influxdb_v2` output plugin, or third-party tools. + + Use this endpoint to send data in [line protocol](/influxdb3/enterprise/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - description: | + The compression applied to the line protocol in the request payload. + To send a gzip payload, pass `Content-Encoding: gzip` header. + in: header + name: Content-Encoding + schema: + default: identity + description: | + Content coding. + Use `gzip` for compressed data or `identity` for unmodified, uncompressed data. + enum: + - gzip + - identity + type: string + - description: | + The size of the entity-body, in bytes, sent to InfluxDB. + in: header + name: Content-Length + schema: + description: The length in decimal number of octets. + type: integer + - description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + in: header + name: Accept + schema: + default: application/json + description: Error content type. + enum: + - application/json + type: string + - name: db + in: query + required: true + schema: + type: string + description: | + A database name. + InfluxDB creates the database if it doesn't already exist, and then + writes all points in the batch to the database. + - name: accept_partial + in: query + required: false + schema: + $ref: '#/components/schemas/AcceptPartial' + - $ref: '#/components/parameters/compatibilityPrecisionParam' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + tags: + - Compatibility endpoints + - Data I/O + /api/v3/write_lp: + post: + operationId: PostWriteLP + summary: Write line protocol + description: | + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/enterprise/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - $ref: '#/components/parameters/dbWriteParam' + - $ref: '#/components/parameters/accept_partial' + - name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWrite' + description: Precision of timestamps. + - name: no_sync + in: query + schema: + $ref: '#/components/schemas/NoSync' + - name: Content-Type + in: header + description: | + The content type of the request payload. + schema: + $ref: '#/components/schemas/LineProtocol' + required: false + - name: Accept + in: header + description: | + The content type that the client can understand. + Writes only return a response body if they fail (partially or completely)--for example, + due to a syntax problem or type mismatch. + schema: + type: string + default: application/json + enum: + - application/json + required: false + - $ref: '#/components/parameters/ContentEncoding' + - $ref: '#/components/parameters/ContentLength' + requestBody: + $ref: '#/components/requestBodies/lineProtocolRequestBody' + responses: + '204': + description: Success ("No Content"). All data in the batch is written and queryable. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '413': + description: Request entity too large. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /api/v3/query_sql: + get: + operationId: GetExecuteQuerySQL + summary: Execute SQL query + description: Executes an SQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/db' + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + example: + results: + - series: + - name: mytable + columns: + - time + - value + values: + - - '2024-02-02T12:00:00Z' + - 42 + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + post: + operationId: PostExecuteQuerySQL + summary: Execute SQL query + description: Executes an SQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + requestBody: + $ref: '#/components/requestBodies/queryRequestBody' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /api/v3/query_influxql: + get: + operationId: GetExecuteInfluxQLQuery + summary: Execute InfluxQL query + description: Executes an InfluxQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/dbQueryParam' + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/AcceptQueryHeader' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + post: + operationId: PostExecuteQueryInfluxQL + summary: Execute InfluxQL query + description: Executes an InfluxQL query to retrieve data from the specified database. + parameters: + - $ref: '#/components/parameters/AcceptQueryHeader' + - $ref: '#/components/parameters/ContentType' + requestBody: + $ref: '#/components/requestBodies/queryRequestBody' + responses: + '200': + description: Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + /query: + get: + operationId: GetV1ExecuteQuery + summary: Execute InfluxQL query (v1-compatible) + description: | + Executes an InfluxQL query to retrieve data from the specified database. + + This endpoint is compatible with InfluxDB 1.x client libraries and third-party integrations such as Grafana. + Use query parameters to specify the database and the InfluxQL query. + parameters: + - name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + - text/csv + required: false + description: | + The content type that the client can understand. + + If `text/csv` is specified, the `Content-type` response header is `application/csv` and the response is formatted as CSV. + + Returns an error if the format is invalid or non-UTF8. + - in: query + name: chunked + description: | + If true, the response is divided into chunks of size `chunk_size`. + schema: + type: boolean + default: false + - in: query + name: chunk_size + description: | + The number of records that will go into a chunk. + This parameter is only used if `chunked=true`. + schema: + type: integer + default: 10000 + - in: query + name: db + description: The database to query. If not provided, the InfluxQL query string must specify the database. + schema: + type: string + format: InfluxQL + - in: query + name: pretty + description: | + If true, the JSON response is formatted in a human-readable format. + schema: + type: boolean + default: false + - in: query + name: q + description: The InfluxQL query string. + required: true + schema: + type: string + - name: epoch + description: | + Formats timestamps as [unix (epoch) timestamps](/influxdb3/enterprise/reference/glossary/#unix-timestamp) with the specified precision + instead of [RFC3339 timestamps](/influxdb3/enterprise/reference/glossary/#rfc3339-timestamp) with nanosecond precision. + in: query + schema: + $ref: '#/components/schemas/EpochCompatibility' + responses: + '200': + description: | + Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + application/csv: + schema: + type: string + headers: + Content-Type: + description: | + The content type of the response. + Default is `application/json`. + + If the `Accept` request header is `application/csv` or `text/csv`, the `Content-type` response header is `application/csv` + and the response is formatted as CSV. + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + - Compatibility endpoints + post: + operationId: PostExecuteV1Query + summary: Execute InfluxQL query (v1-compatible) + description: Executes an InfluxQL query to retrieve data from the specified database. + requestBody: + content: + application/json: + schema: + type: object + properties: + db: + type: string + description: The database to query. If not provided, the InfluxQL query string must specify the database. + q: + description: The InfluxQL query string. + type: string + chunked: + description: | + If true, the response is divided into chunks of size `chunk_size`. + type: boolean + chunk_size: + description: | + The number of records that will go into a chunk. + This parameter is only used if `chunked=true`. + type: integer + default: 10000 + epoch: + description: | + A unix timestamp precision. + + - `h` for hours + - `m` for minutes + - `s` for seconds + - `ms` for milliseconds + - `u` or `µ` for microseconds + - `ns` for nanoseconds + + Formats timestamps as [unix (epoch) timestamps](/influxdb3/enterprise/reference/glossary/#unix-timestamp) with the specified precision + instead of [RFC3339 timestamps](/influxdb3/enterprise/reference/glossary/#rfc3339-timestamp) with nanosecond precision. + enum: + - ns + - u + - µ + - ms + - s + - m + - h + type: string + pretty: + description: | + If true, the JSON response is formatted in a human-readable format. + type: boolean + required: + - q + parameters: + - name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + - text/csv + required: false + description: | + The content type that the client can understand. + + If `text/csv` is specified, the `Content-type` response header is `application/csv` and the response is formatted as CSV. + + Returns an error if the format is invalid or non-UTF8. + responses: + '200': + description: | + Success. The response body contains query results. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + application/csv: + schema: + type: string + headers: + Content-Type: + description: | + The content type of the response. + Default is `application/json`. + + If the `Accept` request header is `application/csv` or `text/csv`, the `Content-type` response header is `application/csv` + and the response is formatted as CSV. + schema: + type: string + default: application/json + enum: + - application/json + - application/csv + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + description: Access denied. + '404': + description: Database not found. + '405': + description: Method not allowed. + '422': + description: Unprocessable entity. + tags: + - Data I/O + - Compatibility endpoints + /health: + get: + operationId: GetHealth + summary: Health check + description: Checks the status of the service. + responses: + '200': + description: Service is running. + '500': + description: Service is unavailable. + tags: + - Server information + /api/v1/health: + get: + operationId: GetHealthV1 + summary: Health check (v1) + description: Checks the status of the service. + responses: + '200': + description: Service is running. + '500': + description: Service is unavailable. + tags: + - Server information + - Compatibility endpoints + /ping: + get: + operationId: GetPing + tags: + - Server information + summary: Ping the server + description: Returns version information for the server. + responses: + '200': + description: Success. The response body contains server information. + content: + application/json: + schema: + example: + version: 0.1.0 + revision: f3d3d3d + /metrics: + get: + operationId: GetMetrics + summary: Metrics + description: Retrieves Prometheus-compatible server metrics. + responses: + '200': + description: Success. The response body contains Prometheus-compatible server metrics. + tags: + - Server information + /api/v3/configure/database: + get: + operationId: GetConfigureDatabase + summary: List databases + description: Retrieves a list of databases. + parameters: + - $ref: '#/components/parameters/formatRequired' + responses: + '200': + description: Success. The response body contains the list of databases. + content: + application/json: + schema: + $ref: '#/components/schemas/ShowDatabasesResponse' + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Databases + post: + operationId: PostConfigureDatabase + summary: Create a database + description: Creates a new database in the system. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDatabaseRequest' + responses: + '201': + description: Success. Database created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '409': + description: Database already exists. + tags: + - Databases + delete: + operationId: DeleteConfigureDatabase + summary: Delete a database + description: | + Soft deletes a database. + The database is scheduled for deletion and unavailable for querying. + parameters: + - $ref: '#/components/parameters/db' + responses: + '200': + description: Success. Database deleted. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Databases + /api/v3/configure/table: + post: + operationId: PostConfigureTable + summary: Create a table + description: Creates a new table within a database. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTableRequest' + responses: + '201': + description: Success. The table has been created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Database not found. + tags: + - Tables + delete: + operationId: DeleteConfigureTable + summary: Delete a table + description: | + Soft deletes a table. + The table is scheduled for deletion and unavailable for querying. + parameters: + - $ref: '#/components/parameters/db' + - name: table + in: query + required: true + schema: + type: string + responses: + '200': + description: Success (no content). The table has been deleted. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Table not found. + tags: + - Tables + /api/v3/configure/distinct_cache: + post: + operationId: PostConfigureDistinctCache + summary: Create distinct cache + description: Creates a distinct cache for a table. + tags: + - Tables + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DistinctCacheCreateRequest' + responses: + '201': + description: Success. The distinct cache has been created. + '204': + description: Not created. A distinct cache with this configuration already exists. + '400': + description: | + Bad request. + + The server responds with status `400` if the request would overwrite an existing cache with a different configuration. + /api/v3/configure/last_cache: + post: + operationId: PostConfigureLastCache + summary: Create last cache + description: Creates a last cache for a table. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/LastCacheCreateRequest' + responses: + '201': + description: Success. Last cache created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Cache not found. + '409': + description: Cache already exists. + tags: + - Tables + delete: + operationId: DeleteConfigureLastCache + summary: Delete last cache + description: Deletes a last cache. + parameters: + - $ref: '#/components/parameters/db' + - name: table + in: query + required: true + schema: + type: string + - name: name + in: query + required: true + schema: + type: string + responses: + '200': + description: Success. The last cache has been deleted. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Cache not found. + tags: + - Tables + /api/v3/configure/processing_engine_trigger: + post: + operationId: PostConfigureProcessingEngineTrigger + summary: Create processing engine trigger + description: Creates a new processing engine trigger. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '201': + description: Success. Processing engine trigger created. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + delete: + operationId: DeleteConfigureProcessingEngineTrigger + summary: Delete processing engine trigger + description: Deletes a processing engine trigger. + parameters: + - $ref: '#/components/parameters/db' + - name: trigger_name + in: query + required: true + schema: + type: string + - name: force + in: query + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Success. The processing engine trigger has been deleted. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/processing_engine_trigger/disable: + post: + operationId: PostDisableProcessingEngineTrigger + summary: Disable processing engine trigger + description: Disables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '200': + description: Success. The processing engine trigger has been disabled. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/processing_engine_trigger/enable: + post: + operationId: PostEnableProcessingEngineTrigger + summary: Enable processing engine trigger + description: Enables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + '200': + description: Success. The processing engine trigger has been enabled. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Trigger not found. + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_packages: + post: + operationId: PostInstallPluginPackages + summary: Install plugin packages + description: Installs packages for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The packages have been installed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_requirements: + post: + operationId: PostInstallPluginRequirements + summary: Install plugin requirements + description: Installs requirements for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The requirements have been installed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Processing engine + /api/v3/plugin_test/wal: + post: + operationId: PostTestWALPlugin + summary: Test WAL plugin + description: Executes a test of a write-ahead logging (WAL) plugin. + responses: + '200': + description: Success. The plugin test has been executed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not enabled. + tags: + - Processing engine + /api/v3/plugin_test/schedule: + post: + operationId: PostTestSchedulingPlugin + summary: Test scheduling plugin + description: Executes a test of a scheduling plugin. + responses: + '200': + description: Success. The plugin test has been executed. + '400': + description: Bad request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not enabled. + tags: + - Processing engine + /api/v3/engine/{plugin_path}: + parameters: + - name: plugin_path + description: | + The path configured in the `trigger-spec` for the plugin. + + For example, if you define a trigger with the following: + + ``` + trigger-spec: "request:hello-world" + ``` + + then, the HTTP API exposes the following plugin endpoint: + + ``` + /api/v3/engine/hello-world + ``` + in: path + required: true + schema: + type: string + get: + operationId: GetProcessingEnginePluginRequest + summary: On Request processing engine plugin request + description: | + Sends a request to invoke an _On Request_ processing engine plugin. + The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. + + An On Request plugin implements the following signature: + + ```python + def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None) + ``` + + The response depends on the plugin implementation. + responses: + '200': + description: Success. The plugin request has been executed. + '400': + description: Malformed request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not found. + '500': + description: Processing failure. + tags: + - Processing engine + post: + operationId: PostProcessingEnginePluginRequest + summary: On Request processing engine plugin request + description: | + Sends a request to invoke an _On Request_ processing engine plugin. + The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. + + An On Request plugin implements the following signature: + + ```python + def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None) + ``` + + The response depends on the plugin implementation. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: false + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + '200': + description: Success. The plugin request has been executed. + '400': + description: Malformed request. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: Plugin not found. + '500': + description: Processing failure. + tags: + - Processing engine +components: + parameters: + AcceptQueryHeader: + name: Accept + in: header + schema: + type: string + default: application/json + enum: + - application/json + - application/jsonl + - application/vnd.apache.parquet + - text/csv + required: false + description: | + The content type that the client can understand. + ContentEncoding: + name: Content-Encoding + in: header + description: | + The compression applied to the line protocol in the request payload. + To send a gzip payload, pass `Content-Encoding: gzip` header. + schema: + $ref: '#/components/schemas/ContentEncoding' + required: false + ContentLength: + name: Content-Length + in: header + description: | + The size of the entity-body, in bytes, sent to InfluxDB. + schema: + $ref: '#/components/schemas/ContentLength' + ContentType: + name: Content-Type + description: | + The format of the data in the request body. + in: header + schema: + type: string + enum: + - application/json + required: false + db: + name: db + in: query + required: true + schema: + type: string + description: | + The name of the database. + dbWriteParam: + name: db + in: query + required: true + schema: + type: string + description: | + The name of the database. + The name of the database. + InfluxDB creates the database if it doesn't already exist, and then + writes all points in the batch to the database. + dbQueryParam: + name: db + in: query + required: false + schema: + type: string + description: | + The name of the database. + + If you provide a query that specifies the database, you can omit the 'db' parameter from your request. + accept_partial: + name: accept_partial + in: query + required: false + schema: + $ref: '#/components/schemas/AcceptPartial' + compatibilityPrecisionParam: + name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWriteCompatibility' + description: The precision for unix timestamps in the line protocol batch. + precisionParam: + name: precision + in: query + required: true + schema: + $ref: '#/components/schemas/PrecisionWrite' + description: The precision for unix timestamps in the line protocol batch. + querySqlParam: + name: q + in: query + required: true + schema: + type: string + format: SQL + description: | + The query to execute. + format: + name: format + in: query + required: false + schema: + $ref: '#/components/schemas/Format' + formatRequired: + name: format + in: query + required: true + schema: + $ref: '#/components/schemas/Format' + requestBodies: + lineProtocolRequestBody: + required: true + content: + text/plain: + schema: + type: string + examples: + line: + summary: Example line protocol + value: measurement,tag=value field=1 1234567890 + multiline: + summary: Example line protocol with UTF-8 characters + value: | + measurement,tag=value field=1 1234567890 + measurement,tag=value field=2 1234567900 + measurement,tag=value field=3 1234568000 + queryRequestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/QueryRequestObject' + schemas: + ContentEncoding: + type: string + enum: + - gzip + - identity + description: | + Content coding. + Use `gzip` for compressed data or `identity` for unmodified, uncompressed data. + default: identity + LineProtocol: + type: string + enum: + - text/plain + - text/plain; charset=utf-8 + description: | + `text/plain` is the content type for line protocol. `UTF-8` is the default character set. + default: text/plain; charset=utf-8 + ContentLength: + type: integer + description: The length in decimal number of octets. + Database: + type: string + AcceptPartial: + type: boolean + default: true + description: Accept partial writes. + Format: + type: string + enum: + - json + - csv + - parquet + - jsonl + description: | + The format of data in the response body. + NoSync: + type: boolean + default: false + description: | + Acknowledges a successful write without waiting for WAL persistence. + + #### Data flow in InfluxDB 3 Enterprise + + 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. + 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. + 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. + 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. + 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + PrecisionWriteCompatibility: + enum: + - ms + - s + - us + - ns + type: string + description: | + The precision for unix timestamps in the line protocol batch. + Use `ms` for milliseconds, `s` for seconds, `us` for microseconds, or `ns` for nanoseconds. + PrecisionWrite: + enum: + - auto + - millisecond + - second + - microsecond + - nanosecond + type: string + description: | + The precision for unix timestamps in the line protocol batch. + QueryRequestObject: + type: object + properties: + database: + description: | + The name of the database to query. + Required if the query (`query_str`) doesn't specify the database. + type: string + query_str: + description: The query to execute. + type: string + format: + description: The format of the query results. + type: string + enum: + - json + - csv + - parquet + - jsonl + - pretty + params: + description: | + Additional parameters for the query. + Use this field to pass query parameters. + type: object + additionalProperties: true + required: + - database + - query_str + example: + database: mydb + query_str: SELECT * FROM mytable + format: json + params: {} + CreateDatabaseRequest: + type: object + properties: + db: + type: string + required: + - db + CreateTableRequest: + type: object + properties: + db: + type: string + table: + type: string + tags: + type: array + items: + type: string + fields: + type: array + items: + type: object + properties: + name: + type: string + type: + type: string + enum: + - utf8 + - int64 + - uint64 + - float64 + - bool + required: + - name + - type + required: + - db + - table + - tags + DistinctCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + columns: + type: array + items: + type: string + max_cardinality: + type: integer + description: Optional maximum cardinality. + max_age: + type: integer + description: Optional maximum age in seconds. + required: + - db + - table + - columns + example: + db: mydb + table: mytable + columns: + - tag1 + - tag2 + max_cardinality: 1000 + max_age: 3600 + LastCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + key_columns: + type: array + items: + type: string + description: Optional list of key columns. + value_columns: + type: array + items: + type: string + description: Optional list of value columns. + count: + type: integer + description: Optional count. + ttl: + type: integer + description: Optional time-to-live in seconds. + required: + - db + - table + example: + db: mydb + table: mytable + key_columns: + - tag1 + value_columns: + - field1 + count: 100 + ttl: 3600 + ProcessingEngineTriggerRequest: + type: object + properties: + db: + type: string + plugin_filename: + type: string + trigger_name: + type: string + trigger_specification: + type: string + trigger_arguments: + type: object + additionalProperties: true + disabled: + type: boolean + required: + - db + - plugin_filename + - trigger_name + - trigger_specification + ShowDatabasesResponse: + type: object + properties: + databases: + type: array + items: + type: string + QueryResponse: + type: object + properties: + results: + type: array + items: + type: object + example: + results: + - series: + - name: mytable + columns: + - time + - value + values: + - - '2024-02-02T12:00:00Z' + - 42 + ErrorMessage: + type: object + properties: + error: + type: string + data: + type: object + nullable: true + LineProtocolError: + properties: + code: + description: Code is the machine-readable error code. + enum: + - internal error + - not found + - conflict + - invalid + - empty value + - unavailable + readOnly: true + type: string + err: + description: Stack of errors that occurred during processing of the request. Useful for debugging. + readOnly: true + type: string + line: + description: First line in the request body that contains malformed data. + format: int32 + readOnly: true + type: integer + message: + description: Human-readable message. + readOnly: true + type: string + op: + description: Describes the logical code operation when the error occurred. Useful for debugging. + readOnly: true + type: string + required: + - code + EpochCompatibility: + description: | + A unix timestamp precision. + - `h` for hours + - `m` for minutes + - `s` for seconds + - `ms` for milliseconds + - `u` or `µ` for microseconds + - `ns` for nanoseconds + enum: + - ns + - u + - µ + - ms + - s + - m + - h + type: string + responses: + Unauthorized: + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + BadRequest: + description: | + Request failed. Possible reasons: + + - Invalid database name + - Malformed request body + - Invalid timestamp precision + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Forbidden: + description: Access denied. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + NotFound: + description: Resource not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: | + _During Alpha release, an API token is not required._ + + A Bearer token for authentication. + + Provide the scheme and the API token in the `Authorization` header--for example: + + ```bash + curl http://localhost:8181/api/v3/query_influxql \ + --header "Authorization: Bearer API_TOKEN" + ``` +x-tagGroups: + - name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Common parameters + - Response codes + - Compatibility endpoints + - Data I/O + - Databases + - Processing engine + - Server information + - Tables diff --git a/api-docs/openapi/plugins/decorators/set-info.js b/api-docs/openapi/plugins/decorators/set-info.js index db899f33b..b61131a0c 100644 --- a/api-docs/openapi/plugins/decorators/set-info.js +++ b/api-docs/openapi/plugins/decorators/set-info.js @@ -16,6 +16,10 @@ function SetInfo(data) { } if(data.hasOwnProperty('summary')) { info.summary = data.summary; + } else { + // Remove summary if not provided. + // info.summary isn't a valid OpenAPI 3.0 property, but it's used by Redocly. + info['summary'] = undefined; } if(data.hasOwnProperty('description')) { info.description = data.description; @@ -23,6 +27,9 @@ function SetInfo(data) { if(data.hasOwnProperty('license')) { info.license = data.license; } + if(data.hasOwnProperty('contact')) { + info.contact = data.contact; + } } } } diff --git a/api-docs/package.json b/api-docs/package.json index 1e81d828d..038861462 100755 --- a/api-docs/package.json +++ b/api-docs/package.json @@ -6,5 +6,8 @@ "license": "MIT", "dependencies": { "js-yaml": "^4.1.0" + }, + "devDependencies": { + "spectral": "^0.0.0" } } diff --git a/api-docs/template.hbs b/api-docs/template.hbs index fe42b6a74..bc363affe 100755 --- a/api-docs/template.hbs +++ b/api-docs/template.hbs @@ -1,59 +1,118 @@ - - - - - + + + + - - {{title}} - - - + + {{title}} + + + - + - - {{#unless disableGoogleFont}}{{/unless}} - {{{redocHead}}} - - + + {{#unless disableGoogleFont}}{{/unless}} + {{{redocHead}}} + + + - - - - -
-
-
- - {{{redocHTML}}} - - + + {{! }} + + + +
+
+
+ + {{{redocHTML}}} + + - + \ No newline at end of file diff --git a/api-docs/yarn.lock b/api-docs/yarn.lock index e79302e28..5862cbfa6 100644 --- a/api-docs/yarn.lock +++ b/api-docs/yarn.lock @@ -2,14 +2,90 @@ # yarn lockfile v1 +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +chalk@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +extend@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" + +moment@^2.10.3: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +spectral@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/spectral/-/spectral-0.0.0.tgz#a244b28c0726a7907374ad39c58024f934b9e8a1" + integrity sha512-tJamrVCLdpHt3geQn9ypWLlcS7K02+TZV5hj1bnPjGcjQs5N0dtxzJVitcmHbR9tZQgjwj2hAO1f8v1fzzwF1Q== + dependencies: + chalk "^1.0.0" + commander "^2.8.1" + extend "^2.0.1" + moment "^2.10.3" + string-etc "^0.2.0" + +string-etc@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/string-etc/-/string-etc-0.2.0.tgz#a0f84a2d8816082266384a3c7229acbb8064eda5" + integrity sha512-J9RfI2DvBDlnISBhfOBOAXPFxE4cpEgNC6zJTjULmagQaMuu2sYrE44H8h5Paxf3Bm9Wcer92DJv9n77OAHIRg== + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== diff --git a/assets/js/ask-ai.js b/assets/js/ask-ai.js index 71c726700..292fb0a4c 100644 --- a/assets/js/ask-ai.js +++ b/assets/js/ask-ai.js @@ -19,6 +19,7 @@ function initializeChat({onChatLoad, chatAttributes}) { * available configuration options. * All values are strings. */ + // If you make changes to data attributes here, you also need to port the changes to the api-docs/template.hbs API reference template. const requiredAttributes = { websiteId: 'a02bca75-1dd3-411e-95c0-79ee1139be4d', projectName: 'InfluxDB', @@ -27,6 +28,7 @@ function initializeChat({onChatLoad, chatAttributes}) { } const optionalAttributes = { + modalDisclaimer: 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).', modalExampleQuestions: 'Use Python to write data to InfluxDB 3,How do I query using SQL?,How do I use MQTT with Telegraf?', buttonHide: 'true', diff --git a/assets/styles/layouts/_article.scss b/assets/styles/layouts/_article.scss index 07945f489..1d5a68b3e 100644 --- a/assets/styles/layouts/_article.scss +++ b/assets/styles/layouts/_article.scss @@ -244,6 +244,7 @@ &.blue {color: $b-dodger;} &.green {color: $gr-viridian;} &.magenta {color: $p-comet;} + &.pink {color: $br-new-magenta;} } h2, diff --git a/assets/styles/layouts/article/_html-diagrams.scss b/assets/styles/layouts/article/_html-diagrams.scss index edd7240a0..2d60e71b7 100644 --- a/assets/styles/layouts/article/_html-diagrams.scss +++ b/assets/styles/layouts/article/_html-diagrams.scss @@ -904,6 +904,244 @@ table tr.point{ } } +//////////////////////// SQL WINDOW FRAME UNITS EXAMPLES /////////////////////// + +table.window-frame-units { + &.groups { + .group { + position: relative; + outline-style: solid; + outline-width: 3px; + outline-offset: -5px; + border-radius: 10px; + + &::before { + content: "Row Group"; + display: block; + padding: .25rem .5rem; + position: absolute; + top: 3px; + left: 3px; + border-radius: 4px; + color: #fff; + font-size: .8rem; + font-weight: bold; + text-transform: uppercase; + letter-spacing: .02em; + box-shadow: 4px 4px 4px $article-bg; + } + + td:nth-child(2), td:nth-child(3) { + font-weight: bold; + text-decoration: underline; + text-decoration-thickness: 2px; + text-underline-offset: 5px; + } + + &:nth-of-type(1) { + &::before {background: $br-new-magenta;} + outline-color: $br-new-magenta; + td:nth-child(2), td:nth-child(3) { + text-decoration-color: $br-new-magenta; + } + } + &:nth-of-type(2) { + &::before {background: $br-new-purple;} + outline-color: $br-new-purple; + td:nth-child(2), td:nth-child(3) { + text-decoration-color: $br-new-purple; + } + } + &:nth-of-type(3) { + &::before {background: $b-dodger;} + outline-color: $b-dodger; + td:nth-child(2), td:nth-child(3) { + text-decoration-color: $b-dodger; + } + } + &:nth-of-type(4) { + &::before {background: $b-sapphire;} + outline-color: $b-sapphire; + td:nth-child(2), td:nth-child(3) { + text-decoration-color: $b-sapphire; + } + } + } + } + + &.groups-with-frame { + .frame, tr.current-row { + position: relative; + outline-style: solid; + outline-width: 3px; + outline-offset: -5px; + border-radius: 10px; + + &::after { + display: block; + padding: .25rem .5rem; + position: absolute; + top: 3px; + left: 3px; + border-radius: 4px; + color: #fff; + font-size: .8rem; + font-weight: bold; + text-transform: uppercase; + letter-spacing: .02em; + box-shadow: 4px 4px 4px $article-bg; + } + + tr:nth-child(n + 1):nth-child(-n + 3) { + td {text-decoration-color: $br-new-magenta;} + } + tr:nth-child(n + 4):nth-child(-n + 6) { + td {text-decoration-color: $br-magenta;} + } + tr:nth-child(n + 7):nth-child(-n + 8) { + td {text-decoration-color: $b-dodger;} + } + + td:nth-child(n + 2):nth-child(-n + 3) { + font-weight: bold; + text-decoration: underline; + text-decoration-thickness: 2px; + text-underline-offset: 5px; + } + } + tr.current-row { + outline-color: $br-new-magenta; + &::after { + content: "Current Row"; + background: $br-new-magenta; + } + td {text-decoration-color: $b-dodger !important;} + } + + .frame { + outline-color: $br-new-purple; + &::after { + content: "Frame"; + background: $br-new-purple; + } + } + .group { + position: relative; + outline-color: $b-sapphire; + td:nth-child(2), td:nth-child(3) { + font-weight: bold; + text-decoration: underline; + text-decoration-thickness: 2px; + text-underline-offset: 5px; + text-decoration-color: $b-sapphire; + } + } + } + + &.range-interval { + .frame, tr.current-row { + position: relative; + outline-style: solid; + outline-width: 3px; + outline-offset: -5px; + border-radius: 10px; + + td:first-child { + font-weight: bold; + text-decoration: underline; + text-decoration-thickness: 2px; + text-underline-offset: 5px; + text-decoration-color: $br-new-purple; + } + &::after { + display: block; + padding: .25rem .5rem; + position: absolute; + top: 3px; + right: 3px; + border-radius: 4px; + color: #fff; + font-size: .8rem; + font-weight: bold; + text-transform: uppercase; + letter-spacing: .02em; + box-shadow: -4px 4px 4px $article-bg; + } + } + tr.current-row { + outline-color: $br-new-magenta; + td:first-child {text-decoration-color: $br-new-magenta;} + &::after { + content: "Current Row"; + background: $br-new-magenta; + box-shadow: -4px 4px 4px $article-table-row-alt; + } + } + + .frame { + outline-color: $br-new-purple; + &::after { + content: "Frame"; + background: $br-new-purple; + } + } + } + + &.range-numeric, &.rows { + .frame, tr.current-row { + position: relative; + outline-style: solid; + outline-width: 3px; + outline-offset: -5px; + border-radius: 10px; + + &::after { + display: block; + padding: .25rem .5rem; + position: absolute; + top: 3px; + left: 3px; + border-radius: 4px; + color: #fff; + font-size: .8rem; + font-weight: bold; + text-transform: uppercase; + letter-spacing: .02em; + box-shadow: 4px 4px 4px $article-bg; + } + } + tr.current-row { + outline-color: $br-new-magenta; + &::after { + content: "Current Row"; + background: $br-new-magenta; + } + } + + .frame { + outline-color: $br-new-purple; + &::after { + content: "Frame"; + background: $br-new-purple; + } + } + } + &.range-numeric { + .frame { + td:nth-child(3) { + font-weight: bold; + text-decoration: underline; + text-decoration-thickness: 2px; + text-underline-offset: 5px; + text-decoration-color: $br-new-purple; + } + tr.current-row { + td:nth-child(3) {text-decoration-color: $br-new-magenta;} + } + } + } +} + //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// MEDIA QUERIES //////////////////////////////// //////////////////////////////////////////////////////////////////////////////// diff --git a/compose.yaml b/compose.yaml index be18df40b..1b51376e5 100644 --- a/compose.yaml +++ b/compose.yaml @@ -84,6 +84,9 @@ services: - type: volume source: test-content target: /app/content + - type: bind + source: ./test/shared/influxdb-templates + target: /root/influxdb-templates working_dir: /app cloud-dedicated-pytest: container_name: cloud-dedicated-pytest @@ -245,6 +248,68 @@ services: source: test-content target: /app/content working_dir: /app + influxdb3-core-pytest: + container_name: influxdb3-core-pytest + image: influxdata/docs-pytest + build: + context: . + dockerfile: Dockerfile.pytest + entrypoint: + - /bin/bash + - /src/test/scripts/run-tests.sh + - pytest + command: + # In the command, pass file paths to test. + # The container preprocesses the files for testing and runs the tests. + - content/influxdb3/core/**/*.md + - content/shared/**/*.md + environment: + - CONTENT_PATH=content/influxdb3/core + profiles: + - test + - influxdb3 + stdin_open: true + tty: true + volumes: + # Site configuration files. + - type: bind + source: . + target: /src + read_only: true + # Files shared between host and container and writeable by both. + - type: bind + source: ./test/shared + target: /shared + - type: bind + source: ./content/influxdb3/core/.env.test + target: /app/.env.test + read_only: true + # In your code samples, use `/app/data/` or `data/` to access sample data files from the `static/downloads` directory. + - type: bind + source: ./static/downloads + target: /app/data + read_only: true + # In your code samples, use `/app/iot-starter` to store example modules or project files. + - type: volume + source: influxdb3-core-tmp + target: /app/iot-starter + # Target directory for the content under test. + # Files are copied from /src/content/ to /app/content/ before running tests. + - type: volume + source: test-content + target: /app/content + working_dir: /app + influxdb3-core: + container_name: influxdb3-core + image: quay.io/influxdb/influxdb3-core:latest + ports: + - 8181:8181 + command: + - serve + - --node-id=sensors_node0 + - --log-filter=debug + - --object-store=file + - --data-dir=/var/lib/influxdb3 telegraf-pytest: container_name: telegraf-pytest image: influxdata/docs-pytest diff --git a/content/enterprise_influxdb/v1/administration/configure/config-data-nodes.md b/content/enterprise_influxdb/v1/administration/configure/config-data-nodes.md index f45460a4d..c45d343f7 100644 --- a/content/enterprise_influxdb/v1/administration/configure/config-data-nodes.md +++ b/content/enterprise_influxdb/v1/administration/configure/config-data-nodes.md @@ -303,6 +303,29 @@ Very useful for troubleshooting, but will log any sensitive data contained withi Environment variable: `INFLUXDB_DATA_QUERY_LOG_ENABLED` +#### query-log-path + +An absolute path to the query log file. +The default is `""` (queries aren't logged to a file). + +Query logging supports SIGHUP-based log rotation. + +The following is an example of a `logrotate` configuration: + +``` +/var/log/influxdb/queries.log { + rotate 5 + daily + compress + missingok + notifempty + create 644 root root + postrotate + /bin/kill -HUP `pgrep -x influxd` + endscript +} +``` + #### wal-fsync-delay Default is `"0s"`. diff --git a/content/enterprise_influxdb/v1/tools/api.md b/content/enterprise_influxdb/v1/tools/api.md index ce9e4d312..35bfa24b0 100644 --- a/content/enterprise_influxdb/v1/tools/api.md +++ b/content/enterprise_influxdb/v1/tools/api.md @@ -162,7 +162,7 @@ curl -XGET "localhost:8086/health" ### `/api/v2/buckets/` HTTP endpoint -The [/api/v2/buckets](/influxdb/latest/api/#tag/Buckets) endpoint accepts `GET`, `POST` and `DELETE` HTTP requests. Use this endpoint to [create](/influxdb/latest/api/#operation/PostBuckets), [delete](/influxdb/latest/api/#operation/DeleteBucketsID), [list](/influxdb/latest/api/#operation/GetBuckets), [update](/influxdb/latest/api/#operation/PatchBucketsID) and [retrieve](/influxdb/latest/api/#operation/GetBucketsID) buckets in your InfluxDB instance. Note that InfluxDB 2.x uses organizations and buckets instead of databases and retention policies. +The [/api/v2/buckets](/influxdb/v2/api/#tag/Buckets) endpoint accepts `GET`, `POST` and `DELETE` HTTP requests. Use this endpoint to [create](/influxdb/v2/api/#operation/PostBuckets), [delete](/influxdb/v2/api/#operation/DeleteBucketsID), [list](/influxdb/v2/api/#operation/GetBuckets), [update](/influxdb/v2/api/#operation/PatchBucketsID) and [retrieve](/influxdb/v2/api/#operation/GetBucketsID) buckets in your InfluxDB instance. Note that InfluxDB 2.x uses organizations and buckets instead of databases and retention policies. **Include the following URL parameters:** @@ -201,7 +201,7 @@ curl --request DELETE "http://localhost:8086/api/v2/buckets/test/autogen" ### `/api/v2/delete/` HTTP endpoint -The [`/api/v2/delete`](/influxdb/latest/api/#tag/Delete) endpoint accepts `POST` HTTP requests. Use this endpoint to delete points from InfluxDB, including points with specific tag values, timestamps and measurements. +The [`/api/v2/delete`](/influxdb/v2/api/#tag/Delete) endpoint accepts `POST` HTTP requests. Use this endpoint to delete points from InfluxDB, including points with specific tag values, timestamps and measurements. **Include the following URL parameters:** @@ -353,8 +353,12 @@ curl http://localhost:8086/debug/requests ##### Track requests over a ten-second interval ```bash -$ curl http://localhost:8086/debug/requests +curl http://localhost:8086/debug/requests +``` +The response body contains data in JSON format: + +```JSON { "user1:123.45.678.91": {"writes":1,"queries":0}, } @@ -365,8 +369,12 @@ The response shows that, over the past ten seconds, the `user1` user sent one re ##### Track requests over a one-minute interval ```bash -$ curl http://localhost:8086/debug/requests?seconds=60 +curl http://localhost:8086/debug/requests?seconds=60 +``` +The response body contains data in JSON format: + +```JSON { "user1:123.45.678.91": {"writes":3,"queries":0}, "user1:000.0.0.0": {"writes":0,"queries":16}, @@ -468,8 +476,12 @@ Those `SELECT` queries require a `POST` request. ###### Query data with a `SELECT` statement ```bash -$ curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +``` +The response body contains data in JSON format: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:16:18Z",33.1,null,null],["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]} ``` @@ -490,8 +502,12 @@ time myfield mytag1 mytag2 ##### Query data with a `SELECT` statement and an `INTO` clause ```bash -$ curl -XPOST 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * INTO "newmeas" FROM "mymeas"' +curl -XPOST 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * INTO "newmeas" FROM "mymeas"' +``` +The response body contains data in JSON format: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"result","columns":["time","written"],"values":[["1970-01-01T00:00:00Z",2]]}]}]} ``` @@ -503,8 +519,12 @@ Note that the system uses epoch 0 (`1970-01-01T00:00:00Z`) as a [null timestamp ##### Create a database ```bash -$ curl -XPOST 'http://localhost:8086/query' --data-urlencode 'q=CREATE DATABASE "mydb"' +curl -XPOST 'http://localhost:8086/query' --data-urlencode 'q=CREATE DATABASE "mydb"' +``` +The response data is similar to the following: + +```JSON {"results":[{"statement_id":0}]} ``` @@ -536,7 +556,7 @@ See below for an [example](#create-a-database-using-basic-authentication) of bas ##### Query data with a `SELECT` statement and return pretty-printed JSON ```bash -$ curl -G 'http://localhost:8086/query?db=mydb&pretty=true' --data-urlencode 'q=SELECT * FROM "mymeas"' +curl -G 'http://localhost:8086/query?db=mydb&pretty=true' --data-urlencode 'q=SELECT * FROM "mymeas"' { "results": [ @@ -575,8 +595,12 @@ $ curl -G 'http://localhost:8086/query?db=mydb&pretty=true' --data-urlencode 'q= ##### Query data with a `SELECT` statement and return second precision epoch timestamps ```bash -$ curl -G 'http://localhost:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "mymeas"' +curl -G 'http://localhost:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "mymeas"' +``` +The response body data is similar to the following: + +```bash {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[[1488327378,33.1,null,null],[1488327438,12.4,"12","14"]]}]}]} ``` @@ -586,7 +610,7 @@ The following example shows how to authenticate with v1.x credentials in the que create a database: ```bash -$ curl -XPOST 'http://localhost:8086/query?u=myusername&p=mypassword' --data-urlencode 'q=CREATE DATABASE "mydb"' +curl -XPOST 'http://localhost:8086/query?u=myusername&p=mypassword' --data-urlencode 'q=CREATE DATABASE "mydb"' ``` The response body contains the following: @@ -698,26 +722,37 @@ Delimit multiple placeholder key-value pairs with comma `,`. ##### Send multiple queries ```bash -$ curl -G 'http://localhost:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "mymeas";SELECT mean("myfield") FROM "mymeas"' +curl -G 'http://localhost:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "mymeas";SELECT mean("myfield") FROM "mymeas"' +``` +The response body contains results for both queries: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[[1488327378,33.1,null,null],[1488327438,12.4,"12","14"]]}]},{"statement_id":1,"series":[{"name":"mymeas","columns":["time","mean"],"values":[[0,22.75]]}]}]} ``` -The request includes two queries: `SELECT * FROM "mymeas"` and `SELECT mean("myfield") FROM "mymeas"'`. -In the results, the system assigns a statement identifier to each query return. -The first query's result has a `statement_id` of `0` and the second query's result has a `statement_id` of `1`. +- The request includes two queries: `SELECT * FROM "mymeas"` and `SELECT mean("myfield") FROM "mymeas"'`. +- In the results, InfluxDB assigns a statement identifier to each query: + - `"statement_id": 0`: the first query + - `"statement_id": 1`: the second query ##### Request query results in CSV format -```bash -$ curl -H "Accept: application/csv" -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +To format results in CSV, specify `application/csv` in the HTTP `Accept` header--for example: +```bash +curl -H "Accept: application/csv" -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +``` + +The response body contains data in CSV format: + +```csv name,tags,time,myfield,mytag1,mytag2 mymeas,,1488327378000000000,33.1,mytag1,mytag2 mymeas,,1488327438000000000,12.4,12,14 ``` -The first point has no [tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) for the `mytag1` and `mytag2` [tag keys](/enterprise_influxdb/v1/concepts/glossary/#tag-key). +- In the sample data, the first point doesn't contain [tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) for the `mytag1` and `mytag2` [tag keys](/enterprise_influxdb/v1/concepts/glossary/#tag-key). ##### Submit queries from a file @@ -734,57 +769,77 @@ CREATE RETENTION POLICY four_weeks ON mydb DURATION 4w REPLICATION 1; ##### Bind a parameter in the `WHERE` clause to specific tag value -```bash -$ curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value' --data-urlencode 'params={"tag_value":"12"}' +Use the `params` option to pass arguments for a parameterized query--for example: +```bash +curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value' --data-urlencode 'params={"tag_value":"12"}' +``` + +The response data is similar to the following: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]} ``` -The request maps `$tag_value` to `12`. -InfluxDB stores [tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) as strings they and must be double quoted in the request. +- In the request, `params` maps `$tag_value` to `"12"`. + Because InfluxDB stores [tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) as strings, you must double-quote them in parameter values. +- During query execution, InfluxDB substitutes the parameter values for the associated keys in the query. ##### Bind a parameter in the `WHERE` clause to a numerical field value ```bash -$ curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "myfield" > $field_value' --data-urlencode 'params={"field_value":30}' +curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "myfield" > $field_value' --data-urlencode 'params={"field_value":30}' +``` +The response data is similar to the following: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:16:18Z",33.1,null,null]]}]}]} ``` -The request maps `$field_value` to `30`. -The value `30` does not require double quotes because `myfield` stores numerical [field values](/enterprise_influxdb/v1/concepts/glossary/#field-value). +- In the request, `params` maps `$field_value` to `30`. Because `myfield` stores numerical [field values](/enterprise_influxdb/v1/concepts/glossary/#field-value), the parameter value `30` does not require double quotes. +- During query execution, InfluxDB substitutes the parameter values for the associated keys in the query. ##### Bind two parameters in the `WHERE` clause to a specific tag value and numerical field value ```bash -$ curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value AND "myfield" < $field_value' --data-urlencode 'params={"tag_value":"12","field_value":30}' +curl -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value AND "myfield" < $field_value' --data-urlencode 'params={"tag_value":"12","field_value":30}' +``` +The response data is similar to the following: + +```JSON {"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]} ``` -The request maps `$tag_value` to `12` and `$field_value` to `30`. +- In the request, `params` maps `$tag_value` to `12` and `$field_value` to `30`. +- During query execution, InfluxDB substitutes the parameter values for the associated keys in the query. #### Status codes and responses The API response body contains results or error messages in JSON format. To pretty-print JSON for viewing, include the query string parameter `pretty=true` -or pipe the response to a JSON-processor like [**jq**](https://stedolan.github.io/jq/). +or pipe the response to a JSON-processor, such as [**jq**](https://stedolan.github.io/jq/). ##### Summary table | HTTP status code | Description | | :--------------- | :---------- | -| 200 OK | Success. Response body contains data in JSON format. | -| 400 Bad Request | Unacceptable request. Can occur with a syntactically incorrect query. Response body contains an error message with additional information in JSON format. | -| 401 Unauthorized | Unacceptable request. Can occur with invalid authentication credentials. | +| `200 OK` | Success. Response body contains data in JSON format. | +| `400 Bad Request` | Unacceptable request. Can occur with a syntactically incorrect query. Response body contains an error message with additional information in JSON format. | +| `401 Unauthorized` | Unacceptable request. Can occur with invalid authentication credentials. | #### Examples ##### A successful request that returns data ```bash -$ curl -i -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +curl -i -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "mymeas"' +``` +The response is HTTP status `200 OK` and the body contains data in JSON format: + +``` HTTP/1.1 200 OK Connection: close Content-Type: application/json @@ -799,8 +854,11 @@ Transfer-Encoding: chunked ##### A query that contains an error ```bash -$ curl -i -G 'http://localhost:8086/query?db=mydb1' --data-urlencode 'q=SELECT * FROM "mymeas"' +curl -i -G 'http://localhost:8086/query?db=mydb1' --data-urlencode 'q=SELECT * FROM "mymeas"' +The response body contains details about the error: + +``` HTTP/1.1 200 OK Connection: close Content-Type: application/json @@ -815,8 +873,13 @@ Transfer-Encoding: chunked ##### An incorrectly formatted query ```bash -$ curl -i -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT *' +curl -i -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT *' +``` +The response is HTTP status `400 Bad Request` and the body contains details +about the error: + +``` HTTP/1.1 400 Bad Request Content-Type: application/json Request-Id: [...] @@ -830,8 +893,12 @@ Content-Length: 76 ##### A request with invalid authentication credentials ```bash -$ curl -i -XPOST 'http://localhost:8086/query?u=myusername&p=notmypassword' --data-urlencode 'q=CREATE DATABASE "mydb"' +curl -i -XPOST 'http://localhost:8086/query?u=myusername&p=notmypassword' --data-urlencode 'q=CREATE DATABASE "mydb"' +``` +The response is HTTP status `401 Unauthorized` and the body contains the error message. + +``` HTTP/1.1 401 Unauthorized Content-Type: application/json Request-Id: [...] @@ -878,8 +945,12 @@ in significant improvements in compression. ##### Write a point to the database `mydb` with a timestamp in seconds ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb&precision=s" --data-binary 'mymeas,mytag=1 myfield=90 1463683075' +curl -i -XPOST "http://localhost:8086/write?db=mydb&precision=s" --data-binary 'mymeas,mytag=1 myfield=90 1463683075' +``` +A successful write returns HTTP status `204 No Content`--for example: + +``` HTTP/1.1 204 No Content Content-Type: application/json Request-Id: [...] @@ -890,13 +961,7 @@ Date: Wed, 08 Nov 2017 17:33:23 GMT ##### Write a point to the database `mydb` and the retention policy `myrp` ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb&rp=myrp" --data-binary 'mymeas,mytag=1 myfield=90' - -HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 17:34:31 GMT +curl -i -XPOST "http://localhost:8086/write?db=mydb&rp=myrp" --data-binary 'mymeas,mytag=1 myfield=90' ``` ##### Write a point to the database `mydb` using HTTP authentication @@ -904,20 +969,25 @@ Date: Wed, 08 Nov 2017 17:34:31 GMT Valid credentials: ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb&u=myusername&p=mypassword" --data-binary 'mymeas,mytag=1 myfield=91' +curl -i -XPOST "http://localhost:8086/write?db=mydb&u=myusername&p=mypassword" --data-binary 'mymeas,mytag=1 myfield=91' +``` +A successful write returns HTTP status `204 No Content`. + +``` HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 17:34:56 GMT ``` Invalid credentials: ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb&u=myusername&p=notmypassword" --data-binary 'mymeas,mytag=1 myfield=91' +curl -i -XPOST "http://localhost:8086/write?db=mydb&u=myusername&p=notmypassword" --data-binary 'mymeas,mytag=1 myfield=91' +``` +If the username or password is incorrect, the response status is `401 Unauthorized` +and the response body contains the error message--for example: + +``` HTTP/1.1 401 Unauthorized Content-Type: application/json Request-Id: [...] @@ -931,23 +1001,20 @@ Content-Length: 33 ##### Write a point to the database `mydb` using basic authentication -Valid credentials: - ```bash -$ curl -i -XPOST -u myusername:mypassword "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91' - -HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 17:36:40 GMT +curl -i -XPOST -u myusername:mypassword "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91' ``` Invalid credentials: ```bash -$ curl -i -XPOST -u myusername:notmypassword "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91' +curl -i -XPOST -u myusername:notmypassword "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91' +``` +If the username or password is incorrect, the response status is `401 Unauthorized` +and the response body contains the error message--for example: + +``` HTTP/1.1 401 Unauthorized Content-Type: application/json Request-Id: [...] @@ -965,79 +1032,65 @@ Content-Length: 33 --data-binary '' ``` -All data must be binary encoded and in the +Data to write must be binary encoded and in the [InfluxDB line protocol](/enterprise_influxdb/v1/concepts/glossary/#influxdb-line-protocol) format. -Our example shows the `--data-binary` parameter from curl, which we will use in -all examples on this page. + +Examples in this page use `curl` with the `--data-binary` parameter to encode +line protocol in the request. Using any encoding method other than `--data-binary` will likely lead to issues; `-d`, `--data-urlencode`, and `--data-ascii` may strip out newlines or -introduce new, unintended formatting. +introduce unintended formatting. Options: -* Write several points to the database with one request by separating each point +- Write several points to the database with one request by separating each point by a new line. -* Write points from a file with the `@` flag. -The file should contain a batch of points in the InfluxDB line protocol format. +- Write points from a file with the `@` flag. +The file should contain a batch of points in line protocol format. Individual points must be on their own line and separated by newline characters (`\n`). -Files containing carriage returns will cause parser errors. +Files containing carriage returns cause parser errors. - We recommend writing points in batches of 5,000 to 10,000 points. -Smaller batches, and more HTTP requests, will result in sub-optimal performance. +> [!Important] +> #### Batch writes for optimal performance +> Write points in batches of 5,000 to 10,000 points. +> Smaller batches, and more HTTP requests, will result in sub-optimal performance. #### Examples -##### Write a point to the database `mydb` with a nanosecond timestamp +##### Write a point with a nanosecond timestamp to the `mydb` database ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=90 1463683075000000000' - -HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 18:02:57 GMT +curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=90 1463683075000000000' ``` -##### Write a point to the database `mydb` with the local server's nanosecond timestamp - -```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=90' +If successful, the response status is HTTP `204 No Content`. +``` HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 18:03:44 GMT ``` -##### Write several points to the database `mydb` by separating points with a new line +##### Write a point with the local server's nanosecond timestamp to the `mydb` database ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=3 myfield=89 1463689152000000000 +curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=90' +``` + +##### Write several points to the database by separating points with a new line + +```bash +curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary 'mymeas,mytag=3 myfield=89 1463689152000000000 mymeas,mytag=2 myfield=34 1463689152000000000' - -HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 18:04:02 GMT ``` ##### Write several points to the database `mydb` from the file `data.txt` ```bash -$ curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary @data.txt - -HTTP/1.1 204 No Content -Content-Type: application/json -Request-Id: [...] -X-Influxdb-Version: {{< latest-patch >}} -Date: Wed, 08 Nov 2017 18:08:11 GMT +curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary @data.txt ``` -A sample of the data in `data.txt`: +`data.txt` contains the following sample data: + ``` mymeas,mytag1=1 value=21 1463689680000000000 mymeas,mytag1=1 value=34 1463689690000000000 @@ -1132,7 +1185,7 @@ Requests to `/shard-status` return the following information in JSON format: - `size`: the size on disk of the shard in bytes - `is_hot`: whether the time range from the shard includes `now` {{% note %}} -An *idle* shard is fully compacted and not receiving new (potentially historical) writes. +An _idle_ shard is fully compacted and not receiving new (potentially historical) writes. A hot shard may or may not be idle. {{% /note %}} - `state`: the anti-entropy status of the shard can be one of the following: diff --git a/content/flux/v0/join-data/time.md b/content/flux/v0/join-data/time.md index c087f61fe..42f57d631 100644 --- a/content/flux/v0/join-data/time.md +++ b/content/flux/v0/join-data/time.md @@ -4,7 +4,7 @@ description: > Use [`join.time()`](/flux/v0/stdlib/join/time/) to join two streams of data based on time values in the `_time` column. This type of join operation is common when joining two streams of - [time series data](/influxdb/latest/reference/glossary/#time-series-data). + [time series data](/influxdb/v2/reference/glossary/#time-series-data). menu: flux_v0: parent: Join data @@ -31,7 +31,7 @@ list_code_example: | Use [`join.time()`](/flux/v0/stdlib/join/time/) to join two streams of data based on time values in the `_time` column. This type of join operation is common when joining two streams of -[time series data](/influxdb/latest/reference/glossary/#time-series-data). +[time series data](/influxdb/v2/reference/glossary/#time-series-data). `join.time()` can use any of the available join methods. Which method you use depends on your desired behavior: diff --git a/content/flux/v0/stdlib/contrib/jsternberg/influxdb/from.md b/content/flux/v0/stdlib/contrib/jsternberg/influxdb/from.md index a1b8c1d5a..ba6548e98 100644 --- a/content/flux/v0/stdlib/contrib/jsternberg/influxdb/from.md +++ b/content/flux/v0/stdlib/contrib/jsternberg/influxdb/from.md @@ -86,7 +86,7 @@ Durations are relative to `now()`. URL of the InfluxDB instance to query. -See [InfluxDB OSS URLs](/influxdb/latest/reference/urls/) +See [InfluxDB OSS URLs](/influxdb/v2/reference/urls/) or [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/). ### org @@ -97,7 +97,7 @@ Organization name. ### token -InfluxDB [API token](/influxdb/latest/security/tokens/). +InfluxDB [API token](/influxdb/v2/security/tokens/). diff --git a/content/flux/v0/stdlib/contrib/jsternberg/influxdb/select.md b/content/flux/v0/stdlib/contrib/jsternberg/influxdb/select.md index a90e72cd5..047386468 100644 --- a/content/flux/v0/stdlib/contrib/jsternberg/influxdb/select.md +++ b/content/flux/v0/stdlib/contrib/jsternberg/influxdb/select.md @@ -119,7 +119,7 @@ Records that evaluate to _null_ or `false` are not included in the output tables URL of the InfluxDB instance to query. -See [InfluxDB OSS URLs](/influxdb/latest/reference/urls/) +See [InfluxDB OSS URLs](/influxdb/v2/reference/urls/) or [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/). ### org @@ -130,7 +130,7 @@ Organization name. ### token -InfluxDB [API token](/influxdb/latest/security/tokens/). +InfluxDB [API token](/influxdb/v2/security/tokens/). diff --git a/content/flux/v0/stdlib/date/hour.md b/content/flux/v0/stdlib/date/hour.md index d2341d416..9bcec5324 100644 --- a/content/flux/v0/stdlib/date/hour.md +++ b/content/flux/v0/stdlib/date/hour.md @@ -62,6 +62,7 @@ Default is the `location` option. - [Return the hour of a time value](#return-the-hour-of-a-time-value) - [Return the hour of a relative duration](#return-the-hour-of-a-relative-duration) - [Return the current hour](#return-the-current-hour) +- [Return the hour in localtime ](#return-the-hour-in-localtime) ### Return the hour of a time value @@ -96,3 +97,11 @@ date.hour(t: now()) ``` +### Return the hour in local time + +```js +import "date" +import "timezone" + +date.hour(t: r._time, location: timezone.location(name: "Europe/Berlin")) +``` diff --git a/content/flux/v0/stdlib/experimental/csv/from.md b/content/flux/v0/stdlib/experimental/csv/from.md index e2cf0fbf5..bbeb5cbbe 100644 --- a/content/flux/v0/stdlib/experimental/csv/from.md +++ b/content/flux/v0/stdlib/experimental/csv/from.md @@ -1,7 +1,7 @@ --- title: csv.from() function description: > - `csv.from()` retrieves [annotated CSV](/influxdb/latest/reference/syntax/annotated-csv/) **from a URL**. + `csv.from()` retrieves [annotated CSV](/influxdb/v2/reference/syntax/annotated-csv/) **from a URL**. menu: flux_v0_ref: name: csv.from @@ -26,7 +26,7 @@ Fluxdoc syntax: https://github.com/influxdata/flux/blob/master/docs/fluxdoc.md -------------------------------------------------------------------------------> -`csv.from()` retrieves [annotated CSV](/influxdb/latest/reference/syntax/annotated-csv/) **from a URL**. +`csv.from()` retrieves [annotated CSV](/influxdb/v2/reference/syntax/annotated-csv/) **from a URL**. {{% warn %}} #### Deprecated diff --git a/content/flux/v0/stdlib/experimental/geo/_index.md b/content/flux/v0/stdlib/experimental/geo/_index.md index a6b711f53..525ebf52f 100644 --- a/content/flux/v0/stdlib/experimental/geo/_index.md +++ b/content/flux/v0/stdlib/experimental/geo/_index.md @@ -63,7 +63,7 @@ Geometry Library to generate `s2_cell_id` tags. Specify your [S2 Cell ID level](https://s2geometry.io/resources/s2cell_statistics.html). **Note:** To filter more quickly, use higher S2 Cell ID levels, but know that -higher levels increase [series cardinality](/influxdb/latest/reference/glossary/#series-cardinality). +higher levels increase [series cardinality](/influxdb/v2/reference/glossary/#series-cardinality). Language-specific implementations of the S2 Geometry Library provide methods for generating S2 Cell ID tokens. For example: diff --git a/content/flux/v0/stdlib/experimental/prometheus/histogramquantile.md b/content/flux/v0/stdlib/experimental/prometheus/histogramquantile.md index 794264e72..b6cc057d4 100644 --- a/content/flux/v0/stdlib/experimental/prometheus/histogramquantile.md +++ b/content/flux/v0/stdlib/experimental/prometheus/histogramquantile.md @@ -29,7 +29,7 @@ Fluxdoc syntax: https://github.com/influxdata/flux/blob/master/docs/fluxdoc.md `prometheus.histogramQuantile()` calculates a quantile on a set of Prometheus histogram values. -This function supports [Prometheus metric parsing formats](/influxdb/latest/reference/prometheus-metrics/) +This function supports [Prometheus metric parsing formats](/influxdb/v2/reference/prometheus-metrics/) used by `prometheus.scrape()`, the Telegraf `promtheus` input plugin, and InfluxDB scrapers available in InfluxDB OSS. @@ -53,7 +53,7 @@ Quantile to compute. Must be a float value between 0.0 and 1.0. ### metricVersion -[Prometheus metric parsing format](/influxdb/latest/reference/prometheus-metrics/) +[Prometheus metric parsing format](/influxdb/v2/reference/prometheus-metrics/) used to parse queried Prometheus data. Available versions are `1` and `2`. Default is `2`. diff --git a/content/flux/v0/stdlib/experimental/to.md b/content/flux/v0/stdlib/experimental/to.md index 581383e1c..9359198fe 100644 --- a/content/flux/v0/stdlib/experimental/to.md +++ b/content/flux/v0/stdlib/experimental/to.md @@ -86,7 +86,7 @@ _`bucket` and `bucketID` are mutually exclusive_. URL of the InfluxDB instance to write to. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). `host` is required when writing to a remote InfluxDB instance. If specified, `token` is also required. diff --git a/content/flux/v0/stdlib/influxdata/influxdb/buckets.md b/content/flux/v0/stdlib/influxdata/influxdb/buckets.md index d5219c184..437f3a9c2 100644 --- a/content/flux/v0/stdlib/influxdata/influxdb/buckets.md +++ b/content/flux/v0/stdlib/influxdata/influxdb/buckets.md @@ -72,7 +72,7 @@ _`org` and `orgID` are mutually exclusive_. URL of the InfluxDB instance. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). _`host` is required when `org` or `orgID` are specified._ ### token diff --git a/content/flux/v0/stdlib/influxdata/influxdb/cardinality.md b/content/flux/v0/stdlib/influxdata/influxdb/cardinality.md index c6c845c08..525a58f3d 100644 --- a/content/flux/v0/stdlib/influxdata/influxdb/cardinality.md +++ b/content/flux/v0/stdlib/influxdata/influxdb/cardinality.md @@ -90,7 +90,7 @@ String-encoded organization ID. URL of the InfluxDB instance to query. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). ### token diff --git a/content/flux/v0/stdlib/influxdata/influxdb/from.md b/content/flux/v0/stdlib/influxdata/influxdb/from.md index 03660cdf4..1cbddba2d 100644 --- a/content/flux/v0/stdlib/influxdata/influxdb/from.md +++ b/content/flux/v0/stdlib/influxdata/influxdb/from.md @@ -81,7 +81,7 @@ _`bucket` and `bucketID` are mutually exclusive_. URL of the InfluxDB instance to query. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). ### org diff --git a/content/flux/v0/stdlib/influxdata/influxdb/to.md b/content/flux/v0/stdlib/influxdata/influxdb/to.md index 5dc4eda58..e18526e88 100644 --- a/content/flux/v0/stdlib/influxdata/influxdb/to.md +++ b/content/flux/v0/stdlib/influxdata/influxdb/to.md @@ -91,7 +91,7 @@ _`bucket` and `bucketID` are mutually exclusive_. URL of the InfluxDB instance to write to. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). `host` is required when writing to a remote InfluxDB instance. If specified, `token` is also required. diff --git a/content/flux/v0/stdlib/influxdata/influxdb/wideto.md b/content/flux/v0/stdlib/influxdata/influxdb/wideto.md index f32dbc6bb..006bdb8de 100644 --- a/content/flux/v0/stdlib/influxdata/influxdb/wideto.md +++ b/content/flux/v0/stdlib/influxdata/influxdb/wideto.md @@ -81,7 +81,7 @@ _`bucket` and `bucketID` are mutually exclusive_. URL of the InfluxDB instance to write to. See [InfluxDB Cloud regions](/influxdb/cloud/reference/regions/) -or [InfluxDB OSS URLs](/influxdb/latest/reference/urls/). +or [InfluxDB OSS URLs](/influxdb/v2/reference/urls/). `host` is required when writing to a remote InfluxDB instance. If specified, `token` is also required. diff --git a/content/influxdb/cloud/tools/influxdb-templates/create.md b/content/influxdb/cloud/tools/influxdb-templates/create.md index 91760fe36..16c5f1cc1 100644 --- a/content/influxdb/cloud/tools/influxdb-templates/create.md +++ b/content/influxdb/cloud/tools/influxdb-templates/create.md @@ -24,7 +24,7 @@ UI and export the resources as a template. {{< youtube 714uHkxKM6U >}} {{% note %}} -#### InfluxDB OSS for creating templates +#### InfluxDB OSS v2 for creating templates Templatable resources are scoped to a single organization, so the simplest way to create a template is to create a new organization, build the template within the organization, and then [export all resources](#export-all-resources) as a template. @@ -54,15 +54,21 @@ Provide the following: **JSON** (`.json`) are supported. ###### Export all resources to a template -```sh -# Syntax -influx export all -o -f -t + +```bash +# Syntax +influx export all --org --file --token +``` + + + +```bash # Example influx export all \ - -o my-org \ - -f ~/templates/awesome-template.yml \ - -t $INFLUX_TOKEN + --org $INFLUX_ORG \ + --file /path/to/TEMPLATE_FILE.yml \ + --token $INFLUX_TOKEN ``` #### Export resources filtered by labelName or resourceKind @@ -81,9 +87,9 @@ and ```sh influx export all \ - -o my-org \ - -f ~/templates/awesome-template.yml \ - -t $INFLUX_TOKEN \ + --org $INFLUX_ORG \ + --file /path/to/TEMPLATE_FILE.yml \ + --token $INFLUX_TOKEN \ --filter=resourceKind=Bucket \ --filter=resourceKind=Dashboard \ --filter=labelName=Example1 \ @@ -94,12 +100,14 @@ For information about flags, see the [`influx export all` documentation](/influxdb/cloud/reference/cli/influx/export/all/). ### Export specific resources + To export specific resources within an organization to a template manifest, use the `influx export` with resource flags for each resource to include. +The command uses the API token to filter resources for the organization. + Provide the following: -- **Organization name** or **ID** -- **API token** with read access to the organization +- **API token** with read access to the organization. - **Destination path and filename** for the template manifest. The filename extension determines the template format—both **YAML** (`.yml`) and **JSON** (`.json`) are supported. @@ -108,15 +116,20 @@ Provide the following: [`influx export` documentation](/influxdb/cloud/reference/cli/influx/export/). ###### Export specific resources to a template -```sh -# Syntax -influx export all -o -f -t [resource-flags] + +```bash +# Syntax +influx export --file --token [resource-flags] +``` + + + +```bash # Example -influx export all \ - -o my-org \ - -f ~/templates/awesome-template.yml \ - -t $INFLUX_TOKEN \ +influx export \ + --file /path/to/TEMPLATE_FILE.yml \ + --token $INFLUX_TOKEN \ --buckets=00x000ooo0xx0xx,o0xx0xx00x000oo \ --dashboards=00000xX0x0X00x000 \ --telegraf-configs=00000x0x000X0x0X0 @@ -125,9 +138,10 @@ influx export all \ ### Export a stack To export a stack and all its associated resources as a template, use the `influx export stack` command. +The command uses the API token to filter resources for the organization. + Provide the following: -- **Organization name** or **ID** - **API token** with read access to the organization - **Destination path and filename** for the template manifest. The filename extension determines the template format—both **YAML** (`.yml`) and @@ -135,19 +149,23 @@ Provide the following: - **Stack ID** ###### Export a stack as a template -```sh + + +```bash # Syntax influx export stack \ - -o \ - -t \ - -f \ + --token \ + --file \ +``` + + +```bash # Example influx export stack \ - -o my-org \ - -t mYSuP3RS3CreTt0K3n - -f ~/templates/awesome-template.yml \ + -t $INFLUX_TOKEN \ + -f /path/to/TEMPLATE_FILE.yml \ 05dbb791a4324000 ``` @@ -206,11 +224,47 @@ when [applying the template](/influxdb/cloud/tools/influxdb-templates/use/#apply Users can also include the `--env-ref` flag with the appropriate key-value pair when installing the template. + + + + +For example, to set a custom bucket name when applying a template with an environment reference: + + +```sh +# The template, edited to include an environment reference: +# apiVersion: influxdata.com/v2alpha1 +# kind: Bucket +# metadata: +# name: +# envRef: bucket-name-1 + +# Apply template, set bucket-name-1 to "myBucket", and skip verification influx apply \ - -f /path/to/template.yml \ - --env-ref=bucket-name-1=myBucket + --file /path/to/TEMPLATE_FILE.json \ + --env-ref bucket-name-1=myBucket \ + --force yes + --org $INFLUX_ORG + --token $INFLUX_TOKEN ``` _If sharing your template, we recommend documenting what environment references diff --git a/content/influxdb/v1/concepts/time-series-index.md b/content/influxdb/v1/concepts/time-series-index.md index af421a777..b64a354f5 100644 --- a/content/influxdb/v1/concepts/time-series-index.md +++ b/content/influxdb/v1/concepts/time-series-index.md @@ -8,7 +8,7 @@ menu: weight: 70 parent: Concepts aliases: - - /influxdb/latest/concepts/time-series-index/ + - /influxdb/v2/concepts/time-series-index/ --- Find overview and background information on Time Series Index (TSI) in this topic. For detail, including how to enable and configure TSI, see [Time Series Index (TSI) details](/influxdb/v1/concepts/tsi-details/). diff --git a/content/influxdb/v1/introduction/get-started.md b/content/influxdb/v1/introduction/get-started.md index 8ce8e8763..db6afef24 100644 --- a/content/influxdb/v1/introduction/get-started.md +++ b/content/influxdb/v1/introduction/get-started.md @@ -12,7 +12,7 @@ aliases: - /influxdb/v2/introduction/getting_started/ - /influxdb/v2/introduction/getting_started/ - /influxdb/v2/introduction/getting_started/ - - /influxdb/latest/introduction/getting-started/ + - /influxdb/v2/introduction/getting-started/ menu: influxdb_v1: diff --git a/content/influxdb/v1/query_language/_index.md b/content/influxdb/v1/query_language/_index.md index 199b1e05a..cf978e58f 100644 --- a/content/influxdb/v1/query_language/_index.md +++ b/content/influxdb/v1/query_language/_index.md @@ -7,7 +7,7 @@ menu: weight: 70 identifier: InfluxQL aliases: - - /influxdb/latest/query_language/_index + - /influxdb/v2/query_language/_index --- This section introduces InfluxQL, the InfluxDB SQL-like query language for diff --git a/content/influxdb/v1/query_language/spec.md b/content/influxdb/v1/query_language/spec.md index 3ffab21ed..f8563c516 100644 --- a/content/influxdb/v1/query_language/spec.md +++ b/content/influxdb/v1/query_language/spec.md @@ -12,7 +12,7 @@ aliases: - /influxdb/v2/query_language/spec/ - /influxdb/v2/query_language/spec/ - /influxdb/v2/query_language/spec/ - - /influxdb/latest/query_language/spec/ + - /influxdb/v2/query_language/spec/ --- ## Introduction @@ -234,12 +234,13 @@ regex_lit = "/" { unicode_char } "/" . `=~` matches against `!~` doesn't match against -> **Note:** InfluxQL supports using regular expressions when specifying: +> [!Note] +> InfluxQL supports using regular expressions when specifying: > -* [field keys](/influxdb/v1/concepts/glossary/#field-key) and [tag keys](/influxdb/v1/concepts/glossary/#tag-key) in the [`SELECT` clause](/influxdb/v1/query_language/explore-data/#the-basic-select-statement) -* [measurements](/influxdb/v1/concepts/glossary/#measurement) in the [`FROM` clause](/influxdb/v1/query_language/explore-data/#the-basic-select-statement) -* [tag values](/influxdb/v1/concepts/glossary/#tag-value) and string [field values](/influxdb/v1/concepts/glossary/#field-value) in the [`WHERE` clause](/influxdb/v1/query_language/explore-data/#the-where-clause). -* [tag keys](/influxdb/v1/concepts/glossary/#tag-key) in the [`GROUP BY` clause](/influxdb/v1/query_language/explore-data/#group-by-tags) +> * [field keys](/influxdb/v1/concepts/glossary/#field-key) and [tag keys](/influxdb/v1/concepts/glossary/#tag-key) in the [`SELECT` clause](/influxdb/v1/query_language/explore-data/#the-basic-select-statement) +> * [measurements](/influxdb/v1/concepts/glossary/#measurement) in the [`FROM` clause](/influxdb/v1/query_language/explore-data/#the-basic-select-statement) +> * [tag values](/influxdb/v1/concepts/glossary/#tag-value) and string [field values](/influxdb/v1/concepts/glossary/#field-value) in the [`WHERE` clause](/influxdb/v1/query_language/explore-data/#the-where-clause). +> * [tag keys](/influxdb/v1/concepts/glossary/#tag-key) in the [`GROUP BY` clause](/influxdb/v1/query_language/explore-data/#group-by-tags) > >Currently, InfluxQL does not support using regular expressions to match >non-string field values in the diff --git a/content/influxdb/v2/api-guide/influxdb-1x/query.md b/content/influxdb/v2/api-guide/influxdb-1x/query.md index 5c8b30e2d..de5da77ae 100644 --- a/content/influxdb/v2/api-guide/influxdb-1x/query.md +++ b/content/influxdb/v2/api-guide/influxdb-1x/query.md @@ -150,7 +150,6 @@ The following precisions are available: ##### Query a non-default retention policy ```sh diff --git a/content/influxdb/v2/api-guide/influxdb-1x/write.md b/content/influxdb/v2/api-guide/influxdb-1x/write.md index eb9df477f..8e626383e 100644 --- a/content/influxdb/v2/api-guide/influxdb-1x/write.md +++ b/content/influxdb/v2/api-guide/influxdb-1x/write.md @@ -123,7 +123,6 @@ The following precisions are available: ##### Write data using basic authentication {{% oss-only %}} diff --git a/content/influxdb/v2/install/_index.md b/content/influxdb/v2/install/_index.md index 245cc44aa..c27d355f4 100644 --- a/content/influxdb/v2/install/_index.md +++ b/content/influxdb/v2/install/_index.md @@ -66,7 +66,7 @@ To use the SHA checksum to verify the downloaded file, do the following: the **SHA256:** checksum value. 2. Compute the SHA checksum of the downloaded file and compare it to the - published checksum--for example, enter the following command in your terminal. + published checksum--for example, enter the following command in your terminal: -{{% code-placeholders "9cb54d3940c37a8c2a908458543e629412505cc71db55094147fd39088b99c6c" %}} +{{% code-placeholders "8d7872013cad3524fb728ca8483d0adc30125ad1af262ab826dcf5d1801159cf" %}} ```bash # Use 2 spaces to separate the checksum from the filename -echo "9cb54d3940c37a8c2a908458543e629412505cc71db55094147fd39088b99c6c influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz" \ +echo "8d7872013cad3524fb728ca8483d0adc30125ad1af262ab826dcf5d1801159cf influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz" \ | sha256sum --check - ``` @@ -89,7 +89,7 @@ echo "9cb54d3940c37a8c2a908458543e629412505cc71db55094147fd39088b99c6c influxdb Replace the following: -- {{% code-placeholder-key %}}`9cb54d3940c37a8c2a908458543e629412505cc71db55094147fd39088b99c6c`{{% /code-placeholder-key %}}: +- {{% code-placeholder-key %}}`8d7872013cad3524fb728ca8483d0adc30125ad1af262ab826dcf5d1801159cf`{{% /code-placeholder-key %}}: the **SHA256:** checksum value that you copied from the downloads page If the checksums match, the output is the following; otherwise, an error message. @@ -162,12 +162,10 @@ gpg: key 7C3D57159FC2F927: public key "InfluxData Package Signing Key }}_darwin_amd64.tar.gz" \ ``` - --> ```sh @@ -252,11 +250,11 @@ brew install influxdb 2. {{< req text="Recommended:" color="magenta" >}}: Verify the integrity of the download--for example, enter the following command in your terminal: -{{% code-placeholders "964e1de641a43a0e1743aa5ead243e935a05631ba0bc570fb8bff486542173c1" %}} +{{% code-placeholders "224926fd77736a364cf28128f18927dda00385f0b6872a108477246a1252ae1b" %}} ```sh # Use 2 spaces to separate the checksum from the filename -echo "964e1de641a43a0e1743aa5ead243e935a05631ba0bc570fb8bff486542173c1 influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz" \ +echo "224926fd77736a364cf28128f18927dda00385f0b6872a108477246a1252ae1b influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz" \ | shasum --algorithm 256 --quiet --check - ``` @@ -264,7 +262,7 @@ echo "964e1de641a43a0e1743aa5ead243e935a05631ba0bc570fb8bff486542173c1 influxdb Replace the following: -- {{% code-placeholder-key %}}`964e1de641a43a0e1743aa5ead243e935a05631ba0bc570fb8bff486542173c1`{{% /code-placeholder-key %}}: the SHA checksum from the [downloads page](https://www.influxdata.com/downloads/#telegraf) +- {{% code-placeholder-key %}}`224926fd77736a364cf28128f18927dda00385f0b6872a108477246a1252ae1b`{{% /code-placeholder-key %}}: the SHA checksum from the [downloads page](https://www.influxdata.com/downloads/#telegraf) 3. Unpackage the InfluxDB binary. @@ -357,9 +355,9 @@ To install {{% product-name %}} on Linux, do one of the following: echo "943666881a1b8d9b849b74caebf02d3465d6beb716510d86a39f6c8e8dac7515 influxdata-archive.key" \ | sha256sum --check - && cat influxdata-archive.key \ | gpg --dearmor \ - | tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg > /dev/null \ + | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg > /dev/null \ && echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' \ - | tee /etc/apt/sources.list.d/influxdata.list + | sudo tee /etc/apt/sources.list.d/influxdata.list # Install influxdb sudo apt-get update && sudo apt-get install influxdb2 ``` diff --git a/content/influxdb/v2/reference/cli/influx/_index.md b/content/influxdb/v2/reference/cli/influx/_index.md index 0c0e557be..b59dd9f3a 100644 --- a/content/influxdb/v2/reference/cli/influx/_index.md +++ b/content/influxdb/v2/reference/cli/influx/_index.md @@ -20,7 +20,7 @@ including buckets, organizations, users, tasks, etc. {{% oss-only %}} {{% note %}} -#### InfluxDB OSS and influx CLI versions +#### InfluxDB OSS v2 and influx CLI versions Beginning with **InfluxDB 2.1**, the `influx` CLI is packaged and versioned separately from InfluxDB. InfluxDB and `influx` CLI versions may differ, but compatibility is noted for each command. @@ -69,6 +69,8 @@ Do one of the following: - [Manually download and install](#manually-download-and-install) ### Use Homebrew + + ```sh brew install influxdb-cli ``` @@ -80,6 +82,7 @@ If you used Homebrew to install **InfluxDB {{< current-version >}}**, the `influ formula was downloaded as a dependency and should already be installed. If installed, `influxdb-cli` will appear in the output of the following command: + ```sh brew list | grep influxdb-cli ``` @@ -91,40 +94,49 @@ brew list | grep influxdb-cli 1. **Download the `influx` CLI package.** - influx CLI v{{< latest-patch cli=true >}} (macOS) + influx CLI v{{< latest-patch cli=true >}} (macOS) + + 2. **Unpackage the downloaded package.** - Do one of the following: + Do one of the following: - - Double-click the downloaded package file in **Finder**. - - Run the following command in a macOS command prompt application such - **Terminal** or **[iTerm2](https://www.iterm2.com/)**: - - ```sh - # Unpackage contents to the current working directory - tar zxvf ~/Downloads/influxdb2-client-{{< latest-patch cli=true >}}-darwin-amd64.tar.gz - ``` + - Double-click the downloaded package file in **Finder**. + - Run the following command in a macOS command prompt application such + **Terminal** or **[iTerm2](https://www.iterm2.com/)**: + + + ```sh + # Unpackage contents to the current working directory + tar zxvf ~/Downloads/influxdb2-client-{{< latest-patch cli=true >}}-darwin-amd64.tar.gz + ``` 3. **(Optional) Place the binary in your `$PATH`.** - ```sh - # (Optional) Copy the influx binary to your $PATH - sudo cp ~/Downloads/influxdb2-client-{{< latest-patch cli=true >}}-darwin-amd64/influx /usr/local/bin/ - ``` + + ```sh + # (Optional) Copy the influx binary to your $PATH + sudo cp ~/Downloads/influxdb2-client-{{< latest-patch cli=true >}}-darwin-amd64/influx /usr/local/bin/ + ``` - If you do not move the `influx` binary into your `$PATH`, prefix the executable - `./` to run it in place. + If you do not move the `influx` binary into your `$PATH`, prefix the executable + `./` to run it in place. 4. **(macOS Catalina and newer) Authorize the `influx` binary.** - macOS requires downloaded binaries to be signed by registered Apple developers. - When you first attempt to run `influx`, macOS will prevent it from running. - To authorize the `influx` binary: + macOS requires downloaded binaries to be signed by registered Apple developers. + When you first attempt to run `influx`, macOS will prevent it from running. + To authorize the `influx` binary: - 1. Attempt to run an `influx` command. - 2. Open **System Preferences** and click **Security & Privacy**. - 3. Under the **General** tab, there is a message about `influx` being blocked. + 1. Attempt to run an `influx` command. + 2. Open **System Preferences** and click **Security & Privacy**. + 3. Under the **General** tab, there is a message about `influx` being blocked. Click **Open Anyway**. {{% /tab-content %}} @@ -135,48 +147,54 @@ brew list | grep influxdb-cli 1. **Download the influx CLI package.** - Download the `influx` CLI package [from your browser](#download-from-your-browser) - or [from the command line](#download-from-the-command-line). + Download the `influx` CLI package [from your browser](#download-from-your-browser) + or [from the command line](#download-from-the-command-line). - #### Download from your browser + #### Download from your browser - influx CLI v{{< latest-patch cli=true >}} (amd64) - influx CLI v{{< latest-patch cli=true >}} (arm) + influx CLI v{{< latest-patch cli=true >}} (amd64) + influx CLI v{{< latest-patch cli=true >}} (arm) - #### Download from the command line + #### Download from the command line - ```sh - # amd64 - wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-{{< latest-patch cli=true >}}-linux-amd64.tar.gz + ```bash + # amd64 + curl -O \ + https://dl.influxdata.com/influxdb/releases/influxdb2-client-{{< latest-patch cli=true >}}-linux-amd64.tar.gz + ``` - # arm - wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-{{< latest-patch cli=true >}}-linux-arm64.tar.gz - ``` + + ```bash + # arm + curl -O \ + https://dl.influxdata.com/influxdb/releases/influxdb2-client-{{< latest-patch cli=true >}}-linux-arm64.tar.gz \ + ``` -4. **Unpackage the downloaded package.** +2. **Unpackage the downloaded package.** - _**Note:** The following commands are examples. Adjust the filenames, paths, and utilities if necessary._ + _**Note:** The following commands are examples. Adjust the filenames, paths, and utilities if necessary._ - ```sh - # amd64 - tar xvzf path/to/influxdb2-client-{{< latest-patch cli=true >}}-linux-amd64.tar.gz + + ```bash + # amd64 + tar xvzf influxdb2-client-{{< latest-patch cli=true >}}-linux-amd64.tar.gz + ``` - # arm - tar xvzf path/to/influxdb2-client-{{< latest-patch cli=true >}}-linux-arm64.tar.gz - ``` + + ```bash + # arm + tar xvzf influxdb2-client-{{< latest-patch cli=true >}}-linux-arm64.tar.gz + ``` 3. **(Optional) Place the unpackaged `influx` executable in your system `$PATH`.** - ```sh - # amd64 - sudo cp influxdb2-client-{{< latest-patch cli=true >}}-linux-amd64/influx /usr/local/bin/ + + ```bash + sudo cp ./influx /usr/local/bin/ + ``` - # arm - sudo cp influxdb2-client-{{< latest-patch cli=true >}}-linux-arm64/influx /usr/local/bin/ - ``` - - If you do not move the `influx` binary into your `$PATH`, prefix the executable - `./` to run it in place. + If you do not move the `influx` binary into your `$PATH`, prefix the executable + `./` to run it in place. {{% /tab-content %}} @@ -185,34 +203,36 @@ brew list | grep influxdb-cli {{% tab-content %}} {{% note %}} -We recommend running `influx` CLI commands in Powershell. +#### Use Powershell for Windows + +Use Powershell for running `influx` CLI commands. Command Prompt is not fully compatible. {{% /note %}} 1. **Download the `influx` CLI package.** - influx CLI v{{< latest-patch cli=true >}} (Windows) + influx CLI v{{< latest-patch cli=true >}} (Windows) 2. **Expand the downloaded archive.** - Expand the downloaded archive into `C:\Program Files\InfluxData\` and rename it if desired. + Expand the downloaded archive into `C:\Program Files\InfluxData\` and rename it if desired. - ```powershell - > Expand-Archive .\influxdb2-client-{{< latest-patch cli=true >}}-windows-amd64.zip -DestinationPath 'C:\Program Files\InfluxData\' - > mv 'C:\Program Files\InfluxData\influxdb2-client-{{< latest-patch cli=true >}}-windows-amd64' 'C:\Program Files\InfluxData\influx' - ``` + ```powershell + > Expand-Archive .\influxdb2-client-{{< latest-patch cli=true >}}-windows-amd64.zip -DestinationPath 'C:\Program Files\InfluxData\' + > mv 'C:\Program Files\InfluxData\influxdb2-client-{{< latest-patch cli=true >}}-windows-amd64' 'C:\Program Files\InfluxData\influx' + ``` 3. **Grant network access to the `influx` CLI.** - When using the `influx` CLI for the first time, **Windows Defender** displays - the following message: + When using the `influx` CLI for the first time, **Windows Defender** displays + the following message: - > Windows Defender Firewall has blocked some features of this app. + > Windows Defender Firewall has blocked some features of this app. - To grant the `influx` CLI the required access, do the following: + To grant the `influx` CLI the required access, do the following: - 1. Select **Private networks, such as my home or work network**. - 2. Click **Allow access**. + 1. Select **Private networks, such as my home or work network**. + 2. Click **Allow access**. {{% /tab-content %}} @@ -229,10 +249,10 @@ Use the [`influx config create` command](/influxdb/v2/reference/cli/influx/confi to create an `influx` CLI config and set it as active: ```sh -influx config create --config-name \ +influx config create --config-name CONFIG_NAME \ --host-url http://localhost:8086 \ - --org \ - --token \ + --org ORG_NAME \ + --token API_TOKEN \ --active ``` @@ -241,13 +261,15 @@ For more information about managing CLI configurations, see the ### Credential precedence -There are three ways to provide the necessary credentials to the `influx` CLI, -which uses the following precedence when retrieving credentials: +Provide credentials using any of the following supported methods. +The `influx` CLI uses the following precedence when retrieving credentials: 1. Command line flags (`--host`, `--org -o`, `--token -t`) 2. Environment variables (`INFLUX_HOST`, `INFLUX_ORG`, `INFLUX_TOKEN`) 3. CLI configuration file +Command line flags override environment variables, which override configuration file values. + ## Usage ``` diff --git a/content/influxdb/v2/reference/cli/influx/auth/create.md b/content/influxdb/v2/reference/cli/influx/auth/create.md index 065a65455..28411f63d 100644 --- a/content/influxdb/v2/reference/cli/influx/auth/create.md +++ b/content/influxdb/v2/reference/cli/influx/auth/create.md @@ -12,7 +12,7 @@ updated_in: CLI 2.5.0 The `influx auth create` command creates an API token in InfluxDB. {{% warn %}} -**Issue resolved**: Using influx CLI 2.4 prevented you from creating an **all-access** or **operator** token using the `influx auth create` command. This issue is resolved in the influx 2.5 CLI release. Please [upgrade to the latest version](/influxdb/latest/tools/influx-cli/) of the influx cli. +**Issue resolved**: Using influx CLI 2.4 prevented you from creating an **all-access** or **operator** token using the `influx auth create` command. This issue is resolved in the influx 2.5 CLI release. Please [upgrade to the latest version](/influxdb/v2/tools/influx-cli/) of the influx cli. {{% /warn %}} ## Usage diff --git a/content/influxdb/v2/reference/config-options.md b/content/influxdb/v2/reference/config-options.md index b5a6a2479..312094e86 100644 --- a/content/influxdb/v2/reference/config-options.md +++ b/content/influxdb/v2/reference/config-options.md @@ -35,7 +35,6 @@ Use the [`influx server-config` command](/influxdb/v2/reference/cli/influx/serve to retrieve your runtime server configuration. ```sh @@ -2748,7 +2746,7 @@ storage-wal-max-concurrent-writes = 0 ### storage-wal-max-write-delay Maximum amount of time a write request to the WAL directory will wait when the -the [maximum number of concurrent active writes to the WAL directory](#storage-wal-max-concurrent-writes) +[maximum number of concurrent active writes to the WAL directory](#storage-wal-max-concurrent-writes) has been met. Set to `0` to disable the timeout. **Default:** `10m` diff --git a/content/influxdb3/cloud-dedicated/api/management/_index.html b/content/influxdb3/cloud-dedicated/api/management/_index.html deleted file mode 100644 index 66324e6c2..000000000 --- a/content/influxdb3/cloud-dedicated/api/management/_index.html +++ /dev/null @@ -1,848 +0,0 @@ ---- -title: InfluxDB 3 Cloud Dedicated Management API -description: The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated instance. -layout: api -weight: 102 -menu: - influxdb3_cloud_dedicated: - parent: InfluxDB HTTP API - name: Management API - identifier: api-reference-management ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB 3 Cloud Dedicated Management API

License: MIT

The Management API for InfluxDB 3 Cloud Dedicated provides a programmatic interface for managing a Cloud Dedicated instance.

-

The Management API lets you manage an InfluxDB 3 Cloud Dedicated instance and integrate functions such as creating and managing databases, permissions, and tokens into your workflow or application.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

-

Authentication

The InfluxDB Management API endpoints require the following credentials:

-
    -
  • ACCOUNT_ID: The ID of the account that the cluster belongs to. To view account ID and cluster ID, list cluster details.

    -
  • -
  • CLUSTER_ID: The ID of the cluster that you want to manage. To view account ID and cluster ID, list cluster details.

    -
  • -
  • Authorization MANAGEMENT_TOKEN: the Authorization HTTP header with a management token.

    -

    See how to create a management token.

    -

    By default, management tokens in InfluxDB 3 are short-lived tokens issued by an OAuth2 identity provider that grant a specific user administrative access to your InfluxDB cluster. However, for automation purposes, you can manually create management tokens that authenticate directly with your InfluxDB cluster and do not require human interaction with your identity provider.

    -
  • -
-

Database tokens

Manage database read/write tokens for a cluster

-

Get all database tokens for a cluster

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account to get the database tokens for

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster to get the database tokens for

-

Responses

Request samples

HOST="https://console.influxdata.com"
-
-list_tokens () {
-  local response=$( \
-    curl \
-      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens" \
-      --header "Accept: application/json" \
-      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
-  )
-  echo "$response"
-}
-

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Create a database token

Create a database token for a cluster.

-

The token returned on the accessToken property in the response can be used to authenticate query and write requests to the cluster.

-

Notable behaviors

-
    -
  • InfluxDB might take some time--from a few seconds to a few minutes--to activate and synchronize new tokens. If a new database token doesn't immediately work (you receive a 401 Unauthorized error) for querying or writing, wait and then try your request again.

    -
  • -
  • Token strings are viewable only on token creation and aren't stored by InfluxDB; you can't recover a lost token.

    -
  • -
-

Store secure tokens in a secret store

-

We recommend storing database tokens in a secure secret store. -For example, see how to authenticate Telegraf using tokens in your OS secret store.

-

If you lose a token, delete the token from InfluxDB and create a new one.

-
path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account to create the database token for

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster to create the database token for

-
Request Body schema: application/json
description
required
string (schemas)

The description of the database token

-
Array of objects (schemas)

The list of permissions the database token allows

-

Responses

Request samples

Content type
application/json
Example
{
  • "description": "Limited Access Token",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z",
  • "accessToken": "apiv1_5555555555555555555555555555555555555555555555555555555555555555"
}

Get a database token

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account that the database token belongs to

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster that the database token belongs to

-
tokenId
required
string <uuid> (UuidV4)

The ID of the database token to get

-

Responses

Request samples

HOST="https://console.influxdata.com"
-
-get_token () {
-  local tokenId=$1
-  local response=$( \
-    curl \
-      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens/$tokenId" \
-      --header "Accept: application/json" \
-      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
-  )
-  echo "$response"
-}
-

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z"
}

Update a database token

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account that the database token belongs to

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster that the database token belongs to

-
tokenId
required
string <uuid> (UuidV4)

The ID of the database token to update

-
Request Body schema: application/json
description
string (schemas)

The description of the database token

-
Array of objects (schemas)

The list of permissions the database token allows

-

Responses

Request samples

Content type
application/json
Example
{
  • "description": "Updated Limited Access Token",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Updated Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z"
}

Delete a database token

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account that the database token belongs to

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster that the database token belongs to

-
tokenId
required
string <uuid> (UuidV4)

The ID of the database token to delete

-

Responses

Request samples

HOST="https://console.influxdata.com"
-
-delete_token () {
-  local tokenId=$1
-  local response=$( \
-    curl \
-      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens/$tokenId" \
-      --request DELETE \
-      --header "Accept: application/json" \
-      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
-  )
-  echo "$response"
-}
-

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "bad request"
}

Databases

Manage databases for a cluster

-

Get all databases for a cluster

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account to get the databases for

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster to get the databases for

-

Responses

Request samples

HOST="https://console.influxdata.com"
-
-list_databases () {
-  local response=$( \
-    curl \
-      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/databases" \
-      --header "Accept: application/json" \
-      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
-  )
-  echo "$response"
-}
-

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Create a database

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account to create the database for

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster to create the database for

-
Request Body schema: application/json
maxColumnsPerTable
integer <int32> (schemas) >= 1
Default: 200

The maximum number of columns per table for the cluster database

-
maxTables
integer <int32> (schemas) >= 1
Default: 500

The maximum number of tables for the cluster database

-
name
required
string (schemas) [ 1 .. 64 ] characters

The name of the cluster database

-
Array of ClusterDatabasePartitionTemplatePartTagValue (object) or ClusterDatabasePartitionTemplatePartTimeFormat (object) or ClusterDatabasePartitionTemplatePartBucket (object) (schemas) [ 1 .. 8 ] items unique

A template for partitioning a cluster database.

-

Each template part is evaluated in sequence, concatinating the final -partition key from the output of each part, delimited by the partition -key delimiter |.

-

For example, using the partition template below:

-
[
-  {
-    "type": "time",
-    "value": "%Y"
-  },
-  {
-    "type": "tag",
-    "value": "bananas"
-  },
-  {
-    "type": "tag",
-    "value": "plátanos"
-  },
-  {
-    "type": "bucket",
-    "value": {
-      "tagName": "c",
-      "numberOfBuckets": 10
-    }
-  }
-]
-

The following partition keys are derived:

-
    -
  • time=2023-01-01, a=bananas, b=plátanos, c=ananas -> 2023|bananas|plátanos|5
  • -
  • time=2023-01-01, b=plátanos -> 2023|!|plátanos|!
  • -
  • time=2023-01-01, another=cat, b=plátanos -> 2023|!|plátanos|!
  • -
  • time=2023-01-01 -> 2023|!|!|!
  • -
  • time=2023-01-01, a=cat|dog, b=!, c=! -> 2023|cat%7Cdog|%21|8
  • -
  • time=2023-01-01, a=%50, c=%50 -> 2023|%2550|!|9
  • -
  • time=2023-01-01, a=, c= -> 2023|^|!|0
  • -
  • time=2023-01-01, a=<long string> -> 2023|<long string>#|!|!
  • -
  • time=2023-01-01, c=<long string> -> 2023|!|!|<bucket ID for untruncated long string>
  • -
-

When using the default partitioning template (YYYY-MM-DD) there is no -encoding necessary, as the derived partition key contains a single part, and -no reserved characters. [TemplatePart::Bucket] parts by definition will -always be within the part length limit and contain no restricted characters -so are also not percent-encoded and/or truncated.

-
retentionPeriod
integer <int64> (schemas) >= 0
Default: 0

The retention period of the cluster database in nanoseconds, if applicable

-

If the retention period is not set or is set to 0, the database will have infinite retention

-

Responses

Request samples

Content type
application/json
Example
{
  • "name": "DatabaseOne"
}

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "name": "DatabaseOne",
  • "maxTables": 500,
  • "maxColumnsPerTable": 200,
  • "retentionPeriod": 0
}

Update a database

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account that the database belongs to

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster that the database belongs to

-
databaseName
required
string (ClusterDatabaseName) [ 1 .. 64 ] characters

The name of the database to update

-
Request Body schema: application/json
maxColumnsPerTable
integer <int32> (schemas) >= 1
Default: 200

The maximum number of columns per table for the cluster database

-
maxTables
integer <int32> (schemas) >= 1
Default: 500

The maximum number of tables for the cluster database

-
retentionPeriod
integer <int64> (schemas) >= 0
Default: 0

The retention period of the cluster database in nanoseconds, if applicable

-

If the retention period is not set or is set to 0, the database will have infinite retention

-

Responses

Request samples

Content type
application/json
Example
{
  • "maxTables": 300,
  • "maxColumnsPerTable": 150,
  • "retentionPeriod": 600000000000
}

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "name": "DatabaseOne",
  • "maxTables": 300,
  • "maxColumnsPerTable": 150,
  • "retentionPeriod": 600000000000
}

Delete a database

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account that the database belongs to

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster that the database belongs to

-
databaseName
required
string (ClusterDatabaseName) [ 1 .. 64 ] characters

The name of the database to delete

-

Responses

Request samples

HOST="https://console.influxdata.com"
-
-delete_database () {
-  local databaseName=$1
-  local response=$( \
-    curl \
-      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/databases/$databaseName" \
-      --request DELETE \
-      --header "Accept: application/json" \
-      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
-  )
-  echo "$response"
-}
-

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "bad request"
}

Tables

Manage tables in a database

-

Create a database table

path Parameters
accountId
required
string <uuid> (UuidV4)

The ID of the account to create the database table for

-
clusterId
required
string <uuid> (UuidV4)

The ID of the cluster to create the database table for

-
databaseName
required
string (ClusterDatabaseName) [ 1 .. 64 ] characters

The name of the database to create the database table for

-
Request Body schema: application/json
name
required
string (schemas) non-empty

The name of the cluster database table

-
Array of ClusterDatabasePartitionTemplatePartTagValue (object) or ClusterDatabasePartitionTemplatePartTimeFormat (object) or ClusterDatabasePartitionTemplatePartBucket (object) (schemas) [ 1 .. 8 ] items unique

A template for partitioning a cluster database.

-

Each template part is evaluated in sequence, concatinating the final -partition key from the output of each part, delimited by the partition -key delimiter |.

-

For example, using the partition template below:

-
[
-  {
-    "type": "time",
-    "value": "%Y"
-  },
-  {
-    "type": "tag",
-    "value": "bananas"
-  },
-  {
-    "type": "tag",
-    "value": "plátanos"
-  },
-  {
-    "type": "bucket",
-    "value": {
-      "tagName": "c",
-      "numberOfBuckets": 10
-    }
-  }
-]
-

The following partition keys are derived:

-
    -
  • time=2023-01-01, a=bananas, b=plátanos, c=ananas -> 2023|bananas|plátanos|5
  • -
  • time=2023-01-01, b=plátanos -> 2023|!|plátanos|!
  • -
  • time=2023-01-01, another=cat, b=plátanos -> 2023|!|plátanos|!
  • -
  • time=2023-01-01 -> 2023|!|!|!
  • -
  • time=2023-01-01, a=cat|dog, b=!, c=! -> 2023|cat%7Cdog|%21|8
  • -
  • time=2023-01-01, a=%50, c=%50 -> 2023|%2550|!|9
  • -
  • time=2023-01-01, a=, c= -> 2023|^|!|0
  • -
  • time=2023-01-01, a=<long string> -> 2023|<long string>#|!|!
  • -
  • time=2023-01-01, c=<long string> -> 2023|!|!|<bucket ID for untruncated long string>
  • -
-

When using the default partitioning template (YYYY-MM-DD) there is no -encoding necessary, as the derived partition key contains a single part, and -no reserved characters. [TemplatePart::Bucket] parts by definition will -always be within the part length limit and contain no restricted characters -so are also not percent-encoded and/or truncated.

-

Responses

Request samples

Content type
application/json
Example
{
  • "name": "TableOne"
}

Response samples

Content type
application/json
Example
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "databaseName": "DatabaseOne",
  • "name": "TableOne"
}
- - - - - diff --git a/content/influxdb3/cloud-dedicated/api/v1-compatibility/_index.html b/content/influxdb3/cloud-dedicated/api/v1-compatibility/_index.html deleted file mode 100644 index cb1826f4e..000000000 --- a/content/influxdb3/cloud-dedicated/api/v1-compatibility/_index.html +++ /dev/null @@ -1,609 +0,0 @@ ---- -title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Dedicated -description: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database. -layout: api -menu: - influxdb3_cloud_dedicated: - parent: InfluxDB HTTP API - name: v1 Compatibility API - identifier: api-reference-v1-compatibility -weight: 304 -aliases: - - /influxdb/cloud-dedicated/api/v1/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB v1 HTTP API for InfluxDB 3 Cloud Dedicated

License: MIT

The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Dedicated database.

-

The InfluxDB 1.x /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

- -

InfluxDB /api/v2 API for InfluxDB 3 Cloud Dedicated

-

Authentication

The InfluxDB 1.x API requires authentication for all requests. -InfluxDB Cloud uses InfluxDB API tokens to authenticate requests.

-

For more information, see the following:

- -

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and an InfluxDB API token. -The word Token is case-sensitive.

-

Syntax

-

Authorization: Token YOUR_INFLUX_TOKEN

-

For examples and more information, see the following:

- -
Security Scheme Type API Key
Header parameter name: Authorization

BasicAuthentication

Use the HTTP Basic authentication -scheme with clients that support the InfluxDB 1.x convention of username and password (that don't support the Authorization: Token scheme):

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

QuerystringAuthentication

Use the Querystring authentication -scheme with InfluxDB 1.x API parameters to provide credentials through the query string.

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type API Key
Query parameter name: u=&p=

Query

Query using the InfluxDB v1 HTTP API

query Parameters
db
required
string

Bucket to query.

-
p
string

User token.

-
q
string

Defines the influxql query to run.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Specifies how query results should be encoded in the response. Note: With application/csv, query results include epoch timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The Accept-Encoding request HTTP header advertises which content encoding, usually a compression algorithm, the client is able to understand.

-
Content-Type
string
Value: "application/vnd.influxql"
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

InfluxQL query to execute.

-
string

Responses

Response samples

Content type
No sample

Write

Write time series data into InfluxDB in a V1-compatible format

query Parameters
db
required
string

Bucket to write to. If none exists, InfluxDB creates a bucket with a default 3-day retention policy.

-
p
string

User token.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, its value indicates to the database that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "message": "string",
  • "op": "string",
  • "err": "string",
  • "line": 0
}

Ping

Get the status of the instance

Reports the InfluxQL bridge querier health and the InfluxDB version of the instance.

-

The response is a HTTP 204 status code to inform you the querier is available.

-

For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters.

-

To check the health of ingesters before writing data, send a request to one of the write endpoints.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

Get the status of the instance

Reports the InfluxQL bridge querier health and the InfluxDB version of the instance.

-

The response is a HTTP 204 status code to inform you the querier is available.

-

For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters.

-

To check the health of ingesters before writing data, send a request to one of the write endpoints.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

- - - - - diff --git a/content/influxdb3/cloud-dedicated/api/v2/_index.html b/content/influxdb3/cloud-dedicated/api/v2/_index.html deleted file mode 100644 index af765539b..000000000 --- a/content/influxdb3/cloud-dedicated/api/v2/_index.html +++ /dev/null @@ -1,1002 +0,0 @@ ---- -title: InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated -description: The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Cloud Dedicated database. -layout: api -menu: - influxdb3_cloud_dedicated: - parent: InfluxDB HTTP API - name: v2 API - identifier: api-reference-v2 -weight: 102 -aliases: - - /influxdb/cloud-dedicated/api/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated

License: MIT

The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Dedicated provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Cloud Dedicated database.

-

The InfluxDB v2 HTTP API lets you use /api/v2 endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

-

Quick start

See the Get Started tutorial -to get up and running authenticating with tokens, writing to databases, and querying data.

-

InfluxDB API client libraries and Flight clients -are available to integrate InfluxDB APIs with your application.

-

API compatibility

Write data

-

InfluxDB 3 Cloud Dedicated provides the following HTTP API endpoints for writing data:

-
    -
  • Recommended: /api/v2/write endpoint for new write workloads or for bringing existing InfluxDB v2 write workloads to InfluxDB 3.
  • -
  • /write endpoint for bringing existing InfluxDB v1 write workloads to InfluxDB 3.
  • -
-

Both endpoints accept the same line protocol format and process data in the same way.

-

Query data

-

InfluxDB 3 Cloud Dedicated provides the following protocols for executing a query:

- -

InfluxDB v2 compatibility

-

The HTTP API /api/v2/write endpoint works with the Bearer and Token authentication schemes and existing InfluxDB 2.x tools and code for writing data.

-

See how to use the InfluxDB v2 HTTP API with InfluxDB 3 Cloud Dedicated.

-

InfluxDB v1 compatibility

-

The HTTP API /write endpoint and /query endpoint work with InfluxDB 1.x username/password authentication schemes and existing InfluxDB 1.x tools and code.

-

See how to use the InfluxDB v1 HTTP API with InfluxDB 3 Cloud Dedicated.

-

Authentication

Use one of the following schemes to authenticate to the InfluxDB API:

- -

BasicAuthentication

Basic authentication scheme

-

Use the Authorization header with the Basic scheme to authenticate v1 API /write and /query requests. -When authenticating requests, InfluxDB 3 Cloud Dedicated checks that the password part of the decoded credential is an authorized database token. -InfluxDB 3 Cloud Dedicated ignores the username part of the decoded credential.

-

Syntax

-
Authorization: Basic <base64-encoded [USERNAME]:DATABASE_TOKEN>
-

Replace the following:

-
    -
  • [USERNAME]: an optional string value (ignored by InfluxDB 3 Cloud Dedicated).
  • -
  • DATABASE_TOKEN: a database token.
  • -
  • Encode the [USERNAME]:DATABASE_TOKEN credential using base64 encoding, and then append the encoded string to the Authorization: Basic header.
  • -
-

Example

-

The following example shows how to use cURL with the Basic authentication scheme and a database token:

-
#######################################
-# Use Basic authentication with a database token
-# to query the InfluxDB v1 HTTP API
-#######################################
-# Use the --user option with `--user username:DATABASE_TOKEN` syntax
-#######################################
-
-curl --get "http://cluster-id.a.influxdb.io/query" \
-  --user "":"DATABASE_TOKEN" \
-  --data-urlencode "db=DATABASE_NAME" \
-  --data-urlencode "q=SELECT * FROM MEASUREMENT"
-

Replace the following:

-
    -
  • DATABASE_NAME: your InfluxDB 3 Cloud Dedicated database
  • -
  • DATABASE_TOKEN: a database token with sufficient permissions to the database
  • -
-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

QuerystringAuthentication

Use the Querystring authentication -scheme with InfluxDB 1.x API parameters to provide credentials through the query string.

-

Query string authentication

-

In the URL, pass the p query parameter to authenticate /write and /query requests. -When authenticating requests, InfluxDB 3 Cloud Dedicated checks that p (password) is an authorized database token and ignores the u (username) parameter.

-

Syntax

-
https://cluster-id.a.influxdb.io/query/?[u=any]&p=DATABASE_TOKEN
-https://cluster-id.a.influxdb.io/write/?[u=any]&p=DATABASE_TOKEN
-

Example

-

The following example shows how to use cURL with query string authentication and a database token.

-
#######################################
-# Use an InfluxDB 1.x compatible username and password
-# to query the InfluxDB v1 HTTP API
-#######################################
-# Use authentication query parameters:
-#   ?p=DATABASE_TOKEN
-#######################################
-
-curl --get "https://cluster-id.a.influxdb.io/query" \
-  --data-urlencode "p=DATABASE_TOKEN" \
-  --data-urlencode "db=DATABASE_NAME" \
-  --data-urlencode "q=SELECT * FROM MEASUREMENT"
-

Replace the following:

-
    -
  • DATABASE_NAME: your InfluxDB 3 Cloud Dedicated database
  • -
  • DATABASE_TOKEN: a database token with sufficient permissions to the database
  • -
-
Security Scheme Type API Key
Query parameter name: u=&p=

BearerAuthentication

Use the OAuth Bearer authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Bearer followed by a space and a database token.

-

Syntax

-
Authorization: Bearer INFLUX_TOKEN
-

Example

-
########################################################
-# Use the Bearer token authentication scheme with /api/v2/write
-# to write data.
-########################################################
-
-curl --request post "https://cluster-id.a.influxdb.io/api/v2/write?bucket=DATABASE_NAME&precision=s" \
-  --header "Authorization: Bearer DATABASE_TOKEN" \
-  --data-binary 'home,room=kitchen temp=72 1463683075'
-

For examples and more information, see the following:

- -
Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and a database token. -The word Token is case-sensitive.

-

Syntax

-
Authorization: Token INFLUX_API_TOKEN
-

Example

-
########################################################
-# Use the Token authentication scheme with /api/v2/write
-# to write data.
-########################################################
-
-curl --request post "https://cluster-id.a.influxdb.io/api/v2/write?bucket=DATABASE_NAME&precision=s" \
-  --header "Authorization: Token DATABASE_TOKEN" \
-  --data-binary 'home,room=kitchen temp=72 1463683075'
- - -
Security Scheme Type API Key
Header parameter name: Authorization

Headers

InfluxDB HTTP API endpoints use standard HTTP request and response headers. -The following table shows common headers used by many InfluxDB API endpoints. -Some endpoints may use other headers that perform functions more specific to those endpoints--for example, -the POST /api/v2/write endpoint accepts the Content-Encoding header to indicate the compression applied to line protocol in the request body.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HeaderValue typeDescription
AcceptstringThe content type that the client can understand.
AuthorizationstringThe authorization scheme and credential.
Content-LengthintegerThe size of the entity-body, in bytes, sent to the database.
Content-TypestringThe format of the data in the request body.
-

Response codes

InfluxDB HTTP API endpoints use standard HTTP status codes for success and failure responses. -The response body may include additional details. -For details about a specific operation's response, -see Responses and Response Samples for that operation.

-

API operations may return the following HTTP status codes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Code StatusDescription
200Success
201CreatedOne or more resources are created. The response body contains details about the resource.
204No contentThe request is successful and no data is returned. For example, The /write and /api/v2/write endpoints return this status code if all data in the batch is written and queryable.
400Bad requestInfluxDB can't parse the request due to an incorrect parameter or bad syntax. For writes, the error may indicate one of the following problems:
  • Rejected points
  • Authorization header is missing or malformed or the API token doesn't have permission for the operation.
401UnauthorizedMay indicate one of the following:
  • Authorization: Token header is missing or malformed
  • API token value is missing from the header
  • API token doesn't have permission. For more information about token types and permissions, see Manage tokens
404Not foundRequested resource was not found. message in the response body provides details about the requested resource.
405Method not allowedThe API path doesn't support the HTTP method used in the request--for example, you send a POST request to an endpoint that only allows GET.
422Unprocessable entityRequest data is invalid. code and message in the response body provide details about the problem.
500Internal server error
503Service unavailableServer is temporarily unavailable to process the request. The Retry-After header describes when to try the request again.
-

System information endpoints

Ping

Get the status of the instance

Reports the InfluxQL bridge querier health and the InfluxDB version of the instance.

-

The response is a HTTP 204 status code to inform you the querier is available.

-

For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters.

-

To check the health of ingesters before writing data, send a request to one of the write endpoints.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

Get the status of the instance

Reports the InfluxQL bridge querier health and the InfluxDB version of the instance.

-

The response is a HTTP 204 status code to inform you the querier is available.

-

For InfluxDB 3 Cloud Dedicated, this endpoint only checks the status of queriers; doesn't check the status of ingesters.

-

To check the health of ingesters before writing data, send a request to one of the write endpoints.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

Query

Query data stored in a database.

-
    -
  • HTTP clients can query the v1 /query endpoint -using InfluxQL and retrieve data in CSV or JSON format.
  • -
  • The /api/v2/query endpoint can't query InfluxDB 3 Cloud Dedicated.
  • -
  • Flight + gRPC clients can query using SQL or InfluxQL and retrieve data in Arrow format.
  • -
- - -

Query using the InfluxDB v1 HTTP API

Queries InfluxDB using InfluxQL with InfluxDB v1 request and response formats.

-
query Parameters
db
required
string

The database to query data from.

-
epoch
string
Enum: "ns" "u" "µ" "ms" "s" "m" "h"

A unix timestamp precision. -Formats timestamps as unix (epoch) timestamps the specified precision -instead of RFC3339 timestamps with nanosecond precision.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
q
required
string

The InfluxQL query to execute. To execute multiple queries, delimit queries with a semicolon (;).

-
rp
string

The retention policy to query data from. -For more information, see InfluxQL DBRP naming convention.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Media type that the client can understand.

-

Note: With application/csv, query results include unix timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The content encoding (usually a compression algorithm) that the client can understand.

-
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
No sample

Write

Write time series data to databases using InfluxDB v1 or v2 endpoints.

-

Write data

Writes data to a database.

-

Use this endpoint to send data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Dedicated does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: All data in the batch is ingested.
    • -
    • 400 Bad Request: Some (when partial writes are configured for the cluster) or all of the data has been rejected. Data that has not been rejected is ingested and queryable.
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Dedicated.

- - - -
query Parameters
bucket
required
string

A database name or ID. -InfluxDB writes all points in the batch to the specified database.

-
org
required
string

Ignored. An organization name or ID.

-

InfluxDB ignores this parameter; authorizes the request using the specified database token -and writes data to the specified cluster database.

-
orgID
string

Ignored. An organization ID.

-

InfluxDB ignores this parameter; authorizes the request using the specified database token -and writes data to the specified cluster database.

-
precision
string (WritePrecision)
Enum: "ms" "s" "us" "ns"

The precision for unix timestamps in the line protocol batch.

-
header Parameters
Accept
string
Default: application/json
Value: "application/json"

The content type that the client can understand. -Writes only return a response body if they fail--for example, -due to a formatting problem or quota limit.

-

InfluxDB Cloud

-
    -
  • Returns only application/json for format and limit errors.
  • -
  • Returns only text/html for some quota limit errors.
  • -
- - -
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

The compression applied to the line protocol in the request payload. -To send a gzip payload, pass Content-Encoding: gzip header.

-
Content-Length
integer

The size of the entity-body, in bytes, sent to InfluxDB. -If the length is greater than the max body configuration option, -the server responds with status code 413.

-
Content-Type
string
Default: text/plain; charset=utf-8
Enum: "text/plain" "text/plain; charset=utf-8"

The format of the data in the request body. -To send a line protocol payload, pass Content-Type: text/plain; charset=utf-8.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

In the request body, provide data in line protocol format.

-

To send compressed data, do the following:

-
    -
  1. Use gzip to compress the line protocol data.
  2. -
  3. In your request, send the compressed data and the -Content-Encoding: gzip header.
  4. -
- - -
string <byte>

Responses

Request samples

Content type
text/plain
airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
-airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
-

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "line": 2,
  • "message": "failed to parse line protocol: errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}

Write data using the InfluxDB v1 HTTP API

Writes data to a database.

-

Use this endpoint for InfluxDB v1 parameter compatibility when sending data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Dedicated does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: all data in the batch is ingested
    • -
    • 201 Created (If the cluster is configured to allow partial writes): some points in the batch are ingested and queryable, and some points are rejected
    • -
    • 400 Bad Request: all data is rejected
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Dedicated.

- - - -
query Parameters
db
required
string

database to write to. If none exists, InfluxDB creates a database with a default 3-day retention policy.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, its value indicates to the database that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
Example
{
  • "code": "invalid",
  • "line": 2,
  • "message": "no data written, errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}
- - - - - diff --git a/content/influxdb3/cloud-dedicated/reference/sql/functions/binary-string.md b/content/influxdb3/cloud-dedicated/reference/sql/functions/binary-string.md new file mode 100644 index 000000000..0ab01ed56 --- /dev/null +++ b/content/influxdb3/cloud-dedicated/reference/sql/functions/binary-string.md @@ -0,0 +1,19 @@ +--- +title: SQL binary string functions +list_title: Binary string functions +description: > + Use binary string functions to encode and decode binary string values in + SQL queries. +menu: + influxdb3_cloud_dedicated: + name: Binary string + parent: sql-functions +weight: 308 + +source: /content/shared/sql-reference/functions/binary-string.md +--- + + diff --git a/content/influxdb3/cloud-dedicated/reference/sql/functions/hashing.md b/content/influxdb3/cloud-dedicated/reference/sql/functions/hashing.md new file mode 100644 index 000000000..1241011f5 --- /dev/null +++ b/content/influxdb3/cloud-dedicated/reference/sql/functions/hashing.md @@ -0,0 +1,19 @@ +--- +title: SQL hashing functions +list_title: Hashing functions +description: > + Use hashing functions to hash string values in SQL queries using established + hashing algorithms. +menu: + influxdb3_cloud_dedicated: + name: Hashing + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/hashing.md +--- + + diff --git a/content/influxdb3/cloud-dedicated/reference/sql/functions/window.md b/content/influxdb3/cloud-dedicated/reference/sql/functions/window.md new file mode 100644 index 000000000..b2f34e937 --- /dev/null +++ b/content/influxdb3/cloud-dedicated/reference/sql/functions/window.md @@ -0,0 +1,18 @@ +--- +title: SQL window functions +list_title: Window functions +description: > + SQL window functions perform an operation across a set of rows related to the + current row. +menu: + influxdb3_cloud_dedicated: + name: Window + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/window.md +--- + + diff --git a/content/influxdb3/cloud-dedicated/reference/sql/operators/comparison.md b/content/influxdb3/cloud-dedicated/reference/sql/operators/comparison.md index 5b62f6189..e0ce9d05c 100644 --- a/content/influxdb3/cloud-dedicated/reference/sql/operators/comparison.md +++ b/content/influxdb3/cloud-dedicated/reference/sql/operators/comparison.md @@ -10,19 +10,21 @@ menu: parent: Operators weight: 302 list_code_example: | - | Operator | Meaning | Example | - | :------: | :------------------------------------------------------- | :---------------- | - | `=` | Equal to | `123 = 123` | - | `<>` | Not equal to | `123 <> 456` | - | `!=` | Not equal to | `123 != 456` | - | `>` | Greater than | `3 > 2` | - | `>=` | Greater than or equal to | `3 >= 2` | - | `<` | Less than | `1 < 2` | - | `<=` | Less than or equal to | `1 <= 2` | - | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | - | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | - | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | - | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | + | Operator | Meaning | Example | + | :--------------------: | :------------------------------------------------------- | :------------------------- | + | `=` | Equal to | `123 = 123` | + | `<>` | Not equal to | `123 <> 456` | + | `!=` | Not equal to | `123 != 456` | + | `>` | Greater than | `3 > 2` | + | `>=` | Greater than or equal to | `3 >= 2` | + | `<` | Less than | `1 < 2` | + | `<=` | Less than or equal to | `1 <= 2` | + | `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` | + | `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` | + | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | + | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | + | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | + | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | source: /content/shared/sql-reference/operators/comparison.md --- diff --git a/content/influxdb3/cloud-serverless/api/v1-compatibility/_index.html b/content/influxdb3/cloud-serverless/api/v1-compatibility/_index.html deleted file mode 100644 index 7274eb439..000000000 --- a/content/influxdb3/cloud-serverless/api/v1-compatibility/_index.html +++ /dev/null @@ -1,579 +0,0 @@ ---- -title: InfluxDB v1 HTTP API for InfluxDB 3 Cloud Serverless -description: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket. -layout: api -menu: - influxdb3_cloud_serverless: - parent: InfluxDB HTTP API - name: v1 Compatibility API - identifier: api-reference-v1-compatibility -weight: 304 -aliases: - - /influxdb/cloud-serverless/api/v1/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB v1 HTTP API for InfluxDB 3 Cloud Serverless

License: MIT

The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Cloud Serverless bucket.

-

The InfluxDB 1.x /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

- -

InfluxDB /api/v2 API for InfluxDB 3 Cloud Serverless

-

Authentication

The InfluxDB 1.x API requires authentication for all requests. -InfluxDB Cloud uses InfluxDB API tokens to authenticate requests.

-

For more information, see the following:

- -

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and an InfluxDB API token. -The word Token is case-sensitive.

-

Syntax

-

Authorization: Token YOUR_INFLUX_TOKEN

-

For examples and more information, see the following:

- -
Security Scheme Type API Key
Header parameter name: Authorization

BasicAuthentication

Use the HTTP Basic authentication -scheme with clients that support the InfluxDB 1.x convention of username and password (that don't support the Authorization: Token scheme):

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

QuerystringAuthentication

Use the Querystring authentication -scheme with InfluxDB 1.x API parameters to provide credentials through the query string.

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type API Key
Query parameter name: u=&p=

Query

Query using the InfluxDB v1 HTTP API

query Parameters
db
required
string

Bucket to query.

-
p
string

User token.

-
q
string

Defines the influxql query to run.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Specifies how query results should be encoded in the response. Note: With application/csv, query results include epoch timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The Accept-Encoding request HTTP header advertises which content encoding, usually a compression algorithm, the client is able to understand.

-
Content-Type
string
Value: "application/vnd.influxql"
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

InfluxQL query to execute.

-
string

Responses

Response samples

Content type
No sample

Write

Write time series data into InfluxDB in a V1-compatible format

query Parameters
db
required
string

Bucket to write to. If none exists, InfluxDB creates a bucket with a default 3-day retention policy.

-
p
string

User token.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, its value indicates to the database that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "message": "string",
  • "op": "string",
  • "err": "string",
  • "line": 0
}
- - - - - diff --git a/content/influxdb3/cloud-serverless/api/v2/_index.html b/content/influxdb3/cloud-serverless/api/v2/_index.html deleted file mode 100644 index bafe01ebc..000000000 --- a/content/influxdb3/cloud-serverless/api/v2/_index.html +++ /dev/null @@ -1,4673 +0,0 @@ ---- -title: InfluxDB 3 Cloud Serverless API Service -description: The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket. -layout: api -menu: - influxdb3_cloud_serverless: - parent: InfluxDB HTTP API - name: v2 API - identifier: api-reference-v2 -weight: 102 -aliases: - - /influxdb/cloud-serverless/api/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB 3 Cloud Serverless API Service

License: MIT

The InfluxDB v2 HTTP API for InfluxDB 3 Cloud Serverless provides a programmatic interface for writing data stored in an InfluxDB 3 Cloud Serverless bucket.

-

The InfluxDB v2 HTTP API lets you use /api/v2 endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

-

Quick start

See the Get started tutorial -to get up and running authenticating with tokens, writing to buckets, and querying data.

-

InfluxDB API client libraries and Flight clients -are available to integrate InfluxDB with your application.

-

Authentication

Use one of the following schemes to authenticate to the InfluxDB API:

- -

BasicAuthentication

Basic authentication scheme

-

Use the HTTP Basic authentication scheme for InfluxDB /api/v2 API operations that support it:

-

Syntax

-

Authorization: Basic BASE64_ENCODED_CREDENTIALS

-

To construct the BASE64_ENCODED_CREDENTIALS, combine the username and -the password with a colon (USERNAME:PASSWORD), and then encode the -resulting string in base64. -Many HTTP clients encode the credentials for you before sending the -request.

-

Warning: Base64-encoding can easily be reversed to obtain the original -username and password. It is used to keep the data intact and does not provide -security. You should always use HTTPS when authenticating or sending a request with -sensitive information.

-

Examples

-

In the examples, replace the following:

-
    -
  • EMAIL_ADDRESS: InfluxDB Cloud username (the email address the user signed up with)
  • -
  • PASSWORD: InfluxDB Cloud API token
  • -
  • INFLUX_URL: your InfluxDB Cloud URL
  • -
-

Encode credentials with cURL

-

The following example shows how to use cURL to send an API request that uses Basic authentication. -With the --user option, cURL encodes the credentials and passes them -in the Authorization: Basic header.

-
curl --get "INFLUX_URL/api/v2/signin"
-    --user "EMAIL_ADDRESS":"PASSWORD"
-

Encode credentials with Flux

-

The Flux http.basicAuth() function returns a Base64-encoded -basic authentication header using a specified username and password combination.

-

Encode credentials with JavaScript

-

The following example shows how to use the JavaScript btoa() function -to create a Base64-encoded string:

-
btoa('EMAIL_ADDRESS:PASSWORD')
-

The output is the following:

-
'VVNFUk5BTUU6UEFTU1dPUkQ='
-

Once you have the Base64-encoded credentials, you can pass them in the -Authorization header--for example:

-
curl --get "INFLUX_URL/api/v2/signin"
-    --header "Authorization: Basic VVNFUk5BTUU6UEFTU1dPUkQ="
-

To learn more about HTTP authentication, see -Mozilla Developer Network (MDN) Web Docs, HTTP authentication._

-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and an InfluxDB API token. -The word Token is case-sensitive.

-

Syntax

-

Authorization: Token INFLUX_API_TOKEN

-

Example

-

Use Token authentication with cURL

-

The following example shows how to use cURL to send an API request that uses Token authentication:

-
curl --request GET "INFLUX_URL/api/v2/buckets" \
-     --header "Authorization: Token INFLUX_API_TOKEN"
-

Replace the following:

- - - - - -
Security Scheme Type API Key
Header parameter name: Authorization

Supported operations

The following table shows the most common operations that the InfluxDB /api/v2 API supports. -Some resources may support other operations that perform functions more specific to those resources. -For example, you can use the PATCH /api/v2/scripts endpoint to update properties of a script -resource.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operation
WriteWrites (POST) data to a bucket.
RunExecutes (POST) a query or script and returns the result.
ListRetrieves (GET) a list of zero or more resources.
CreateCreates (POST) a new resource and returns the resource.
UpdateModifies (PUT) an existing resource to reflect data in your request.
DeleteRemoves (DELETE) a specific resource.
-

Headers

InfluxDB HTTP API endpoints use standard HTTP request and response headers. -The following table shows common headers used by many InfluxDB API endpoints. -Some endpoints may use other headers that perform functions more specific to those endpoints--for example, -the POST /api/v2/write endpoint accepts the Content-Encoding header to indicate the compression applied to line protocol in the request body.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HeaderValue typeDescription
AcceptstringThe content type that the client can understand.
AuthorizationstringThe authorization scheme and credential.
Content-LengthintegerThe size of the entity-body, in bytes.
Content-TypestringThe format of the data in the request body.
-

Pagination

Some InfluxDB API list operations may support the following query parameters for paginating results:

- - - - - - - - - - - - - - - - - - - - - - - -
Query parameterValue typeDescription
limitintegerThe maximum number of records to return (after other parameters are applied).
offsetintegerThe number of records to skip (before limit, after other parameters are applied).
afterstring (resource ID)Only returns resources created after the specified resource.
-

Limitations

-
    -
  • For specific endpoint parameters and examples, see the endpoint definition.

    -
  • -
  • If you specify an offset parameter value greater than the total number of records, -then InfluxDB returns an empty list in the response -(given offset skips the specified number of records).

    -

    The following example passes offset=50 to skip the first 50 results, -but the user only has 10 buckets:

    -
    curl --request GET "INFLUX_URL/api/v2/buckets?limit=1&offset=50" \
    -    --header "Authorization: Token INFLUX_API_TOKEN"
    -

    The response contains the following:

    -
    {
    -  "links": {
    -      "prev": "/api/v2/buckets?descending=false\u0026limit=1\u0026offset=49\u0026orgID=ORG_ID",
    -      "self": "/api/v2/buckets?descending=false\u0026limit=1\u0026offset=50\u0026orgID=ORG_ID"
    -  },
    -  "buckets": []
    -}
    -
  • -
-

Response codes

InfluxDB HTTP API endpoints use standard HTTP status codes for success and failure responses. -The response body may include additional details. -For details about a specific operation's response, -see Responses and Response Samples for that operation.

-

API operations may return the following HTTP status codes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Code StatusDescription
200Success
201CreatedSuccessfully created a resource. The response body may contain details, for example /write and /api/v2/write response bodies contain details of partial write failures.
204No contentThe request succeeded.
400Bad requestInfluxDB can't parse the request due to an incorrect parameter or bad syntax. For writes, the error may indicate one of the following problems:
  • Line protocol is malformed. The response body contains the first malformed line in the data and indicates what was expected.
  • The batch contains a point with the same series as other points, but one of the field values has a different data type.
  • Authorization header is missing or malformed or the API token doesn't have permission for the operation.
401UnauthorizedMay indicate one of the following:
  • Authorization: Token header is missing or malformed
  • API token value is missing from the header
  • API token doesn't have permission. For more information about token types and permissions, see Manage API tokens
404Not foundRequested resource was not found. message in the response body provides details about the requested resource.
405Method not allowedThe API path doesn't support the HTTP method used in the request--for example, you send a POST request to an endpoint that only allows GET.
413Request entity too largeRequest payload exceeds the size limit.
422Unprocessable entityRequest data is invalid. code and message in the response body provide details about the problem.
429Too many requestsAPI token is temporarily over the request quota. The Retry-After header describes when to try the request again.
500Internal server error
503Service unavailableServer is temporarily unavailable to process the request. The Retry-After header describes when to try the request again.
-

Data I/O endpoints

Write data

Writes data to a bucket.

-

Use this endpoint to send data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Serverless does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: All data in the batch is ingested.
    • -
    • 400 Bad Request: Data from the batch was rejected and not written. The response body indicates if a partial write occurred.
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Serverless.

- -

Rate limits

-

Write rate limits apply. -For more information, see limits and adjustable quotas.

- - -
Authorizations:
query Parameters
bucket
required
string

A bucket name or ID. -InfluxDB writes all points in the batch to the specified bucket.

-
org
required
string

An organization name or ID.

-

InfluxDB 3 Cloud Serverless writes data to the bucket in the organization associated with the authorization (API token); -doesn't use the org parameter or orgID parameter.

-
orgID
string

An organization ID.

-

InfluxDB 3 Cloud Serverless writes data to the bucket in the organization associated with the authorization (API token); -doesn't use the org parameter or orgID parameter.

-
precision
string (WritePrecision)
Enum: "ms" "s" "us" "ns"

The precision for unix timestamps in the line protocol batch.

-
header Parameters
Accept
string
Default: application/json
Value: "application/json"

The content type that the client can understand. -Writes only return a response body if they fail--for example, -due to a formatting problem or quota limit.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Returns only application/json for format and limit errors.
  • -
  • Returns only text/html for some quota limit errors.
  • -
- - -
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

The compression applied to the line protocol in the request payload. -To send a gzip payload, pass Content-Encoding: gzip header.

-
Content-Length
integer

The size of the entity-body, in bytes, sent to InfluxDB. -If the length is greater than the max body configuration option, -the server responds with status code 413.

-
Content-Type
string
Default: text/plain; charset=utf-8
Enum: "text/plain" "text/plain; charset=utf-8"

The format of the data in the request body. -To send a line protocol payload, pass Content-Type: text/plain; charset=utf-8.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

In the request body, provide data in line protocol format.

-

To send compressed data, do the following:

-
    -
  1. Use gzip to compress the line protocol data.
  2. -
  3. In your request, send the compressed data and the -Content-Encoding: gzip header.
  4. -
- - -
string <byte>

Responses

Request samples

Content type
text/plain
airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
-airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
-

Response samples

Content type
application/json
Example
{
  • "code": "invalid",
  • "line": 2,
  • "message": "no data written, errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}

Query using the InfluxDB v1 HTTP API

Queries InfluxDB using InfluxQL with InfluxDB v1 request and response formats.

- - -
Authorizations:
query Parameters
db
required
string

The database to query data from. -This is mapped to an InfluxDB bucket. -For more information, see Database and retention policy mapping.

-
epoch
string
Enum: "ns" "u" "µ" "ms" "s" "m" "h"

A unix timestamp precision. -Formats timestamps as unix (epoch) timestamps the specified precision -instead of RFC3339 timestamps with nanosecond precision.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
q
required
string

The InfluxQL query to execute. To execute multiple queries, delimit queries with a semicolon (;).

-
rp
string

The retention policy to query data from. -This is mapped to an InfluxDB bucket. -For more information, see Database and retention policy mapping.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Media type that the client can understand.

-

Note: With application/csv, query results include unix timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The content encoding (usually a compression algorithm) that the client can understand.

-
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
No sample

Write data using the InfluxDB v1 HTTP API

Writes data to a bucket.

-

Use this endpoint for InfluxDB v1 parameter compatibility when sending data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Serverless does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: all data in the batch is ingested
    • -
    • 201 Created: some points in the batch are ingested and queryable, and some points are rejected
    • -
    • 400 Bad Request: all data is rejected
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Serverless.

- -

Rate limits

-

Write rate limits apply. -For more information, see limits and adjustable quotas.

- - -
Authorizations:
query Parameters
db
required
string

Bucket to write to. If none exists, InfluxDB creates a bucket with a default 3-day retention policy.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, indicates that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "line": 2,
  • "message": "failed to parse line protocol: errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}

Security and access endpoints

List authorizations

Lists authorizations.

-

To limit which authorizations are returned, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all authorizations.

-

InfluxDB 3 Cloud Serverless doesn't expose API token - values in GET /api/v2/authorizations responses; - returns token: redacted for all authorizations.

-

Required permissions

-

To retrieve an authorization, the request must use an API token that has the -following permissions:

-
    -
  • read-authorizations
  • -
  • read-user for the user that the authorization is scoped to
  • -
- - -
Authorizations:
query Parameters
org
string

An organization name. -Only returns authorizations that belong to the specified organization.

-
orgID
string

An organization ID. Only returns authorizations that belong to the specified organization.

-
token
string

An API token value. -Specifies an authorization by its token property value -and returns the authorization.

-

InfluxDB OSS

-
    -
  • Doesn't support this parameter. InfluxDB OSS ignores the token= parameter, -applies other parameters, and then returns the result.
  • -
-

Limitations

-
    -
  • The parameter is non-repeatable. If you specify more than one, -only the first one is used. If a resource with the specified -property value doesn't exist, then the response body contains an empty list.
  • -
-
user
string

A user name. -Only returns authorizations scoped to the specified user.

-
userID
string

A user ID. -Only returns authorizations scoped to the specified user.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "authorizations": [
    ],
  • "links": {}
}

Create an authorization

Creates an authorization and returns the authorization with the -generated API token.

-

Use this endpoint to create an authorization, which generates an API token -with permissions to read or write to a specific resource or type of resource. -The API token is the authorization's token property value.

-

To follow best practices for secure API token generation and retrieval, -InfluxDB enforces access restrictions on API tokens.

-
    -
  • InfluxDB allows access to the API token value immediately after the authorization is created.
  • -
  • You can’t change access (read/write) permissions for an API token after it’s created.
  • -
  • Tokens stop working when the user who created the token is deleted.
  • -
-

We recommend the following for managing your tokens:

-
    -
  • Create a generic user to create and manage tokens for writing data.
  • -
  • Store your tokens in a secure password vault for future access.
  • -
-

Required permissions

-
    -
  • write-authorizations
  • -
  • write-user for the user that the authorization is scoped to
  • -
- - -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The authorization to create.

-
description
string

A description of the token.

-
orgID
required
string

An organization ID. -Specifies the organization that owns the authorization.

-
required
Array of objects (Permission) non-empty

A list of permissions for an authorization. -In the list, provide at least one permission object.

-

In a permission, the resource.type property grants access to all -resources of the specified type. -To grant access to only a specific resource, specify the -resource.id property.

-
status
string
Default: "active"
Enum: "active" "inactive"

Status of the token. If inactive, InfluxDB rejects requests that use the token.

-
userID
string

A user ID. -Specifies the user that the authorization is scoped to.

-

When a user authenticates with username and password, -InfluxDB generates a user session with all the permissions -specified by all the user's authorizations.

-

Responses

Request samples

Content type
application/json
Example

Creates an authorization.

-
{
  • "description": "iot_users read buckets",
  • "orgID": "INFLUX_ORG_ID",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

Delete an authorization

Deletes an authorization.

-

Use the endpoint to delete an API token.

-

If you want to disable an API token instead of delete it, -update the authorization's status to inactive.

-
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "id must have a length of 16 bytes"
}

Retrieve an authorization

Retrieves an authorization.

-

Use this endpoint to retrieve information about an API token, including -the token's permissions and the user that the token is scoped to.

-

InfluxDB OSS

-
    -
  • InfluxDB OSS returns -API token values in authorizations.
  • -
  • If the request uses an operator token, -InfluxDB OSS returns authorizations for all organizations in the instance.
  • -
- - -
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to retrieve.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

Update an API token to be active or inactive

Updates an authorization.

-

Use this endpoint to set an API token's status to be active or inactive. -InfluxDB rejects requests that use inactive API tokens.

-
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to update.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

In the request body, provide the authorization properties to update.

-
description
string

A description of the token.

-
status
string
Default: "active"
Enum: "active" "inactive"

Status of the token. If inactive, InfluxDB rejects requests that use the token.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

System information endpoints

List all top level routes

Retrieves all the top level routes for the InfluxDB API.

-

Limitations

-
    -
  • Only returns top level routes--for example, the response contains -"tasks":"/api/v2/tasks", and doesn't contain resource-specific routes -for tasks (/api/v2/tasks/TASK_ID/...).
  • -
-
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{}

List all known resources

Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
[
  • "string"
]

Authorizations (API tokens)

Create and manage authorizations (API tokens).

-

An authorization contains a list of read and write -permissions for organization resources and provides an API token for authentication. -An authorization belongs to an organization and only contains permissions for that organization.

-

We recommend the following for managing your tokens:

-
    -
  • Create a generic user to create and manage tokens for writing data.
  • -
  • Store your tokens in a secure password vault for future access.
  • -
-

User sessions with authorizations

-

Optionally, when creating an authorization, you can scope it to a specific user. -If the user signs in with username and password, creating a user session, -the session carries the permissions granted by all the user's authorizations. -For more information, see how to assign a token to a specific user. -To create a user session, use the POST /api/v2/signin endpoint.

- - - - -

List authorizations

Lists authorizations.

-

To limit which authorizations are returned, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all authorizations.

-

InfluxDB 3 Cloud Serverless doesn't expose API token - values in GET /api/v2/authorizations responses; - returns token: redacted for all authorizations.

-

Required permissions

-

To retrieve an authorization, the request must use an API token that has the -following permissions:

-
    -
  • read-authorizations
  • -
  • read-user for the user that the authorization is scoped to
  • -
- - -
Authorizations:
query Parameters
org
string

An organization name. -Only returns authorizations that belong to the specified organization.

-
orgID
string

An organization ID. Only returns authorizations that belong to the specified organization.

-
token
string

An API token value. -Specifies an authorization by its token property value -and returns the authorization.

-

InfluxDB OSS

-
    -
  • Doesn't support this parameter. InfluxDB OSS ignores the token= parameter, -applies other parameters, and then returns the result.
  • -
-

Limitations

-
    -
  • The parameter is non-repeatable. If you specify more than one, -only the first one is used. If a resource with the specified -property value doesn't exist, then the response body contains an empty list.
  • -
-
user
string

A user name. -Only returns authorizations scoped to the specified user.

-
userID
string

A user ID. -Only returns authorizations scoped to the specified user.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "authorizations": [
    ],
  • "links": {}
}

Create an authorization

Creates an authorization and returns the authorization with the -generated API token.

-

Use this endpoint to create an authorization, which generates an API token -with permissions to read or write to a specific resource or type of resource. -The API token is the authorization's token property value.

-

To follow best practices for secure API token generation and retrieval, -InfluxDB enforces access restrictions on API tokens.

-
    -
  • InfluxDB allows access to the API token value immediately after the authorization is created.
  • -
  • You can’t change access (read/write) permissions for an API token after it’s created.
  • -
  • Tokens stop working when the user who created the token is deleted.
  • -
-

We recommend the following for managing your tokens:

-
    -
  • Create a generic user to create and manage tokens for writing data.
  • -
  • Store your tokens in a secure password vault for future access.
  • -
-

Required permissions

-
    -
  • write-authorizations
  • -
  • write-user for the user that the authorization is scoped to
  • -
- - -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The authorization to create.

-
description
string

A description of the token.

-
orgID
required
string

An organization ID. -Specifies the organization that owns the authorization.

-
required
Array of objects (Permission) non-empty

A list of permissions for an authorization. -In the list, provide at least one permission object.

-

In a permission, the resource.type property grants access to all -resources of the specified type. -To grant access to only a specific resource, specify the -resource.id property.

-
status
string
Default: "active"
Enum: "active" "inactive"

Status of the token. If inactive, InfluxDB rejects requests that use the token.

-
userID
string

A user ID. -Specifies the user that the authorization is scoped to.

-

When a user authenticates with username and password, -InfluxDB generates a user session with all the permissions -specified by all the user's authorizations.

-

Responses

Request samples

Content type
application/json
Example

Creates an authorization.

-
{
  • "description": "iot_users read buckets",
  • "orgID": "INFLUX_ORG_ID",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

Delete an authorization

Deletes an authorization.

-

Use the endpoint to delete an API token.

-

If you want to disable an API token instead of delete it, -update the authorization's status to inactive.

-
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "id must have a length of 16 bytes"
}

Retrieve an authorization

Retrieves an authorization.

-

Use this endpoint to retrieve information about an API token, including -the token's permissions and the user that the token is scoped to.

-

InfluxDB OSS

-
    -
  • InfluxDB OSS returns -API token values in authorizations.
  • -
  • If the request uses an operator token, -InfluxDB OSS returns authorizations for all organizations in the instance.
  • -
- - -
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to retrieve.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

Update an API token to be active or inactive

Updates an authorization.

-

Use this endpoint to set an API token's status to be active or inactive. -InfluxDB rejects requests that use inactive API tokens.

-
Authorizations:
path Parameters
authID
required
string

An authorization ID. Specifies the authorization to update.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

In the request body, provide the authorization properties to update.

-
description
string

A description of the token.

-
status
string
Default: "active"
Enum: "active" "inactive"

Status of the token. If inactive, InfluxDB rejects requests that use the token.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "links": {
    },
  • "org": "string",
  • "orgID": "string",
  • "permissions": [
    ],
  • "token": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "user": "string",
  • "userID": "string"
}

Bucket Schemas

List measurement schemas of a bucket

Lists explicit -schemas -("schemaType": "explicit") for a bucket.

-

Explicit schemas are used to enforce column names, tags, fields, and data -types for your data.

-

By default, buckets have an implicit schema-type ("schemaType": "implicit") -that conforms to your data.

- - -
Authorizations:
path Parameters
bucketID
required
string

A bucket ID. -Lists measurement schemas for the specified bucket.

-
query Parameters
name
string

A measurement name. -Only returns measurement schemas with the specified name.

-
org
string

An organization name. -Specifies the organization that owns the schema.

-
orgID
string

An organization ID. -Specifies the organization that owns the schema.

-

Responses

Response samples

Content type
application/json
{
  • "measurementSchemas": [
    ]
}

Create a measurement schema for a bucket

Creates an explicit measurement schema -for a bucket.

-

Explicit schemas are used to enforce column names, tags, fields, and data -types for your data.

-

By default, buckets have an implicit schema-type ("schemaType": "implicit") -that conforms to your data.

-

Use this endpoint to create schemas that prevent non-conforming write requests.

-

Limitations

-
    -
  • Buckets must be created with the "explicit" schemaType in order to use -schemas.
  • -
- -
Authorizations:
path Parameters
bucketID
required
string

A bucket ID. -Adds a schema for the specified bucket.

-
query Parameters
org
string

An organization name. -Specifies the organization that owns the schema.

-
orgID
string

An organization ID. -Specifies the organization that owns the schema.

-
Request Body schema: application/json
required
Array of objects (MeasurementSchemaColumn)

Ordered collection of column definitions.

-
name
required
string

The measurement -name.

-

Responses

Request samples

Content type
application/json
{
  • "columns": [
    ],
  • "name": "cpu"
}

Response samples

Content type
application/json
{
  • "bucketID": "ba3c5e7f9b0a0010",
  • "columns": [
    ],
  • "createdAt": "2021-01-21T00:48:40.993Z",
  • "id": "1a3c5e7f9b0a8642",
  • "name": "cpu",
  • "orgID": "0a3c5e7f9b0a0001",
  • "updatedAt": "2021-01-21T00:48:40.993Z"
}

Retrieve a measurement schema

Retrieves an explicit measurement schema.

-
Authorizations:
path Parameters
bucketID
required
string

A bucket ID. -Retrieves schemas for the specified bucket.

-
measurementID
required
string

The measurement schema ID. -Specifies the measurement schema to retrieve.

-
query Parameters
org
string

Organization name. -Specifies the organization that owns the schema.

-
orgID
string

Organization ID. -Specifies the organization that owns the schema.

-

Responses

Response samples

Content type
application/json
{
  • "bucketID": "ba3c5e7f9b0a0010",
  • "columns": [
    ],
  • "createdAt": "2021-01-21T00:48:40.993Z",
  • "id": "1a3c5e7f9b0a8642",
  • "name": "cpu",
  • "orgID": "0a3c5e7f9b0a0001",
  • "updatedAt": "2021-01-21T00:48:40.993Z"
}

Update a measurement schema

Updates a measurement schema.

-

Use this endpoint to update the fields (name, type, and dataType) of a -measurement schema.

-

Limitations

-
    -
  • You can't update the name of a measurement.
  • -
- - -
Authorizations:
path Parameters
bucketID
required
string

A bucket ID. -Specifies the bucket to retrieve schemas for.

-
measurementID
required
string

A measurement schema ID. -Retrieves the specified measurement schema.

-
query Parameters
org
string

An organization name. -Specifies the organization that owns the schema.

-
orgID
string

An organization ID. -Specifies the organization that owns the schema.

-
Request Body schema: application/json
required
Array of objects (MeasurementSchemaColumn)

An ordered collection of column definitions

-

Responses

Request samples

Content type
application/json
{
  • "columns": [
    ]
}

Response samples

Content type
application/json
{
  • "bucketID": "ba3c5e7f9b0a0010",
  • "columns": [
    ],
  • "createdAt": "2021-01-21T00:48:40.993Z",
  • "id": "1a3c5e7f9b0a8642",
  • "name": "cpu",
  • "orgID": "0a3c5e7f9b0a0001",
  • "updatedAt": "2021-01-21T00:48:40.993Z"
}

Buckets

Store your data in InfluxDB buckets. -A bucket is a named location where time series data is stored. All buckets -have a retention period, -a duration of time that each data point persists. InfluxDB drops all -points with timestamps older than the bucket’s retention period. -A bucket belongs to an organization.

- - -

List buckets

Lists buckets.

-

InfluxDB retrieves buckets owned by the -organization -associated with the authorization -(API token). -To limit which buckets are returned, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all buckets up to the -default limit.

-

InfluxDB OSS

-
    -
  • If you use an operator token -to authenticate your request, InfluxDB retrieves resources for all -organizations in the instance. -To retrieve resources for only a specific organization, use the -org parameter or the orgID parameter to specify the organization.
  • -
-

Required permissions

- - - - - - - - - - - - - - - -
ActionPermission required
Retrieve user bucketsread-buckets
Retrieve system bucketsread-orgs
- - -
Authorizations:
query Parameters
after
string

A resource ID to seek from. -Returns records created after the specified record; -results don't include the specified record.

-

Use after instead of the offset parameter. -For more information about pagination parameters, see Pagination.

-
id
string

A bucket ID. -Only returns the bucket with the specified ID.

-
limit
integer [ 1 .. 100 ]
Default: 20

Limits the number of records returned. Default is 20.

-
name
string

A bucket name. -Only returns buckets with the specified name.

-
offset
integer >= 0

The offset for pagination. -The number of records to skip.

-

For more information about pagination parameters, see Pagination.

-
org
string

An organization name.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
  • Lists buckets for the organization associated with the authorization (API token).
  • -
-
orgID
string

An organization ID.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
  • Lists buckets for the organization associated with the authorization (API token).
  • -
-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Request samples

curl --request GET "http://localhost:8086/api/v2/buckets?name=_monitoring" \
-  --header "Authorization: Token INFLUX_TOKEN" \
-  --header "Accept: application/json" \
-  --header "Content-Type: application/json"
-

Response samples

Content type
application/json
{
  • "buckets": [
    ],
  • "links": {
    }
}

Create a bucket

Creates a bucket -and returns the bucket resource. -The default data -retention period -is 30 days.

-

InfluxDB OSS

-
    -
  • A single InfluxDB OSS instance supports active writes or queries for -approximately 20 buckets across all organizations at a given time. -Reading or writing to more than 20 buckets at a time can adversely affect -performance.
  • -
-

Limitations

-
    -
  • InfluxDB Cloud Free Plan allows users to create up to two buckets. -Exceeding the bucket quota will result in an HTTP 403 status code. -For additional information regarding InfluxDB Cloud offerings, see -InfluxDB Cloud Pricing.
  • -
- - -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The bucket to create.

-
description
string

A description of the bucket.

-
name
required
string

The bucket name.

-
orgID
required
string

The organization ID. -Specifies the organization that owns the bucket.

-
Array of objects (RetentionRules)

Retention rules to expire or retain data. -The InfluxDB /api/v2 API uses RetentionRules to configure the retention period.

-

InfluxDB 3 Cloud Serverless

-
    -
  • retentionRules is required.
  • -
-

InfluxDB OSS

-
    -
  • retentionRules isn't required.
  • -
-
rp
string
Default: "0"

The retention policy for the bucket. -For InfluxDB 1.x, specifies the duration of time that each data point -in the retention policy persists.

-

If you need compatibility with InfluxDB 1.x, specify a value for the rp property; -otherwise, see the retentionRules property.

-

Retention policy -is an InfluxDB 1.x concept. -The InfluxDB 2.x and Cloud equivalent is -retention period. -The InfluxDB /api/v2 API uses RetentionRules to configure the retention period.

-
schemaType
string (SchemaType)
Enum: "implicit" "explicit"

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "orgID": "string",
  • "retentionRules": [
    ],
  • "rp": "0",
  • "schemaType": "implicit"
}

Response samples

Content type
application/json
{
  • "createdAt": "2022-08-03T23:04:41.073704121Z",
  • "description": "A bucket holding air sensor data",
  • "id": "37407e232b3911d8",
  • "labels": [ ],
  • "links": {
    },
  • "name": "air_sensor",
  • "orgID": "INFLUX_ORG_ID",
  • "retentionRules": [
    ],
  • "schemaType": "implicit",
  • "type": "user",
  • "updatedAt": "2022-08-03T23:04:41.073704228Z"
}

Delete a bucket

Deletes a bucket and all associated records.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Does the following when you send a delete request:

    -
      -
    1. Validates the request and queues the delete.
    2. -
    3. Returns an HTTP 204 status code if queued; error otherwise.
    4. -
    5. Handles the delete asynchronously.
    6. -
    -
  • -
-

Limitations

-
    -
  • Only one bucket can be deleted per request.
  • -
- - -
Authorizations:
path Parameters
bucketID
required
string

Bucket ID. -The ID of the bucket to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Request samples

curl --request DELETE "http://localhost:8086/api/v2/buckets/BUCKET_ID" \
-  --header "Authorization: Token INFLUX_TOKEN" \
-  --header 'Accept: application/json'
-

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "id must have a length of 16 bytes"
}

Retrieve a bucket

Retrieves a bucket.

-

Use this endpoint to retrieve information for a specific bucket.

-
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to retrieve.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2022-08-03T23:04:41.073704121Z",
  • "description": "bucket for air sensor data",
  • "id": "37407e232b3911d8",
  • "labels": [ ],
  • "links": {
    },
  • "name": "air-sensor",
  • "orgID": "bea7ea952287f70d",
  • "retentionRules": [
    ],
  • "schemaType": "implicit",
  • "type": "user",
  • "updatedAt": "2022-08-03T23:04:41.073704228Z"
}

Update a bucket

Updates a bucket.

-

Use this endpoint to update properties -(name, description, and retentionRules) of a bucket.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Requires the retentionRules property in the request body. If you don't -provide retentionRules, InfluxDB responds with an HTTP 403 status code.
  • -
- - -
Authorizations:
path Parameters
bucketID
required
string

The bucket ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The bucket update to apply.

-
description
string

A description of the bucket.

-
name
string

The name of the bucket.

-
Array of objects (PatchRetentionRules)

Updates to rules to expire or retain data. No rules means no updates.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "retentionRules": [
    ]
}

Response samples

Content type
application/json
{
  • "createdAt": "2022-08-03T23:04:41.073704121Z",
  • "description": "bucket holding air sensor data",
  • "id": "37407e232b3911d8",
  • "labels": [ ],
  • "links": {
    },
  • "name": "air_sensor",
  • "orgID": "INFLUX_ORG_ID",
  • "retentionRules": [
    ],
  • "schemaType": "implicit",
  • "type": "user",
  • "updatedAt": "2022-08-07T22:49:49.422962913Z"
}

List all labels for a bucket

Lists all labels for a bucket.

-

Labels are objects that contain labelID, name, description, and color -key-value pairs. They may be used for grouping and filtering InfluxDB -resources. -Labels are also capable of grouping across different resources--for example, -you can apply a label named air_sensor to a bucket and a task to quickly -organize resources.

- - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to retrieve labels for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "labels": [
    ],
  • "links": {
    }
}

Add a label to a bucket

Adds a label to a bucket and returns the new label information.

-

Labels are objects that contain labelID, name, description, and color -key-value pairs. They may be used for grouping and filtering across one or -more kinds of resources--for example, you can apply a label named -air_sensor to a bucket and a task to quickly organize resources.

-

Limitations

-
    -
  • Before adding a label to a bucket, you must create the label if you -haven't already. To create a label with the InfluxDB API, send a POST -request to the /api/v2/labels endpoint).
  • -
- - -
Authorizations:
path Parameters
bucketID
required
string

Bucket ID. -The ID of the bucket to label.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

An object that contains a labelID to add to the bucket.

-
labelID
required
string

A label ID. -Specifies the label to attach.

-

Responses

Request samples

Content type
application/json
{
  • "labelID": "string"
}

Response samples

Content type
application/json
{
  • "label": {
    },
  • "links": {
    }
}

Delete a label from a bucket

Authorizations:
path Parameters
bucketID
required
string

The bucket ID.

-
labelID
required
string

The ID of the label to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

List all users with member privileges for a bucket

Lists all users for a bucket.

-

InfluxDB users have -permission to access InfluxDB.

-

Members are users in -an organization with access to the specified resource.

-

Use this endpoint to retrieve all users with access to a bucket.

- -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to retrieve users for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {
    },
  • "users": [
    ]
}

Add a member to a bucket

Add a user to a bucket and return the new user information.

-

InfluxDB users have -permission to access InfluxDB.

-

Members are users in -an organization.

-

Use this endpoint to give a user member privileges to a bucket.

- - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to retrieve users for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

A user to add as a member to the bucket.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "09cfb87051cbe000",
  • "links": {
    },
  • "name": "example_user_1",
  • "role": "member",
  • "status": "active"
}

Remove a member from a bucket

Removes a member from a bucket.

-

Use this endpoint to remove a user's member privileges from a bucket. This -removes the user's read and write permissions for the bucket.

- - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to remove a user from.

-
userID
required
string

The ID of the user to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "unauthorized",
  • "message": "unauthorized access"
}

List all owners of a bucket

Lists all owners -of a bucket.

-

Bucket owners have permission to delete buckets and remove user and member -permissions from the bucket.

-

InfluxDB 3 Cloud Serverless uses /api/v2/authorizations to assign resource permissions; doesn't use owner and member roles.

-

Limitations

-
    -
  • Owner permissions are separate from API token permissions.
  • -
  • Owner permissions are used in the context of the InfluxDB UI.
  • -
-

Required permissions

-
    -
  • read-orgs INFLUX_ORG_ID
  • -
-

INFLUX_ORG_ID is the ID of the organization that you want to retrieve a -list of owners for.

- - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to retrieve owners for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {
    },
  • "users": [
    ]
}

Add an owner to a bucket

Adds an owner to a bucket and returns the owners -with role and user detail.

-

Use this endpoint to create a resource owner for the bucket. -Bucket owners have permission to delete buckets and remove user and member -permissions from the bucket.

-

InfluxDB 3 Cloud Serverless uses /api/v2/authorizations to assign resource permissions; doesn't use owner and member roles.

-

Limitations

-
    -
  • Owner permissions are separate from API token permissions.
  • -
  • Owner permissions are used in the context of the InfluxDB UI.
  • -
-

Required permissions

-
    -
  • write-orgs INFLUX_ORG_ID
  • -
  • INFLUX_ORG_ID* is the ID of the organization that you want to add - an owner for.
  • -
- - - - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to add an owner for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

A user to add as an owner for the bucket.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "d88d182d91b0950f",
  • "links": {
    },
  • "name": "example-user",
  • "role": "owner",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "role": "owner"
}

Remove an owner from a bucket

Removes an owner from a bucket.

-

Use this endpoint to remove a user's owner role for a bucket.

-

InfluxDB 3 Cloud Serverless uses /api/v2/authorizations to assign resource permissions; doesn't use owner and member roles.

-

Limitations

-
    -
  • Owner permissions are separate from API token permissions.
  • -
  • Owner permissions are used in the context of the InfluxDB UI.
  • -
-

Required permissions

-
    -
  • write-orgs INFLUX_ORG_ID
  • -
-

INFLUX_ORG_ID is the ID of the organization that you want to remove an owner -from.

- - - - -
Authorizations:
path Parameters
bucketID
required
string

The ID of the bucket to remove an owner from.

-
userID
required
string

The ID of the owner to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "unauthorized",
  • "message": "unauthorized access"
}

Delete

Delete data from an InfluxDB bucket.

-

Delete data

Deletes data from a bucket.

-

NOTE: This endpoint has been disabled for InfluxDB 3 Cloud Serverless organizations. -See how to delete data.

- - -
Authorizations:
query Parameters
bucket
string

A bucket name or ID. -Specifies the bucket to delete data from. -If you pass both bucket and bucketID, bucketID takes precedence.

-
bucketID
string

A bucket ID. -Specifies the bucket to delete data from. -If you pass both bucket and bucketID, bucketID takes precedence.

-
org
string

An organization name or ID.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
-
orgID
string

An organization ID.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Time range parameters and an optional delete predicate expression.

-

To select points to delete within the specified time range, pass a -delete predicate expression in the predicate property of the request body. -If you don't pass a predicate, InfluxDB deletes all data with timestamps -in the specified time range.

-
predicate
string

An expression in delete predicate syntax.

-
start
required
string <date-time>

A timestamp (RFC3339 date/time format). -The earliest time to delete from.

-
stop
required
string <date-time>

A timestamp (RFC3339 date/time format). -The latest time to delete from.

-

Responses

Request samples

Content type
application/json
{
  • "predicate": "tag1=\"value1\" and (tag2=\"value2\" and tag3!=\"value3\")",
  • "start": "2019-08-24T14:15:22Z",
  • "stop": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

DBRPs

The InfluxDB 1.x data model includes databases -and retention policies. -InfluxDB 2.x replaces databases and retention policies with buckets. -To support InfluxDB 1.x query and write patterns in InfluxDB 2.x, -databases and retention policies are mapped to buckets using the -database and retention policy (DBRP) mapping service. -The DBRP mapping service uses the database and retention policy -specified in 1.x compatibility API requests to route operations to a bucket.

- - -

List database retention policy mappings

Lists database retention policy (DBRP) mappings.

- - -
Authorizations:
query Parameters
bucketID
string

A bucket ID. -Only returns DBRP mappings that belong to the specified bucket.

-
db
string

A database. -Only returns DBRP mappings that belong to the 1.x database.

-
default
boolean

Specifies filtering on default

-
id
string

A DBPR mapping ID. -Only returns the specified DBRP mapping.

-
org
string

An organization name. -Only returns DBRP mappings for the specified organization.

-
orgID
string

An organization ID. -Only returns DBRP mappings for the specified organization.

-
rp
string

A retention policy. -Specifies the 1.x retention policy to filter on.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Add a database retention policy mapping

Creates a database retention policy (DBRP) mapping and returns the mapping.

-

Use this endpoint to add InfluxDB 1.x API compatibility to your -InfluxDB Cloud or InfluxDB OSS 2.x buckets. Your buckets must contain a -DBRP mapping in order to query and write using the InfluxDB 1.x API. -object.

- - -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The database retention policy mapping to add.

-

Note that retention_policy is a required parameter in the request body. -The value of retention_policy can be any arbitrary string name or -value, with the default value commonly set as autogen. -The value of retention_policy isn't a retention_policy

-
bucketID
required
string

A bucket ID. -Identifies the bucket used as the target for the translation.

-
database
required
string

A database name. -Identifies the InfluxDB v1 database.

-
default
boolean

Set to true to use this DBRP mapping as the default retention policy -for the database (specified by the database property's value).

-
org
string

An organization name. -Identifies the organization that owns the mapping.

-
orgID
string

An organization ID. -Identifies the organization that owns the mapping.

-
retention_policy
required
string

A retention policy name. -Identifies the InfluxDB v1 retention policy mapping.

-

Responses

Request samples

Content type
application/json
{
  • "bucketID": "string",
  • "database": "string",
  • "default": true,
  • "org": "string",
  • "orgID": "string",
  • "retention_policy": "string"
}

Response samples

Content type
application/json
{
  • "bucketID": "4d4d9d5b61dee751",
  • "database": "example_database",
  • "default": true,
  • "id": "0a3cbb5dd526a000",
  • "orgID": "bea7ea952287f70d",
  • "retention_policy": "autogen"
}

Delete a database retention policy

Deletes the specified database retention policy (DBRP) mapping.

- - -
Authorizations:
path Parameters
dbrpID
required
string

A DBRP mapping ID. -Only returns the specified DBRP mapping.

-
query Parameters
org
string

An organization name. -Specifies the organization that owns the DBRP mapping.

-
orgID
string

An organization ID. -Specifies the organization that owns the DBRP mapping.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json

The query parameters contain invalid values.

-
{
  • "code": "invalid",
  • "message": "invalid ID"
}

Retrieve a database retention policy mapping

Retrieves the specified retention policy (DBRP) mapping.

- - -
Authorizations:
path Parameters
dbrpID
required
string

A DBRP mapping ID. -Specifies the DBRP mapping.

-
query Parameters
org
string

An organization name. -Specifies the organization that owns the DBRP mapping.

-
orgID
string

An organization ID. -Specifies the organization that owns the DBRP mapping.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Update a database retention policy mapping

Authorizations:
path Parameters
dbrpID
required
string

A DBRP mapping ID. -Specifies the DBRP mapping.

-
query Parameters
org
string

An organization name. -Specifies the organization that owns the DBRP mapping.

-
orgID
string

An organization ID. -Specifies the organization that owns the DBRP mapping.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Updates the database retention policy (DBRP) mapping and returns the mapping.

-

Use this endpoint to modify the retention policy (retention_policy property) of a DBRP mapping.

- - -
default
boolean

Set to true to use this DBRP mapping as the default retention policy -for the database (specified by the database property's value). -To remove the default mapping, set to false.

-
retention_policy
string

A retention policy name. -Identifies the InfluxDB v1 retention policy mapping.

-

Responses

Request samples

Content type
application/json
{
  • "default": true,
  • "retention_policy": "string"
}

Response samples

Content type
application/json
{
  • "content": {
    }
}

Invokable Scripts

Store, manage, and execute scripts in InfluxDB. -A script stores your custom Flux script and provides an invokable -endpoint that accepts runtime parameters. -In a script, you can specify custom runtime parameters -(params)--for example, params.myparameter. -Once you create a script, InfluxDB generates an -/api/v2/scripts/SCRIPT_ID/invoke endpoint -for your organization. -You can run the script from API requests and tasks, defining parameter -values for each run. -When the script runs, InfluxDB replaces params references in the -script with the runtime parameter values you define.

-

Use the /api/v2/scripts endpoints to create and manage scripts. -See related guides to learn how to define parameters and execute scripts.

- -

List scripts

Lists scripts.

- -
Authorizations:
query Parameters
limit
integer [ 0 .. 500 ]
Default: 100

The maximum number of scripts to return. Default is 100.

-
name
string

The script name. Lists scripts with the specified name.

-
offset
integer >= 0

The offset for pagination. -The number of records to skip.

-

For more information about pagination parameters, see Pagination.

-

Responses

Request samples

curl --request GET "INFLUX_URL/api/v2/scripts?limit=100&offset=0" \
-  --header "Authorization: Token INFLUX_API_TOKEN" \
-  --header "Accept: application/json" \
-  --header "Content-Type: application/json"
-

Response samples

Content type
application/json
{
  • "scripts": [
    ]
}

Create a script

Creates an invokable script -and returns the script.

- -
Authorizations:
Request Body schema: application/json

The script to create.

-
description
required
string

Script description. A description of the script.

-
language
required
string (ScriptLanguage)
Enum: "flux" "sql"
name
required
string

Script name. The name must be unique within the organization.

-
script
required
string

The script to execute.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "language": "flux",
  • "name": "string",
  • "script": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2022-07-17T23:43:26.660308Z",
  • "description": "getLastPoint finds the last point in a bucket",
  • "id": "09afa23ff13e4000",
  • "language": "flux",
  • "name": "getLastPoint",
  • "orgID": "bea7ea952287f70d",
  • "script": "from(bucket: params.mybucket) |> range(start: -7d) |> limit(n:1)",
  • "updatedAt": "2022-07-17T23:43:26.660308Z"
}

Delete a script

Deletes a script and all associated records.

-

Limitations

-
    -
  • You can delete only one script per request.
  • -
  • If the script ID you provide doesn't exist for the organization, InfluxDB -responds with an HTTP 204 status code.
  • -
- -
Authorizations:
path Parameters
scriptID
required
string

A script ID. -Deletes the specified script.

-

Responses

Request samples

curl -X 'DELETE' \
-  "https://cloud2.influxdata.com/api/v2/scripts/SCRIPT_ID" \
-  --header "Authorization: Token INFLUX_TOKEN" \
-  --header 'Accept: application/json'
-

Response samples

Content type
application/json
{
  • "code": "unauthorized",
  • "message": "unauthorized access"
}

Retrieve a script

Retrieves a script.

- -
Authorizations:
path Parameters
scriptID
required
string

A script ID. -Retrieves the specified script.

-

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2022-07-17T23:49:45.731237Z",
  • "description": "getLastPoint finds the last point in a bucket",
  • "id": "09afa3b220fe4000",
  • "language": "flux",
  • "name": "getLastPoint",
  • "orgID": "bea7ea952287f70d",
  • "script": "from(bucket: my-bucket) |> range(start: -7d) |> limit(n:1)",
  • "updatedAt": "2022-07-17T23:49:45.731237Z"
}

Update a script

Updates an invokable script.

-

Use this endpoint to modify values for script properties (description and script).

-

To update a script, pass an object that contains the updated key-value pairs.

-

Limitations

-
    -
  • If you send an empty request body, the script will neither update nor -store an empty script, but InfluxDB will respond with an HTTP 200 status -code.
  • -
- -
Authorizations:
path Parameters
scriptID
required
string

A script ID. -Updates the specified script.

-
Request Body schema: application/json

An object that contains the updated script properties to apply.

-
description
string

A description of the script.

-
script
string

The script to execute.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "script": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2022-07-17T23:49:45.731237Z",
  • "description": "get last point from new bucket",
  • "id": "09afa3b220fe4000",
  • "language": "flux",
  • "name": "getLastPoint",
  • "orgID": "bea7ea952287f70d",
  • "script": "from(bucket: newBucket) |> range(start: -7d) |> limit(n:1)",
  • "updatedAt": "2022-07-19T22:27:23.185436Z"
}

Invoke a script

Runs a script and returns the result. -When the script runs, InfluxDB replaces params keys referenced in the script with -params key-values passed in the request body--for example:

-

The following sample script contains a mybucket parameter :

-
"script": "from(bucket: params.mybucket)
-            |> range(start: -7d)
-            |> limit(n:1)"
-

The following example POST /api/v2/scripts/SCRIPT_ID/invoke request body -passes a value for the mybucket parameter:

-
{
-  "params": {
-    "mybucket": "air_sensor"
-  }
-}
- -
Authorizations:
path Parameters
scriptID
required
string

A script ID. -Runs the specified script.

-
Request Body schema: application/json
object

The script parameters. -params contains key-value pairs that map values to the params.keys -in a script. -When you invoke a script with params, InfluxDB passes the values as -invocation parameters to the script.

-

Responses

Request samples

Content type
application/json
{
  • "params": { }
}

Response samples

Content type
text/csv
,result,table,_start,_stop,_time,_value,_field,_measurement,host
-,_result,0,2019-10-30T01:28:02.52716421Z,2022-07-26T01:28:02.52716421Z,2020-01-01T00:00:00Z,72.01,used_percent,mem,host2
-

Find script parameters.

Analyzes a script and determines required parameters. -Find all params keys referenced in a script and return a list -of keys. If it is possible to determine the type of the value -from the context then the type is also returned -- for example:

-

The following sample script contains a mybucket parameter :

-
"script": "from(bucket: params.mybucket)
-            |> range(start: -7d)
-            |> limit(n:1)"
-

Requesting the parameters using GET /api/v2/scripts/SCRIPT_ID/params -returns the following:

-
{
-  "params": {
-    "mybucket": "string"
-  }
-}
-

The type name returned for a parameter will be one of:

-
    -
  • any
  • -
  • bool
  • -
  • duration
  • -
  • float
  • -
  • int
  • -
  • string
  • -
  • time
  • -
  • uint
  • -
-

The type name any is used when the type of a parameter cannot -be determined from the context, or the type is determined to -be a structured type such as an array or record.

- -
Authorizations:
path Parameters
scriptID
required
string

A script ID. -The script to analyze for params.

-

Responses

Request samples

curl --request GET "https://cloud2.influxdata.com/api/v2/scripts/SCRIPT_ID/params" \
-          --header "Authorization: Token INFLUX_TOKEN"
-

Response samples

Content type
application/json
{
  • "params": {
    }
}

Limits

Retrieve limits for an organization

Authorizations:
path Parameters
orgID
required
string

The ID of the organization.

-

Responses

Response samples

Content type
application/json
{
  • "limits": {
    },
  • "links": {}
}

Organizations

Manage your organization. -An organization is a workspace for a group of users. Organizations can be -used to separate different environments, projects, teams or users within -InfluxDB.

-

Use the /api/v2/orgs endpoints to view and manage organizations.

-

List organizations

Lists organizations.

-

InfluxDB 3 Cloud Serverless only returns the organization that owns the token passed in the request.

- - -
Authorizations:
query Parameters
descending
boolean
Default: false
limit
integer [ 1 .. 100 ]
Default: 20

Limits the number of records returned. Default is 20.

-
offset
integer >= 0

The offset for pagination. -The number of records to skip.

-

For more information about pagination parameters, see Pagination.

-
org
string

An organization name. -Only returns the specified organization.

-
orgID
string

An organization ID. -Only returns the specified organization.

-
userID
string

A user ID. -Only returns organizations where the specified user is a member or owner.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {
    },
  • "orgs": [
    ]
}

Create an organization

Creates an organization -and returns the newly created organization.

-

InfluxDB 3 Cloud Serverless doesn't allow you to use this endpoint to create organizations.

- - -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The organization to create.

-
description
string

The description of the organization.

-
name
required
string

The name of the organization.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2022-08-24T23:05:52.881317Z",
  • "description": "",
  • "id": "INFLUX_ORG_ID",
  • "links": {
    },
  • "name": "INFLUX_ORG",
  • "updatedAt": "2022-08-24T23:05:52.881318Z"
}

Delete an organization

Deletes an organization.

-

Deleting an organization from InfluxDB Cloud can't be undone. -Once deleted, all data associated with the organization is removed.

-

InfluxDB Cloud

-
    -
  • Does the following when you send a delete request:

    -
      -
    1. Validates the request and queues the delete.
    2. -
    3. Returns an HTTP 204 status code if queued; error otherwise.
    4. -
    5. Handles the delete asynchronously.
    6. -
    -
  • -
-

InfluxDB OSS

-
    -
  • Validates the request, handles the delete synchronously, -and then responds with success or failure.
  • -
-

Limitations

-
    -
  • Only one organization can be deleted per request.
  • -
- - -
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

Retrieve an organization

Retrieves an organization.

-

Use this endpoint to retrieve information for a specific organization.

- - -
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to retrieve.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "defaultStorageType": "tsm",
  • "description": "string",
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update an organization

Updates an organization.

-

Use this endpoint to update properties -(name, description) of an organization.

-

Updating an organization’s name affects all resources that reference the -organization by name, including the following:

-
    -
  • Queries
  • -
  • Dashboards
  • -
  • Tasks
  • -
  • Telegraf configurations
  • -
  • Templates
  • -
-

If you change an organization name, be sure to update the organization name -in these resources as well.

- - -
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to update.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The organization update to apply.

-
description
string

The description of the organization.

-
name
string

The name of the organization.

-

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "defaultStorageType": "tsm",
  • "description": "string",
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List all members of an organization

Lists all users that belong to an organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to retrieve users for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {
    },
  • "users": [
    ]
}

Add a member to an organization

Add a user to an organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The user to add to the organization.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "09cfb87051cbe000",
  • "links": {
    },
  • "name": "example_user_1",
  • "role": "member",
  • "status": "active"
}

Remove a member from an organization

Removes a member from an organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to remove a user from.

-
userID
required
string

The ID of the user to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "unauthorized",
  • "message": "unauthorized access"
}

List all owners of an organization

Lists all owners of an organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to list owners for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {
    },
  • "users": [
    ]
}

Add an owner to an organization

Adds an owner to an organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization that you want to add an owner for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The user to add as an owner of the organization.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "09cfb87051cbe000",
  • "links": {
    },
  • "name": "example_user_1",
  • "role": "owner",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "role": "owner"
}

Remove an owner from an organization

Removes an owner from -the organization.

-

InfluxDB 3 Cloud Serverless doesn't use owner and member roles. -Use /api/v2/authorizations to manage resource permissions.

-
Authorizations:
path Parameters
orgID
required
string

The ID of the organization to remove an owner from.

-
userID
required
string

The ID of the user to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "unauthorized",
  • "message": "unauthorized access"
}

Query

Query data stored in a bucket.

-
    -
  • HTTP clients can query the v1 /query endpoint -using InfluxQL and retrieve data in CSV or JSON format.
  • -
  • Flight + gRPC clients can query using SQL or InfluxQL and retrieve data in Arrow format.
  • -
- - -

Query data Deprecated

Retrieves data from buckets.

-

This endpoint isn't supported in InfluxDB 3 Cloud Serverless.

-

See how to query data.

-
Authorizations:
query Parameters
org
string

An organization name or ID.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
-
orgID
string

An organization ID.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Doesn't use the org parameter or orgID parameter.
  • -
-
header Parameters
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The content encoding (usually a compression algorithm) that the client can understand.

-
Content-Type
string
Enum: "application/json" "application/vnd.flux"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema:

Flux query or specification to execute

-
object (Dialect)

Options for tabular data output. -Default output is annotated CSV with headers.

-

For more information about tabular data dialect, -see W3 metadata vocabulary for tabular data.

-
object (File)

Represents a source from a single file

-
now
string <date-time>

Specifies the time that should be reported as now in the query. -Default is the server now time.

-
object

Key-value pairs passed as parameters during query execution.

-

To use parameters in your query, pass a query with params references (in dot notation)--for example:

-
  query: "from(bucket: params.mybucket)\
-              |> range(start: params.rangeStart) |> limit(n:1)"
-

and pass params with the key-value pairs--for example:

-
  params: {
-    "mybucket": "environment",
-    "rangeStart": "-30d"
-  }
-

During query execution, InfluxDB passes params to your script and substitutes the values.

-

Limitations

-
    -
  • If you use params, you can't use extern.
  • -
-
query
required
string

The query script to execute.

-
type
string
Value: "flux"

The type of query. Must be "flux".

-

Responses

Request samples

Content type
{
  • "dialect": {
    },
  • "extern": {
    },
  • "now": "2019-08-24T14:15:22Z",
  • "params": { },
  • "query": "string",
  • "type": "flux"
}

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

Analyze a Flux query Deprecated

This endpoint isn't supported in InfluxDB 3 Cloud Serverless. -See how to query data.

-
Authorizations:
header Parameters
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Flux query to analyze

-
object (Dialect)

Options for tabular data output. -Default output is annotated CSV with headers.

-

For more information about tabular data dialect, -see W3 metadata vocabulary for tabular data.

-
object (File)

Represents a source from a single file

-
now
string <date-time>

Specifies the time that should be reported as now in the query. -Default is the server now time.

-
object

Key-value pairs passed as parameters during query execution.

-

To use parameters in your query, pass a query with params references (in dot notation)--for example:

-
  query: "from(bucket: params.mybucket)\
-              |> range(start: params.rangeStart) |> limit(n:1)"
-

and pass params with the key-value pairs--for example:

-
  params: {
-    "mybucket": "environment",
-    "rangeStart": "-30d"
-  }
-

During query execution, InfluxDB passes params to your script and substitutes the values.

-

Limitations

-
    -
  • If you use params, you can't use extern.
  • -
-
query
required
string

The query script to execute.

-
type
string
Value: "flux"

The type of query. Must be "flux".

-

Responses

Request samples

Content type
application/json
{
  • "dialect": {
    },
  • "extern": {
    },
  • "now": "2019-08-24T14:15:22Z",
  • "params": { },
  • "query": "string",
  • "type": "flux"
}

Response samples

Content type
application/json

Returns an error object if the Flux query is missing a property key.

-

The following sample query is missing the bucket property key:

-
{
-  "query": "from(: \"iot_center\")\
-  ...
-}
-
{
  • "errors": [
    ]
}

Generate a query Abstract Syntax Tree (AST) Deprecated

This endpoint isn't supported in InfluxDB 3 Cloud Serverless. -See how to query data.

-
Authorizations:
header Parameters
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The Flux query to analyze.

-
query
required
string

The Flux query script to be analyzed.

-

Responses

Request samples

Content type
application/json
{
  • "query": "string"
}

Response samples

Content type
application/json

If the request body contains a missing property key in from(), -returns invalid and problem detail.

-
{
  • "code": "invalid",
  • "message": "invalid AST: loc 1:6-1:19: missing property key"
}

List Flux query suggestions Deprecated

This endpoint isn't supported in InfluxDB 3 Cloud Serverless. -See how to query data.

-
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Request samples

curl --request GET "INFLUX_URL/api/v2/query/suggestions" \
-  --header "Accept: application/json" \
-  --header "Authorization: Token INFLUX_API_TOKEN"
-

Response samples

Content type
text/html

The URL has been permanently moved. Use /api/v2/query/suggestions.

-
<a href="/api/v2/query/suggestions?orgID=INFLUX_ORG_ID">Moved Permanently</a>
-

Retrieve a query suggestion for a branching suggestion Deprecated

This endpoint isn't supported in InfluxDB 3 Cloud Serverless. -See how to query data.

-
Authorizations:
path Parameters
name
required
string

A Flux function name.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json

The requested function doesn't exist.

-
{
  • "code": "internal error",
  • "message": "An internal error has occurred"
}

Query using the InfluxDB v1 HTTP API

Queries InfluxDB using InfluxQL with InfluxDB v1 request and response formats.

- - -
Authorizations:
query Parameters
db
required
string

The database to query data from. -This is mapped to an InfluxDB bucket. -For more information, see Database and retention policy mapping.

-
epoch
string
Enum: "ns" "u" "µ" "ms" "s" "m" "h"

A unix timestamp precision. -Formats timestamps as unix (epoch) timestamps the specified precision -instead of RFC3339 timestamps with nanosecond precision.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
q
required
string

The InfluxQL query to execute. To execute multiple queries, delimit queries with a semicolon (;).

-
rp
string

The retention policy to query data from. -This is mapped to an InfluxDB bucket. -For more information, see Database and retention policy mapping.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Media type that the client can understand.

-

Note: With application/csv, query results include unix timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The content encoding (usually a compression algorithm) that the client can understand.

-
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
No sample

Resources

List all known resources

Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
[
  • "string"
]

Routes

List all top level routes

Retrieves all the top level routes for the InfluxDB API.

-

Limitations

-
    -
  • Only returns top level routes--for example, the response contains -"tasks":"/api/v2/tasks", and doesn't contain resource-specific routes -for tasks (/api/v2/tasks/TASK_ID/...).
  • -
-
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{}

Secrets

List all secret keys for an organization

Authorizations:
path Parameters
orgID
required
string

The organization ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "secrets": [
    ],
  • "links": {
    }
}

Update secrets in an organization

Authorizations:
path Parameters
orgID
required
string

The organization ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Secret key value pairs to update/add

-
property name*
string

Responses

Request samples

Content type
application/json
{
  • "apikey": "abc123xyz"
}

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Delete a secret from an organization

Authorizations:
path Parameters
orgID
required
string

The organization ID.

-
secretID
required
string

The secret ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Delete secrets from an organization Deprecated

Authorizations:
path Parameters
orgID
required
string

The organization ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Secret key to delete

-
secrets
Array of strings

Responses

Request samples

Content type
application/json
{
  • "secrets": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Tasks

Process and analyze your data with tasks -in the InfluxDB task engine. -Use the /api/v2/tasks endpoints to schedule and manage tasks, retry task runs, and retrieve run logs.

-

To configure a task, provide the script and the schedule to run the task. -For examples, see how to create a task with the POST /api/v2/tasks endpoint.

- - -

Properties

-

A task object contains information about an InfluxDB task resource.

-

The following table defines the properties that appear in this object:

-
authorizationID
string

An authorization ID. -Specifies the authorization used when the task communicates with the query engine.

-

To find an authorization ID, use the -GET /api/v2/authorizations endpoint to -list authorizations.

-
createdAt
string <date-time>
cron
string

A Cron expression that defines the schedule on which the task runs. InfluxDB uses the system time when evaluating Cron expressions.

-
description
string

A description of the task.

-
every
string <duration>

The interval (duration literal) at which the task runs. every also determines when the task first runs, depending on the specified time.

-
flux
string <flux>

The Flux script that the task executes.

-

Limitations

-
    -
  • If you use the flux property, you can't use the scriptID and scriptParameters properties.
  • -
-
id
required
string
Array of objects (Labels)
lastRunError
string
lastRunStatus
string
Enum: "failed" "success" "canceled"
latestCompleted
string <date-time>

A timestamp (RFC3339 date/time format) of the latest scheduled and completed run.

-
object
name
required
string

The name of the task.

-
offset
string <duration>

A duration to delay execution of the task after the scheduled time has elapsed. 0 removes the offset.

-
org
string

An organization name. -Specifies the organization that owns the task.

-
orgID
required
string

An organization ID. -Specifies the organization that owns the task.

-
ownerID
string

A user ID. -Specifies the owner of the task.

-

To find a user ID, you can use the -GET /api/v2/users endpoint to -list users.

-
scriptID
string

A script ID. -Specifies the invokable script that the task executes.

-

Limitations

-
    -
  • If you use the scriptID property, you can't use the flux property.
  • -
- -
scriptParameters
object

Key-value pairs for params in the script. -Defines the invocation parameter values passed to the script specified by scriptID. -When running the task, InfluxDB executes the script with the parameters -you provide.

-

Limitations

-
    -
  • To use scriptParameters, you must provide a scriptID.
  • -
  • If you use the scriptID and scriptParameters properties, you can't use the flux property.
  • -
-
status
string (TaskStatusType)
Enum: "active" "inactive"

inactive cancels scheduled runs and prevents manual runs of the task.

-
updatedAt
string <date-time>
{
  • "authorizationID": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "id": "string",
  • "labels": [
    ],
  • "lastRunError": "string",
  • "lastRunStatus": "failed",
  • "latestCompleted": "2019-08-24T14:15:22Z",
  • "links": {
    },
  • "name": "string",
  • "offset": "string",
  • "org": "string",
  • "orgID": "string",
  • "ownerID": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}
-

List all tasks

Retrieves a list of tasks.

-

To limit which tasks are returned, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all tasks up to the default limit.

-
Authorizations:
query Parameters
after
string

A task ID. -Only returns tasks created after the specified task.

-
limit
integer [ -1 .. 500 ]
Default: 100
Examples:
  • limit=-1 - Return all tasks, without pagination.
  • limit=50 - Return a maximum of 50 tasks.

The maximum number of tasks to return. -Default is 100. -The minimum is 1 and the maximum is 500.

-

To reduce the payload size, combine type=basic and limit (see Request samples). -For more information about the basic response, see the type parameter.

-
name
string

A task name. -Only returns tasks with the specified name. -Different tasks may have the same name.

-
offset
integer >= 0
Default: 0

The number of records to skip.

-
org
string

An organization name. -Only returns tasks owned by the specified organization.

-
orgID
string

An organization ID. -Only returns tasks owned by the specified organization.

-
scriptID
string

A script ID. -Only returns tasks that use the specified invokable script.

-
sortBy
string
Value: "name"

The sort field. Only name is supported. -Specifies the field used to sort records in the list.

-
status
string
Enum: "active" "inactive"

A task status. -Only returns tasks that have the specified status (active or inactive).

-
type
string
Default: ""
Enum: "basic" "system"

A task type (basic or system). -Default is system. -Specifies the level of detail for tasks in the response. -The default (system) response contains all the metadata properties for tasks. -To reduce the response size, pass basic to omit some task properties (flux, createdAt, updatedAt).

-
user
string

A user ID. -Only returns tasks owned by the specified user.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Request samples

curl INFLUX_URL/api/v2/tasks/?limit=-1&type=basic \
-  --header 'Content-Type: application/json' \
-  --header 'Authorization: Token INFLUX_API_TOKEN'
-

Response samples

Content type
application/json
Example

A sample response body for the ?type=basic parameter. -type=basic omits some task fields (createdAt and updatedAt) -and field values (org, flux) in the response.

-
{
  • "links": {
    },
  • "tasks": [
    ]
}

Create a task

Creates a task and returns the task.

-

Use this endpoint to create a scheduled task that runs a Flux script.

-

InfluxDB Cloud

-
    -
  • You can use either flux or scriptID to provide the task script.

    -
      -
    • flux: a string of "raw" Flux that contains task options and the script--for example:

      -
      {
      -  "flux": "option task = {name: \"CPU Total 1 Hour New\", every: 1h}\
      -  from(bucket: \"telegraf\")
      -    |> range(start: -1h)
      -    |> filter(fn: (r) => (r._measurement == \"cpu\"))
      -    |> filter(fn: (r) =>\n\t\t(r._field == \"usage_system\"))
      -    |> filter(fn: (r) => (r.cpu == \"cpu-total\"))
      -    |> aggregateWindow(every: 1h, fn: max)
      -    |> to(bucket: \"cpu_usage_user_total_1h\", org: \"INFLUX_ORG\")",
      -  "status": "active",
      -  "description": "This task downsamples CPU data every hour"
      -}
      -
    • -
    • scriptID: the ID of an invokable script -for the task to run. -To pass task options when using scriptID, pass the options as -properties in the request body--for example:

      -
      {
      -  "name": "CPU Total 1 Hour New",
      -  "description": "This task downsamples CPU data every hour",
      -  "every": "1h",
      -  "scriptID": "SCRIPT_ID",
      -  "scriptParameters":
      -    {
      -      "rangeStart": "-1h",
      -      "bucket": "telegraf",
      -      "filterField": "cpu-total"
      -    }
      -  }
      -
    • -
    -
  • -
-

Limitations:

-
    -
  • You can't use flux and scriptID for the same task.
  • -
- -
Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

The task to create

-
cron
string

A Cron expression that defines the schedule on which the task runs. InfluxDB bases cron runs on the system time.

-
description
string

The description of the task.

-
every
string

The interval (duration literal)) at which the task runs. -every also determines when the task first runs, depending on the specified time.

-
flux
string

The Flux script that the task runs.

-

Limitations

-
    -
  • If you use the flux property, you can't use the scriptID and scriptParameters properties.
  • -
-
name
string

The name of the task

-
offset
string <duration>

A duration to delay execution of the task after the scheduled time has elapsed. 0 removes the offset.

-
org
string

The name of the organization that owns the task.

-
orgID
string

The ID of the organization that owns the task.

-
scriptID
string

The ID of the script that the task runs.

-

Limitations

-
    -
  • If you use the scriptID property, you can't use the flux property.
  • -
-
scriptParameters
object

The parameter key-value pairs passed to the script (referenced by scriptID) during the task run.

-

Limitations

-
    -
  • scriptParameters requires scriptID.
  • -
  • If you use the scriptID and scriptParameters properties, you can't use the flux property.
  • -
-
status
string (TaskStatusType)
Enum: "active" "inactive"

inactive cancels scheduled runs and prevents manual runs of the task.

-

Responses

Request samples

Content type
application/json
{
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "name": "string",
  • "offset": "string",
  • "org": "string",
  • "orgID": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "authorizationID": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "id": "string",
  • "labels": [
    ],
  • "lastRunError": "string",
  • "lastRunStatus": "failed",
  • "latestCompleted": "2019-08-24T14:15:22Z",
  • "links": {
    },
  • "name": "string",
  • "offset": "string",
  • "org": "string",
  • "orgID": "string",
  • "ownerID": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a task

Deletes a task and associated records.

-

Use this endpoint to delete a task and all associated records (task runs, logs, and labels). -Once the task is deleted, InfluxDB cancels all scheduled runs of the task.

-

If you want to disable a task instead of delete it, update the task status to inactive.

-
Authorizations:
path Parameters
taskID
required
string

A task ID. Specifies the task to delete.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

Retrieve a task

Retrieves a task.

-
Authorizations:
path Parameters
taskID
required
string

A task ID. -Specifies the task to retrieve.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "authorizationID": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "id": "string",
  • "labels": [
    ],
  • "lastRunError": "string",
  • "lastRunStatus": "failed",
  • "latestCompleted": "2019-08-24T14:15:22Z",
  • "links": {
    },
  • "name": "string",
  • "offset": "string",
  • "org": "string",
  • "orgID": "string",
  • "ownerID": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a task

Updates a task, -and then cancels all scheduled runs of the task.

-

Use this endpoint to set, modify, or clear task properties--for example: cron, name, flux, status. -Once InfluxDB applies the update, it cancels all previously scheduled runs of the task.

-

To update a task, pass an object that contains the updated key-value pairs. -To activate or inactivate a task, set the status property. -"status": "inactive" cancels scheduled runs and prevents manual runs of the task.

-

InfluxDB Cloud

-
    -
  • Use either flux or scriptID to provide the task script.

    -
      -
    • flux: a string of "raw" Flux that contains task options and the script--for example:

      -
      {
      -  "flux": "option task = {name: \"CPU Total 1 Hour New\", every: 1h}\
      -  from(bucket: \"telegraf\")
      -    |> range(start: -1h)
      -    |> filter(fn: (r) => (r._measurement == \"cpu\"))
      -    |> filter(fn: (r) =>\n\t\t(r._field == \"usage_system\"))
      -    |> filter(fn: (r) => (r.cpu == \"cpu-total\"))
      -    |> aggregateWindow(every: 1h, fn: max)
      -    |> to(bucket: \"cpu_usage_user_total_1h\", org: \"INFLUX_ORG\")",
      -  "status": "active",
      -  "description": "This task downsamples CPU data every hour"
      -}
      -
    • -
    • scriptID: the ID of an invokable script -for the task to run. -To pass task options when using scriptID, pass the options as -properties in the request body--for example:

      -
      {
      -  "name": "CPU Total 1 Hour New",
      -  "description": "This task downsamples CPU data every hour",
      -  "every": "1h",
      -  "scriptID": "SCRIPT_ID",
      -  "scriptParameters":
      -    {
      -      "rangeStart": "-1h",
      -      "bucket": "telegraf",
      -      "filterField": "cpu-total"
      -    }
      -  }
      -
    • -
    -
  • -
-

Limitations:

-
    -
  • You can't use flux and scriptID for the same task.
  • -
-
Authorizations:
path Parameters
taskID
required
string

A task ID. -Specifies the task to update.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

An task update to apply.

-
cron
string

Update the 'cron' option in the flux script.

-
description
string

Update the description of the task.

-
every
string

Update the 'every' option in the flux script.

-
flux
string

Update the Flux script that the task runs.

-
name
string

Update the 'name' option in the flux script.

-
offset
string

Update the 'offset' option in the flux script.

-
scriptID
string

Update the 'scriptID' of the task.

-
scriptParameters
object

Update the 'scriptParameters' of the task.

-
status
string (TaskStatusType)
Enum: "active" "inactive"

inactive cancels scheduled runs and prevents manual runs of the task.

-

Responses

Request samples

Content type
application/json
{
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "name": "string",
  • "offset": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "authorizationID": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cron": "string",
  • "description": "string",
  • "every": "string",
  • "flux": "string",
  • "id": "string",
  • "labels": [
    ],
  • "lastRunError": "string",
  • "lastRunStatus": "failed",
  • "latestCompleted": "2019-08-24T14:15:22Z",
  • "links": {
    },
  • "name": "string",
  • "offset": "string",
  • "org": "string",
  • "orgID": "string",
  • "ownerID": "string",
  • "scriptID": "string",
  • "scriptParameters": { },
  • "status": "active",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List labels for a task

Retrieves a list of all labels for a task.

-

Labels may be used for grouping and filtering tasks.

-
Authorizations:
path Parameters
taskID
required
string

The ID of the task to retrieve labels for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{}

Add a label to a task

Adds a label to a task.

-

Use this endpoint to add a label that you can use to filter tasks in the InfluxDB UI.

-
Authorizations:
path Parameters
taskID
required
string

The ID of the task to label.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

An object that contains a labelID to add to the task.

-
labelID
required
string

A label ID. -Specifies the label to attach.

-

Responses

Request samples

Content type
application/json
{
  • "labelID": "string"
}

Response samples

Content type
application/json
{}

Delete a label from a task

Deletes a label from a task.

-
Authorizations:
path Parameters
labelID
required
string

The ID of the label to delete.

-
taskID
required
string

The ID of the task to delete the label from.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

Retrieve all logs for a task

Retrieves a list of all logs for a task.

-

When an InfluxDB task runs, a “run” record is created in the task’s history. -Logs associated with each run provide relevant log messages, timestamps, and the exit status of the run attempt.

-

Use this endpoint to retrieve only the log events for a task, -without additional task metadata.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
Example
{
  • "events": [
    ]
}

List all task members Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-

Lists all users that have the member role for the specified task.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {},
  • "users": [
    ]
}

Add a member to a task Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-

Adds a user to members of a task and returns the member.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

A user to add as a member of the task.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "role": "member"
}

Remove a member from a task Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-

Removes a member from a task.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
userID
required
string

The ID of the member to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

List all owners of a task Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-

Retrieves all users that have owner permission for a task.

-
Authorizations:
path Parameters
taskID
required
string

The ID of the task to retrieve owners for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {},
  • "users": [
    ]
}

Add an owner for a task Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-

Assigns a task owner role to a user.

-

Use this endpoint to create a resource owner for the task. -A resource owner is a user with role: owner for a specific resource.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

A user to add as an owner of the task.

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "0772396d1f411000",
  • "links": {
    },
  • "name": "USER_NAME",
  • "role": "owner",
  • "status": "active"
}

Remove an owner from a task Deprecated

Deprecated: Tasks don't use owner and member roles. -Use /api/v2/authorizations to assign user permissions.

-
Authorizations:
path Parameters
taskID
required
string

The task ID.

-
userID
required
string

The ID of the owner to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

List runs for a task

Retrieves a list of runs for a task.

-

To limit which task runs are returned, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all task runs up to the default limit.

- -
Authorizations:
path Parameters
taskID
required
string

The ID of the task to get runs for. -Only returns runs for this task.

-
query Parameters
after
string

A task run ID. Only returns runs created after this run.

-
afterTime
string <date-time>

A timestamp (RFC3339 date/time format). -Only returns runs scheduled after this time.

-
beforeTime
string <date-time>

A timestamp (RFC3339 date/time format). -Only returns runs scheduled before this time.

-
limit
integer [ 1 .. 500 ]
Default: 100

Limits the number of task runs returned. Default is 100.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {},
  • "runs": [
    ]
}

Start a task run, overriding the schedule

Schedules a task run to start immediately, ignoring scheduled runs.

-

Use this endpoint to manually start a task run. -Scheduled runs will continue to run as scheduled. -This may result in concurrently running tasks.

-

To retry a previous run (and avoid creating a new run), -use the POST /api/v2/tasks/{taskID}/runs/{runID}/retry endpoint.

- -
Authorizations:
path Parameters
taskID
required
string
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json
scheduledFor
string or null <date-time>

The time RFC3339 date/time format -used for the run's now option. -Default is the server now time.

-

Responses

Request samples

Content type
application/json
{
  • "scheduledFor": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "finishedAt": "2006-01-02T15:04:05.999999999Z07:00",
  • "flux": "string",
  • "id": "string",
  • "links": {
    },
  • "log": [
    ],
  • "requestedAt": "2006-01-02T15:04:05.999999999Z07:00",
  • "scheduledFor": "2019-08-24T14:15:22Z",
  • "startedAt": "2006-01-02T15:04:05.999999999Z07:00",
  • "status": "scheduled",
  • "taskID": "string"
}

Cancel a running task

Cancels a running task.

-

Use this endpoint with InfluxDB OSS to cancel a running task.

-

InfluxDB Cloud

-
    -
  • Doesn't support this operation. -
  • -
-
Authorizations:
path Parameters
runID
required
string

The ID of the task run to cancel.

-
taskID
required
string

The ID of the task to cancel.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to decode request body: organization not found"
}

Retrieve a run for a task.

Retrieves a specific run for a task.

-

Use this endpoint to retrieve detail and logs for a specific task run.

- -
Authorizations:
path Parameters
runID
required
string

The ID of the run to retrieve.

-
taskID
required
string

The ID of the task to retrieve runs for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "finishedAt": "2022-07-18T14:46:07.308254Z",
  • "id": "09b070dadaa7d000",
  • "links": {
    },
  • "log": [
    ],
  • "requestedAt": "2022-07-18T14:46:06Z",
  • "scheduledFor": "2022-07-18T14:46:06Z",
  • "startedAt": "2022-07-18T14:46:07.16222Z",
  • "status": "success",
  • "taskID": "0996e56b2f378000"
}

Retrieve all logs for a run

Retrieves all logs for a task run. -A log is a list of run events with runID, time, and message properties.

-

Use this endpoint to help analyze task performance and troubleshoot failed task runs.

- -
Authorizations:
path Parameters
runID
required
string

The ID of the run to get logs for.

-
taskID
required
string

The ID of the task to get logs for.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
Example
{
  • "events": [
    ]
}

Retry a task run

Queues a task run to -retry and returns the scheduled run.

-

To manually start a new task run, use the -POST /api/v2/tasks/{taskID}/runs endpoint.

-

Limitations

-
    -
  • The task must be active (status: "active").
  • -
-
Authorizations:
path Parameters
runID
required
string

A task run ID. -Specifies the task run to retry.

-

To find a task run ID, use the -GET /api/v2/tasks/{taskID}/runs endpoint -to list task runs.

-
taskID
required
string

A task ID. -Specifies the task to retry.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json; charset=utf-8
object

Responses

Request samples

Content type
application/json; charset=utf-8
{ }

Response samples

Content type
application/json
{
  • "id": "09d60ffe08738000",
  • "links": {
    },
  • "requestedAt": "2022-08-16T20:05:11.84145Z",
  • "scheduledFor": "2022-08-15T00:00:00Z",
  • "status": "scheduled",
  • "taskID": "09a776832f381000"
}

Telegrafs

List all Telegraf configurations

Authorizations:
query Parameters
orgID
string

The organization ID the Telegraf config belongs to.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Create a Telegraf configuration

Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Telegraf configuration to create

-
config
string
description
string
object
name
string
orgID
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "config": "string",
  • "description": "string",
  • "metadata": {
    },
  • "name": "string",
  • "orgID": "string",
  • "plugins": [
    ]
}

Response samples

Content type
application/json
{
  • "config": "string",
  • "description": "string",
  • "metadata": {
    },
  • "name": "string",
  • "orgID": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {
    }
}

Delete a Telegraf configuration

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf configuration ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Retrieve a Telegraf configuration

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf configuration ID.

-
header Parameters
Accept
string
Default: application/toml
Enum: "application/toml" "application/json" "application/octet-stream"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
{
  • "config": "string",
  • "description": "string",
  • "metadata": {
    },
  • "name": "string",
  • "orgID": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {
    }
}

Update a Telegraf configuration

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Telegraf configuration update to apply

-
config
string
description
string
object
name
string
orgID
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "config": "string",
  • "description": "string",
  • "metadata": {
    },
  • "name": "string",
  • "orgID": "string",
  • "plugins": [
    ]
}

Response samples

Content type
application/json
{
  • "config": "string",
  • "description": "string",
  • "metadata": {
    },
  • "name": "string",
  • "orgID": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {
    }
}

List all labels for a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{}

Add a label to a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Label to add

-
labelID
required
string

A label ID. -Specifies the label to attach.

-

Responses

Request samples

Content type
application/json
{
  • "labelID": "string"
}

Response samples

Content type
application/json
{}

Delete a label from a Telegraf config

Authorizations:
path Parameters
labelID
required
string

The label ID.

-
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

List all users with member privileges for a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {},
  • "users": [
    ]
}

Add a member to a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

User to add as member

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "role": "member"
}

Remove a member from a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
userID
required
string

The ID of the member to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

List all owners of a Telegraf configuration

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf configuration ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "links": {},
  • "users": [
    ]
}

Add an owner to a Telegraf configuration

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf configuration ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

User to add as owner

-
id
required
string

The ID of the user to add to the resource.

-
name
string

The name of the user to add to the resource.

-

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "links": {
    },
  • "name": "string",
  • "status": "active",
  • "role": "owner"
}

Remove an owner from a Telegraf config

Authorizations:
path Parameters
telegrafID
required
string

The Telegraf config ID.

-
userID
required
string

The ID of the owner to remove.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Templates

Export and apply InfluxDB templates. -Manage stacks of templated InfluxDB resources.

-

InfluxDB templates are prepackaged configurations for resources. -Use InfluxDB templates to configure a fresh instance of InfluxDB, -back up your dashboard configuration, or share your configuration.

-

Use the /api/v2/templates endpoints to export templates and apply templates.

-

InfluxDB stacks are stateful InfluxDB templates that let you -add, update, and remove installed template resources over time, avoid duplicating -resources when applying the same or similar templates more than once, and -apply changes to distributed instances of InfluxDB OSS or InfluxDB Cloud.

-

Use the /api/v2/stacks endpoints to manage installed template resources.

- -

List installed stacks

Lists installed InfluxDB stacks.

-

To limit stacks in the response, pass query parameters in your request. -If no query parameters are passed, InfluxDB returns all installed stacks -for the organization.

- -
Authorizations:
query Parameters
name
string
Examples:
  • name=project-stack-0 - Find stacks with the event name

A stack name. -Finds stack events with this name and returns the stacks.

-

Repeatable. -To filter for more than one stack name, -repeat this parameter with each name--for example:

-
    -
  • INFLUX_URL/api/v2/stacks?&orgID=INFLUX_ORG_ID&name=project-stack-0&name=project-stack-1
  • -
-
orgID
required
string

An organization ID. -Only returns stacks owned by the specified organization.

-

InfluxDB Cloud

-
    -
  • Doesn't require this parameter; -InfluxDB only returns resources allowed by the API token.
  • -
-
stackID
string
Examples:
  • stackID=09bd87cd33be3000 - Find a stack with the ID

A stack ID. -Only returns the specified stack.

-

Repeatable. -To filter for more than one stack ID, -repeat this parameter with each ID--for example:

-
    -
  • INFLUX_URL/api/v2/stacks?&orgID=INFLUX_ORG_ID&stackID=09bd87cd33be3000&stackID=09bef35081fe3000
  • -
-

Responses

Response samples

Content type
application/json
{
  • "stacks": [
    ]
}

Create a stack

Creates or initializes a stack.

-

Use this endpoint to manually initialize a new stack with the following -optional information:

-
    -
  • Stack name
  • -
  • Stack description
  • -
  • URLs for template manifest files
  • -
-

To automatically create a stack when applying templates, -use the /api/v2/templates/apply endpoint.

-

Required permissions

-
    -
  • write permission for the organization
  • -
- -
Authorizations:
Request Body schema: application/json

The stack to create.

-
description
string
name
string
orgID
string
urls
Array of strings

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "orgID": "string",
  • "urls": [
    ]
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "events": [
    ],
  • "id": "string",
  • "orgID": "string"
}

Delete a stack and associated resources

Authorizations:
path Parameters
stack_id
required
string

The identifier of the stack.

-
query Parameters
orgID
required
string

The identifier of the organization.

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Retrieve a stack

Authorizations:
path Parameters
stack_id
required
string

The identifier of the stack.

-

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "events": [
    ],
  • "id": "string",
  • "orgID": "string"
}

Update a stack

Authorizations:
path Parameters
stack_id
required
string

The identifier of the stack.

-
Request Body schema: application/json

The stack to update.

-
Array of objects
description
string or null
name
string or null
templateURLs
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "additionalResources": [
    ],
  • "description": "string",
  • "name": "string",
  • "templateURLs": [
    ]
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "events": [
    ],
  • "id": "string",
  • "orgID": "string"
}

Uninstall a stack

Authorizations:
path Parameters
stack_id
required
string

The identifier of the stack.

-

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "events": [
    ],
  • "id": "string",
  • "orgID": "string"
}

Apply or dry-run a template

Applies a template to -create or update a stack of InfluxDB -resources. -The response contains the diff of changes and the stack ID.

-

Use this endpoint to install an InfluxDB template to an organization. -Provide template URLs or template objects in your request. -To customize which template resources are installed, use the actions -parameter.

-

By default, when you apply a template, InfluxDB installs the template to -create and update stack resources and then generates a diff of the changes. -If you pass dryRun: true in the request body, InfluxDB validates the -template and generates the resource diff, but doesn’t make any -changes to your instance.

-

Custom values for templates

-
    -
  • Some templates may contain environment references for custom metadata. -To provide custom values for environment references, pass the envRefs -property in the request body.

    -
  • -
  • Some templates may contain queries that use -secrets. -To provide custom secret values, pass the secrets property -in the request body. -Don't expose secret values in templates.

    -
  • -
-

Required permissions

-
    -
  • write permissions for resource types in the template.
  • -
-

Rate limits (with InfluxDB Cloud)

- - -
Authorizations:
Request Body schema:

Parameters for applying templates.

-
Array of objects or objects

A list of action objects. -Actions let you customize how InfluxDB applies templates in the request.

-

You can use the following actions to prevent creating or updating resources:

-
    -
  • A skipKind action skips template resources of a specified kind.
  • -
  • A skipResource action skips template resources with a specified metadata.name -and kind.
  • -
-
dryRun
boolean

Only applies a dry run of the templates passed in the request.

-
    -
  • Validates the template and generates a resource diff and summary.
  • -
  • Doesn't install templates or make changes to the InfluxDB instance.
  • -
-
object

An object with key-value pairs that map to environment references in templates.

-

Environment references in templates are envRef objects with an envRef.key -property. -To substitute a custom environment reference value when applying templates, -pass envRefs with the envRef.key and the value.

-

When you apply a template, InfluxDB replaces envRef objects in the template -with the values that you provide in the envRefs parameter.

-

The following template fields may use environment references:

-
    -
  • metadata.name
  • -
  • spec.endpointName
  • -
  • spec.associations.name
  • -
- -
orgID
string

Organization ID. -InfluxDB applies templates to this organization. -The organization owns all resources created by the template.

-

To find your organization, see how to -view organizations.

-
Array of objects

A list of URLs for template files.

-

To apply a template manifest file located at a URL, pass remotes -with an array that contains the URL.

-
object

An object with key-value pairs that map to secrets in queries.

-

Queries may reference secrets stored in InfluxDB--for example, -the following Flux script retrieves POSTGRES_USERNAME and POSTGRES_PASSWORD -secrets and then uses them to connect to a PostgreSQL database:

-
import "sql"
-import "influxdata/influxdb/secrets"
-
-username = secrets.get(key: "POSTGRES_USERNAME")
-password = secrets.get(key: "POSTGRES_PASSWORD")
-
-sql.from(
-  driverName: "postgres",
-  dataSourceName: "postgresql://${username}:${password}@localhost:5432",
-  query: "SELECT * FROM example_table",
-)
-

To define secret values in your /api/v2/templates/apply request, -pass the secrets parameter with key-value pairs--for example:

-
{
-  ...
-  "secrets": {
-    "POSTGRES_USERNAME": "pguser",
-    "POSTGRES_PASSWORD": "foo"
-  }
-  ...
-}
-

InfluxDB stores the key-value pairs as secrets that you can access with secrets.get(). -Once stored, you can't view secret values in InfluxDB.

- -
stackID
string

ID of the stack to update.

-

To apply templates to an existing stack in the organization, use the stackID parameter. -If you apply templates without providing a stack ID, -InfluxDB initializes a new stack with all new resources.

-

To find a stack ID, use the InfluxDB /api/v2/stacks API endpoint to list stacks.

- -
object

A template object to apply. -A template object has a contents property -with an array of InfluxDB resource configurations.

-

Pass template to apply only one template object. -If you use template, you can't use the templates parameter. -If you want to apply multiple template objects, use templates instead.

-
Array of objects

A list of template objects to apply. -A template object has a contents property -with an array of InfluxDB resource configurations.

-

Use the templates parameter to apply multiple template objects. -If you use templates, you can't use the template parameter.

-

Responses

Request samples

Content type
Example
{
  • "actions": [
    ],
  • "orgID": "INFLUX_ORG_ID",
  • "templates": [
    ]
}

Response samples

Content type
application/json
{
  • "diff": {
    },
  • "errors": [
    ],
  • "sources": [
    ],
  • "stackID": "string",
  • "summary": {
    }
}

Export a new template

Authorizations:
Request Body schema: application/json

Export resources as an InfluxDB template.

-
One of
Array of objects
Array of objects
stackID
string

Responses

Request samples

Content type
application/json
Example
{
  • "orgIDs": [
    ],
  • "resources": [
    ],
  • "stackID": "string"
}

Response samples

Content type
[
  • {
    }
]

Usage

Retrieve usage for an organization

Authorizations:
path Parameters
orgID
required
string

The ID of the organization.

-
query Parameters
raw
boolean
Default: false

return raw usage data

-
start
required
integer <unix timestamp>

Earliest time (unix timestamp format) to include in results.

-
stop
integer <unix timestamp>

Latest time (unix timestamp format) to include in results.

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Variables

List all variables

Authorizations:
query Parameters
org
string

The name of the organization.

-
orgID
string

The organization ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "variables": [
    ]
}

Create a variable

Authorizations:
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Variable to create

-
required
QueryVariableProperties (object) or ConstantVariableProperties (object) or MapVariableProperties (object) (VariableProperties)
createdAt
string <date-time>
description
string
Array of objects (Labels)
name
required
string
orgID
required
string
selected
Array of strings
sort_order
integer
updatedAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "labels": [
    ],
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {},
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Retrieve a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {},
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Variable update to apply

-
required
QueryVariableProperties (object) or ConstantVariableProperties (object) or MapVariableProperties (object) (VariableProperties)
createdAt
string <date-time>
description
string
Array of objects (Labels)
name
required
string
orgID
required
string
selected
Array of strings
sort_order
integer
updatedAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "labels": [
    ],
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {},
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Replace a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Variable to replace

-
required
QueryVariableProperties (object) or ConstantVariableProperties (object) or MapVariableProperties (object) (VariableProperties)
createdAt
string <date-time>
description
string
Array of objects (Labels)
name
required
string
orgID
required
string
selected
Array of strings
sort_order
integer
updatedAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "labels": [
    ],
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "arguments": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "id": "string",
  • "labels": [
    ],
  • "links": {},
  • "name": "string",
  • "orgID": "string",
  • "selected": [
    ],
  • "sort_order": 0,
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List all labels for a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{}

Add a label to a variable

Authorizations:
path Parameters
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: application/json

Label to add

-
labelID
required
string

A label ID. -Specifies the label to attach.

-

Responses

Request samples

Content type
application/json
{
  • "labelID": "string"
}

Response samples

Content type
application/json
{}

Delete a label from a variable

Authorizations:
path Parameters
labelID
required
string

The label ID to delete.

-
variableID
required
string

The variable ID.

-
header Parameters
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "err": "string",
  • "message": "string",
  • "op": "string"
}

Write

Write time series data to buckets using InfluxDB v1 or v2 endpoints.

-

Write data

Writes data to a bucket.

-

Use this endpoint to send data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Serverless does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: All data in the batch is ingested.
    • -
    • 400 Bad Request: Data from the batch was rejected and not written. The response body indicates if a partial write occurred.
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Serverless.

- -

Rate limits

-

Write rate limits apply. -For more information, see limits and adjustable quotas.

- - -
Authorizations:
query Parameters
bucket
required
string

A bucket name or ID. -InfluxDB writes all points in the batch to the specified bucket.

-
org
required
string

An organization name or ID.

-

InfluxDB 3 Cloud Serverless writes data to the bucket in the organization associated with the authorization (API token); -doesn't use the org parameter or orgID parameter.

-
orgID
string

An organization ID.

-

InfluxDB 3 Cloud Serverless writes data to the bucket in the organization associated with the authorization (API token); -doesn't use the org parameter or orgID parameter.

-
precision
string (WritePrecision)
Enum: "ms" "s" "us" "ns"

The precision for unix timestamps in the line protocol batch.

-
header Parameters
Accept
string
Default: application/json
Value: "application/json"

The content type that the client can understand. -Writes only return a response body if they fail--for example, -due to a formatting problem or quota limit.

-

InfluxDB 3 Cloud Serverless

-
    -
  • Returns only application/json for format and limit errors.
  • -
  • Returns only text/html for some quota limit errors.
  • -
- - -
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

The compression applied to the line protocol in the request payload. -To send a gzip payload, pass Content-Encoding: gzip header.

-
Content-Length
integer

The size of the entity-body, in bytes, sent to InfluxDB. -If the length is greater than the max body configuration option, -the server responds with status code 413.

-
Content-Type
string
Default: text/plain; charset=utf-8
Enum: "text/plain" "text/plain; charset=utf-8"

The format of the data in the request body. -To send a line protocol payload, pass Content-Type: text/plain; charset=utf-8.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

In the request body, provide data in line protocol format.

-

To send compressed data, do the following:

-
    -
  1. Use gzip to compress the line protocol data.
  2. -
  3. In your request, send the compressed data and the -Content-Encoding: gzip header.
  4. -
- - -
string <byte>

Responses

Request samples

Content type
text/plain
airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
-airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
-

Response samples

Content type
application/json
Example
{
  • "code": "invalid",
  • "line": 2,
  • "message": "no data written, errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}

Write data using the InfluxDB v1 HTTP API

Writes data to a bucket.

-

Use this endpoint for InfluxDB v1 parameter compatibility when sending data in line protocol format to InfluxDB.

-

InfluxDB 3 Cloud Serverless does the following when you send a write request:

-
    -
  1. Validates the request.

    -
  2. -
  3. If successful, attempts to ingest data from the request body; otherwise, responds with an error status.

    -
  4. -
  5. Ingests or rejects data in the batch and returns one of the following HTTP status codes:

    -
      -
    • 204 No Content: all data in the batch is ingested
    • -
    • 201 Created: some points in the batch are ingested and queryable, and some points are rejected
    • -
    • 400 Bad Request: all data is rejected
    • -
    -
  6. -
-

The response body contains error details about rejected points, up to 100 points.

-

Writes are synchronous--the response status indicates the final status of the write and all ingested data is queryable.

-

To ensure that InfluxDB handles writes in the order you request them, -wait for the response before you send the next request.

-

Write endpoints

-

The /write and /api/v2/write endpoints are functionally equivalent for writing data to InfluxDB 3 Cloud Serverless.

- -

Rate limits

-

Write rate limits apply. -For more information, see limits and adjustable quotas.

- - -
Authorizations:
query Parameters
db
required
string

Bucket to write to. If none exists, InfluxDB creates a bucket with a default 3-day retention policy.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, indicates that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "line": 2,
  • "message": "failed to parse line protocol: errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}
- - - - - diff --git a/content/influxdb3/cloud-serverless/reference/sql/functions/binary-string.md b/content/influxdb3/cloud-serverless/reference/sql/functions/binary-string.md new file mode 100644 index 000000000..1bf81bfc1 --- /dev/null +++ b/content/influxdb3/cloud-serverless/reference/sql/functions/binary-string.md @@ -0,0 +1,19 @@ +--- +title: SQL binary string functions +list_title: Binary string functions +description: > + Use binary string functions to encode and decode binary string values in + SQL queries. +menu: + influxdb3_cloud_serverless: + name: Binary string + parent: sql-functions +weight: 308 + +source: /content/shared/sql-reference/functions/binary-string.md +--- + + diff --git a/content/influxdb3/cloud-serverless/reference/sql/functions/hashing.md b/content/influxdb3/cloud-serverless/reference/sql/functions/hashing.md new file mode 100644 index 000000000..5d4b4a201 --- /dev/null +++ b/content/influxdb3/cloud-serverless/reference/sql/functions/hashing.md @@ -0,0 +1,19 @@ +--- +title: SQL hashing functions +list_title: Hashing functions +description: > + Use hashing functions to hash string values in SQL queries using established + hashing algorithms. +menu: + influxdb3_cloud_serverless: + name: Hashing + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/hashing.md +--- + + diff --git a/content/influxdb3/cloud-serverless/reference/sql/functions/window.md b/content/influxdb3/cloud-serverless/reference/sql/functions/window.md new file mode 100644 index 000000000..882722f57 --- /dev/null +++ b/content/influxdb3/cloud-serverless/reference/sql/functions/window.md @@ -0,0 +1,18 @@ +--- +title: SQL window functions +list_title: Window functions +description: > + SQL window functions perform an operation across a set of rows related to the + current row. +menu: + influxdb3_cloud_serverless: + name: Window + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/window.md +--- + + diff --git a/content/influxdb3/cloud-serverless/reference/sql/operators/comparison.md b/content/influxdb3/cloud-serverless/reference/sql/operators/comparison.md index 559c06fd1..fa3b47962 100644 --- a/content/influxdb3/cloud-serverless/reference/sql/operators/comparison.md +++ b/content/influxdb3/cloud-serverless/reference/sql/operators/comparison.md @@ -10,19 +10,21 @@ menu: parent: Operators weight: 302 list_code_example: | - | Operator | Meaning | Example | - | :------: | :------------------------------------------------------- | :---------------- | - | `=` | Equal to | `123 = 123` | - | `<>` | Not equal to | `123 <> 456` | - | `!=` | Not equal to | `123 != 456` | - | `>` | Greater than | `3 > 2` | - | `>=` | Greater than or equal to | `3 >= 2` | - | `<` | Less than | `1 < 2` | - | `<=` | Less than or equal to | `1 <= 2` | - | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | - | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | - | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | - | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | + | Operator | Meaning | Example | + | :--------------------: | :------------------------------------------------------- | :------------------------- | + | `=` | Equal to | `123 = 123` | + | `<>` | Not equal to | `123 <> 456` | + | `!=` | Not equal to | `123 != 456` | + | `>` | Greater than | `3 > 2` | + | `>=` | Greater than or equal to | `3 >= 2` | + | `<` | Less than | `1 < 2` | + | `<=` | Less than or equal to | `1 <= 2` | + | `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` | + | `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` | + | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | + | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | + | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | + | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | source: /content/shared/sql-reference/operators/comparison.md --- diff --git a/content/influxdb3/clustered/admin/backup-restore.md b/content/influxdb3/clustered/admin/backup-restore.md new file mode 100644 index 000000000..a09fa77bc --- /dev/null +++ b/content/influxdb3/clustered/admin/backup-restore.md @@ -0,0 +1,447 @@ +--- +title: Back up and restore your cluster +seotitle: Back up and restore your InfluxDB cluster +description: > + Use InfluxDB Clustered Catalog snapshots to keep necessary data in object + storage and restore to a recovery point in case of emergency. +menu: + influxdb3_clustered: + name: Backup and restore + parent: Administer InfluxDB Clustered +weight: 105 +influxdb3/clustered/tags: [backup, restore] +--- + +InfluxDB Clustered automatically stores snapshots of the InfluxDB Catalog that +you can use to restore your cluster to a previous state. The snapshotting +functionality is optional and is disabled by default. +Enable snapshots to ensure you can recover +in case of emergency. + +With InfluxDB Clustered snapshots enabled, each hour, InfluxDB uses the `pg_dump` +utility included with the InfluxDB Garbage Collector to export an SQL blob or +“snapshot” from the InfluxDB Catalog and store it in the object store. +The Catalog is a PostgreSQL-compatible relational database that stores metadata +for your time series data, such as schema data types, Parquet file locations, and more. + +The Catalog snapshots act as recovery points for your InfluxDB cluster that +reference all Parquet files that existed in the object store at the time of the +snapshot. When a snapshot is restored to the Catalog, the Compactor +“[soft deletes](#soft-delete)” any Parquet files not listed in the snapshot. + +> [!Note] +> InfluxDB won't [hard delete](#hard-delete) Parquet files listed in _any_ hourly or daily snapshot. +> +> For example, if you have Parquet files A, B, C, and D, and you restore to a +> snapshot that includes B and C, but not A and D, then A and D are soft-deleted, but remain in object +> storage until they are no longer referenced in any Catalog snapshot. +- [Soft delete](#soft-delete) +- [Hard delete](#hard-delete) +- [Recovery Point Objective (RPO)](#recovery-point-objective-rpo) +- [Recovery Time Objective (RTO)](#recovery-time-objective-rto) +- [Data written just before a snapshot may not be present after restoring](#data-written-just-before-a-snapshot-may-not-be-present-after-restoring) +- [Recommendations](#recommendations) + - [Automate object synchronization to an external S3-compatible bucket](#automate-object-synchronization-to-an-external-s3-compatible-bucket) + - [Enable short-term object versioning](#enable-short-term-object-versioning) +- [Configure snapshots](#configure-snapshots) + - [Environment Variables](#environment-variables) +- [Verify snapshots](#verify-snapshots) +- [Restore to a recovery point](#restore-to-a-recovery-point) +- [Resources](#resources) + - [prep_pg_dump.awk](#prep_pg_dumpawk) + +## Soft delete + +A _soft delete_ refers to when, on compaction, the Compactor sets a `deleted_at` +timestamp on the Parquet file entry in the Catalog. +The Parquet file is no +longer queryable, but remains intact in the object store. + +## Hard delete + +A _hard delete_ refers to when a Parquet file is actually deleted from object +storage and no longer exists. + +## Recovery Point Objective (RPO) + +RPO is the maximum amount of data loss (based on time) allowed after a disruptive event. +It indicates how much time can pass between data snapshots before data is considered lost if a disaster occurs. + +The InfluxDB Clustered snapshot strategy RPO allows for the following maximum data loss: + +- 1 hour for hourly snapshots _(up to the configured hourly snapshot expiration)_ +- 1 day for daily snapshots _(up to the configured daily snapshot expiration)_ + + ## Recovery Time Objective (RTO) + +RTO is the maximum amount of downtime allowed for an InfluxDB cluster after a failure. +RTO varies depending on the size of your Catalog database, network speeds +between the client machine and the Catalog database, cluster load, the status +of your underlying hosting provider, and other factors. + +## Data written just before a snapshot may not be present after restoring + +Due to the variability of flushing data from Ingesters into Parquet files, data +written in the last few minutes before a snapshot may not be included. +This variability is typically less than 15 minutes, but is per table. +This means that one table may have data written up to the timestamp of the +snapshot, while another may not have data written in the 15 minutes prior to the +snapshot. All data written more than 15 minutes prior to a snapshot should be +present after restoring to that snapshot. + +## Recommendations + +### Automate object synchronization to an external S3-compatible bucket + +Syncing objects to an external S3-compatible bucket ensures an up-to-date backup +in case your object store becomes unavailable. Recovery point snapshots only +back up the InfluxDB Catalog. If data referenced in a Catalog snapshot does not +exist in the object store, the recovery process does not restore the missing data. + +### Enable short-term object versioning + +If your object storage provider supports it, consider enabling short-term +object versioning on your object store--for example, 1-2 days to protect against errant writes or deleted objects. +With object versioning enabled, as objects are updated, the object store +retains distinct versions of each update that can be used to “rollback” newly +written or updated Parquet files to previous versions. +Keep in mind, storing versioned objects +does add to object storage costs. + +## Configure snapshots + +Use the available environment variables to enable and configure hourly Catalog +snapshots in your InfluxDB cluster. Add these environment variables to the +Garbage Collector configuration in your `AppInstance` resource: + +```yaml +apiVersion: kubecfg.dev/v1alpha1 +kind: AppInstance +metadata: + name: influxdb + namespace: influxdb +spec: + package: + spec: + components: + garbage-collector: + template: + containers: + iox: + env: + INFLUXDB_IOX_CREATE_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'true' + INFLUXDB_IOX_DELETE_USING_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'true' + INFLUXDB_IOX_KEEP_HOURLY_CATALOG_BACKUP_FILE_LISTS: '30d' + INFLUXDB_IOX_KEEP_DAILY_CATALOG_BACKUP_FILE_LISTS: '90d' + INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '30d' +``` + +### Environment Variables + +#### INFLUXDB_IOX_CREATE_CATALOG_BACKUP_DATA_SNAPSHOT_FILES + +Enable hourly Catalog snapshotting. The default is `'false'`. Set to `'true'`: + +```yaml +INFLUXDB_IOX_CREATE_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'true' +``` + +#### INFLUXDB_IOX_DELETE_USING_CATALOG_BACKUP_DATA_SNAPSHOT_FILES + +Enable a snapshot check when deleting files to ensure the Garbage Collector does +not remove Parquet files from the object store that are associated with existing +snapshots. The default is `'false'`. Set to `'true'`: + +```yaml +INFLUXDB_IOX_DELETE_USING_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'true' +``` + +> [!Caution] +> If set to `false` (the default) with snapshots enabled, the Garbage Collector does not check +> to see if a Parquet file is associated with existing snapshots before removing +> the Parquet file from the object store. This could result in deleting Parquet +> files needed to restore the cluster to a recovery point. + +#### INFLUXDB_IOX_KEEP_HOURLY_CATALOG_BACKUP_FILE_LISTS + +After this duration of time, the Garbage Collector deletes _hourly_ snapshots, +allowing the Garbage Collector to [hard-delete](#hard-delete) Parquet files from the object +store and the Catalog. The default is `30d`. The recommended range for snapshots is between +`1d` and `30d`: + +```yaml +INFLUXDB_IOX_KEEP_HOURLY_CATALOG_BACKUP_FILE_LISTS: '30d' +``` + +#### INFLUXDB_IOX_KEEP_DAILY_CATALOG_BACKUP_FILE_LISTS + +After this duration of time, the Garbage Collector deletes _daily_ snapshots, +allowing the Garbage Collector to [hard-delete](#hard-delete) Parquet files from the object +store and the Catalog. The default is `90d`. The recommended range is between +`3d` and `90d`. + +> [!Important] +> Daily snapshots must expire after hourly backups +> Make sure to set `INFLUXDB_IOX_KEEP_DAILY_CATALOG_BACKUP_FILE_LISTS` to a value greater than +> `INFLUXDB_IOX_KEEP_HOURLY_CATALOG_BACKUP_FILE_LISTS`. + +```yaml +INFLUXDB_IOX_KEEP_DAILY_CATALOG_BACKUP_FILE_LISTS: '90d' +``` + +#### INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF + +The duration of time after a Parquet file is no longer referenced in the Catalog +or included in any snapshots after which the Garbage Collector removes the +Parquet file from the Object store. The default is `30d`: + +```yaml +INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '30d' +``` + +For an in-depth explanation of the recommended value, see the +[data lifecycle garbage tuning best practices](/influxdb3/clustered/write-data/best-practices/data-lifecycle/#tune-garbage-collection) +and [use case examples](/influxdb3/clustered/write-data/best-practices/data-lifecycle/#use-case-examples). + +## Verify snapshots + +InfluxDB Clustered stores hourly and daily snapshots in the +`/catalog_backup_file_lists` path in object storage. After enabling snapshots, +use clients provided by +your object storage provider to ensure that snapshots are written to the object store. + +Hourly snapshots are taken at _approximately_ the beginning of each hour +(≈1:00, ≈2:00, ≈3:00, etc.). After you enable snapshotting, the first snapshot is +written on or around the beginning of the next hour. + +## Restore to a recovery point + +Use the following process to restore your InfluxDB cluster to a recovery point +using Catalog snapshots: + +1. **Install prerequisites:** + + - `kubectl` CLI for managing your Kubernetes deployment. + - `psql` CLI to interact with the PostgreSQL-compatible Catalog database with + the appropriate Data Source Name (DSN) and connection credentials. + - A client to interact with your InfluxDB cluster’s object store. + Supported clients depend on your object storage provider. + +2. **Retrieve the recovery point snapshot from your object store.** + + InfluxDB Clustered stores hourly and daily snapshots in the + `/catalog_backup_file_lists` path in object storage. Download the snapshot + that you would like to use as the recovery point. If your primary object + store is unavailable, download the snapshot from your replicated object store. + + > [!Important] + > When creating and storing a snapshot, the last artifact created is the + > snapshot’s bloom filter. To ensure the snapshot is complete, make sure that + > the bloom filter file (`bloom.bin.gz`) exists before downloading the snapshot. + +3. **Prepare your snapshot file for the restore process.** + + InfluxDB Clustered snapshot `pg_dump` files are compressed text files + containing SQL that restore the contents of the Catalog. Because your Catalog + has existing data, you need to update the snapshot to prepend `CREATE` + statements with `DROP` statements. The result is a slightly modified `pg_dump` + SQL file that you can use to restore your non-empty Catalog. + + > [!Note] + > If restoring to a new cluster, you do not need to update the `pg_dump` + > snapshot file. + + Use the `prep_pg_dump.awk` script provided [below](#prep_pg_dump.awk) to + process your `pg_dump` file. For example: + + + + ```bash + gunzip pg_dump.gz + cat pg_dump | prep_pg_dump.awk > snapshot.sql + ``` + +4. **Pause the kubit operator** + + The `kubit` operator validates cluster sizing and prevents you from disabling + InfluxDB Clustered components. By pausing the `kubit` operator, you can + disable InfluxDB components and safely perform the restore operation. + + 1. In your `AppInstance` resource, set `pause` to `true`. + + ```yml + apiVersion: kubecfg.dev/v1alpha1 + kind: AppInstance + metadata: + name: influxdb + namespace: influxdb + pause: true + # ... + ``` + + 2. Apply the change to your cluster: + + + + ```bash + kubectl apply --filename myinfluxdb.yml --namespace influxdb + ``` + +5. **Disable InfluxDB Clustered components** + + Use the `kubectl scale` command to scale InfluxDB Clustered components down + to zero replicas: + + + + ```bash + kubectl scale --namespace influxdb --replicas=0 deployment/global-gc + kubectl scale --namespace influxdb --replicas=0 deployment/global-router + kubectl scale --namespace influxdb --replicas=0 deployment/iox-shared-querier + kubectl scale --namespace influxdb --replicas=0 statefulset/iox-shared-compactor + kubectl scale --namespace influxdb --replicas=0 statefulset/iox-shared-ingester + kubectl scale --namespace influxdb --replicas=0 statefulset/iox-shared-catalog + ``` + + > [!Note] + > If the cluster is under load, some pods may take longer to shut down. + > For example, Ingester pods must flush their Write-Ahead Logs (WAL) before + > shutting down. + + Verify that pods have been removed from your cluster. + +6. **Restore the SQL snapshot to the Catalog** + + Use `psql` to restore the recovery point snapshot to your InfluxDB Catalog. For example: + + + + ```bash + psql CATALOG_DSN < snapshot.sql + ``` + + The exact `psql` command depends on your PostgreSQL-compatible database + provider, their authentication requirements, and the database’s DSN. + +7. **Restart InfluxDB Clustered components** + + 1. In your `AppInstance` resource, set `pause` to `false` or remove the `pause`: + + ```yaml + apiVersion: kubecfg.dev/v1alpha1 + kind: AppInstance + metadata: + name: influxdb + namespace: influxdb + pause: false + # ... + ``` + + 2. Apply the change to resume the `kubit` operator and scale InfluxDB + Clustered components to the number of replicas defined for each in your + `AppInstance` resource: + + ```bash + kubectl apply --filename myinfluxdb.yml --namespace influxdb + ``` + + 3. Verify that InfluxDB Clustered pods start running again. + +Your InfluxDB cluster is now restored to the recovery point. +When the Garbage Collector runs, it identifies what Parquet files are not +associated with the recovery point and [soft deletes](#soft-delete) them. + + + +## Resources + +### prep\_pg\_dump.awk + +{{% truncate %}} + + +```awk +#!/usr/bin/env awk -f + +# Data Snapshots in IOx use pg_dump in text output format, which is simply sql. We can apply the +# pg_dump using our standard permissions, without the need for special database create permission. +# Even a new cluster which you think is empty likely has some tables populated. For ease of +# restoring the pg_dump, this script inserts DROP statements before each CREATE statement to handle +# restoring to a non-empty catalog. +# +# The intended use of this script is to modify the pg_dump output with drop statements so it can +# be applied to a non-empty catalog. +# +# WARNING: The resulting sql is destructive. Prior catalog contents are removed and replaced with +# what's in the pg_dump. +# +# Example use: +# gunzip pg_dump.gz +# cat pg_dump | prep_pg_dump.awk > clean_and_restore.sql +# psql CATALOG_DSN < clean_and_restore.sql + + +BEGIN { + print "-- Modified pg_dump text output with DROP statements" +} + +# Function to clean up names (dropping trailing semicolon so CASCADE is included in the DROP command) +function clean_name(name) { + gsub(/[";]/, "", name) + return name +} + +# Match CREATE TABLE statements and insert DROP TABLE +/^[[:space:]]*CREATE[[:space:]]+TABLE[[:space:]]+/ { + table_name = clean_name($3) + print "DROP TABLE IF EXISTS " table_name " CASCADE;" + print + next +} + +# Match CREATE SCHEMA statements and insert DROP SCHEMA +/^[[:space:]]*CREATE[[:space:]]+SCHEMA[[:space:]]+/ { + schema_name = clean_name($3) + print "DROP SCHEMA IF EXISTS " schema_name " CASCADE;" + print + next +} + +# Match CREATE SEQUENCE statements and insert DROP SEQUENCE +/^[[:space:]]*CREATE[[:space:]]+SEQUENCE[[:space:]]+/ { + sequence_name = clean_name($3) + print "DROP SEQUENCE IF EXISTS " sequence_name " CASCADE;" + print + next +} + +# Match CREATE VIEW statements and insert DROP VIEW +/^[[:space:]]*CREATE[[:space:]]+VIEW[[:space:]]+/ { + view_name = clean_name($3) + print "DROP VIEW IF EXISTS " view_name " CASCADE;" + print + next +} + +# Match CREATE FUNCTION statements and insert DROP FUNCTION +/^[[:space:]]*CREATE[[:space:]]+FUNCTION[[:space:]]+/ { + function_name = clean_name($3) + print "DROP FUNCTION IF EXISTS " function_name " CASCADE;" + print + next +} + +# Match CREATE INDEX statements and insert DROP INDEX +/^[[:space:]]*CREATE[[:space:]]+INDEX[[:space:]]+/ { + index_name = clean_name($3) + print "DROP INDEX IF EXISTS " index_name " CASCADE;" + print + next +} + +# Pass through all other lines +{ + print +} +``` +{{% /truncate %}} diff --git a/content/influxdb3/clustered/admin/tokens/_index.md b/content/influxdb3/clustered/admin/tokens/_index.md index dfb8a5996..ae755d3ca 100644 --- a/content/influxdb3/clustered/admin/tokens/_index.md +++ b/content/influxdb3/clustered/admin/tokens/_index.md @@ -6,7 +6,7 @@ description: > Database tokens grant read and write permissions to one or more databases and allow for actions like writing and querying data. menu: - influxdb_clustered: + influxdb3_clustered: parent: Administer InfluxDB Clustered weight: 103 influxdb/clustered/tags: [tokens] diff --git a/content/influxdb3/clustered/admin/upgrade.md b/content/influxdb3/clustered/admin/upgrade.md index fa62c7095..5b79d9eea 100644 --- a/content/influxdb3/clustered/admin/upgrade.md +++ b/content/influxdb3/clustered/admin/upgrade.md @@ -1,6 +1,5 @@ --- title: Upgrade InfluxDB Clustered -seotitle: description: > Use Kubernetes to upgrade your InfluxDB Clustered version. menu: @@ -16,10 +15,16 @@ related: --- Use Kubernetes to upgrade your InfluxDB Clustered version. +The upgrade is carried out using in-place updates, ensuring minimal downtime. InfluxDB Clustered versioning is defined in the `AppInstance` `CustomResourceDefinition` (CRD) in your [`myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/). +> [!Important] +> InfluxDB Clustered does not support downgrading. +> If you encounter an issue after upgrading, +> [contact InfluxData support](mailto:support@influxdata.com). + - [Version format](#version-format) - [Upgrade your InfluxDB Clustered version](#upgrade-your-influxdb-clustered-version) diff --git a/content/influxdb3/clustered/api/v1-compatibility/_index.html b/content/influxdb3/clustered/api/v1-compatibility/_index.html deleted file mode 100644 index 54fc87790..000000000 --- a/content/influxdb3/clustered/api/v1-compatibility/_index.html +++ /dev/null @@ -1,579 +0,0 @@ ---- -title: InfluxDB v1 HTTP API for InfluxDB 3 Clustered -description: The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database. -layout: api -menu: - influxdb3_clustered: - parent: InfluxDB HTTP API - name: v1 Compatibility API - identifier: api-reference-v1-compatibility -weight: 304 -aliases: - - /influxdb/clustered/api/v1/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB v1 HTTP API for InfluxDB 3 Clustered

License: MIT

The InfluxDB v1 HTTP API provides v1 compatibility for writing and querying data in an InfluxDB 3 Clustered database.

-

The InfluxDB 1.x /write and /query endpoints work with InfluxDB 1.x client libraries and third-party integrations like Grafana and others.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

- -

InfluxDB /api/v2 API for InfluxDB 3 Clustered

-

Authentication

The InfluxDB 1.x API requires authentication for all requests. -InfluxDB Cloud uses InfluxDB API tokens to authenticate requests.

-

For more information, see the following:

- -

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and an InfluxDB API token. -The word Token is case-sensitive.

-

Syntax

-

Authorization: Token YOUR_INFLUX_TOKEN

-

For examples and more information, see the following:

- -
Security Scheme Type API Key
Header parameter name: Authorization

BasicAuthentication

Use the HTTP Basic authentication -scheme with clients that support the InfluxDB 1.x convention of username and password (that don't support the Authorization: Token scheme):

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

QuerystringAuthentication

Use the Querystring authentication -scheme with InfluxDB 1.x API parameters to provide credentials through the query string.

-

For examples and more information, see how to authenticate with a username and password.

-
Security Scheme Type API Key
Query parameter name: u=&p=

Query

Query using the InfluxDB v1 HTTP API

query Parameters
db
required
string

Bucket to query.

-
p
string

User token.

-
q
string

Defines the influxql query to run.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Specifies how query results should be encoded in the response. Note: With application/csv, query results include epoch timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The Accept-Encoding request HTTP header advertises which content encoding, usually a compression algorithm, the client is able to understand.

-
Content-Type
string
Value: "application/vnd.influxql"
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

InfluxQL query to execute.

-
string

Responses

Response samples

Content type
No sample

Write

Write time series data into InfluxDB in a V1-compatible format

query Parameters
db
required
string

Bucket to write to. If none exists, InfluxDB creates a bucket with a default 3-day retention policy.

-
p
string

User token.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

Username.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, its value indicates to the database that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: trace_id,1,span_id,1,baggage,[object Object]

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
{
  • "code": "internal error",
  • "message": "string",
  • "op": "string",
  • "err": "string",
  • "line": 0
}
- - - - - diff --git a/content/influxdb3/clustered/api/v2/_index.html b/content/influxdb3/clustered/api/v2/_index.html deleted file mode 100644 index cd9eca651..000000000 --- a/content/influxdb3/clustered/api/v2/_index.html +++ /dev/null @@ -1,966 +0,0 @@ ---- -title: InfluxDB 3 Clustered API Service -description: The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database. -layout: api -menu: - influxdb3_clustered: - parent: InfluxDB HTTP API - name: v2 API - identifier: api-reference-v2 -weight: 102 -aliases: - - /influxdb/clustered/api/ ---- - - - - - - - - - - - InfluxDB - - - - - - - - - - - - - - - - -
-
-
- - -

InfluxDB 3 Clustered API Service

License: MIT

The InfluxDB v2 HTTP API for InfluxDB 3 Clustered provides a v2-compatible programmatic interface for writing data stored in an InfluxDB 3 Clustered database.

-

The InfluxDB v2 HTTP API lets you use /api/v2 endpoints for managing retention policy mappings and writing data stored in an InfluxDB 3 instance.

-

This documentation is generated from the -InfluxDB OpenAPI specification.

-

Quick start

See the Get Started tutorial -to get up and running authenticating with tokens, writing to databases, and querying data.

-

InfluxDB API client libraries and Flight clients -are available to integrate InfluxDB APIs with your application.

-

Authentication

Use one of the following schemes to authenticate to the InfluxDB API:

- -

BasicAuthentication

Basic authentication scheme

-

Use the Authorization header with the Basic scheme to authenticate v1 API /write and /query requests. -When authenticating requests, InfluxDB 3 Clustered checks that the password part of the decoded credential is an authorized database token. -InfluxDB 3 Clustered ignores the username part of the decoded credential.

-

Syntax

-
Authorization: Basic <base64-encoded [USERNAME]:DATABASE_TOKEN>
-

Replace the following:

-
    -
  • [USERNAME]: an optional string value (ignored by InfluxDB 3 Clustered).
  • -
  • DATABASE_TOKEN: a database token.
  • -
  • Encode the [USERNAME]:DATABASE_TOKEN credential using base64 encoding, and then append the encoded string to the Authorization: Basic header.
  • -
-

Example

-

The following example shows how to use cURL with the Basic authentication scheme and a database token:

-
#######################################
-# Use Basic authentication with a database token
-# to query the InfluxDB v1 HTTP API
-#######################################
-# Use the --user option with `--user username:DATABASE_TOKEN` syntax
-#######################################
-
-curl --get "http://cluster-id.a.influxdb.io/query" \
-  --user "":"DATABASE_TOKEN" \
-  --data-urlencode "db=DATABASE_NAME" \
-  --data-urlencode "q=SELECT * FROM MEASUREMENT"
-

Replace the following:

-
    -
  • DATABASE_NAME: your InfluxDB 3 Clustered database
  • -
  • DATABASE_TOKEN: a database token with sufficient permissions to the database
  • -
-
Security Scheme Type HTTP
HTTP Authorization Scheme basic

QuerystringAuthentication

Use the Querystring authentication -scheme with InfluxDB 1.x API parameters to provide credentials through the query string.

-

Query string authentication

-

In the URL, pass the p query parameter to authenticate /write and /query requests. -When authenticating requests, InfluxDB 3 Clustered checks that p (password) is an authorized database token and ignores the u (username) parameter.

-

Syntax

-
https://cluster-id.a.influxdb.io/query/?[u=any]&p=DATABASE_TOKEN
-https://cluster-id.a.influxdb.io/write/?[u=any]&p=DATABASE_TOKEN
-

Example

-

The following example shows how to use cURL with query string authentication and a database token.

-
#######################################
-# Use an InfluxDB 1.x compatible username and password
-# to query the InfluxDB v1 HTTP API
-#######################################
-# Use authentication query parameters:
-#   ?p=DATABASE_TOKEN
-#######################################
-
-curl --get "https://cluster-id.a.influxdb.io/query" \
-  --data-urlencode "p=DATABASE_TOKEN" \
-  --data-urlencode "db=DATABASE_NAME" \
-  --data-urlencode "q=SELECT * FROM MEASUREMENT"
-

Replace the following:

-
    -
  • DATABASE_NAME: your InfluxDB 3 Clustered database
  • -
  • DATABASE_TOKEN: a database token with sufficient permissions to the database
  • -
-
Security Scheme Type API Key
Query parameter name: u=&p=

BearerAuthentication

Use the OAuth Bearer authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Bearer followed by a space and a database token.

-

Syntax

-
Authorization: Bearer INFLUX_TOKEN
-

Example

-
########################################################
-# Use the Bearer token authentication scheme with /api/v2/write
-# to write data.
-########################################################
-
-curl --request post "https://cluster-id.a.influxdb.io/api/v2/write?bucket=DATABASE_NAME&precision=s" \
-  --header "Authorization: Bearer DATABASE_TOKEN" \
-  --data-binary 'home,room=kitchen temp=72 1463683075'
-

For examples and more information, see the following:

- -
Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

TokenAuthentication

Use the Token authentication -scheme to authenticate to the InfluxDB API.

-

In your API requests, send an Authorization header. -For the header value, provide the word Token followed by a space and a database token. -The word Token is case-sensitive.

-

Syntax

-
Authorization: Token INFLUX_API_TOKEN
-

Example

-
########################################################
-# Use the Token authentication scheme with /api/v2/write
-# to write data.
-########################################################
-
-curl --request post "https://cluster-id.a.influxdb.io/api/v2/write?bucket=DATABASE_NAME&precision=s" \
-  --header "Authorization: Token DATABASE_TOKEN" \
-  --data-binary 'home,room=kitchen temp=72 1463683075'
- - -
Security Scheme Type API Key
Header parameter name: Authorization

Headers

InfluxDB HTTP API endpoints use standard HTTP request and response headers. -The following table shows common headers used by many InfluxDB API endpoints. -Some endpoints may use other headers that perform functions more specific to those endpoints--for example, -the POST /api/v2/write endpoint accepts the Content-Encoding header to indicate the compression applied to line protocol in the request body.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HeaderValue typeDescription
AcceptstringThe content type that the client can understand.
AuthorizationstringThe authorization scheme and credential.
Content-LengthintegerThe size of the entity-body, in bytes, sent to the database.
Content-TypestringThe format of the data in the request body.
-

Response codes

InfluxDB HTTP API endpoints use standard HTTP status codes for success and failure responses. -The response body may include additional details. -For details about a specific operation's response, -see Responses and Response Samples for that operation.

-

API operations may return the following HTTP status codes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Code StatusDescription
200Success
204Success. No contentInfluxDB doesn't return data for the request. For example, a successful write request returns 204 status code, acknowledging that data is written and queryable.
400Bad requestInfluxDB can't parse the request due to an incorrect parameter or bad syntax. If line protocol in the request body is malformed. The response body contains the first malformed line and indicates what was expected. For partial writes, the number of points written and the number of points rejected are also included.
401UnauthorizedMay indicate one of the following:
  • Authorization: Token header is missing or malformed
  • API token value is missing from the header
  • API token doesn't have permission. For more information about token types and permissions, see Manage tokens
404Not foundRequested resource was not found. message in the response body provides details about the requested resource.
405Method not allowedThe API path doesn't support the HTTP method used in the request--for example, you send a POST request to an endpoint that only allows GET.
413Request entity too largeRequest payload exceeds the size limit.
422Unprocessable entityRequest data is invalid. code and message in the response body provide details about the problem.
429Too many requestsAPI token is temporarily over the request quota. The Retry-After header describes when to try the request again.
500Internal server error
503Service unavailableServer is temporarily unavailable to process the request. The Retry-After header describes when to try the request again.
-

System information endpoints

Ping

Get the status of the instance

Retrieves the status and InfluxDB version of the instance.

-

Use this endpoint to monitor uptime for the InfluxDB instance. The response -returns a HTTP 204 status code to inform you the instance is available.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

Get the status of the instance

Returns the status and InfluxDB version of the instance.

-

Use this endpoint to monitor uptime for the InfluxDB instance. The response -returns a HTTP 204 status code to inform you the instance is available.

-

This endpoint doesn't require authentication.

-
Authorizations:
None

Responses

Query

Query data stored in a database.

-
    -
  • HTTP clients can query the v1 /query endpoint -using InfluxQL and retrieve data in CSV or JSON format.
  • -
  • The /api/v2/query endpoint can't query InfluxDB 3 Clustered.
  • -
  • Flight + gRPC clients can query using SQL or InfluxQL and retrieve data in Arrow format.
  • -
- - -

Query using the InfluxDB v1 HTTP API

Queries InfluxDB using InfluxQL with InfluxDB v1 request and response formats.

-
query Parameters
db
required
string

The database to query data from.

-
epoch
string
Enum: "ns" "u" "µ" "ms" "s" "m" "h"

A unix timestamp precision. -Formats timestamps as unix (epoch) timestamps the specified precision -instead of RFC3339 timestamps with nanosecond precision.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
q
required
string

The InfluxQL query to execute. To execute multiple queries, delimit queries with a semicolon (;).

-
rp
string

The retention policy to query data from. -For more information, see InfluxQL DBRP naming convention.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Accept
string
Default: application/json
Enum: "application/json" "application/csv" "text/csv" "application/x-msgpack"

Media type that the client can understand.

-

Note: With application/csv, query results include unix timestamps instead of RFC3339 timestamps.

-
Accept-Encoding
string
Default: identity
Enum: "gzip" "identity"

The content encoding (usually a compression algorithm) that the client can understand.

-
Content-Type
string
Value: "application/json"
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-

Responses

Response samples

Content type
No sample

Write

Write time series data to databases using InfluxDB v1 or v2 endpoints.

-

Write data

Writes data to a database.

-

Use this endpoint to send data in line protocol format to InfluxDB.

-

InfluxDB does the following when you send a write request:

-
    -
  1. Validates the request
  2. -
  3. If successful, attempts to ingest the data; error otherwise.
  4. -
  5. If successful, responds with success (HTTP 204 status code), acknowledging that the data is written and queryable; error otherwise.
  6. -
-

To ensure that InfluxDB Cloud handles writes in the order you request them, -wait for a success response (HTTP 2xx status code) before you send the next request.

- - -
query Parameters
bucket
required
string

A database name or ID. -InfluxDB writes all points in the batch to the specified database.

-
org
required
string

Ignored. An organization name or ID.

-

InfluxDB ignores this parameter; authorizes the request using the specified database token -and writes data to the specified cluster database.

-
orgID
string

Ignored. An organization ID.

-

InfluxDB ignores this parameter; authorizes the request using the specified database token -and writes data to the specified cluster database.

-
precision
string (WritePrecision)
Enum: "ms" "s" "us" "ns"

The precision for unix timestamps in the line protocol batch.

-
header Parameters
Accept
string
Default: application/json
Value: "application/json"

The content type that the client can understand. -Writes only return a response body if they fail--for example, -due to a formatting problem or quota limit.

-
    -
  • Returns only application/json for format and limit errors.
  • -
  • Returns only text/html for some quota limit errors.
  • -
- - -
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

The compression applied to the line protocol in the request payload. -To send a gzip payload, pass Content-Encoding: gzip header.

-
Content-Length
integer

The size of the entity-body, in bytes, sent to InfluxDB. -If the length is greater than the max body configuration option, -the server responds with status code 413.

-
Content-Type
string
Default: text/plain; charset=utf-8
Enum: "text/plain" "text/plain; charset=utf-8"

The format of the data in the request body. -To send a line protocol payload, pass Content-Type: text/plain; charset=utf-8.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

In the request body, provide data in line protocol format.

-

To send compressed data, do the following:

-
    -
  1. Use gzip to compress the line protocol data.
  2. -
  3. In your request, send the compressed data and the -Content-Encoding: gzip header.
  4. -
- - -
string <byte>

Responses

Request samples

Content type
text/plain
airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
-airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
-

Response samples

Content type
application/json
{
  • "code": "invalid",
  • "message": "failed to parse line protocol: error writing line 2: Unable to insert iox::column_type::field::integer type into column temp with type iox::column_type::field::string"
}

Write data using the InfluxDB v1 HTTP API

Writes data to a database.

-

Use this InfluxDB v1-compatible endpoint to send data in line protocol format to InfluxDB using v1 API parameters and authorization.

-

InfluxDB does the following when you send a write request:

-
    -
  1. Validates the request
  2. -
  3. If successful, attempts to ingest the data; error otherwise.
  4. -
  5. If successful, responds with success (HTTP 204 status code), acknowledging that the data is written and queryable; error otherwise.
  6. -
-

To ensure that InfluxDB handles writes in the order you request them, -wait for a success response (HTTP 2xx status code) before you send the next request.

- - -
query Parameters
db
required
string

database to write to. If none exists, InfluxDB creates a database with a default 3-day retention policy.

-
p
string

The InfluxDB 1.x password to authenticate the request.

-
precision
string

Write precision.

-
rp
string

Retention policy name.

-
u
string

The InfluxDB 1.x username to authenticate the request.

-
header Parameters
Content-Encoding
string
Default: identity
Enum: "gzip" "identity"

When present, its value indicates to the database that compression is applied to the line protocol body.

-
Zap-Trace-Span
string
Example: baggage,[object Object],span_id,1,trace_id,1

OpenTracing span context

-
Request Body schema: text/plain

Line protocol body

-
string

Responses

Response samples

Content type
application/json
Example
{
  • "code": "invalid",
  • "line": 2,
  • "message": "no data written, errors encountered on line(s): error message for first rejected point</n> error message for second rejected point</n> error message for Nth rejected point (up to 100 rejected points)"
}
- - - - - diff --git a/content/influxdb3/clustered/install/_index.md b/content/influxdb3/clustered/install/_index.md index a82f80870..095dcab13 100644 --- a/content/influxdb3/clustered/install/_index.md +++ b/content/influxdb3/clustered/install/_index.md @@ -37,14 +37,22 @@ installing InfluxDB Clustered. ## Setup, configure, and deploy InfluxDB Clustered +> [!Note] +> #### Deploying in air-gapped environments +> +> To deploy InfluxDB Clustered in an air-gapped environment (without internet access), +> use one of the following approaches: +> +> - **Recommended**: Directly use `kubit local apply` +> - Helm (includes the kubit operator) +> - Directly use the kubit operator +> +> For more information, see [Choose the right deployment tool for your environment](/influxdb3/clustered/install/set-up-cluster/configure-cluster/#choose-the-right-deployment-tool-for-your-environment) + {{< children type="ordered-list" >}} - - - -#### Public registry (non-air-gapped) +#### Public registry To pull from the InfluxData registry, you need to create a Kubernetes secret in the target namespace. @@ -161,40 +161,34 @@ If you change the name of the secret, you must also change the value of the {{% /tab-content %}} {{% tab-content %}} - + #### Private registry (air-gapped) If your Kubernetes cluster can't use a public network to download container images -from the InfluxData container registry, do the following: +from the InfluxData container registry, follow these steps to copy images and +configure the AppInstance for a private registry: -1. Copy the images from the InfluxData registry to your own private registry. -2. Configure your `AppInstance` resource with a reference to your private - registry name. -3. Provide credentials to your private registry. +1. [Copy the images to your private registry](#copy-the-images-to-your-private-registry) +2. [Configure your AppInstance](#configure-your-appinstance) -##### Copy the images +##### Copy the images to your private registry -We recommend using [crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane) -to copy images into your private registry. +Use `crane` to copy images from the InfluxData registry to your own private registry. -1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation) - for your system. -2. Use the following command to create a container registry secret file and - retrieve the necessary secrets: +1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation) + for your system. +2. Create a container registry secret file and verify access: {{% code-placeholders "PACKAGE_VERSION" %}} - - ```bash -mkdir /tmp/influxdbsecret +mkdir -p /tmp/influxdbsecret cp influxdb-docker-config.json /tmp/influxdbsecret/config.json DOCKER_CONFIG=/tmp/influxdbsecret \ crane manifest \ us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION ``` - {{% /code-placeholders %}} --- @@ -244,8 +238,8 @@ manifest and the output is similar to the following error: Error: fetching manifest us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:: GET https://us-docker.pkg.dev/v2/token?scope=repository%3Ainfluxdb2-artifacts%2Fclustered%2Finfluxdb%3Apull&service=: DENIED: Permission "artifactregistry.repositories.downloadArtifacts" denied on resource "projects/influxdb2-artifacts/locations/us/repositories/clustered" (or it may not exist) ``` -The list of images that you need to copy is included in the package metadata. -You can obtain it with any standard OCI image inspection tool--for example: +3. Extract the list of InfluxDB images from the package metadata: +You can use any standard OCI image inspection tool--for example: {{% code-placeholders "PACKAGE_VERSION" %}} @@ -269,7 +263,7 @@ us-docker.pkg.dev/influxdb2-artifacts/iox/iox@sha256:b59d80add235f29b806badf7410 ... ``` -Use `crane` to copy the images to your private registry: +4. Use `crane` to copy the images to your private registry: {{% code-placeholders "REGISTRY_HOSTNAME" %}} @@ -289,49 +283,50 @@ with the hostname of your private registry--for example: myregistry.mydomain.io ``` - ##### Configure your AppInstance -Set the `spec.package.spec.images.registryOverride` field in your -`myinfluxdb.yml` to the location of your private registry--for example: +Configure your `AppInstance` resource with a reference to your private registry name. -{{% code-placeholders "REGISTRY_HOSTNAME" %}} +In your `myinfluxdb.yml`: -```yml +1. Set `spec.package.spec.images.registryOverride` to the location of your private registry. +2. If your private container registry requires pull secrets to access images, set `spec.imagePullSecrets.name` to the pull secret name. + +{{% expand-wrapper %}} +{{% expand "View `myinfluxdb.yml` AppInstance configuration" %}} +{{% code-placeholders "REGISTRY_HOSTNAME | PULL_SECRET_NAME" %}} +```yaml apiVersion: kubecfg.dev/v1alpha1 kind: AppInstance -# ... +metadata: + name: influxdb + namespace: influxdb spec: package: spec: images: registryOverride: REGISTRY_HOSTNAME -``` - -{{% /code-placeholders %}} - - -##### Provide credentials to your private registry - -If your private container registry requires pull secrets to access images, you -can create the required kubernetes secrets, and then configure them in your -AppInstance resource--for example: - -{{% code-placeholders "PULL_SECRET_NAME" %}} - -```yml -apiVersion: kubecfg.dev/v1alpha1 -kind: AppInstance -# ... -spec: + # Configure connection to PostgreSQL database + values: + global: + catalog: + dsn: "postgres://username:password@postgres-host:5432/influxdb?sslmode=require" + # Configure S3-compatible object storage + objectStorage: + bucket: "influxdb-bucket" + endpoint: "https://s3-endpoint" + accessKeyId: "ACCESS_KEY" + secretAccessKey: "SECRET_KEY" + region: "region" + # Configure image pull secrets if needed imagePullSecrets: - name: PULL_SECRET_NAME ``` - {{% /code-placeholders %}} +{{% /expand %}} +{{% /expand-wrapper %}} - - + {{% /tab-content %}} {{< /tabs-wrapper >}} diff --git a/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md b/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md index 9dfab5f9f..04f776120 100644 --- a/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md +++ b/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md @@ -203,19 +203,18 @@ Error: fetching manifest us-docker.pkg.dev/influxdb2-artifacts/clustered/influxd {{< tabs-wrapper >}} {{% tabs %}} -[Public registry (non-air-gapped)](#) +[Public registry](#) [Private registry (air-gapped)](#) {{% /tabs %}} {{% tab-content %}} - -#### Public registry (non-air-gapped) +#### Public registry To pull from the InfluxData registry, you need to create a Kubernetes secret in the target namespace. -```sh +```bash kubectl create secret docker-registry gar-docker-secret \ --from-file=.dockerconfigjson=influxdb-docker-config.json \ --namespace influxdb @@ -232,79 +231,97 @@ If you change the name of this secret, you must also change the value of the `imagePullSecrets.name` field in your `values.yaml`. - {{% /tab-content %}} {{% tab-content %}} - #### Private registry (air-gapped) -If your Kubernetes cluster can't use a public network to download container images -from our container registry, do the following: +For air-gapped environments, you need to: -1. Copy the images from the InfluxDB registry to your own private registry. -2. Configure your `AppInstance` resource with a reference to your private - registry name. -3. Provide credentials to your private registry. +1. [Set up Docker configuration](#set-up-docker-configuration) +2. [Mirror InfluxDB images](#mirror-influxdb-images) +3. [Mirror kubit operator images](#mirror-kubit-operator-images) +4. [Configure registry access in values.yaml](#configure-registry-access-in-valuesyaml) -The list of images that you need to copy is included in the package metadata. -You can obtain it with any standard OCI image inspection tool. For example: +##### Set up Docker configuration -{{% code-placeholders "PACKAGE_VERSION" %}} +Create a directory to store your Docker configuration: -```sh -DOCKER_CONFIG=/tmp/influxdbsecret \ -crane config \ - us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION \ - | jq -r '.metadata["oci.image.list"].images[]' \ - > /tmp/images.txt +```bash +mkdir -p /tmp/influxdbsecret +cp influxdb-docker-config.json /tmp/influxdbsecret/config.json ``` -{{% /code-placeholders %}} +##### Mirror InfluxDB images -The output is a list of image names, similar to the following: +Use `crane` to copy images from the InfluxData registry to your own private registry: -``` -us-docker.pkg.dev/influxdb2-artifacts/idpe/idpe-cd-ioxauth@sha256:5f015a7f28a816df706b66d59cb9d6f087d24614f485610619f0e3a808a73864 -us-docker.pkg.dev/influxdb2-artifacts/iox/iox@sha256:b59d80add235f29b806badf7410239a3176bc77cf2dc335a1b07ab68615b870c -... +1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation) on your system. + +2. Extract the list of InfluxDB images: + + ```bash + DOCKER_CONFIG=/tmp/influxdbsecret \ + crane config \ + us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION \ + | jq -r '.metadata["oci.image.list"].images[]' \ + > /tmp/influx-images.txt + ``` + + Replace {{% code-placeholder-key %}}`PACKAGE_VERSION`{{% /code-placeholder-key %}} with your InfluxDB Clustered package version. + +3. Copy the images to your private registry: + + ```bash + cat /tmp/influx-images.txt | xargs -I% crane cp % REGISTRY_HOSTNAME/% + ``` + + Replace {{% code-placeholder-key %}}`REGISTRY_HOSTNAME`{{% /code-placeholder-key %}} with your private registry hostname (e.g., `myregistry.mydomain.io`). + +##### Mirror kubit operator images + +In addition to the InfluxDB images, copy the kubit operator images: + +```bash +# Create a list of kubit-related images +cat > /tmp/kubit-images.txt << EOF +ghcr.io/kubecfg/kubit:v0.0.20 +ghcr.io/kubecfg/kubecfg/kubecfg:latest +bitnami/kubectl:1.27.5 +registry.k8s.io/kubectl:v1.28.0 +EOF + +# Copy kubit images to your private registry +cat /tmp/kubit-images.txt | xargs -I% crane cp % YOUR_PRIVATE_REGISTRY/% ``` -Use `crane` to copy the images to your private registry: +##### Configure registry access in values.yaml + +Configure your `values.yaml` to use your private registry: {{% code-placeholders "REGISTRY_HOSTNAME" %}} - -```sh - {{% /tab-content %}} @@ -683,4 +700,114 @@ Replace the following: --- -{{< page-nav prev="/influxdb3/clustered/install/secure-cluster/auth/" prevText="Set up authentication" next="/influxdb3/clustered/install/set-up-cluster/licensing" nextText="Install your license" tab="Helm" >}} +### Deploy your cluster + +{{< tabs-wrapper >}} +{{% tabs %}} +[Standard deployment](#) +[Air-gapped deployment](#) +{{% /tabs %}} + +{{% tab-content %}} + + + +#### Standard deployment (with internet access) + +1. Add the InfluxData Helm chart repository: + + ```bash + helm repo add influxdata https://helm.influxdata.com/ + ``` + +2. Update your Helm repositories to ensure you have the latest charts: + + ```bash + helm repo update + ``` + +3. Deploy the InfluxDB Clustered Helm chart with your custom values: + + ```bash + helm install influxdb influxdata/influxdb3-clustered \ + -f values.yaml \ + --namespace influxdb \ + --create-namespace + ``` + +4. Verify the deployment: + + ```bash + kubectl get pods -n influxdb + ``` + +If you need to update your deployment after making changes to your `values.yaml`: + +```bash +helm upgrade influxdb influxdata/influxdb3-clustered \ + -f values.yaml \ + --namespace influxdb +``` + + + +{{% /tab-content %}} +{{% tab-content %}} + + + +#### Air-gapped deployment + +1. In your air-gapped environment, install the chart from the local tarball that you transferred: + + ```bash + helm install influxdb ./influxdb3-clustered-X.Y.Z.tgz \ + -f values.yaml \ + --namespace influxdb \ + --create-namespace + ``` + + Replace `X.Y.Z` with the specific chart version you downloaded. + +2. Verify the deployment: + + ```bash + kubectl get pods -n influxdb + ``` + +If you need to update your deployment after making changes to your `values.yaml`: + +```bash +helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \ + -f values.yaml \ + --namespace influxdb +``` + +{{% note %}} +#### Understanding kubit's role in air-gapped environments + +When deploying with Helm in an air-gapped environment: + +1. **Helm deploys the kubit operator** - The Helm chart includes the kubit operator, which needs its images mirrored to your private registry +2. **Operator requires access to all InfluxDB images** - The kubit operator deploys the actual InfluxDB components using images from your private registry +3. **Registry override is essential** - You must set the `images.registryOverride` and configure the kubit operator images correctly in the values file + +This is why mirroring both the InfluxDB images and the kubit operator images is necessary for air-gapped deployments. +{{% /note %}} + + + +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## Troubleshooting + +### Common issues + +1. **Image pull errors** + + ``` + Error: failed to create labeled resources: failed to create resources: failed to create resources: + Internal error occurred: failed to create pod sandbox: rpc error: code = Unknown + desc = failed to pull image "us-docker.pkg.dev/...": failed to pull and unpack image "...": + failed to resolve reference "...": failed to do request: ... i/o timeout diff --git a/content/influxdb3/clustered/install/set-up-cluster/deploy.md b/content/influxdb3/clustered/install/set-up-cluster/deploy.md index 53e0d90b1..9ac9f5612 100644 --- a/content/influxdb3/clustered/install/set-up-cluster/deploy.md +++ b/content/influxdb3/clustered/install/set-up-cluster/deploy.md @@ -22,49 +22,32 @@ following tools: - **kubit**: A Kubernetes controller that can render and apply jsonnet templates based on the [kubecfg](https://github.com/kubecfg/kubecfg) jsonnet tooling and framework +- **helm**: Uses the [InfluxDB Clustered Helm chart](https://github.com/influxdata/helm-charts/tree/master/charts/influxdb3-clustered), which includes the kubit operator. -InfluxDB Clustered uses an `AppInstance` Kubernetes custom resource (CR) to -configure and deploy your InfluxDB Cluster. -Installing a `CustomResourceDefinition` (CRD) requires cluster-wide permissions -and may cause `kubectl` to fail if you do not have those permissions in your cluster. +To compare these tools and deployment methods, see [Choose the right deployment tool for your environment](/influxdb3/clustered/install/set-up-cluster/configure-cluster/#choose-the-right-deployment-tool-for-your-environment). -`kubectl` uses your local credentials to install the `AppInstance` CRD. -If you do not have the necessary permissions, you can -[use the `kubit` CLI to manually install the package in your cluster](?t=kubit#kubectl-kubit-helm). +## Prerequisites -{{% note %}} -**If you meet any of the following criteria, -[install and use the `kubit` CLI](?t=kubit#kubectl-kubit-helm) -on your local machine. This allows you to act as the operator would and deploy -your cluster, but from your terminal.** - -- You do not have permissions to install a CRD. -- You do not have permissions to install the operator in the `kubit` namespace. -- You do not have permissions to create cluster-wide role-based access - control (RBAC). -- You want to preview the generated YAML. -- You do not want to run the operator in your Kubernetes cluster. - {{% /note %}} - -You can also use [Helm](https://helm.sh/) and the -[InfluxDB Clustered Helm chart](https://github.com/influxdata/helm-charts/tree/master/charts/influxdb3-clustered) -to deploy your InfluxDB cluster. +If you haven't already set up and configured your cluster, see how to +[install InfluxDB Clustered](/influxdb3/clustered/install/). - {{< tabs-wrapper >}} {{% tabs %}} [kubectl](#) -[kubit](#) -[Helm](#) +[kubit CLI](#) +[helm](#) {{% /tabs %}} {{% tab-content %}} - +- [`kubectl` standard deployment (with internet access)](#kubectl-standard-deployment-with-internet-access) +- [`kubectl` air-gapped deployment](#kubectl-air-gapped-deployment) -Use the `kubectl apply` command to apply your custom-configured `myinfluxdb.yml` +## kubectl standard deployment (with internet access) + +Use the `kubectl apply` command to apply your [custom-configured `myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/) and deploy your InfluxDB cluster: ```sh @@ -73,55 +56,150 @@ kubectl apply \ --namespace influxdb ``` +> [!Note] +> Due to the additional complexity and maintenance requirements, using `kubectl apply` isn't +> recommended for air-gapped environments. +> Instead, consider using the [`kubit` CLI approach](#kubit-cli), which is specifically designed for air-gapped deployments. + +{{% /tab-content %}} +{{% tab-content %}} + +## Standard and air-gapped deployments + +_This approach avoids the need for installing the kubit operator in the cluster, +making it ideal for air-gapped clusters._ + +> [!Important] +> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/#configure-access-to-the-influxDB-container-registry). + +1. On a machine with internet access, download the [`kubit` CLI](https://github.com/kubecfg/kubit#cli-tool)--for example: + + ```bash + curl -L -o kubit https://github.com/kubecfg/kubit/archive/refs/tags/v0.0.20.tar.gz + chmod +x kubit + ``` + + Replace {{% code-placeholder-key %}}`v0.0.20`{{% /code-placeholder-key%}} with the [latest release version](https://github.com/kubecfg/kubit/releases/latest). + +2. If deploying InfluxDB in an air-gapped environment (without internet access), + transfer the binary to your air-gapped environment. + +3. Use the `kubit local apply` command to process your [custom-configured `myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/) locally + and apply the resulting resources to your cluster: + + ```bash + # Point to Docker credentials that have access to your registry + # (public registry for standard deployments or private registry for air-gapped) + DOCKER_CONFIG=/path/to/credentials kubit local apply myinfluxdb.yml + ``` + + If your local system doesn't have required tools installed, use Docker mode: + + ```bash + # For Linux or macOS + DOCKER_CONFIG=/path/to/credentials kubit local apply --docker myinfluxdb.yml + ``` + +The `kubit local apply` command processes your AppInstance resource locally and +applies the resulting Kubernetes resources directly to your cluster. + + {{% /tab-content %}} {{% tab-content %}} - - - -1. [Install the `kubit` CLI](https://github.com/kubecfg/kubit#cli-tool) - and related tools on your local machine. - -2. Use the `kubit local apply` command to apply your custom-configured - `myinfluxdb.yml` and deploy your InfluxDB Cluster. - Set the `DOCKER_CONFIG` environment variable to the directory path of - your InfluxDB Clustered pull secret credentials provided by InfluxData. - - ```sh - DOCKER_CONFIG=/path/to/pullsecrets kubit local apply myinfuxdb.yml - ``` - -**NOTE:** By default, `kubit` will use tools that are installed on your local system. -You can specify the `--docker` flag to opt-in to using containers instead. This will pull images -for tool dependencies, meaning the required versions are tracked by `kubit`. - - - -{{% /tab-content %}} -{{% tab-content %}} - +- [Helm standard deployment (with internet access)](#helm-standard-deployment-with-internet-access) +- [Helm air-gapped deployment](#helm-air-gapped-deployment) -1. Add the InfluxData Helm chart repository: +## Helm standard deployment (with internet access) - ```bash - helm repo add influxdata https://helm.influxdata.com/ - ``` +1. Add the InfluxData Helm chart repository: -2. Deploy your Helm chart using your modified local `values.yaml`: + ```bash + helm repo add influxdata https://helm.influxdata.com/ + ``` - ```bash - helm upgrade \ - --install \ - influxdb \ - influxdata/influxdb3-clustered \ - -f ./values.yml \ - --namespace influxdb - ``` +2. Update your Helm repositories to ensure you have the latest charts: + + ```bash + helm repo update + ``` + +3. Deploy the InfluxDB Clustered Helm chart with your [customized `values.yaml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#create-a-valuesyaml-file): + + ```bash + helm install influxdb influxdata/influxdb3-clustered \ + -f values.yaml \ + --namespace influxdb \ + --create-namespace + ``` + +If you need to update your deployment after making changes to your `values.yaml`, use the `helm upgrade` command: + +```bash +helm upgrade influxdb influxdata/influxdb3-clustered \ + -f values.yaml \ + --namespace influxdb +``` + +## Helm air-gapped deployment + +> [!Important] +> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images and the kubit operator](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#configure-access-to-the-influxDB-container-registry). + +1. On a machine with internet access, download the Helm chart: + + ```bash + # Add the InfluxData repository + helm repo add influxdata https://helm.influxdata.com/ + + # Update the repositories + helm repo update + + # Download the chart as a tarball + helm pull influxdata/influxdb3-clustered --version X.Y.Z + ``` + + Replace `X.Y.Z` with the specific chart version you want to use. + +2. Transfer the chart tarball to your air-gapped environment using your secure file transfer method. + +3. In your air-gapped environment, install the chart from the local tarball and values from your [customized `values.yaml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#create-a-valuesyaml-file): + + ```bash + helm install influxdb ./influxdb3-clustered-X.Y.Z.tgz \ + -f values.yaml \ + --namespace influxdb \ + --create-namespace + ``` + +4. Verify the deployment: + + ```bash + kubectl get pods -n influxdb + ``` + +If you need to update your deployment after making changes to your `values.yaml`, use the `helm upgrade` command: + +```bash +helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \ + -f values.yaml \ + --namespace influxdb +``` + +> [!Note] +> #### kubit's role in air-gapped environments +> +> When deploying with Helm in an air-gapped environment: +> +> 1. **Helm deploys the kubit operator** - The Helm chart includes the kubit operator, which needs its images mirrored to your private registry +> 2. **Operator requires access to all InfluxDB images** - The kubit operator deploys the actual InfluxDB components using images from your private registry +> 3. **Registry override is essential** - You must set the `images.registryOverride` and configure the kubit operator images correctly in the values file +> +> This is why you need to [mirror InfluxDB images and kubit operator images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#mirror-influxdb-images) for air-gapped deployments. - {{% /tab-content %}} {{< /tabs-wrapper >}} @@ -204,4 +282,24 @@ influxdb iox-shared-querier-7f5998b9b-fpt62 4/4 Running 1 (6 influxdb kubit-apply-influxdb-g6qpx 0/1 Completed 0 8s ``` +## Troubleshoot deploying InfluxDB Clustered + +### Common issues + +1. **Image pull errors** + - Check that registry override and image pull secrets are properly configured + - For air-gapped: Verify all images are mirrored and `registryOverride` is correctly set + +2. **Missing kubit binary** + - Ensure you've transferred the correct version of kubit for your platform + - Verify the binary has executable permissions + +3. **Kubit operator failures in air-gapped environments** + + - Ensure you've properly mirrored all kubit operator images and configured their references in your values file. + +4. **PostgreSQL connectivity issues** + - Verify network connectivity to your PostgreSQL database + - Check that database credentials are correct in your configuration + {{< page-nav prev="/influxdb3/clustered/install/set-up-cluster/licensing/" prevText="Install your license" next="/influxdb3/clustered/install/set-up-cluster/test-cluster/" nextText="Test your cluster" >}} diff --git a/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md b/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md index 8827f96fb..33315c698 100644 --- a/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md +++ b/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md @@ -27,7 +27,7 @@ InfluxDB Clustered requires the following prerequisite external dependencies: Stores the Write-Ahead Log (WAL) for [InfluxDB Ingesters](/influxdb3/clustered/reference/internals/storage-engine/#ingester). -The following walks through preparing these prerequisites. +## Install prerequisites - [Install kubectl](#install-kubectl) - [Set up your Kubernetes cluster](#set-up-your-kubernetes-cluster) @@ -37,7 +37,7 @@ The following walks through preparing these prerequisites. - [Set up your PostgreSQL-compatible database](#set-up-your-postgresql-compatible-database) - [Set up local or attached storage](#set-up-local-or-attached-storage) -## Install kubectl +### Install kubectl Kubernetes provides the `kubectl` command line tool for communicating with a Kubernetes cluster's control plane. `kubectl` is used to manage your InfluxDB @@ -53,7 +53,7 @@ InfluxDB Clustered Kubernetes deployments require `kubectl` 1.27 or higher. - [Install kubectl on macOS](https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/) - [Install kubectl on Windows](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/) -## Set up your Kubernetes cluster +#### Set up your Kubernetes cluster 1. Deploy a Kubernetes cluster. The deployment process depends on your Kubernetes environment or Kubernetes cloud provider. Refer to the @@ -175,7 +175,7 @@ following sizing for {{% product-name %}} components: Your sizing may need to be different based on your environment, cloud provider, and workload, but this is a reasonable starting size for your initial testing. -## Install the kubecfg kubit operator +### Install the kubecfg kubit operator The [`kubecfg kubit` operator](https://github.com/kubecfg/kubit) (maintained by InfluxData) simplifies the installation and management of the InfluxDB Clustered package. @@ -199,7 +199,7 @@ operator **v0.0.18 or later**. kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.19' ``` -## Set up a Kubernetes ingress controller +### Set up a Kubernetes ingress controller [Kubernetes ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) routes HTTP/S requests to services within the cluster and requires deploying an @@ -208,19 +208,20 @@ You can provide your own ingress or you can install [Nginx Ingress Controller](https://github.com/kubernetes/ingress-nginx) to use the InfluxDB-defined ingress. -{{% note %}} -InfluxDB Clustered components use gRPC/HTTP2 protocols. If using an external -load balancer, you may need to explicitly enable these protocols on your load -balancers. -{{% /note %}} +> [!Important] +> #### Allow gRPC/HTTP2 +> +> InfluxDB Clustered components use gRPC/HTTP2 protocols. +> If using an external load balancer, +> you may need to explicitly enable these protocols on your load +> balancers. -## Set up your object store +### Set up your object store InfluxDB Clustered supports AWS S3 or S3-compatible storage (including Google Cloud Storage, Azure Blob Storage, and MinIO) for storing [InfluxDB Parquet files](/influxdb3/clustered/reference/internals/storage-engine/#object-store). -Refer to your object storage provider's documentation for information about -setting up an object store: +Refer to your object storage provider's documentation for information about setting up an object store: - [Create an AWS S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) - [Create a Google Cloud Storage bucket](https://cloud.google.com/storage/docs/creating-buckets) @@ -252,7 +253,7 @@ We **strongly** recommend the following: same namespace is possible, we do not recommend it for production environments. {{% /note %}} -### Configure object storage permissions +#### Configure object storage permissions Ensure the identity you use to connect to your S3-compatible object store has the correct permissions to allow InfluxDB to perform all the actions it needs to. @@ -361,7 +362,7 @@ To configure permissions with MinIO, use the [example AWS access policy](#view-example-aws-s3-access-policy). {{% /note %}} -## Set up your PostgreSQL-compatible database +### Set up your PostgreSQL-compatible database The [InfluxDB Catalog](/influxdb3/clustered/reference/internals/storage-engine/#catalog) that stores metadata related to your time series data requires a PostgreSQL or @@ -371,7 +372,7 @@ depends on the database and database provider you use. Refer to your database's or provider's documentation for setting up your PostgreSQL-compatible database. -### PostgreSQL-compatible database requirements +#### PostgreSQL-compatible database requirements - PostgreSQL version **13 or 14**. - **Minimum of 4 GB of memory** or equivalent provider-specific units. @@ -389,7 +390,7 @@ While deploying everything in the same namespace is possible, we do not recommend it for production environments. {{% /note %}} -## Set up local or attached storage +### Set up local or attached storage The [InfluxDB Ingester](/influxdb3/clustered/reference/internals/storage-engine/#ingester) needs local or attached storage to store the Write-Ahead Log (WAL). diff --git a/content/influxdb3/clustered/reference/release-notes/clustered.md b/content/influxdb3/clustered/reference/release-notes/clustered.md index 900053591..e056d5c5d 100644 --- a/content/influxdb3/clustered/reference/release-notes/clustered.md +++ b/content/influxdb3/clustered/reference/release-notes/clustered.md @@ -10,22 +10,50 @@ menu: weight: 201 --- -{{% note %}} -## Checkpoint releases {.checkpoint} - -Some InfluxDB Clustered releases are checkpoint releases that introduce a -breaking change to an InfluxDB component. -When [upgrading InfluxDB Clustered](/influxdb3/clustered/admin/upgrade/), -**always upgrade to each checkpoint release first, before proceeding to newer versions**. - -Checkpoint releases are only made when absolutely necessary and are clearly -identified below with the icon. -{{% /note %}} +> [!Note] +> ## Checkpoint releases {.checkpoint} +> +> Some InfluxDB Clustered releases are checkpoint releases that introduce a +> breaking change to an InfluxDB component. +> When [upgrading InfluxDB Clustered](/influxdb3/clustered/admin/upgrade/), +> **always upgrade to each checkpoint release first, before proceeding to newer versions**. +> +> Checkpoint releases are only made when absolutely necessary and are clearly +> identified below with the icon. {{< release-toc >}} --- +## 20250212-1570743 {date="2025-02-12"} + +### Quickstart + +```yaml +spec: + package: + image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250212-1570743 +``` + +### Bug Fixes + +This release fixes a bug in the 20241217-1494922 release where the default +Prometheus CPU limit was set to an integer instead of a string. + +### Changes + +#### Deployment + +- Expose the Prometheus `retention` period to let users set a custom + retention period for Prometheus metrics. + +#### Database Engine + +- Upgrade DataFusion +- Add the ability to restore a cluster from a Catalog snapshot. + +--- + ## 20241217-1494922 {date="2024-12-17"} ### Quickstart @@ -114,7 +142,7 @@ spec: #### AppInstance image override bug fix -In [20240925-1257864](#20240925-1257864), the AppInstance image override was +In 20240925-1257864, the AppInstance image override was broken with the introduction of strict always-on license enforcement. This release fixes that bug. @@ -123,50 +151,19 @@ Clustered in air-gapped environments where the deployment model involves overriding the default image repository to point to images copied to an air-gapped registry. -This release is an alternative to [20240925-1257864](#20240925-1257864) for +This release is an alternative to 20240925-1257864 for customers who depend on this image override feature. #### Upgrade bug fix -[20240925-1257864](#20240925-1257864) introduced a schema migration bug that +20240925-1257864 introduced a schema migration bug that caused an `init` container in the `account` Pods to hang indefinitely. This would only affect InfluxDB Clustered during an upgrade; not a fresh install. +The 20240925-1257864 release has been removed from the release notes, but +relevant updates are included as part of this 20241024-1354148 release. For customers who experience this bug when attempting to upgrade to -[20240925-1257864](#20240925-1257864), upgrade to this 20241024-1354148 instead. - -### Changes - -#### Deployment - -- Enable overriding the default CPU and memory resource requests and limits for - the Garbage collector and Catalog services. -- Remove the Gateway service and implement the newly introduced Core service. -- Fix logic related to applying default resource limits for IOx components. -- Support [`ResourceQuota`s](https://kubernetes.io/docs/concepts/policy/resource-quotas/) - with the `enableDefaultResourceLimits` feature flag. This causes resource - limits to be applied even to containers that don't normally have limits - applied. - ---- - -## 20240925-1257864 {date="2024-09-25" .checkpoint} - -{{% warn %}} -This release has a number of bugs in it which make it unsuitable for customer use. -If you are currently running this version, please upgrade to -[20241024-1354148](#20241024-1354148). -{{% /warn %}} - -### Quickstart - -```yaml -spec: - package: - image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:202409XX-XXXXXXX -``` - -### Highlights +20240925-1257864, upgrade to this 20241024-1354148 instead. #### Default to partial write semantics @@ -256,6 +253,14 @@ The installation of the Prometheus operator should be handled externally. #### Deployment +- Enable overriding the default CPU and memory resource requests and limits for + the Garbage collector and Catalog services. +- Remove the Gateway service and implement the newly introduced Core service. +- Fix logic related to applying default resource limits for IOx components. +- Support [`ResourceQuota`s](https://kubernetes.io/docs/concepts/policy/resource-quotas/) + with the `enableDefaultResourceLimits` feature flag. This causes resource + limits to be applied even to containers that don't normally have limits + applied. - Introduces the `nodeAffinity` and CPU/Memory requests setting for "granite" components. Previously, these settings were only available for core IOx components. @@ -323,10 +328,9 @@ validation error when omitted. When the `admin` section is omitted, the `admin-token` `Secret` can be used instead to get started quickly. -{{% note %}} -We still highly recommend OAuth for production; however, this lets you run an -InfluxDB Cluster with out having to integrate with an identity provider.** -{{% /note %}} +> [!Note] +> We recommend OAuth for production; however, the `admin-token` lets you run an +> InfluxDB Cluster without having to integrate with an identity provider.** ### Upgrade notes @@ -651,11 +655,10 @@ Kubernetes scheduler's default behavior. For further details, please consult the - Fix gRPC reflection to only include services served by a particular listening port. - {{% note %}} - `arrow.flight.protocol.FlightService` is known to be missing in the - `iox-shared-querier`'s reflection service even though `iox-shared-querier` - does run that gRPC service. - {{% /note %}} + > [!Note] + > `arrow.flight.protocol.FlightService` is known to be missing in the + > `iox-shared-querier`'s reflection service even though `iox-shared-querier` + > does run that gRPC service. --- @@ -860,10 +863,9 @@ spec: ### Highlights -{{% warn %}} -**This release fixes a regression in the database engine that was introduced in -[20231115-746129](#20231115-746129).** -{{% /warn %}} +> ![Important] +> **This release fixes a regression in the database engine that was introduced in +> [20231115-746129](#20231115-746129).** ### Changes diff --git a/content/influxdb3/clustered/reference/sql/functions/binary-string.md b/content/influxdb3/clustered/reference/sql/functions/binary-string.md new file mode 100644 index 000000000..382881271 --- /dev/null +++ b/content/influxdb3/clustered/reference/sql/functions/binary-string.md @@ -0,0 +1,19 @@ +--- +title: SQL binary string functions +list_title: Binary string functions +description: > + Use binary string functions to encode and decode binary string values in + SQL queries. +menu: + influxdb3_clustered: + name: Binary string + parent: sql-functions +weight: 308 + +source: /content/shared/sql-reference/functions/binary-string.md +--- + + diff --git a/content/influxdb3/clustered/reference/sql/functions/hashing.md b/content/influxdb3/clustered/reference/sql/functions/hashing.md new file mode 100644 index 000000000..38a2a7482 --- /dev/null +++ b/content/influxdb3/clustered/reference/sql/functions/hashing.md @@ -0,0 +1,19 @@ +--- +title: SQL hashing functions +list_title: Hashing functions +description: > + Use hashing functions to hash string values in SQL queries using established + hashing algorithms. +menu: + influxdb3_clustered: + name: Hashing + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/hashing.md +--- + + diff --git a/content/influxdb3/clustered/reference/sql/functions/window.md b/content/influxdb3/clustered/reference/sql/functions/window.md new file mode 100644 index 000000000..4b4c0052a --- /dev/null +++ b/content/influxdb3/clustered/reference/sql/functions/window.md @@ -0,0 +1,18 @@ +--- +title: SQL window functions +list_title: Window functions +description: > + SQL window functions perform an operation across a set of rows related to the + current row. +menu: + influxdb3_clustered: + name: Window + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/window.md +--- + + diff --git a/content/influxdb3/clustered/reference/sql/operators/comparison.md b/content/influxdb3/clustered/reference/sql/operators/comparison.md index 8fd9b248f..f268787a8 100644 --- a/content/influxdb3/clustered/reference/sql/operators/comparison.md +++ b/content/influxdb3/clustered/reference/sql/operators/comparison.md @@ -10,19 +10,21 @@ menu: parent: Operators weight: 302 list_code_example: | - | Operator | Meaning | Example | - | :------: | :------------------------------------------------------- | :---------------- | - | `=` | Equal to | `123 = 123` | - | `<>` | Not equal to | `123 <> 456` | - | `!=` | Not equal to | `123 != 456` | - | `>` | Greater than | `3 > 2` | - | `>=` | Greater than or equal to | `3 >= 2` | - | `<` | Less than | `1 < 2` | - | `<=` | Less than or equal to | `1 <= 2` | - | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | - | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | - | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | - | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | + | Operator | Meaning | Example | + | :--------------------: | :------------------------------------------------------- | :------------------------- | + | `=` | Equal to | `123 = 123` | + | `<>` | Not equal to | `123 <> 456` | + | `!=` | Not equal to | `123 != 456` | + | `>` | Greater than | `3 > 2` | + | `>=` | Greater than or equal to | `3 >= 2` | + | `<` | Less than | `1 < 2` | + | `<=` | Less than or equal to | `1 <= 2` | + | `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` | + | `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` | + | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | + | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | + | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | + | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | source: /content/shared/sql-reference/operators/comparison.md --- diff --git a/content/influxdb3/core/.vale.ini b/content/influxdb3/core/.vale.ini new file mode 100644 index 000000000..86731aebf --- /dev/null +++ b/content/influxdb3/core/.vale.ini @@ -0,0 +1,22 @@ +# Custom Vale configuration for InfluxDB 3.x Core documentation. +# Custom styles are defined in .ci/vale/styles/InfluxDB3-Core: +# // SOURCE .ci/vale/styles/InfluxDB3-Core/Branding.yml +# // SOURCE .ci/vale/styles/InfluxDB3-Core/v3Schema.yml + +StylesPath = "../../../.ci/vale/styles" + +Vocab = InfluxDataDocs + +MinAlertLevel = warning + +Packages = Google, write-good, Hugo + +[*.md] +BasedOnStyles = Vale, InfluxDataDocs, InfluxDB3-Core, Google, write-good + +Google.Acronyms = NO +Google.DateFormat = NO +Google.Ellipses = NO +Google.Headings = NO +Google.WordList = NO +Vale.Spelling = NO \ No newline at end of file diff --git a/content/influxdb3/core/admin/_index.md b/content/influxdb3/core/admin/_index.md index b0bda9eb6..cfd96a399 100644 --- a/content/influxdb3/core/admin/_index.md +++ b/content/influxdb3/core/admin/_index.md @@ -11,5 +11,6 @@ source: /shared/influxdb3-admin/_index.md --- diff --git a/content/influxdb3/core/admin/query-system-data/_index.md b/content/influxdb3/core/admin/query-system-data/_index.md new file mode 100644 index 000000000..5f7ac3afb --- /dev/null +++ b/content/influxdb3/core/admin/query-system-data/_index.md @@ -0,0 +1,23 @@ +--- +title: Query system data +description: | + Query system tables to see data related + to the server, queries, and tables in an {{% product-name %}} instance. + Use the HTTP SQL query API to retrieve information about your database server + and table schemas. +menu: + influxdb3_core: + name: Query system data + parent: Administer InfluxDB +weight: 3 +influxdb3/core/tags: [query, api, system information, schemas] +related: + - /influxdb3/core/query-data/sql/ + - /influxdb3/core/query-data/execute-queries/ +source: /shared/influxdb3-admin/query-system-data/_index.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/core/get-started/_index.md b/content/influxdb3/core/get-started/_index.md index 4f8a41738..b715d6ddc 100644 --- a/content/influxdb3/core/get-started/_index.md +++ b/content/influxdb3/core/get-started/_index.md @@ -9,9 +9,12 @@ menu: influxdb3_core: name: Get started weight: 3 +related: + - /influxdb3/core/admin/query-system-data/ source: /shared/v3-core-get-started/_index.md --- diff --git a/content/influxdb3/core/install.md b/content/influxdb3/core/install.md index b2d497271..449568eb4 100644 --- a/content/influxdb3/core/install.md +++ b/content/influxdb3/core/install.md @@ -42,9 +42,10 @@ Use the InfluxDB 3 quick install script to install {{< product-name >}} on 1. Use the following command to download and install the appropriate {{< product-name >}} package on your local machine: - + ```bash - curl -O https://www.influxdata.com/d/install_influxdb3.sh && sh install_influxdb3.sh + curl -O https://www.influxdata.com/d/install_influxdb3.sh \ + && sh install_influxdb3.sh ``` 2. Verify that installation completed successfully: @@ -71,6 +72,7 @@ source ~/.bashrc ``` {{% /code-tab-content %}} {{% code-tab-content %}} + ```bash source ~/.zshrc ``` @@ -93,18 +95,10 @@ source ~/.zshrc • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-gnu.tar.gz.sha256) -- [InfluxDB 3 Core • Linux (x86) • MUSL](https://download.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-musl.tar.gz.sha256) - - [InfluxDB 3 Core • Linux (ARM) • GNU](https://download.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-gnu.tar.gz.sha256) -- [InfluxDB 3 Core • Linux (ARM) • MUSL](https://download.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-musl.tar.gz) - {{% /tab-content %}} @@ -139,9 +133,77 @@ source ~/.zshrc Use the `influxdb3-core` Docker image to deploy {{< product-name >}} in a Docker container. +The image is available for x86_64 (AMD64) and ARM64 architectures. +### Use Docker CLI + + ```bash docker pull quay.io/influxdb/influxdb3-core:latest ``` +Docker automatically pulls the appropriate image for your system architecture. + +You can also explicitly specify the architecture by using platform-specific tags: + +```bash +# For x86_64/AMD64 +docker pull \ +--platform linux/amd64 \ +quay.io/influxdb/influxdb3-core:latest +``` + +```bash +# For ARM64 +docker pull \ +--platform linux/arm64 \ +quay.io/influxdb/influxdb3-core:latest +``` +> [!Note] +> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3` server default for HTTP connections. +> To map the exposed port to a different port when running a container, see the Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/). + +### Use Docker Compose + +1. Open `compose.yaml` for editing and add a `services` entry for {{% product-name %}}--for example: + + ```yaml + # compose.yaml + services + influxdb3-core: + container_name: influxdb3-core + image: quay.io/influxdb/influxdb3-{{% product-key %}}:latest + ports: + - 9999:9999 + command: + - serve + - --node-id=node0 + - --log-filter=debug + - --object-store=file + - --data-dir=/var/lib/influxdb3 + ``` + +2. Use the Docker Compose CLI to start the server. + + Optional: to make sure you have the latest version of the image before you + start the server, run `docker compose pull`. + + + ```bash + docker compose pull && docker compose run influxdb3-core + ``` + +> [!Note] +> #### Stopping an InfluxDB 3 container +> +> To stop a running InfluxDB 3 container, find and terminate the process--for example: +> +> +> ```bash +> ps -ef | grep influxdb3 +> kill -9 +> ``` +> +> Currently, a bug prevents using `Ctrl-c` in the terminal to stop an InfluxDB 3 container. + {{< page-nav next="/influxdb3/core/get-started/" nextText="Get started with InfluxDB 3 Core" >}} diff --git a/content/influxdb3/core/plugins.md b/content/influxdb3/core/plugins.md new file mode 100644 index 000000000..a915a4b2f --- /dev/null +++ b/content/influxdb3/core/plugins.md @@ -0,0 +1,18 @@ +--- +title: Processing engine and Python plugins +description: Use the Python processing engine to trigger and execute custom code on different events in an {{< product-name >}} instance. +menu: + influxdb3_core: + name: Processing engine and Python plugins +weight: 4 +influxdb3/core/tags: [] +related: +- /influxdb3/core/reference/cli/influxdb3/test/wal_plugin/ +- /influxdb3/core/reference/cli/influxdb3/create/plugin/ +- /influxdb3/core/reference/cli/influxdb3/create/trigger/ +source: /shared/v3-core-plugins/_index.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/core/query-data/_index.md b/content/influxdb3/core/query-data/_index.md index 6dc888338..c428e4a56 100644 --- a/content/influxdb3/core/query-data/_index.md +++ b/content/influxdb3/core/query-data/_index.md @@ -1,7 +1,7 @@ --- title: Query data in {{< product-name >}} description: > - Learn to query data stored in InfluxDB using SQL and InfluxQL. + Learn to query data in {{% product-name %}} using SQL and InfluxQL. menu: influxdb3_core: name: Query data diff --git a/content/influxdb3/core/query-data/execute-queries/_index.md b/content/influxdb3/core/query-data/execute-queries/_index.md index cfd303dab..8abbf9af1 100644 --- a/content/influxdb3/core/query-data/execute-queries/_index.md +++ b/content/influxdb3/core/query-data/execute-queries/_index.md @@ -1,7 +1,7 @@ --- title: Execute queries description: > - Use tools and libraries to query data stored in {{< product-name >}}. + Use tools and libraries to query data from {{< product-name >}}. weight: 101 menu: influxdb3_core: diff --git a/content/influxdb3/core/query-data/execute-queries/influxdb-v3-api.md b/content/influxdb3/core/query-data/execute-queries/influxdb-v3-api.md new file mode 100644 index 000000000..d9757a790 --- /dev/null +++ b/content/influxdb3/core/query-data/execute-queries/influxdb-v3-api.md @@ -0,0 +1,29 @@ +--- +title: Use the InfluxDB v3 HTTP query API +seotitle: Use SQL or InfluxQL and InfluxDB v3 HTTP query API +list_title: Use the v3 query API +description: > + Use SQL or InfluxQL and the InfluxDB v3 HTTP query API to query data in {{< product-name >}}. +weight: 301 +menu: + influxdb3_core: + parent: Execute queries + name: Use the v3 query API +influxdb3/core/tags: [query, influxql, sql, python] +metadata: [InfluxQL, SQL] +related: + - /influxdb3/core/api-compatibility/v1/ +list_code_example: | + ```sh + curl --get http://{{< influxdb/host >}}/api/v3/query_sql \ + --header "Authorization: Token DATABASE_TOKEN" \ + --data-urlencode "db=DATABASE_NAME" \ + --data-urlencode "q=SELECT * FROM home" + ``` +source: /shared/influxdb3-query-guides/execute-queries/influxdb3-api.md +--- + + diff --git a/content/influxdb3/core/query-data/influxql/_index.md b/content/influxdb3/core/query-data/influxql/_index.md index 110f0365d..0f955958e 100644 --- a/content/influxdb3/core/query-data/influxql/_index.md +++ b/content/influxdb3/core/query-data/influxql/_index.md @@ -1,7 +1,7 @@ --- title: Query data with InfluxQL description: > - Learn to use InfluxQL to query data stored in {{< product-name >}}. + Learn to use InfluxQL to query data in {{< product-name >}}. menu: influxdb3_core: name: Query with InfluxQL diff --git a/content/influxdb3/core/query-data/sql/_index.md b/content/influxdb3/core/query-data/sql/_index.md index bb77b902f..ea82c237f 100644 --- a/content/influxdb3/core/query-data/sql/_index.md +++ b/content/influxdb3/core/query-data/sql/_index.md @@ -2,7 +2,7 @@ title: Query data with SQL seotitle: Query data with SQL description: > - Learn to query data stored in {{< product-name >}} using SQL. + Learn to query data in {{< product-name >}} using SQL. menu: influxdb3_core: name: Query with SQL diff --git a/content/influxdb3/core/query-data/sql/parameterized-queries.md b/content/influxdb3/core/query-data/sql/parameterized-queries.md index 5a4959ffa..be0d2429e 100644 --- a/content/influxdb3/core/query-data/sql/parameterized-queries.md +++ b/content/influxdb3/core/query-data/sql/parameterized-queries.md @@ -32,11 +32,10 @@ list_code_example: | // Call the client's function to query InfluxDB with parameters. iterator, err := client.QueryWithParameters(context.Background(), query, parameters) ``` -# Leaving in draft until tested -draft: true source: /shared/influxdb3-query-guides/sql/parameterized-queries.md --- \ No newline at end of file diff --git a/content/influxdb3/core/reference/api/_index.md b/content/influxdb3/core/reference/api/_index.md new file mode 100644 index 000000000..6a2200b1e --- /dev/null +++ b/content/influxdb3/core/reference/api/_index.md @@ -0,0 +1,20 @@ +--- +title: InfluxDB HTTP API +description: > + The InfluxDB HTTP API for {{% product-name %}} provides a programmatic interface + for interactions with InfluxDB, + including writing, querying, and processing data, and managing an InfluxDB 3 + instance. +menu: + influxdb3_core: + parent: Reference + name: InfluxDB HTTP API +weight: 104 +influxdb3/core/tags: [api] +source: /shared/influxdb3-api-reference/_index.md +--- + + diff --git a/content/influxdb3/core/reference/sql/functions/hashing.md b/content/influxdb3/core/reference/sql/functions/hashing.md new file mode 100644 index 000000000..5e0248f84 --- /dev/null +++ b/content/influxdb3/core/reference/sql/functions/hashing.md @@ -0,0 +1,19 @@ +--- +title: SQL hashing functions +list_title: Hashing functions +description: > + Use hashing functions to hash string values in SQL queries using established + hashing algorithms. +menu: + influxdb3_core: + name: Hashing + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/hashing.md +--- + + diff --git a/content/influxdb3/core/reference/sql/functions/window.md b/content/influxdb3/core/reference/sql/functions/window.md new file mode 100644 index 000000000..e964f30ed --- /dev/null +++ b/content/influxdb3/core/reference/sql/functions/window.md @@ -0,0 +1,18 @@ +--- +title: SQL window functions +list_title: Window functions +description: > + SQL window functions perform an operation across a set of rows related to the + current row. +menu: + influxdb3_core: + name: Window + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/window.md +--- + + diff --git a/content/influxdb3/core/reference/sql/operators/comparison.md b/content/influxdb3/core/reference/sql/operators/comparison.md index ac28aac1f..2896cc0df 100644 --- a/content/influxdb3/core/reference/sql/operators/comparison.md +++ b/content/influxdb3/core/reference/sql/operators/comparison.md @@ -10,19 +10,21 @@ menu: parent: Operators weight: 302 list_code_example: | - | Operator | Meaning | Example | - | :------: | :------------------------------------------------------- | :---------------- | - | `=` | Equal to | `123 = 123` | - | `<>` | Not equal to | `123 <> 456` | - | `!=` | Not equal to | `123 != 456` | - | `>` | Greater than | `3 > 2` | - | `>=` | Greater than or equal to | `3 >= 2` | - | `<` | Less than | `1 < 2` | - | `<=` | Less than or equal to | `1 <= 2` | - | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | - | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | - | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | - | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | + | Operator | Meaning | Example | + | :--------------------: | :------------------------------------------------------- | :------------------------- | + | `=` | Equal to | `123 = 123` | + | `<>` | Not equal to | `123 <> 456` | + | `!=` | Not equal to | `123 != 456` | + | `>` | Greater than | `3 > 2` | + | `>=` | Greater than or equal to | `3 >= 2` | + | `<` | Less than | `1 < 2` | + | `<=` | Less than or equal to | `1 <= 2` | + | `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` | + | `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` | + | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | + | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | + | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | + | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | source: /content/shared/sql-reference/operators/comparison.md --- diff --git a/content/influxdb3/core/visualize-data/_index.md b/content/influxdb3/core/visualize-data/_index.md index f4a36b023..32b9e697f 100644 --- a/content/influxdb3/core/visualize-data/_index.md +++ b/content/influxdb3/core/visualize-data/_index.md @@ -2,14 +2,14 @@ title: Visualize data description: > Use visualization tools like Grafana, Superset, and others to visualize time - series data stored in InfluxDB 3 Core. + series data queried from {{< product-name >}}. menu: influxdb3_core weight: 10 related: - - /influxdb3/clustered/query-data/ + - /influxdb3/core/query-data/ --- Use visualization tools like Grafana, Superset, and others to visualize time -series data stored in {{< product-name >}}. +series data queried from {{< product-name >}}. {{< children >}} diff --git a/content/influxdb3/core/visualize-data/grafana.md b/content/influxdb3/core/visualize-data/grafana.md index c8153a8ca..f647c7df9 100644 --- a/content/influxdb3/core/visualize-data/grafana.md +++ b/content/influxdb3/core/visualize-data/grafana.md @@ -3,7 +3,7 @@ title: Use Grafana to visualize data list_title: Grafana description: > Install and run [Grafana](https://grafana.com/) to query and visualize data - stored in InfluxDB 3 Core. + from {{< product-name >}}. weight: 101 menu: influxdb3_core: diff --git a/content/influxdb3/core/visualize-data/superset.md b/content/influxdb3/core/visualize-data/superset.md index d5dac2b7b..57394f909 100644 --- a/content/influxdb3/core/visualize-data/superset.md +++ b/content/influxdb3/core/visualize-data/superset.md @@ -3,7 +3,7 @@ title: Use Superset to visualize data list_title: Superset description: > Install and run [Apache Superset](https://superset.apache.org/) - to query and visualize data stored in InfluxDB 3 Core. + to query and visualize data stored from {{< product-name >}}. weight: 101 menu: influxdb3_core: diff --git a/content/influxdb3/core/visualize-data/tableau.md b/content/influxdb3/core/visualize-data/tableau.md index d35f90640..ee416e27d 100644 --- a/content/influxdb3/core/visualize-data/tableau.md +++ b/content/influxdb3/core/visualize-data/tableau.md @@ -3,7 +3,7 @@ title: Use Tableau to visualize data list_title: Tableau description: > Install and use [Tableau](https://www.tableau.com/) to query and visualize - data stored in InfluxDB 3 Core. + data from {{< product-name >}}. weight: 101 menu: influxdb3_core: diff --git a/content/influxdb3/core/write-data/client-libraries.md b/content/influxdb3/core/write-data/client-libraries.md index 874ecb657..44b886f13 100644 --- a/content/influxdb3/core/write-data/client-libraries.md +++ b/content/influxdb3/core/write-data/client-libraries.md @@ -1,8 +1,7 @@ --- title: Use InfluxDB client libraries to write data description: > - Use InfluxDB API clients to write points as line protocol data to InfluxDB - Clustered. + Use InfluxDB API clients to write points as line protocol data to {{% product-name %}}. menu: influxdb3_core: name: Use client libraries diff --git a/content/influxdb3/core/write-data/influxdb3-cli.md b/content/influxdb3/core/write-data/influxdb3-cli.md index 65fdd0b46..1c69dece8 100644 --- a/content/influxdb3/core/write-data/influxdb3-cli.md +++ b/content/influxdb3/core/write-data/influxdb3-cli.md @@ -2,7 +2,7 @@ title: Use the influxdb3 CLI to write data description: > Use the [`influxdb3` CLI](/influxdb3/core/reference/cli/influxdb3/) - to write line protocol data to InfluxDB Clustered. + to write line protocol data to {{% product-name %}}. menu: influxdb3_core: name: Use the influxdb3 CLI diff --git a/content/influxdb3/enterprise/admin/query-system-data/_index.md b/content/influxdb3/enterprise/admin/query-system-data/_index.md new file mode 100644 index 000000000..5ba273837 --- /dev/null +++ b/content/influxdb3/enterprise/admin/query-system-data/_index.md @@ -0,0 +1,23 @@ +--- +title: Query system data +description: | + Query system tables to see data related + to the server, queries, and tables in an {{% product-name %}} instance. + Use the HTTP SQL query API to retrieve information about your database server + and table schemas. +menu: + influxdb3_enterprise: + name: Query system data + parent: Administer InfluxDB +weight: 3 +influxdb3/enterprise/tags: [query, api, system information, schemas] +related: + - /influxdb3/enterprise/query-data/sql/ + - /influxdb3/enterprise/query-data/execute-queries/ +source: /shared/influxdb3-admin/query-system-data/_index.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/enterprise/get-started/_index.md b/content/influxdb3/enterprise/get-started/_index.md index 0fc055df3..55f130949 100644 --- a/content/influxdb3/enterprise/get-started/_index.md +++ b/content/influxdb3/enterprise/get-started/_index.md @@ -9,9 +9,12 @@ menu: influxdb3_enterprise: name: Get started weight: 3 +related: + - /influxdb3/enterprise/admin/query-system-data/ source: /shared/v3-enterprise-get-started/_index.md --- diff --git a/content/influxdb3/enterprise/install.md b/content/influxdb3/enterprise/install.md index e0302c9bd..71626d535 100644 --- a/content/influxdb3/enterprise/install.md +++ b/content/influxdb3/enterprise/install.md @@ -44,7 +44,8 @@ Use the InfluxDB 3 quick install script to install {{< product-name >}} on {{< product-name >}} package on your local machine: ```bash - curl -O https://www.influxdata.com/d/install_influxdb3.sh && sh install_influxdb3.sh enterprise + curl -O https://www.influxdata.com/d/install_influxdb3.sh \ + && sh install_influxdb3.sh enterprise ``` 2. Verify that installation completed successfully: @@ -93,18 +94,10 @@ source ~/.zshrc • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-gnu.tar.gz.sha256) -- [InfluxDB 3 Enterprise • Linux (x86) • MUSL](https://download.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-musl.tar.gz.sha256) - - [InfluxDB 3 Enterprise • Linux (ARM) • GNU](https://download.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-gnu.tar.gz.sha256) -- [InfluxDB 3 Enterprise • Linux (ARM) • MUSL](https://download.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-musl.tar.gz) - {{% /tab-content %}} @@ -139,9 +132,28 @@ source ~/.zshrc Use the `influxdb3-enterprise` Docker image to deploy {{< product-name >}} in a Docker container. +The image is available for x86_64 (AMD64) and ARM64 architectures. ```bash docker pull quay.io/influxdb/influxdb3-enterprise:latest ``` -{{< page-nav next="/influxdb3/enterprise/get-started/" nextText="Get started with InfluxDB 3 Enterprise" >}} +Docker automatically pulls the appropriate image for your system architecture. + +You can also explicitly specify the architecture by using platform-specific tags: + +```bash +# For x86_64/AMD64 +docker pull \ +--platform linux/amd64 \ +quay.io/influxdb/influxdb3-enterprise:latest +``` + +```bash +# For ARM64 +docker pull \ +--platform linux/arm64 \ +quay.io/influxdb/influxdb3-enterprise:latest +``` + +{{< page-nav next="/influxdb3/core/get-started/" nextText="Get started with InfluxDB 3 Enterprise" >}} diff --git a/content/influxdb3/enterprise/plugins.md b/content/influxdb3/enterprise/plugins.md new file mode 100644 index 000000000..4f48de733 --- /dev/null +++ b/content/influxdb3/enterprise/plugins.md @@ -0,0 +1,18 @@ +--- +title: Processing engine and Python plugins +description: Use the Python processing engine to trigger and execute custom code on different events in an {{< product-name >}} instance. +menu: + influxdb3_enterprise: + name: Processing engine and Python plugins +weight: 4 +influxdb3/core/tags: [] +related: +- /influxdb3/enterprise/reference/cli/influxdb3/test/wal_plugin/ +- /influxdb3/enterprise/reference/cli/influxdb3/create/plugin/ +- /influxdb3/enterprise/reference/cli/influxdb3/create/trigger/ +source: /shared/v3-core-plugins/_index.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/enterprise/query-data/_index.md b/content/influxdb3/enterprise/query-data/_index.md index ffa486a04..6af359c8a 100644 --- a/content/influxdb3/enterprise/query-data/_index.md +++ b/content/influxdb3/enterprise/query-data/_index.md @@ -1,7 +1,7 @@ --- title: Query data in {{< product-name >}} description: > - Learn to query data stored in InfluxDB using SQL and InfluxQL. + Learn to query data in {{< product-name >}} using SQL and InfluxQL. menu: influxdb3_enterprise: name: Query data diff --git a/content/influxdb3/enterprise/query-data/execute-queries/_index.md b/content/influxdb3/enterprise/query-data/execute-queries/_index.md index 6f3676f35..51829ebdd 100644 --- a/content/influxdb3/enterprise/query-data/execute-queries/_index.md +++ b/content/influxdb3/enterprise/query-data/execute-queries/_index.md @@ -1,7 +1,7 @@ --- title: Execute queries description: > - Use tools and libraries to query data stored in {{< product-name >}}. + Use tools and libraries to query data from {{< product-name >}}. weight: 101 menu: influxdb3_enterprise: diff --git a/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v1-api.md b/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v1-api.md index 0c40fafc5..f91e0c6c8 100644 --- a/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v1-api.md +++ b/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v1-api.md @@ -5,7 +5,7 @@ list_title: Use the v1 query API and InfluxQL description: > Use the InfluxDB v1 HTTP query API to query data in {{< product-name >}} with InfluxQL. -weight: 302 +weight: 303 menu: influxdb3_enterprise: parent: Execute queries diff --git a/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v3-api.md b/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v3-api.md new file mode 100644 index 000000000..e32290cb4 --- /dev/null +++ b/content/influxdb3/enterprise/query-data/execute-queries/influxdb-v3-api.md @@ -0,0 +1,29 @@ +--- +title: Use the InfluxDB v3 HTTP query API +seotitle: Use SQL or InfluxQL and InfluxDB v3 HTTP query API +list_title: Use the v3 query API +description: > + Use SQL or InfluxQL and the InfluxDB v3 HTTP query API to query data in {{< product-name >}}. +weight: 301 +menu: + influxdb3_enterprise: + parent: Execute queries + name: Use the v3 query API +influxdb3/enterprise/tags: [query, influxql, sql, python] +metadata: [InfluxQL, SQL] +related: + - /influxdb3/enterprise/api-compatibility/v1/ +list_code_example: | + ```sh + curl --get http://{{< influxdb/host >}}/api/v3/query_sql \ + --header "Authorization: Token DATABASE_TOKEN" \ + --data-urlencode "db=DATABASE_NAME" \ + --data-urlencode "q=SELECT * FROM home" + ``` +source: /shared/influxdb3-query-guides/execute-queries/influxdb3-api.md +--- + + diff --git a/content/influxdb3/enterprise/query-data/influxql/_index.md b/content/influxdb3/enterprise/query-data/influxql/_index.md index c8fccfa37..89b4d615b 100644 --- a/content/influxdb3/enterprise/query-data/influxql/_index.md +++ b/content/influxdb3/enterprise/query-data/influxql/_index.md @@ -1,7 +1,7 @@ --- title: Query data with InfluxQL description: > - Learn to use InfluxQL to query data stored in {{< product-name >}}. + Learn to use InfluxQL to query data in {{< product-name >}}. menu: influxdb3_enterprise: name: Query with InfluxQL diff --git a/content/influxdb3/enterprise/query-data/sql/_index.md b/content/influxdb3/enterprise/query-data/sql/_index.md index 6767cb686..66fb45e82 100644 --- a/content/influxdb3/enterprise/query-data/sql/_index.md +++ b/content/influxdb3/enterprise/query-data/sql/_index.md @@ -2,7 +2,7 @@ title: Query data with SQL seotitle: Query data with SQL description: > - Learn to query data stored in {{< product-name >}} using SQL. + Learn to query data in {{< product-name >}} using SQL. menu: influxdb3_enterprise: name: Query with SQL diff --git a/content/influxdb3/enterprise/query-data/sql/parameterized-queries.md b/content/influxdb3/enterprise/query-data/sql/parameterized-queries.md index 72bcf69a0..23d143f83 100644 --- a/content/influxdb3/enterprise/query-data/sql/parameterized-queries.md +++ b/content/influxdb3/enterprise/query-data/sql/parameterized-queries.md @@ -32,11 +32,10 @@ list_code_example: | // Call the client's function to query InfluxDB with parameters. iterator, err := client.QueryWithParameters(context.Background(), query, parameters) ``` -# Leaving in draft until tested -draft: true source: /shared/influxdb3-query-guides/sql/parameterized-queries.md --- \ No newline at end of file diff --git a/content/influxdb3/enterprise/reference/api/_index.md b/content/influxdb3/enterprise/reference/api/_index.md new file mode 100644 index 000000000..ea78867f6 --- /dev/null +++ b/content/influxdb3/enterprise/reference/api/_index.md @@ -0,0 +1,20 @@ +--- +title: InfluxDB HTTP API +description: > + The InfluxDB HTTP API for {{% product-name %}} provides a programmatic interface + for interactions with InfluxDB, + including writing, querying, and processing data, and managing an InfluxDB 3 + instance. +menu: + influxdb3_enterprise: + parent: Reference + name: InfluxDB HTTP API +weight: 104 +influxdb3/enterprise/tags: [api] +source: /shared/influxdb3-api-reference/_index.md +--- + + diff --git a/content/influxdb3/enterprise/reference/sql/functions/hashing.md b/content/influxdb3/enterprise/reference/sql/functions/hashing.md new file mode 100644 index 000000000..4770d5336 --- /dev/null +++ b/content/influxdb3/enterprise/reference/sql/functions/hashing.md @@ -0,0 +1,19 @@ +--- +title: SQL hashing functions +list_title: Hashing functions +description: > + Use hashing functions to hash string values in SQL queries using established + hashing algorithms. +menu: + influxdb3_enterprise: + name: Hashing + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/hashing.md +--- + + diff --git a/content/influxdb3/enterprise/reference/sql/functions/window.md b/content/influxdb3/enterprise/reference/sql/functions/window.md new file mode 100644 index 000000000..934c647be --- /dev/null +++ b/content/influxdb3/enterprise/reference/sql/functions/window.md @@ -0,0 +1,18 @@ +--- +title: SQL window functions +list_title: Window functions +description: > + SQL window functions perform an operation across a set of rows related to the + current row. +menu: + influxdb3_enterprise: + name: Window + parent: sql-functions +weight: 309 + +source: /shared/sql-reference/functions/window.md +--- + + diff --git a/content/influxdb3/enterprise/reference/sql/operators/comparison.md b/content/influxdb3/enterprise/reference/sql/operators/comparison.md index c7eb269f5..6ae8950f7 100644 --- a/content/influxdb3/enterprise/reference/sql/operators/comparison.md +++ b/content/influxdb3/enterprise/reference/sql/operators/comparison.md @@ -10,19 +10,21 @@ menu: parent: Operators weight: 302 list_code_example: | - | Operator | Meaning | Example | - | :------: | :------------------------------------------------------- | :---------------- | - | `=` | Equal to | `123 = 123` | - | `<>` | Not equal to | `123 <> 456` | - | `!=` | Not equal to | `123 != 456` | - | `>` | Greater than | `3 > 2` | - | `>=` | Greater than or equal to | `3 >= 2` | - | `<` | Less than | `1 < 2` | - | `<=` | Less than or equal to | `1 <= 2` | - | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | - | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | - | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | - | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | + | Operator | Meaning | Example | + | :--------------------: | :------------------------------------------------------- | :------------------------- | + | `=` | Equal to | `123 = 123` | + | `<>` | Not equal to | `123 <> 456` | + | `!=` | Not equal to | `123 != 456` | + | `>` | Greater than | `3 > 2` | + | `>=` | Greater than or equal to | `3 >= 2` | + | `<` | Less than | `1 < 2` | + | `<=` | Less than or equal to | `1 <= 2` | + | `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` | + | `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` | + | `~` | Matches a regular expression | `'abc' ~ 'a.*'` | + | `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` | + | `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` | + | `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` | source: /content/shared/sql-reference/operators/comparison.md --- diff --git a/content/influxdb3/enterprise/visualize-data/_index.md b/content/influxdb3/enterprise/visualize-data/_index.md index a5200cf7b..a643f8da1 100644 --- a/content/influxdb3/enterprise/visualize-data/_index.md +++ b/content/influxdb3/enterprise/visualize-data/_index.md @@ -2,7 +2,7 @@ title: Visualize data description: > Use visualization tools like Grafana, Superset, and others to visualize time - series data stored in InfluxDB 3 Core. + series data queried from {{< product-name >}}. menu: influxdb3_enterprise weight: 10 related: @@ -10,6 +10,6 @@ related: --- Use visualization tools like Grafana, Superset, and others to visualize time -series data stored in {{< product-name >}}. +series data queried from {{< product-name >}}. {{< children >}} diff --git a/content/influxdb3/enterprise/visualize-data/grafana.md b/content/influxdb3/enterprise/visualize-data/grafana.md index baad213b6..89e274c72 100644 --- a/content/influxdb3/enterprise/visualize-data/grafana.md +++ b/content/influxdb3/enterprise/visualize-data/grafana.md @@ -3,7 +3,7 @@ title: Use Grafana to visualize data list_title: Grafana description: > Install and run [Grafana](https://grafana.com/) to query and visualize data - stored in InfluxDB 3 Enterprise. + from {{< product-name >}}. weight: 101 menu: influxdb3_enterprise: diff --git a/content/influxdb3/enterprise/visualize-data/superset.md b/content/influxdb3/enterprise/visualize-data/superset.md index f388d32db..4c68b26d3 100644 --- a/content/influxdb3/enterprise/visualize-data/superset.md +++ b/content/influxdb3/enterprise/visualize-data/superset.md @@ -3,7 +3,7 @@ title: Use Superset to visualize data list_title: Superset description: > Install and run [Apache Superset](https://superset.apache.org/) - to query and visualize data stored in InfluxDB 3 Enterprise. + to query and visualize data from {{< product-name >}}. weight: 101 menu: influxdb3_enterprise: diff --git a/content/influxdb3/enterprise/visualize-data/tableau.md b/content/influxdb3/enterprise/visualize-data/tableau.md index 024899779..da8620520 100644 --- a/content/influxdb3/enterprise/visualize-data/tableau.md +++ b/content/influxdb3/enterprise/visualize-data/tableau.md @@ -3,7 +3,7 @@ title: Use Tableau to visualize data list_title: Tableau description: > Install and use [Tableau](https://www.tableau.com/) to query and visualize - data stored in InfluxDB 3 Enterprise. + data from {{< product-name >}}. weight: 101 menu: influxdb3_enterprise: diff --git a/content/influxdb3/enterprise/write-data/client-libraries.md b/content/influxdb3/enterprise/write-data/client-libraries.md index afb2b64ec..e4e84824b 100644 --- a/content/influxdb3/enterprise/write-data/client-libraries.md +++ b/content/influxdb3/enterprise/write-data/client-libraries.md @@ -1,8 +1,7 @@ --- title: Use InfluxDB client libraries to write data description: > - Use InfluxDB API clients to write points as line protocol data to InfluxDB - Clustered. + Use InfluxDB API clients to write points as line protocol data to {{% product-name %}}. menu: influxdb3_enterprise: name: Use client libraries diff --git a/content/influxdb3/enterprise/write-data/influxdb3-cli.md b/content/influxdb3/enterprise/write-data/influxdb3-cli.md index 70526147b..d003d5926 100644 --- a/content/influxdb3/enterprise/write-data/influxdb3-cli.md +++ b/content/influxdb3/enterprise/write-data/influxdb3-cli.md @@ -2,7 +2,7 @@ title: Use the influxdb3 CLI to write data description: > Use the [`influxdb3` CLI](/influxdb3/enterprise/reference/cli/influxdb3/) - to write line protocol data to InfluxDB Clustered. + to write line protocol data to {{% product-name %}}. menu: influxdb3_enterprise: name: Use the influxdb3 CLI diff --git a/content/resources/videos/API-Invokable-Scripts.md b/content/resources/videos/API-Invokable-Scripts.md index 48840fe05..6b3afe5dd 100644 --- a/content/resources/videos/API-Invokable-Scripts.md +++ b/content/resources/videos/API-Invokable-Scripts.md @@ -1,7 +1,7 @@ --- title: API Invokable Scripts description: > - InfluxDB lets you [invoke scripts](/influxdb/cloud/api-guide/api-invokable-scripts/) using the InfluxDB APIs ([InfluxDB Cloud API](/influxdb/cloud/api/) and [InfluxDB OSS (open source) API](/influxdb/latest/api/)). Here, Jay Clifford explains how to use this feature with custom endpoints to improve the functionality, efficiency, and security of your applications. + InfluxDB lets you [invoke scripts](/influxdb/cloud/api-guide/api-invokable-scripts/) using the InfluxDB APIs ([InfluxDB Cloud API](/influxdb/cloud/api/) and [InfluxDB OSS (open source) API](/influxdb/v2/api/)). Here, Jay Clifford explains how to use this feature with custom endpoints to improve the functionality, efficiency, and security of your applications. menu: resources: parent: Videos diff --git a/content/resources/videos/Intro-to-Client-Libraries.md b/content/resources/videos/Intro-to-Client-Libraries.md index 9d8c75d26..1182f5b82 100644 --- a/content/resources/videos/Intro-to-Client-Libraries.md +++ b/content/resources/videos/Intro-to-Client-Libraries.md @@ -1,7 +1,7 @@ --- title: Intro to Client Libraries description: > - [Client libraries](/influxdb/latest/api-guide/client-libraries/) are a powerful way to harness the power of InfluxDB's API using familiar programming languages. Here, Jay Clifford explains what client libraries are, how they work, and why you should use them when working with InfluxDB. + [Client libraries](/influxdb/v2/api-guide/client-libraries/) are a powerful way to harness the power of InfluxDB's API using familiar programming languages. Here, Jay Clifford explains what client libraries are, how they work, and why you should use them when working with InfluxDB. menu: resources: parent: Videos diff --git a/content/resources/videos/Optimizing-Flux-Functions.md b/content/resources/videos/Optimizing-Flux-Functions.md index 2a8359d2d..aafe218fe 100644 --- a/content/resources/videos/Optimizing-Flux-Functions.md +++ b/content/resources/videos/Optimizing-Flux-Functions.md @@ -1,7 +1,7 @@ --- title: Optimizing Flux Functions description: > - Flux queries are scripts that let you work with your data in InfluxDB. Here, Scott Anderson provides some tips for [optimizing Flux queries](/influxdb/latest/query-data/optimize-queries/), so that your data and applications are more performant. + Flux queries are scripts that let you work with your data in InfluxDB. Here, Scott Anderson provides some tips for [optimizing Flux queries](/influxdb/v2/query-data/optimize-queries/), so that your data and applications are more performant. menu: resources: parent: Videos diff --git a/content/shared/influxdb3-admin/query-system-data/_index.md b/content/shared/influxdb3-admin/query-system-data/_index.md new file mode 100644 index 000000000..508cdc34b --- /dev/null +++ b/content/shared/influxdb3-admin/query-system-data/_index.md @@ -0,0 +1,136 @@ + +{{% product-name %}} stores data related to the database server, queries, and tables in _system tables_. +You can query the system tables for information about your running server, databases, and and table schemas. + +## Query system tables + +- [Use the HTTP query API](#use-the-http-query-api) + - [Examples](#examples) + - [Show tables](#show-tables) + - [View column information for a table](#view-column-information-for-a-table) + +### Use the HTTP query API + +Use the HTTP API `/api/v3/query_sql` endpoint to retrieve system information about your database server and table schemas in {{% product-name %}}. + + +To execute a query, send a `GET` or `POST` request to the endpoint: + +- `GET`: Pass parameters in the URL query string (for simple queries) +- `POST`: Pass parameters in a JSON object (for complex queries and readability in your code) + +Include the following parameters: + +- `q`: _({{< req >}})_ The SQL query to execute. +- `db`: _({{< req >}})_ The database to execute the query against. +- `params`: A JSON object containing parameters to be used in a _parameterized query_. +- `format`: The format of the response (`json`, `jsonl`, `csv`, `pretty`, or `parquet`). + JSONL (`jsonl`) is preferred because it streams results back to the client. + `pretty` is for human-readable output. Default is `json`. + +#### Examples + +> [!Note] +> #### system\_ sample data +> +> In examples, tables with `"table_name":"system_` are user-created tables for CPU, memory, disk, +> network, and other resource statistics collected and written +> by the user--for example, using the `psutil` Python library or +> [Telegraf](/telegraf/v1/get-started/) to collect +> and write system metrics to an InfluxDB 3 database. + +##### Show tables + +The following example sends a `GET` request that executes a `show tables` query +to retrieve all user-created +tables (`"table_schema":"iox"`), system tables, and information schema tables +for a database: + +```bash +curl "http://{{< influxdb/host >}}/api/v3/query_sql?db=mydb&format=jsonl&q=show%20tables" +``` + +The response body contains the following JSONL: + +```jsonl +{"table_catalog":"public","table_schema":"iox","table_name":"system_cpu","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_cpu_cores","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_memory","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_memory_faults","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_usage","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_io","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_performance","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_network","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"distinct_caches","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"last_caches","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"parquet_files","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"processing_engine_plugins","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"processing_engine_triggers","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"queries","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"tables","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"views","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"columns","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"df_settings","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"schemata","table_type":"VIEW"} +``` + +A table has one of the following `table_schema` values: + +- `iox`: tables created by the user of the database. +- `system`: tables used by the system to show information about the running database server. + Some of these tables show stored information such as configurations, + while others, such as the `queries` table, hold ephemeral state in memory. +- `information_schema`: views that show schema information for tables in the database. + +#### View column information for a table + +The following query sends a `POST` request that executes an SQL query to +retrieve information about columns in the sample `system_swap` table schema: + +_Note: when you send a query in JSON, you must escape single quotes +that surround field names._ + +```bash +curl "http://localhost:8181/api/v3/query_sql" \ + --header "Content-Type: application/json" \ + --json '{ + "db": "mydb", + "q": "SELECT * FROM information_schema.columns WHERE table_schema = '"'iox'"' AND table_name = '"'system_swap'"'", + "format": "jsonl" + }' +``` + +The output is the following: + +```jsonl +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"free","ordinal_position":0,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"host","ordinal_position":1,"is_nullable":"NO","data_type":"Dictionary(Int32, Utf8)"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"percent","ordinal_position":2,"is_nullable":"YES","data_type":"Float64","numeric_precision":24,"numeric_precision_radix":2} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"sin","ordinal_position":3,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"sout","ordinal_position":4,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"time","ordinal_position":5,"is_nullable":"NO","data_type":"Timestamp(Nanosecond, None)"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"total","ordinal_position":6,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"used","ordinal_position":7,"is_nullable":"YES","data_type":"UInt64"} +``` + +#### Recently executed queries + +To view recently executed queries, query the `queries` system table: + +```bash +curl "http://localhost:8181/api/v3/query_sql" \ + --header "Content-Type: application/json" \ + --json '{ + "db": "mydb", + "q": "SELECT * FROM system.queries LIMIT 2", + "format": "jsonl" + }' +``` + +The output is similar to the following: + +```jsonl +{"id":"cdd63409-1822-4e65-8e3a-d274d553dbb3","phase":"success","issue_time":"2025-01-20T17:01:40.690067","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.032689S","permit_duration":"PT0.000202S","execute_duration":"PT0.000223S","end2end_duration":"PT0.033115S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false} +{"id":"47f8d312-5e75-4db2-837a-6fcf94c09927","phase":"success","issue_time":"2025-01-20T17:02:32.627782","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.000583S","permit_duration":"PT0.000015S","execute_duration":"PT0.000063S","end2end_duration":"PT0.000662S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false} +``` diff --git a/content/shared/influxdb3-api-reference/_index.md b/content/shared/influxdb3-api-reference/_index.md new file mode 100644 index 000000000..89495f21e --- /dev/null +++ b/content/shared/influxdb3-api-reference/_index.md @@ -0,0 +1,7 @@ +The InfluxDB HTTP API provides a programmatic interface for interactions with +{{% product-name %}}, such as writing and querying data, triggering Processing +engine plugins, and managing an InfluxDB 3 instance. +The API includes endpoints for backward compatibility with +InfluxDB v1 and v2 workloads, clients, and third-party tools. + +{{% product-name %}} HTTP API diff --git a/content/shared/influxdb3-query-guides/_index.md b/content/shared/influxdb3-query-guides/_index.md index 72fae2ee5..4d78a6c9a 100644 --- a/content/shared/influxdb3-query-guides/_index.md +++ b/content/shared/influxdb3-query-guides/_index.md @@ -1,4 +1,4 @@ -Learn to query data stored in {{< product-name >}}. +Learn to query data in {{< product-name >}}. {{< children >}} diff --git a/content/shared/influxdb3-query-guides/execute-queries/_index.md b/content/shared/influxdb3-query-guides/execute-queries/_index.md index d82abd6a2..62b1af16c 100644 --- a/content/shared/influxdb3-query-guides/execute-queries/_index.md +++ b/content/shared/influxdb3-query-guides/execute-queries/_index.md @@ -1,4 +1,4 @@ -Use tools and libraries to query data stored in an {{< product-name >}} database. +Use tools and libraries to query data from an {{< product-name >}} database. InfluxDB client libraries and Flight clients can use the Flight+gRPC protocol to query with SQL or InfluxQL and retrieve data in the diff --git a/content/shared/influxdb3-query-guides/execute-queries/influxdb3-api.md b/content/shared/influxdb3-query-guides/execute-queries/influxdb3-api.md new file mode 100644 index 000000000..a8ab9d018 --- /dev/null +++ b/content/shared/influxdb3-query-guides/execute-queries/influxdb3-api.md @@ -0,0 +1,193 @@ + +Use the InfluxDB 3 HTTP query API to query data in {{< product-name >}}. +The API provides `GET` and `POST` endpoints for querying data and system information using SQL or InfluxQL. + +> [!Note] +> #### Query using gRPC or HTTP +> +> InfluxDB 3 supports HTTP and Flight (gRPC) query APIs. +> For more information about using Flight, see the [InfluxDB 3 (`influxdb3-`) client libraries](https://github.com/InfluxCommunity/). + +The examples below use **cURL** to send HTTP requests to the InfluxDB 3 HTTP API, +but you can use any HTTP client. + +- [Query using SQL and the HTTP API](#query-using-sql-and-the-http-api) +- [Query using InfluxQL and the HTTP API](#query-using-influxql-and-the-http-api) + +## Query using SQL and the HTTP API + +Use the `/api/v3/query_sql` endpoint with the `GET` or `POST` request methods. + +- `GET`: Pass parameters in the URL query string (for simple queries) +- `POST`: Pass parameters in a JSON object (for complex queries and readability in your code) + +Include the following parameters: + +- `q`: _({{< req >}})_ The **SQL** query to execute. +- `db`: _({{< req >}})_ The database to execute the query against. +- `params`: A JSON object containing parameters to be used in a _parameterized query_. +- `format`: The format of the response (`json`, `jsonl`, `csv`, `pretty`, or `parquet`). + JSONL (`jsonl`) is preferred because it streams results back to the client. + `pretty` is for human-readable output. Default is `json`. + +### Example: Query passing URL-encoded parameters + +The following example sends an HTTP `GET` request with a URL-encoded SQL query: + +```bash +curl -v "http://{{< influxdb/host >}}/api/v3/query_sql?db=servers&q=select+*+from+cpu+limit+5" +``` + +### Example: Query passing JSON parameters + +The following example sends an HTTP `POST` request with parameters in a JSON payload: + +```bash +curl http://{{< influxdb/host >}}/api/v3/query_sql \ + --data '{"db": "server", "q": "select * from cpu limit 5"}' +``` + +### Query system information + +Use the HTTP API `/api/v3/query_sql` endpoint to retrieve system information +about your database server and table schemas in {{% product-name %}}. + +#### Examples + +> [!Note] +> #### system\_ sample data +> +> In examples, tables with `"table_name":"system_` are user-created tables for CPU, memory, disk, +> network, and other resource statistics collected and written +> by the user--for example, using the `psutil` Python library or +> [Telegraf](https://docs.influxdata.com/telegraf/v1/get-started/) to collect +> and write system metrics to an InfluxDB 3 database. + +##### Show tables + +The following example sends a `GET` request that executes a `show tables` query +to retrieve all user-created +tables (`"table_schema":"iox"`), system tables, and information schema tables +for a database: + +```bash +curl "http://{{< influxdb/host >}}/api/v3/query_sql?db=mydb&format=jsonl&q=show%20tables" +``` + +The response body contains the following JSONL: + +```jsonl +{"table_catalog":"public","table_schema":"iox","table_name":"system_cpu","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_cpu_cores","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_memory","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_memory_faults","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_usage","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_io","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_disk_performance","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_network","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"distinct_caches","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"last_caches","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"parquet_files","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"processing_engine_plugins","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"processing_engine_triggers","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"system","table_name":"queries","table_type":"BASE TABLE"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"tables","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"views","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"columns","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"df_settings","table_type":"VIEW"} +{"table_catalog":"public","table_schema":"information_schema","table_name":"schemata","table_type":"VIEW"} +``` + +A table has one of the following `table_schema` values: + +- `iox`: tables created by the user of the database. +- `system`: tables used by the system to show information about the running database server. + Some of these tables show stored information such as configurations, + while others, such as the `queries` table, hold ephemeral state in memory. +- `information_schema`: views that show schema information for tables in the database. + +#### View column information for a table + +The following query sends a `POST` request that executes an SQL query to +retrieve information about columns in the sample `system_swap` table schema: + +_Note: when you send a query in JSON, you must escape single quotes +that surround field names._ + +```bash +curl "http://localhost:8181/api/v3/query_sql" \ + --header "Content-Type: application/json" \ + --json '{ + "db": "mydb", + "q": "SELECT * FROM information_schema.columns WHERE table_schema = '"'iox'"' AND table_name = '"'system_swap'"'", + "format": "jsonl" + }' +``` + +The output is similar to the following: + +```jsonl +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"free","ordinal_position":0,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"host","ordinal_position":1,"is_nullable":"NO","data_type":"Dictionary(Int32, Utf8)"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"percent","ordinal_position":2,"is_nullable":"YES","data_type":"Float64","numeric_precision":24,"numeric_precision_radix":2} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"sin","ordinal_position":3,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"sout","ordinal_position":4,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"time","ordinal_position":5,"is_nullable":"NO","data_type":"Timestamp(Nanosecond, None)"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"total","ordinal_position":6,"is_nullable":"YES","data_type":"UInt64"} +{"table_catalog":"public","table_schema":"iox","table_name":"system_swap","column_name":"used","ordinal_position":7,"is_nullable":"YES","data_type":"UInt64"} +``` + +#### Recently executed queries + +To view recently executed queries, query the `queries` system table: + +```bash +curl "http://localhost:8181/api/v3/query_sql" \ + --header "Content-Type: application/json" \ + --json '{ + "db": "mydb", + "q": "SELECT * FROM system.queries LIMIT 2", + "format": "jsonl" + }' +``` + +The output is similar to the following: + +```jsonl +{"id":"cdd63409-1822-4e65-8e3a-d274d553dbb3","phase":"success","issue_time":"2025-01-20T17:01:40.690067","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.032689S","permit_duration":"PT0.000202S","execute_duration":"PT0.000223S","end2end_duration":"PT0.033115S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false} +{"id":"47f8d312-5e75-4db2-837a-6fcf94c09927","phase":"success","issue_time":"2025-01-20T17:02:32.627782","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.000583S","permit_duration":"PT0.000015S","execute_duration":"PT0.000063S","end2end_duration":"PT0.000662S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false} +``` + +## Query using InfluxQL and the HTTP API + +Use the `/api/v3/query_influxql` endpoint with the `GET` or `POST` request methods. + +- `GET`: Pass parameters in the URL query string (for simple queries) +- `POST`: Pass parameters in a JSON object (for complex queries and readability in your code) + +Include the following parameters: + +- `q`: _({{< req >}})_ The **InfluxQL** query to execute. +- `db`: _({{< req >}})_ The database to execute the query against. +- `params`: A JSON object containing parameters to be used in a _parameterized query_. +- `format`: The format of the response (`json`, `jsonl`, `csv`, `pretty`, or `parquet`). + JSONL (`jsonl`) is preferred because it streams results back to the client. + `pretty` is for human-readable output. Default is `json`. + +### Example: Query passing URL-encoded parameters + +The following example sends an HTTP `GET` request with a URL-encoded InfluxQL query: + +```bash +curl -v "http://{{< influxdb/host >}}/api/v3/query_influxql?db=servers&q=select+*+from+cpu+limit+5" +``` + +### Example: Query passing JSON parameters + +The following example sends an HTTP `POST` request with parameters in a JSON payload: + +```bash +curl http://{{< influxdb/host >}}/api/v3/query_influxql \ + --data '{"db": "server", "q": "select * from cpu limit 5"}' +``` \ No newline at end of file diff --git a/content/shared/influxdb3-query-guides/influxql/_index.md b/content/shared/influxdb3-query-guides/influxql/_index.md index 7e70a0c1c..18c309ab0 100644 --- a/content/shared/influxdb3-query-guides/influxql/_index.md +++ b/content/shared/influxdb3-query-guides/influxql/_index.md @@ -1,5 +1,5 @@ -Learn to use InfluxQL to query data stored in {{< product-name >}}. +Learn to query data in {{< product-name >}} using InfluxQL. {{< children type="anchored-list" >}} diff --git a/content/shared/influxdb3-query-guides/sql/_index.md b/content/shared/influxdb3-query-guides/sql/_index.md index b0c677e4f..787bd0185 100644 --- a/content/shared/influxdb3-query-guides/sql/_index.md +++ b/content/shared/influxdb3-query-guides/sql/_index.md @@ -1,5 +1,5 @@ -Learn to query data stored in {{< product-name >}} using SQL. +Learn to query data in {{< product-name >}} using SQL. {{< children type="anchored-list" >}} diff --git a/content/shared/influxdb3-sample-data/sample-data.md b/content/shared/influxdb3-sample-data/sample-data.md index 82ce645c6..98a079bbc 100644 --- a/content/shared/influxdb3-sample-data/sample-data.md +++ b/content/shared/influxdb3-sample-data/sample-data.md @@ -40,12 +40,13 @@ to #### Write the home sensor data to InfluxDB -Use the `influxdb3` CLI, InfluxDB v2 API, or InfluxDB v1 API to write the +Use the `influxdb3` CLI, InfluxDB v3 API, InfluxDB v2 API, or InfluxDB v1 API to write the home sensor sample data to {{< product-name >}}. {{< code-tabs-wrapper >}} {{% code-tabs %}} [influxdb3](#) +[v3 API](#) [v2 API](#) [v1 API](#) {{% /code-tabs %}} @@ -90,6 +91,43 @@ home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200' {{% /code-tab-content %}} {{% code-tab-content %}} +{{% influxdb/custom-timestamps %}} +{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} +```sh +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&accept_partial=true" \ + --data-raw "home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1735545600 +home,room=Kitchen temp=21.0,hum=35.9,co=0i 1735545600 +home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1735549200 +home,room=Kitchen temp=23.0,hum=36.2,co=0i 1735549200 +home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1735552800 +home,room=Kitchen temp=22.7,hum=36.1,co=0i 1735552800 +home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1735556400 +home,room=Kitchen temp=22.4,hum=36.0,co=0i 1735556400 +home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1735560000 +home,room=Kitchen temp=22.5,hum=36.0,co=0i 1735560000 +home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1735563600 +home,room=Kitchen temp=22.8,hum=36.5,co=1i 1735563600 +home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1735567200 +home,room=Kitchen temp=22.8,hum=36.3,co=1i 1735567200 +home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1735570800 +home,room=Kitchen temp=22.7,hum=36.2,co=3i 1735570800 +home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1735574400 +home,room=Kitchen temp=22.4,hum=36.0,co=7i 1735574400 +home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1735578000 +home,room=Kitchen temp=22.7,hum=36.0,co=9i 1735578000 +home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1735581600 +home,room=Kitchen temp=23.3,hum=36.9,co=18i 1735581600 +home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1735585200 +home,room=Kitchen temp=23.1,hum=36.6,co=22i 1735585200 +home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1735588800 +home,room=Kitchen temp=22.7,hum=36.5,co=26i 1735588800" +``` +{{% /code-placeholders %}} +{{% /influxdb/custom-timestamps %}} + +{{% /code-tab-content %}} +{{% code-tab-content %}} + {{% influxdb/custom-timestamps %}} {{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} ```sh @@ -227,12 +265,13 @@ to #### Write the home sensor actions data to InfluxDB -Use the `influxdb3` CLI, InfluxDB v2 API, or InfluxDB v1 API to write the +Use the `influxdb3` CLI, InfluxDB v3 API, InfluxDB v2 API, or InfluxDB v1 API to write the home sensor actions sample data to {{< product-name >}}. {{< code-tabs-wrapper >}} {{% code-tabs %}} [influxdb3](#) +[v3 API](#) [v2 API](#) [v1 API](#) {{% /code-tabs %}} @@ -259,6 +298,25 @@ home_actions,room=Living\ Room,action=alert,level=warn description="Carbon monox {{% /code-tab-content %}} {{% code-tab-content %}} +{{% influxdb/custom-timestamps %}} +{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} +```sh +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&accept_partial=true" \ + --data-raw "home_actions,room=Kitchen,action=cool,level=ok description=\"Temperature at or above 23°C (23°C). Cooling to 22°C.\" 1739437200 +home_actions,room=Kitchen,action=cool,level=ok description=\"Temperature at or above 23°C (23.3°C). Cooling to 22°C.\" 1739469600 +home_actions,room=Kitchen,action=cool,level=ok description=\"Temperature at or above 23°C (23.1°C). Cooling to 22°C.\" 1739473200 +home_actions,room=Kitchen,action=alert,level=warn description=\"Carbon monoxide level above normal: 18 ppm.\" 1739469600 +home_actions,room=Kitchen,action=alert,level=warn description=\"Carbon monoxide level above normal: 22 ppm.\" 1739473200 +home_actions,room=Kitchen,action=alert,level=warn description=\"Carbon monoxide level above normal: 26 ppm.\" 1739476800 +home_actions,room=Living Room,action=alert,level=warn description=\"Carbon monoxide level above normal: 14 ppm.\" 1739473200 +home_actions,room=Living Room,action=alert,level=warn description=\"Carbon monoxide level above normal: 17 ppm.\" 1739476800" +``` +{{% /code-placeholders %}} +{{% /influxdb/custom-timestamps %}} + +{{% /code-tab-content %}} +{{% code-tab-content %}} + {{% influxdb/custom-timestamps %}} {{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} ```sh @@ -354,12 +412,13 @@ series use cases that involve seasonality. #### Write the NOAA Bay Area weather data to InfluxDB -Use the `influxdb3` CLI, InfluxDB v2 API, or InfluxDB v1 API to write the +Use the `influxdb3` CLI, InfluxDB v3 API, InfluxDB v2 API, or InfluxDB v1 API to write the NOAA Bay Area weather sample data to {{< product-name >}}. {{< code-tabs-wrapper >}} {{% code-tabs %}} [influxdb3](#) +[v3 API](#) [v2 API](#) [v1 API](#) {{% /code-tabs %}} @@ -374,6 +433,16 @@ influxdb3 write \ ``` {{% /code-placeholders %}} +{{% /code-tabs %}} +{{% code-tab-content %}} + +{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} +```sh +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&accept_partial=false" \ + --data-binary "$(curl --request GET https://docs.influxdata.com/downloads/bay-area-weather.lp)" +``` +{{% /code-placeholders %}} + {{% /code-tab-content %}} {{% code-tab-content %}} @@ -454,12 +523,13 @@ The Bitcoin price sample dataset provides Bitcoin prices from #### Write the Bitcoin price sample data to InfluxDB -Use the `influxdb3` CLI, InfluxDB v2 API, or InfluxDB v1 API to write the +Use the `influxdb3` CLI, InfluxDB v3 API, InfluxDB v2 API, or InfluxDB v1 API to write the Bitcoin price sample data to {{< product-name >}}. {{< code-tabs-wrapper >}} {{% code-tabs %}} [influxdb3](#) +[v3 API](#) [v2 API](#) [v1 API](#) {{% /code-tabs %}} @@ -474,6 +544,16 @@ influxdb3 write \ ``` {{% /code-placeholders %}} +{{% /code-tabs %}} +{{% code-tab-content %}} + +{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} +```sh +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&accept_partial=false" \ + --data-binary "$(curl --request GET https://docs.influxdata.com/downloads/bitcoin.lp)" +``` +{{% /code-placeholders %}} + {{% /code-tab-content %}} {{% code-tab-content %}} @@ -528,12 +608,13 @@ transformation functions. #### Write the random number sample data to InfluxDB -Use the `influxdb3` CLI, InfluxDB v2 API, or InfluxDB v1 API to write the +Use the `influxdb3` CLI, InfluxDB v3 API, InfluxDB v2 API, or InfluxDB v1 API to write the random number sample data to {{< product-name >}}. {{< code-tabs-wrapper >}} {{% code-tabs %}} [influxdb3](#) +[v3 API](#) [v2 API](#) [v1 API](#) {{% /code-tabs %}} @@ -551,6 +632,16 @@ influxdb3 write \ {{% /code-tab-content %}} {{% code-tab-content %}} +{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} +```sh +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&accept_partial=false" \ + --data-binary "$(curl --request GET https://docs.influxdata.com/downloads/bitcoin.lp)" +``` +{{% /code-placeholders %}} + +{{% /code-tab-content %}} +{{% code-tab-content %}} + {{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}} ```sh curl --request POST \ diff --git a/content/shared/influxdb3-visualize/grafana.md b/content/shared/influxdb3-visualize/grafana.md index b7f7a5b8a..eb21b532c 100644 --- a/content/shared/influxdb3-visualize/grafana.md +++ b/content/shared/influxdb3-visualize/grafana.md @@ -1,4 +1,4 @@ -Use [Grafana](https://grafana.com/) to query and visualize data stored in +Use [Grafana](https://grafana.com/) to query and visualize data from {{% product-name %}}. > [Grafana] enables you to query, visualize, alert on, and explore your metrics, @@ -24,7 +24,7 @@ If using **Grafana Cloud**, login to your Grafana Cloud instance. ## InfluxDB data source The InfluxDB data source plugin is included in the Grafana core distribution. -Use the plugin to query and visualize data stored in {{< product-name >}} with +Use the plugin to query and visualize data from {{< product-name >}} with both SQL and InfluxQL. > [!Note] diff --git a/content/shared/influxdb3-visualize/tableau.md b/content/shared/influxdb3-visualize/tableau.md index 017c170a7..ceff8dc56 100644 --- a/content/shared/influxdb3-visualize/tableau.md +++ b/content/shared/influxdb3-visualize/tableau.md @@ -1,6 +1,6 @@ Use [Tableau](https://www.tableau.com/) to query and visualize time series data -stored in {{< product-name >}}. Tableau supports multiple SQL dialects. +from {{< product-name >}}. Tableau supports multiple SQL dialects. > Tableau is a visual analytics platform transforming the way we use data to > solve problems—empowering people and organizations to make the most of their data. diff --git a/content/shared/influxdb3-write-guides/use-telegraf/dual-write.md b/content/shared/influxdb3-write-guides/use-telegraf/dual-write.md index 2a396b04a..5458758c0 100644 --- a/content/shared/influxdb3-write-guides/use-telegraf/dual-write.md +++ b/content/shared/influxdb3-write-guides/use-telegraf/dual-write.md @@ -10,7 +10,7 @@ The following example configures Telegraf for dual writing to {{% product-name % - The [InfluxDB v2 output plugin](https://github.com/influxdata/telegraf/tree/master/plugins/outputs/influxdb_v2) twice--the first pointing to {{< product-name >}} and the other to an InfluxDB v2 OSS instance. - - Two different tokens--one for InfluxDB v2 OSS and one for Clustered. + - Two different tokens--one for InfluxDB v2 OSS and one for {{< product-name >}}. Configure both tokens as environment variables and use string interpolation in your Telegraf configuration file to reference each environment variable. diff --git a/content/shared/sql-reference/_index.md b/content/shared/sql-reference/_index.md index 6f82512ab..8b1fef900 100644 --- a/content/shared/sql-reference/_index.md +++ b/content/shared/sql-reference/_index.md @@ -582,6 +582,58 @@ FROM "h2o_feet" GROUP BY "location" ``` +### Window aggregate functions + +Window functions let you calculate running totals, moving averages, or other +aggregate-like results without collapsing rows into groups +(unlike non-window aggregate functions). + +Window aggregate functions include **all [aggregate functions](#aggregate-functions/)** +and the [ranking functions](#ranking-functions). +The SQL `OVER` clause syntactically distinguishes a window +function from a non-window or aggregate function and defines how to group and +order rows for the window operation. + +#### Examples: + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + avg(temp) OVER (PARTITION BY room) AS avg_room_temp +FROM + home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time <= '2022-01-01T09:00:00Z' +ORDER BY + room, + time +``` + +| time | room | temp | avg_room_temp | +| :------------------ | :---------- | ---: | ------------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 22.0 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 22.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 21.25 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.25 | + +{{% /influxdb/custom-timestamps %}} + +#### Ranking Functions + +| Function | Description | +| :------- | :--------------------------------------------------------- | +| CUME_DIST() | Returns the cumulative distribution of a value within a group of values | +| DENSE_RANK() | Returns a rank for each row without gaps in the numbering | +| NTILE() | Distributes the rows in an ordered partition into the specified number of groups | +| PERCENT_RANK() | Returns the percentage rank of the current row within its partition | +| RANK() | Returns the rank of the current row in its partition, allowing gaps between ranks | +| ROW_NUMBER() | Returns the position of the current row in its partition | + ### Selector functions Selector functions are unique to InfluxDB. They behave like aggregate functions in that they take a row of data and compute it down to a single value. However, selectors are unique in that they return a **time value** in addition to the computed value. In short, selectors return an aggregated value along with a timestamp. diff --git a/content/shared/sql-reference/functions/aggregate.md b/content/shared/sql-reference/functions/aggregate.md index b6b26fa1e..1cf76088c 100644 --- a/content/shared/sql-reference/functions/aggregate.md +++ b/content/shared/sql-reference/functions/aggregate.md @@ -12,11 +12,14 @@ aggregate value. - [bool_or](#bool_or) - [count](#count) - [first_value](#first_value) + - [grouping](#grouping) - [last_value](#last_value) - [max](#max) - [mean](#mean) - [median](#median) - [min](#min) + - [nth_value](#nth_value) + - [string_agg](#string_agg) - [sum](#sum) - [Statistical aggregate functions](#statistical-aggregate-functions) - [corr](#corr) @@ -37,7 +40,9 @@ aggregate value. - [stddev_samp](#stddev_samp) - [var](#var) - [var_pop](#var_pop) + - [var_population](#var_population) - [var_samp](#var_samp) + - [var_sample](#var_sample) - [Approximate aggregate functions](#approximate-aggregate-functions) - [approx_distinct](#approx_distinct) - [approx_median](#approx_median) @@ -57,11 +62,14 @@ aggregate value. - [bool_or](#bool_or) - [count](#count) - [first_value](#first_value) +- [grouping](#grouping) - [last_value](#last_value) - [max](#max) - [mean](#mean) - [median](#median) - [min](#min) +- [nth_value](#nth_value) +- [string_agg](#string_agg) - [sum](#sum) ### array_agg @@ -69,9 +77,8 @@ aggregate value. Returns an array created from the expression elements. > [!Note] -> `array_agg` returns a `LIST` arrow type which is not supported by InfluxDB. -> To use with InfluxDB, use bracket notation to reference the index of an element -> in the returned array. Arrays are 1-indexed. +> `array_agg` returns a `LIST` arrow type. Use bracket notation to reference the +> index of an element in the returned array. Arrays are 1-indexed. ```sql array_agg(expression) @@ -85,8 +92,7 @@ array_agg(expression) {{< expand-wrapper >}} {{% expand "View `array_agg` query example" %}} -_The following example uses the sample data set provided in the -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -124,18 +130,22 @@ avg(expression) {{< expand-wrapper >}} {{% expand "View `avg` query example" %}} +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql SELECT location, - avg(water_level) AS water_level_avg -FROM h2o_feet + avg(precip) AS avg_precip +FROM weather GROUP BY location ``` -| location | water_level_avg | -| :----------- | -----------------: | -| coyote_creek | 5.359142420303919 | -| santa_monica | 3.5307120942458843 | +| location | avg_precip | +| :------------ | -------------------: | +| Concord | 0.027120658135283374 | +| Hayward | 0.03708029197080292 | +| San Francisco | 0.03750912408759125 | {{% /expand %}} {{< /expand-wrapper >}} @@ -397,6 +407,45 @@ GROUP BY location {{% /expand %}} {{< /expand-wrapper >}} +### grouping + +Returns 1 if the data is aggregated across the specified column, or 0 if it is +not aggregated in the result set. + +```sql +grouping(expression) +``` + +##### Arguments + +- **expression**: Expression to evaluate whether data is aggregated across the + specified column. Can be a constant, column, or function. + +{{< expand-wrapper >}} +{{% expand "View `grouping` query example" %}} + +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT + location, + avg(temp_max) AS avg_max_temp, + grouping(location) AS grouping +FROM weather +GROUP BY GROUPING SETS ((location), ()) +``` + +| location | avg_max_temp | grouping | +| :------------ | ----------------: | -------: | +| Concord | 75.54379562043796 | 0 | +| Hayward | 69.12043795620438 | 0 | +| San Francisco | 67.59945255474453 | 0 | +| | 70.75456204379562 | 1 | + +{{% /expand %}} +{{< /expand-wrapper >}} + ### last_value Returns the last element in an aggregation group according to the specified ordering. @@ -453,18 +502,22 @@ _To return both the maximum value and its associated timestamp, use {{< expand-wrapper >}} {{% expand "View `max` query example" %}} +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql SELECT location, - max(water_level) AS water_level_max -FROM h2o_feet + max(precip) AS max_precip +FROM weather GROUP BY location ``` -| location | water_level_max | -| :----------- | --------------: | -| santa_monica | 7.205 | -| coyote_creek | 9.964 | +| location | max_precip | +| :------------ | ---------: | +| Concord | 4.53 | +| Hayward | 4.34 | +| San Francisco | 4.02 | {{% /expand %}} {{< /expand-wrapper >}} @@ -489,18 +542,22 @@ median(expression) {{< expand-wrapper >}} {{% expand "View `median` query example" %}} +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql SELECT location, - median(water_level) AS water_level_max -FROM h2o_feet + median(temp_avg) AS median_temp_avg +FROM weather GROUP BY location ``` -| location | water_level_median | -| :----------- | -----------------: | -| coyote_creek | 5.4645 | -| santa_monica | 3.471 | +| location | median_temp_avg | +| :------------ | --------------: | +| Concord | 61.0 | +| Hayward | 59.0 | +| San Francisco | 58.0 | {{% /expand %}} {{< /expand-wrapper >}} @@ -524,18 +581,103 @@ _To return both the minimum value and its associated timestamp, use {{< expand-wrapper >}} {{% expand "View `min` query example" %}} +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql SELECT location, - min(water_level) AS water_level_min -FROM h2o_feet + min(temp_min) AS min_temp_min +FROM weather GROUP BY location ``` -| location | water_level_min | -| :----------- | --------------: | -| coyote_creek | -0.61 | -| santa_monica | -0.243 | +| location | min_temp_min | +| :------------ | -----------: | +| Concord | 28.0 | +| Hayward | 32.0 | +| San Francisco | 35.0 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +### nth_value + +Returns the nth value in a group of values. + +```sql +nth_value(expression, n [ORDER BY order_expression_1, ... order_expression_n]) +``` + +##### arguments + +- **expression**: The column or expression to retrieve the nth value from. +- **n**: The position (nth) of the value to retrieve, based on the ordering. +- **order_expression_1, ... order_expression_n**: Expressions to order by. + Can be a column or function, and any combination of arithmetic operators. + +{{< expand-wrapper >}} +{{% expand "View `nth_value` query example" %}} + +_The following example uses the {{< influxdb3/home-sample-link >}}._ + +```sql +SELECT + room, + nth_value(temp, 3 ORDER BY time) AS "3rd_temp" +FROM + home +GROUP BY + room +``` + +| room | 3rd_temp | +| :---------- | -------: | +| Living Room | 21.8 | +| Kitchen | 22.7 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +### string_agg + +Concatenates the values of string expressions and places separator values between them. + +```sql +string_agg(expression, delimiter) +``` + +##### Arguments + +- **expression**: The string expression to concatenate. + Can be a column or any valid string expression. +- **delimiter**: A literal string to use as a separator between the concatenated + values. + +{{< expand-wrapper >}} +{{% expand "View `string_agg` query example" %}} + +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT + location, + string_agg(temp_avg::STRING, ', ') AS string_agg +FROM + weather +WHERE + time > '2020-01-01T00:00:00Z' + AND time < '2020-01-05T00:00:00Z' +GROUP BY + location +``` + +| location | string_agg | +| :------------ | :--------------- | +| San Francisco | 54.0, 52.0, 54.0 | +| Hayward | 51.0, 50.0, 51.0 | +| Concord | 53.0, 49.0, 51.0 | {{% /expand %}} {{< /expand-wrapper >}} @@ -556,18 +698,22 @@ sum(expression) {{< expand-wrapper >}} {{% expand "View `sum` query example" %}} +_The following example uses the +[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql SELECT location, - sum(water_level) AS water_level_sum -FROM h2o_feet + sum(precip) AS total_precip +FROM weather GROUP BY location ``` -| location | water_level_sum | -| :----------- | -----------------: | -| santa_monica | 27024.070369358 | -| coyote_creek | 40750.918963991004 | +| location | total_precip | +| :------------ | -----------------: | +| Concord | 29.670000000000012 | +| Hayward | 40.64 | +| San Francisco | 41.110000000000014 | {{% /expand %}} {{< /expand-wrapper >}} @@ -593,7 +739,9 @@ GROUP BY location - [stddev_samp](#stddev_samp) - [var](#var) - [var_pop](#var_pop) +- [var_population](#var_population) - [var_samp](#var_samp) +- [var_sample](#var_sample) ### corr @@ -611,8 +759,7 @@ corr(expression1, expression2) {{< expand-wrapper >}} {{% expand "View `corr` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -646,8 +793,7 @@ covar(expression1, expression2) {{< expand-wrapper >}} {{% expand "View `covar` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -681,8 +827,7 @@ covar_pop(expression1, expression2) {{< expand-wrapper >}} {{% expand "View `covar_pop` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -716,8 +861,7 @@ covar_samp(expression1, expression2) {{< expand-wrapper >}} {{% expand "View `covar_samp` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1099,8 +1243,7 @@ stddev(expression) {{< expand-wrapper >}} {{% expand "View `stddev` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1134,8 +1277,7 @@ stddev_pop(expression) {{< expand-wrapper >}} {{% expand "View `stddev_pop` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1169,8 +1311,7 @@ stddev_samp(expression) {{< expand-wrapper >}} {{% expand "View `stddev_samp` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1204,8 +1345,7 @@ var(expression) {{< expand-wrapper >}} {{% expand "View `var` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1236,11 +1376,14 @@ var_pop(expression) - **expression**: Expression to operate on. Can be a constant, column, or function, and any combination of arithmetic operators. +##### Aliases + +- var_population + {{< expand-wrapper >}} {{% expand "View `var_pop` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1258,6 +1401,10 @@ GROUP BY room {{% /expand %}} {{< /expand-wrapper >}} +### var_population + +_Alias of [var_pop](#var_pop)._ + ### var_samp Returns the statistical sample variance of a set of numbers. @@ -1271,11 +1418,14 @@ var_samp(expression) - **expression**: Expression to operate on. Can be a constant, column, or function, and any combination of arithmetic operators. +##### Aliases + +- var_sample + {{< expand-wrapper >}} {{% expand "View `var_samp` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1293,6 +1443,10 @@ GROUP BY room {{% /expand %}} {{< /expand-wrapper >}} +### var_sample + +_Alias of [var_samp](#var_samp)._ + ## Approximate aggregate functions - [approx_distinct](#approx_distinct) @@ -1317,8 +1471,7 @@ approx_distinct(expression) {{< expand-wrapper >}} {{% expand "View `approx_distinct` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1353,8 +1506,7 @@ approx_median(expression) {{< expand-wrapper >}} {{% expand "View `approx_median` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1394,8 +1546,7 @@ approx_percentile_cont(expression, percentile, centroids) {{< expand-wrapper >}} {{% expand "View `approx_percentile_cont` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -1433,8 +1584,7 @@ approx_percentile_cont_with_weight(expression, weight, percentile) {{< expand-wrapper >}} {{% expand "View `approx_percentile_cont_with_weight` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT diff --git a/content/shared/sql-reference/functions/binary-string.md b/content/shared/sql-reference/functions/binary-string.md new file mode 100644 index 000000000..42521e3f1 --- /dev/null +++ b/content/shared/sql-reference/functions/binary-string.md @@ -0,0 +1,68 @@ + +Use binary string functions to encode and decode binary string values in +SQL queries. + +- [decode](#decode) +- [encode](#encode) + +## decode + +Decode binary data from textual representation in string. + +```sql +decode(expression, format) +``` + +##### Arguments + +- **expression**: Expression containing encoded string data. + Can be a constant, column, or function, and any combination of string operators. +- **format**: Encoding format of the encoded string. Supported formats are: + - base64 + - hex + +##### Related functions + +[encode](#encode) + +## encode + +Encode binary data into a textual representation. + +```sql +encode(expression, format) +``` + +##### Arguments + +- **expression**: Expression containing string or binary data. + Can be a constant, column, or function, and any combination of string operators. +- **format**: Encoding format to use. Supported formats are: + - base64 + - hex + +##### Related functions + +[decode](#decode) + +{{< expand-wrapper >}} +{{% expand "View `encode` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + encode(location::string, 'hex') AS location_encoded +FROM weather +``` + +| location | location_encoded | +| :------------ | :------------------------- | +| Concord | 436f6e636f7264 | +| Hayward | 48617977617264 | +| San Francisco | 53616e204672616e636973636f | + +{{% /expand %}} +{{< /expand-wrapper >}} diff --git a/content/shared/sql-reference/functions/conditional.md b/content/shared/sql-reference/functions/conditional.md index e8abb272b..b3258ef81 100644 --- a/content/shared/sql-reference/functions/conditional.md +++ b/content/shared/sql-reference/functions/conditional.md @@ -5,6 +5,12 @@ functions for conditionally handling _null_ values: - [ifnull](#ifnull) - [nullif](#nullif) - [nvl](#nvl) +- [nvl2](#nvl2) + + ## coalesce @@ -50,10 +56,84 @@ FROM {{% /expand %}} {{< /expand-wrapper >}} + + ## ifnull _Alias of [nvl](#nvl)._ + + ## nullif Returns _null_ if _expression1_ equals _expression2_; otherwise it returns _expression1_. @@ -130,3 +210,45 @@ FROM {{% /expand %}} {{< /expand-wrapper >}} + +## nvl2 + +Returns _expression2_ if _expression1_ is **not** _null_; otherwise it returns _expression3_. + +```sql +nvl2(expression1, expression2, expression3) +``` + +##### Arguments + +- **expression1**: First expression to test for _null_. + Can be a constant, column, or function, and any combination of operators. +- **expression2**: Second expression to return if _expression1_ is not _null_. + Can be a constant, column, or function, and any combination of operators. +- **expression3**: Expression to return if _expression1_ is _null_. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `nvl2` query example" %}} + +```sql +SELECT + val1, + val2, + val3, + nvl2(val1, val2, val3) AS nvl2 +FROM + (values ('foo', 'bar', 'baz'), + (NULL, 'bar', 'baz'), + (NULL, NULL, 'baz'), + ) data(val1, val2, val3) +``` + +| val1 | val2 | val3 | nvl2 | +| :--: | :--: | :--: | :--: | +| foo | bar | baz | bar | +| | bar | baz | baz | +| | | baz | baz | + +{{% /expand %}} +{{< /expand-wrapper >}} diff --git a/content/shared/sql-reference/functions/hashing.md b/content/shared/sql-reference/functions/hashing.md new file mode 100644 index 000000000..54a3b5d64 --- /dev/null +++ b/content/shared/sql-reference/functions/hashing.md @@ -0,0 +1,231 @@ + +Use hashing functions to hash string values in SQL queries using established +hashing algorithms. + +- [digest](#digest) +- [md5](#md5) +- [sha224](#sha224) +- [sha256](#sha256) +- [sha384](#sha384) +- [sha512](#sha512) + +## digest + +Computes the binary hash of an expression using the specified algorithm. + +```sql +digest(expression, algorithm) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. +- **algorithm**: String expression specifying algorithm to use. + Must be one of the following: + + - md5 + - sha224 + - sha256 + - sha384 + - sha512 + - blake2s + - blake2b + - blake3 + +{{< expand-wrapper >}} +{{% expand "View `digest` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + digest(location, 'sha256') AS location_digest +FROM weather +``` + +| location | location_digest | +| :------------ | :--------------------------------------------------------------- | +| Concord | 21e60acfb20fca2e38c5e51191d44235949de045912dca77e978333c1ec965a2 | +| Hayward | 5d5b651a71084f3117cca3381ff7102efbc318c2026e1d09d5d4707354883102 | +| San Francisco | 5aa34886f7f3741de8460690b636f4c8b7c2044df88e2e8adbb4f7e6f8534931 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +## md5 + +Computes an MD5 128-bit checksum for a string expression. + +```sql +md5(expression) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `md5` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + md5(location) AS location_md5 +FROM weather +``` + +| location | location_md5 | +| :------------ | :------------------------------- | +| Concord | 7c6a8e5769c20331e6a1b93a44021dbc | +| Hayward | 5823ccc25b256955c4e97cb4a23865ee | +| San Francisco | f4334fdfa1c728eae375fe781e2e2d9d | + +{{% /expand %}} +{{< /expand-wrapper >}} + +## sha224 + +Computes the SHA-224 hash of a binary string. + +```sql +sha224(expression) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `sha224` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + sha224(location) AS location_sha224 +FROM weather +``` + +| location | location_sha224 | +| :------------ | :------------------------------------------------------- | +| Concord | 3f6c0456de97d3d752672161db8e6f0df115979460a2276d64386114 | +| Hayward | 767cfab6a1562e54f6906c8b5c9ee64583caa3f4b6c37a4298a7639f | +| San Francisco | f723898f95bd53cdaf9c057b6f2cf0537b29e0bff077dabb39059b76 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +## sha256 + +Computes the SHA-256 hash of a binary string. + +```sql +sha256(expression) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `sha256` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + sha256(location) AS location_sha256 +FROM weather +``` + +| location | location_sha256 | +| :------------ | :--------------------------------------------------------------- | +| Concord | 21e60acfb20fca2e38c5e51191d44235949de045912dca77e978333c1ec965a2 | +| Hayward | 5d5b651a71084f3117cca3381ff7102efbc318c2026e1d09d5d4707354883102 | +| San Francisco | 5aa34886f7f3741de8460690b636f4c8b7c2044df88e2e8adbb4f7e6f8534931 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +## sha384 + +Computes the SHA-384 hash of a binary string. + +```sql +sha384(expression) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `sha384` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + sha384(location) AS location_sha384 +FROM weather +``` + +| location | location_sha384 | +| :------------ | :----------------------------------------------------------------------------------------------- | +| Concord | 19bf5ba95a6c4a28d2a997fa4e03e542d24b111593395b587a3b357af50cc687364f27b4e96935c234e2ae69236c7883 | +| Hayward | 8b034ee0f7c8d191e145002722bf296a7f310f455458b9ffdbafcb2da2e2300d0f1e7868c6b1d512c81ae0c055979abd | +| San Francisco | 15c0c4a0e80f198e922235ee30a5c2b1e288c88f61bfc55ef9723903a0e948a7de04b65aa35b4ba46251b90460bab625 | + +{{% /expand %}} +{{< /expand-wrapper >}} + +## sha512 + +Computes the SHA-512 hash of a binary string. + +```sql +sha512(expression) +``` + +##### Arguments + +- **expression**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `sha512` query example" %}} + +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + +```sql +SELECT DISTINCT + location, + sha512(location) AS location_sha512 +FROM weather +``` + +| location | location_sha512 | +| :------------ | :------------------------------------------------------------------------------------------------------------------------------- | +| Concord | 227e28fd661eebb39b10f49728d17b03e3a1f0cc2d2a413a9f124292d77249a2c0d7cf99941fd3d2eabea1b2894698bbd12c2cf3a7137ec67fca221ee57e0ca7 | +| Hayward | 2db79fba2fc2888f9826d95ce6bb2605d95b841da61f049e8a92467de0d6ec3161f3919275208a3c385f6412d7848bfc957e81cde550f4f28cd834a332381142 | +| San Francisco | 4c84f24d166978fb59d77779bf9a54ac112cba8e5f826c50440b2d3063fa0cbb0e2ccd30c93261a0f96805f71d15c3e726c9e00426161880e6a5dad267b2d883 | + +{{% /expand %}} +{{< /expand-wrapper >}} diff --git a/content/shared/sql-reference/functions/math.md b/content/shared/sql-reference/functions/math.md index 9c1e93eff..13896ec76 100644 --- a/content/shared/sql-reference/functions/math.md +++ b/content/shared/sql-reference/functions/math.md @@ -13,6 +13,7 @@ performing mathematic operations: - [ceil](#ceil) - [cos](#cos) - [cosh](#cosh) +- [cot](#cot) - [degrees](#degrees) - [exp](#exp) - [factorial](#factorial) @@ -56,8 +57,7 @@ abs(numeric_expression) {{< expand-wrapper >}} {{% expand "View `abs` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT abs(temp) AS abs FROM home LIMIT 3 @@ -88,8 +88,7 @@ acos(numeric_expression) {{< expand-wrapper >}} {{% expand "View `acos` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT acos(temp * .01) AS acos FROM home LIMIT 3 @@ -120,8 +119,7 @@ acosh(numeric_expression) {{< expand-wrapper >}} {{% expand "View `acosh` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT acosh(temp) AS acosh FROM home LIMIT 3 @@ -152,8 +150,7 @@ asin(numeric_expression) {{< expand-wrapper >}} {{% expand "View `asin` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT asin(temp * .01) AS asin FROM home LIMIT 3 @@ -184,8 +181,7 @@ asinh(numeric_expression) {{< expand-wrapper >}} {{% expand "View `asinh` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT asinh(temp) AS asinh FROM home LIMIT 3 @@ -216,8 +212,7 @@ atan(numeric_expression) {{< expand-wrapper >}} {{% expand "View `atan` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT atan(temp * .01) AS atan FROM home LIMIT 3 @@ -248,8 +243,7 @@ atanh(numeric_expression) {{< expand-wrapper >}} {{% expand "View `atanh` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT atanh(temp * .01) AS atanh FROM home LIMIT 3 @@ -282,8 +276,7 @@ atan2(expression_y, expression_x) {{< expand-wrapper >}} {{% expand "View `atan2` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT atan2(temp, hum) AS atan2 FROM home LIMIT 3 @@ -314,8 +307,7 @@ cbrt(numeric_expression) {{< expand-wrapper >}} {{% expand "View `cbrt` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT cbrt(temp) AS cbrt FROM home LIMIT 3 @@ -346,8 +338,7 @@ ceil(numeric_expression) {{< expand-wrapper >}} {{% expand "View `ceil` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT ceil(temp) AS ceil FROM home LIMIT 3 @@ -378,8 +369,7 @@ cos(numeric_expression) {{< expand-wrapper >}} {{% expand "View `cos` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT cos(temp) AS cos FROM home LIMIT 3 @@ -410,8 +400,7 @@ cosh(numeric_expression) {{< expand-wrapper >}} {{% expand "View `cosh` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT cosh(temp) AS cosh FROM home LIMIT 3 @@ -426,6 +415,38 @@ SELECT cosh(temp) AS cosh FROM home LIMIT 3 {{% /expand %}} {{< /expand-wrapper >}} +## cot + +Returns the cotangent of a number. + +```sql +cot(numeric_expression) +``` + +##### Arguments + +- **numeric_expression**: Numeric expression to operate on. + Can be a constant, column, or function, and any combination of operators. + +{{< expand-wrapper >}} +{{% expand "View `cot` query example" %}} + +_The following example uses the +[Random numbers sample dataset](/influxdb/version/reference/sample-data/#random-numbers-sample-data)._ + +```sql +SELECT cot(a) AS cot FROM numbers LIMIT 3 +``` + +| cot | +| -----------------: | +| 2.9293528483724423 | +| 3.705570308335524 | +| -3.314652247498361 | + +{{% /expand %}} +{{< /expand-wrapper >}} + ## degrees Converts radians to degrees. @@ -474,8 +495,7 @@ exp(numeric_expression) {{< expand-wrapper >}} {{% expand "View `exp` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT exp(temp) AS exp FROM home LIMIT 3 @@ -539,8 +559,7 @@ floor(numeric_expression) {{< expand-wrapper >}} {{% expand "View `floor` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT floor(temp) AS floor FROM home LIMIT 3 @@ -722,8 +741,7 @@ ln(numeric_expression) {{< expand-wrapper >}} {{% expand "View `ln` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT ln(temp) AS ln FROM home LIMIT 3 @@ -758,7 +776,7 @@ log([base, ]numeric_expression) {{% expand "View `log` query example" %}} _The following example uses the sample data set provided in the -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +{{ influxdb3/home-sample-link }}._ ```sql SELECT @@ -795,8 +813,7 @@ log10(numeric_expression) {{< expand-wrapper >}} {{% expand "View `log10` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT log10(temp) AS log10 FROM home LIMIT 3 @@ -827,8 +844,7 @@ log2(numeric_expression) {{< expand-wrapper >}} {{% expand "View `log2` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT log2(temp) AS log2 FROM home LIMIT 3 @@ -928,8 +944,7 @@ power(base, exponent) {{< expand-wrapper >}} {{% expand "View `power` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT power(temp, hum * .1) AS power FROM home LIMIT 3 @@ -992,8 +1007,7 @@ random() {{< expand-wrapper >}} {{% expand "View `random` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT temp * random() AS random FROM home LIMIT 3 @@ -1027,8 +1041,7 @@ round(numeric_expression) {{< expand-wrapper >}} {{% expand "View `round` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT round(temp) AS round FROM home LIMIT 3 @@ -1061,8 +1074,7 @@ signum(numeric_expression) {{< expand-wrapper >}} {{% expand "View `signum` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT signum(temp - 23) AS signum FROM home LIMIT 3 @@ -1093,8 +1105,7 @@ sin(numeric_expression) {{< expand-wrapper >}} {{% expand "View `sin` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT sin(temp) AS sin FROM home LIMIT 3 @@ -1125,8 +1136,7 @@ sinh(numeric_expression) {{< expand-wrapper >}} {{% expand "View `sinh ` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT sinh(temp) AS sinh FROM home LIMIT 3 @@ -1157,8 +1167,7 @@ sqrt(numeric_expression) {{< expand-wrapper >}} {{% expand "View `sqrt` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT sqrt(temp) AS sqrt FROM home LIMIT 3 @@ -1189,8 +1198,7 @@ tan(numeric_expression) {{< expand-wrapper >}} {{% expand "View `tan` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT tan(temp) AS tan FROM home LIMIT 3 @@ -1253,8 +1261,7 @@ trunc(numeric_expression) {{< expand-wrapper >}} {{% expand "View `trunc` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{ influxdb3/home-sample-link }}._ ```sql SELECT trunc(temp) AS trunc FROM home LIMIT 3 diff --git a/content/shared/sql-reference/functions/misc.md b/content/shared/sql-reference/functions/misc.md index 309a27d7d..e1ef37ba0 100644 --- a/content/shared/sql-reference/functions/misc.md +++ b/content/shared/sql-reference/functions/misc.md @@ -5,6 +5,7 @@ for performing a variety of operations: - [arrow_typeof](#arrow_typeof) - [interpolate](#interpolate) - [locf](#locf) +- [version](#version) ## arrow_cast @@ -232,3 +233,11 @@ struct('A', 'B', 3, 4) {{% /expand %}} {{< /expand-wrapper >}} --> + +## version + +Returns the version of DataFusion. + +```sql +version() +``` diff --git a/content/shared/sql-reference/functions/regular-expression.md b/content/shared/sql-reference/functions/regular-expression.md index 861b23233..c32e6bea2 100644 --- a/content/shared/sql-reference/functions/regular-expression.md +++ b/content/shared/sql-reference/functions/regular-expression.md @@ -4,10 +4,55 @@ regular expression [syntax](https://docs.rs/regex/latest/regex/#syntax) (excluding some features such as look-around and back-references) and supports the following regular expression functions: +- [regexp_count](#regexp_count) - [regexp_like](#regexp_like) - [regexp_match](#regexp_match) - [regexp_replace](#regexp_replace) +## regexp_count + +Returns the number of matches that a regular expression has in a string. + +```sql +regexp_count(str, regexp[, start, flags]) +``` + +##### Arguments + +- **str**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. +- **regexp**: Regular expression to operate on. + Can be a constant, column, or function, and any combination of operators. +- **start**: Optional start position (the first position is 1) to search for the regular expression. + Can be a constant, column, or function. +- **flags**: Optional regular expression flags that control the behavior of the + regular expression. The following flags are supported: + - **i**: (insensitive) Ignore case when matching. + - **m**: (multi-line) `^` and `$` match the beginning and end of a line, respectively. + - **s**: (single-line) `.` matches newline (`\n`). + - **R**: (CRLF) When multi-line mode is enabled, `\r\n` is used to delimit lines. + - **U**: (ungreedy) Swap the meaning of `x*` and `x*?`. + +{{< expand-wrapper >}} +{{% expand "View `regexp_count` query example" %}} + +_The following example uses the {{< influxdb3/home-sample-link >}}._ + +```sql +SELECT DISTINCT + room, + regexp_count(room::STRING, '[Ro]', 1, 'i') AS regexp_count +FROM home +``` + +| room | regexp_count | +| :---------- | -----------: | +| Kitchen | 0 | +| Living Room | 3 | + +{{% /expand %}} +{{< /expand-wrapper >}} + ## regexp_like True if a regular expression has at least one match in a string; @@ -34,8 +79,7 @@ regexp_like(str, regexp[, flags]) {{< expand-wrapper >}} {{% expand "View `regexp_like` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -73,11 +117,10 @@ regexp_match(str, regexp, flags) {{< expand-wrapper >}} {{% expand "View `regexp_match` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ > [!Note] -> `regexp_match` returns a _list_ Arrow type, which is not supported by InfluxDB. +> `regexp_match` returns a _list_ Arrow type. > Use _bracket notation_ to reference a value in the list. > Lists use 1-based indexing. @@ -120,8 +163,7 @@ regexp_replace(str, regexp, replacement, flags) {{< expand-wrapper >}} {{% expand "View `regexp_replace` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT diff --git a/content/shared/sql-reference/functions/selector.md b/content/shared/sql-reference/functions/selector.md index 228ae57aa..dbcaf81e0 100644 --- a/content/shared/sql-reference/functions/selector.md +++ b/content/shared/sql-reference/functions/selector.md @@ -72,16 +72,25 @@ selector_min(expression, timestamp) {{< expand-wrapper >}} {{% expand "View `selector_min` query example" %}} +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql -SELECT - selector_min(water_level, time)['time'] AS time, - selector_min(water_level, time)['value'] AS water_level -FROM h2o_feet +SELECT + location, + selector_min(temp_min, time)['time'] AS time, + selector_min(temp_min, time)['value'] AS min_temp +FROM + weather +GROUP BY + location ``` -| time | water_level | -| :------------------- | ----------: | -| 2019-08-28T14:30:00Z | -0.61 | +| location | time | min_temp | ++---------------+---------------------+----------+ +| Concord | 2022-01-02T00:00:00 | 28.0 | +| Hayward | 2021-01-26T00:00:00 | 32.0 | +| San Francisco | 2022-01-02T00:00:00 | 35.0 | {{% /expand %}} {{< /expand-wrapper >}} @@ -105,16 +114,25 @@ selector_max(expression, timestamp) {{< expand-wrapper >}} {{% expand "View `selector_max` query example" %}} +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql -SELECT - selector_max(water_level, time)['time'] AS time, - selector_max(water_level, time)['value'] AS water_level -FROM h2o_feet +SELECT + location, + selector_max(temp_max, time)['time'] AS time, + selector_max(temp_max, time)['value'] AS max_temp +FROM + weather +GROUP BY + location ``` -| time | water_level | -| :------------------- | ----------: | -| 2019-08-28T07:24:00Z | 9.964 | +| location | time | max_temp | +| :------------ | :------------------ | -------: | +| Concord | 2020-09-07T00:00:00 | 112.0 | +| Hayward | 2022-09-06T00:00:00 | 107.0 | +| San Francisco | 2020-09-06T00:00:00 | 102.0 | {{% /expand %}} {{< /expand-wrapper >}} @@ -138,16 +156,25 @@ selector_first(expression, timestamp) {{< expand-wrapper >}} {{% expand "View `selector_first` query example" %}} +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql -SELECT - selector_first(water_level, time)['time'] AS time, - selector_first(water_level, time)['value'] AS water_level -FROM h2o_feet +SELECT + location, + selector_first(precip, time)['time'] AS time, + selector_first(precip, time)['value'] AS first_precip +FROM + (SELECT * FROM weather WHERE precip > 0) +GROUP BY + location ``` -| time | water_level | -| :------------------- | ----------: | -| 2019-08-28T07:24:00Z | 9.964 | +| location | time | first_precip | +| :------------ | :------------------ | -----------: | +| Concord | 2020-01-08T00:00:00 | 0.01 | +| Hayward | 2020-01-09T00:00:00 | 0.17 | +| San Francisco | 2020-01-07T00:00:00 | 0.03 | {{% /expand %}} {{< /expand-wrapper >}} @@ -171,16 +198,25 @@ selector_last(expression, timestamp) {{< expand-wrapper >}} {{% expand "View `selector_last` query example" %}} +_The following example uses the +[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._ + ```sql -SELECT - selector_last(water_level, time)['time'] AS time, - selector_last(water_level, time)['value'] AS water_level -FROM h2o_feet +SELECT + location, + selector_last(precip, time)['time'] AS time, + selector_last(precip, time)['value'] AS last_precip +FROM + (SELECT * FROM weather WHERE precip > 0) +GROUP BY + location ``` -| time | water_level | -| :------------------- | ----------: | -| 2019-09-17T21:42:00Z | 4.938 | +| location | time | last_precip | +| :------------ | :------------------ | ----------: | +| Concord | 2022-12-31T00:00:00 | 3.04 | +| Hayward | 2022-12-31T00:00:00 | 4.34 | +| San Francisco | 2022-12-31T00:00:00 | 3.67 | {{% /expand %}} {{< /expand-wrapper >}} diff --git a/content/shared/sql-reference/functions/string.md b/content/shared/sql-reference/functions/string.md index 3011eb836..fc2d39076 100644 --- a/content/shared/sql-reference/functions/string.md +++ b/content/shared/sql-reference/functions/string.md @@ -6,9 +6,10 @@ operating on string values: - [btrim](#btrim) - [char_length](#char_length) - [character_length](#character_length) +- [chr](#chr) - [concat](#concat) - [concat_ws](#concat_ws) -- [chr](#chr) +- [contains](#contains) - [ends_with](#ends_with) - [find_in_set](#find_in_set) - [initcap](#initcap) @@ -19,7 +20,6 @@ operating on string values: - [lower](#lower) - [lpad](#lpad) - [ltrim](#ltrim) -- [md5](#md5) - [octet_length](#octet_length) - [overlay](#overlay) - [position](#position) @@ -34,6 +34,8 @@ operating on string values: - [strpos](#strpos) - [substr](#substr) - [substr_index](#substr_index) +- [substring](#substring) +- [substring_index](#substring_index) - [to_hex](#to_hex) - [translate](#translate) - [trim](#trim) @@ -64,8 +66,7 @@ ascii(str) {{< expand-wrapper >}} {{% expand "View `ascii` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -106,8 +107,7 @@ bit_length(str) {{< expand-wrapper >}} {{% expand "View `bit_length` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -151,8 +151,7 @@ btrim(str[, trim_str]) {{< expand-wrapper >}} {{% expand "View `btrim` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -177,6 +176,47 @@ _Alias of [length](#length)._ _Alias of [length](#length)._ +## chr + +Returns the character with the specified ASCII or Unicode code value. + +``` +chr(expression) +``` + +#### Arguments + +- **expression**: Expression containing the ASCII or Unicode code value to operate on. + Can be a constant, column, or function, and any combination of arithmetic or + string operators. + +##### Related functions + +[ascii](#ascii) + +{{< expand-wrapper >}} +{{% expand "View `chr` query example" %}} + +```sql +SELECT + ascii, + chr(ascii) AS chr +FROM + (values (112), + (75), + (214) + ) data(ascii) +``` + +| ascii | chr | +| :---- | :-: | +| 112 | p | +| 75 | K | +| 214 | Ö | + +{{% /expand %}} +{{< /expand-wrapper >}} + ## concat Concatenates multiple strings together. @@ -198,8 +238,7 @@ concat(str[, ..., str_n]) {{< expand-wrapper >}} {{% expand "View `concat` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -244,8 +283,7 @@ concat_ws(separator, str[, ..., str_n]) {{< expand-wrapper >}} {{% expand "View `concat_ws` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT @@ -267,46 +305,19 @@ LIMIT 3 {{% /expand %}} {{< /expand-wrapper >}} -## chr +## contains -Returns the character with the specified ASCII or Unicode code value. - -``` -chr(expression) -``` - -#### Arguments - -- **expression**: Expression containing the ASCII or Unicode code value to operate on. - Can be a constant, column, or function, and any combination of arithmetic or - string operators. - -##### Related functions - -[ascii](#ascii) - -{{< expand-wrapper >}} -{{% expand "View `chr` query example" %}} +Returns true if a string contains a search string (case-sensitive). ```sql -SELECT - ascii, - chr(ascii) AS chr -FROM - (values (112), - (75), - (214) - ) data(ascii) +contains(str, search_str) ``` -| ascii | chr | -| :---- | :-: | -| 112 | p | -| 75 | K | -| 214 | Ö | +##### Arguments -{{% /expand %}} -{{< /expand-wrapper >}} +- **str**: String expression to operate on. + Can be a constant, column, or function, and any combination of operators. +- **search_str**: The string to search for in _str_. ## ends_with @@ -486,8 +497,7 @@ left(str, n) {{< expand-wrapper >}} {{% expand "View `left` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -534,8 +544,7 @@ length(str) {{< expand-wrapper >}} {{% expand "View `length` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -612,8 +621,7 @@ lower(str) {{< expand-wrapper >}} {{% expand "View `lower` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -654,8 +662,7 @@ lpad(str, n[, padding_str]) {{< expand-wrapper >}} {{% expand "View `lpad` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -714,40 +721,6 @@ FROM {{% /expand %}} {{< /expand-wrapper >}} -## md5 - -Computes an MD5 128-bit checksum for a string expression. - -```sql -md5(str) -``` - -##### Arguments - -- **expression**: String expression to operate on. - Can be a constant, column, or function, and any combination of string operators. - -{{< expand-wrapper >}} -{{% expand "View `md5` query example" %}} - -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ - -```sql -SELECT DISTINCT - room, - md5(room) AS md5 -FROM home -``` - -| room | md5 | -| :---------- | :------------------------------- | -| Kitchen | 33fa00a66f2edf0d1c5697a9f8693ba8 | -| Living Room | f45b0e6aec165544faccaf2cad820542 | - -{{% /expand %}} -{{< /expand-wrapper >}} - ## octet_length Returns the length of a string in bytes. @@ -773,8 +746,7 @@ octet_length(str) {{< expand-wrapper >}} {{% expand "View `octet_length` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -929,8 +901,7 @@ replace(str, substr, replacement) {{< expand-wrapper >}} {{% expand "View `replace` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -963,8 +934,7 @@ reverse(str) {{< expand-wrapper >}} {{% expand "View `reverse` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1002,8 +972,7 @@ right(str, n) {{< expand-wrapper >}} {{% expand "View `right` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1044,8 +1013,7 @@ rpad(str, n[, padding_str]) {{< expand-wrapper >}} {{% expand "View `rpad` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1160,8 +1128,7 @@ starts_with(str, substr) {{< expand-wrapper >}} {{% expand "View `starts_with` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1202,8 +1169,7 @@ strpos(str, substr) {{< expand-wrapper >}} {{% expand "View `strpos` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1241,8 +1207,7 @@ substr(str, start_pos[, length]) {{< expand-wrapper >}} {{% expand "View `substr` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1306,6 +1271,14 @@ FROM {{% /expand %}} {{< /expand-wrapper >}} +## substring + +_Alias of [substr](#substr)._ + +## substring_index + +_Alias of [substr_index](#substr_index)._ + ## translate Translates characters in a string to specified translation characters. @@ -1323,8 +1296,7 @@ translate(str, chars, translation) {{< expand-wrapper >}} {{% expand "View `translate` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1440,8 +1412,7 @@ upper(str) {{< expand-wrapper >}} {{% expand "View `upper` query example" %}} -_The following example uses the sample data set provided in -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +_The following example uses the {{< influxdb3/home-sample-link >}}._ ```sql SELECT DISTINCT @@ -1470,7 +1441,7 @@ uuid() {{% expand "View `uuid` query example" %}} _The following example uses the sample data set provided in the -[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._ +{{< influxdb3/home-sample-link >}}._ ```sql SELECT diff --git a/content/shared/sql-reference/functions/time-and-date.md b/content/shared/sql-reference/functions/time-and-date.md index d7fedd40d..a4e82d375 100644 --- a/content/shared/sql-reference/functions/time-and-date.md +++ b/content/shared/sql-reference/functions/time-and-date.md @@ -3,12 +3,14 @@ that are useful when working with time series data. - [current_date](#current_date) - [current_time](#current_time) +- [current_timestamp](#current_timestamp) - [date_bin](#date_bin) - [date_bin_gapfill](#date_bin_gapfill) - [date_bin_wallclock](#date_bin_wallclock) - [date_bin_wallclock_gapfill](#date_bin_wallclock_gapfill) - [date_trunc](#date_trunc) - [datetrunc](#datetrunc) +- [date_format](#date_format) - [date_part](#date_part) - [datepart](#datepart) - [extract](#extract) @@ -76,10 +78,6 @@ LIMIT 3 Returns the current UTC time. -> [!Note] -> `current_date` returns a `TIME64` Arrow type, which isn't supported by InfluxDB. -> To use with InfluxDB, [cast the return value to a string](/influxdb/version/query-data/sql/cast-types/#cast-to-a-string-type). - The `current_time()` return value is determined at query time and returns the same time, no matter when in the query plan the function executes. @@ -97,7 +95,7 @@ _The following example uses the sample data set provided in the SELECT time, temp, - current_time()::STRING AS current_time + current_time() AS current_time FROM home LIMIT 3 ``` @@ -111,6 +109,10 @@ LIMIT 3 {{% /expand %}} {{< /expand-wrapper >}} +## current_timestamp + +_Alias of [now](#now)._ + ## date_bin Calculates time intervals and returns the start of the interval nearest to the specified timestamp. @@ -397,7 +399,7 @@ date_bin_wallclock(interval, expression[, origin_timestamp]) > > #### Avoid bins in time zone discontinuities > - > [Time zone shifts](#time-zone-shifts) result in *discontinuities*–breaks + > [Time zone shifts](#time-zone-shifts) result in _discontinuities_–breaks > in the continuity of time intervals (losing an hour or gaining an hour)–that > can result in unexpected timestamps when using `date_bin_wallclock`. > Avoid using an `interval` and `origin_timestamp` combination that results in a @@ -536,7 +538,7 @@ date_bin_wallclock_gapfill(interval, expression[, origin_timestamp]) > > #### Avoid bins in time zone discontinuities > - > [Time zone shifts](#time-zone-shifts) result in *discontinuities*–breaks + > [Time zone shifts](#time-zone-shifts) result in _discontinuities_–breaks > in the continuity of time intervals (losing an hour or gaining an hour)–that > can result in unexpected timestamps when using `date_bin_wallclock_gapfill`. > Avoid using an `interval` and `origin_timestamp` combination that results in a @@ -761,6 +763,10 @@ ORDER BY week _Alias of [date_trunc](#date_trunc)._ +## date_format + +_Alias of [to_char](#to_char)._ + ## date_part Returns the specified part of the date as an integer. @@ -954,6 +960,10 @@ no matter when in the query plan the function executes. now() ``` +##### Aliases + +- [current_timestamp](#current_timestamp) + {{< expand-wrapper >}} {{% expand "View `now` query example" %}} @@ -993,6 +1003,10 @@ to_char(expression, format) - **format**: [Rust Chrono format string](https://docs.rs/chrono/latest/chrono/format/strftime/index.html) to use to convert the expression. +##### Aliases + +- [date_format](#date_format) + {{< expand-wrapper >}} {{% expand "View `to_char` query example" %}} diff --git a/content/shared/sql-reference/functions/window.md b/content/shared/sql-reference/functions/window.md new file mode 100644 index 000000000..698f46787 --- /dev/null +++ b/content/shared/sql-reference/functions/window.md @@ -0,0 +1,1098 @@ + +Window functions let you calculate running totals, moving averages, or other aggregate-like results without collapsing rows into groups. +They perform their calculations over a “window” of rows, which you can partition and order in various ways, and return a calculated value for each row in the set. + +Unlike non-window [aggregate functions](/influxdb3/version/reference/sql/functions/aggregate/) that combine each group into a single row, window functions preserve each row’s identity and calculate an additional value for every row in the partition. + +For example, the following query uses the {{< influxdb3/home-sample-link >}} +and returns each temperature reading with the average temperature per room over +the queried time range: + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + avg(temp) OVER (PARTITION BY room) AS avg_room_temp +FROM + home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time <= '2022-01-01T09:00:00Z' +ORDER BY + room, + time +``` + +| time | room | temp | avg_room_temp | +| :------------------ | :---------- | ---: | ------------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 22.0 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 22.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 21.25 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.25 | + +{{% /influxdb/custom-timestamps %}} + +- [Window frames](#window-frames) +- [Window function syntax](#window-function-syntax) + - [OVER clause](#over-clause) + - [PARTITION BY clause](#partition-by-clause) + - [ORDER BY clause](#order-by-clause) + - [Frame clause](#frame-clause) + - [Frame units](#frame-units) + - [Frame boundaries](#frame-boundaries) + - [WINDOW clause](#window-clause) +- [Aggregate functions](#aggregate-functions) +- [Ranking Functions](#ranking-functions) + - [cume_dist](#cume_dist) + - [dense_rank](#dense_rank) + - [ntile](#ntile) + - [percent_rank](#percent_rank) + - [rank](#rank) + - [row_number](#row_number) +- [Analytical Functions](#analytical-functions) + - [first_value](#first_value) + - [lag](#lag) + - [last_value](#last_value) + - [lead](#lead) + - [nth_value](#nth_value) + +## Window frames + +As window functions operate on a row, there is a set of rows in the row's +partition that the window function uses to perform the operation. This set of +rows is called the _window frame_. +Window frame boundaries can be defined using +`RANGE`, `ROW`, or `GROUPS` frame units, each relative to the current row--for +example: + +{{< code-tabs-wrapper >}} +{{% code-tabs %}} +[RANGE](#) +[ROWS](#) +[GROUPS](#) +{{% /code-tabs %}} +{{% code-tab-content %}} +```sql +SELECT + time, + temp, + avg(temp) OVER ( + ORDER BY time + RANGE INTERVAL '3 hours' PRECEDING + ) AS 3h_moving_avg +FROM home +WHERE room = 'Kitchen' +``` +{{% /code-tab-content %}} +{{% code-tab-content %}} +```sql +SELECT + time, + temp, + avg(temp) OVER ( + ROWS 3 PRECEDING + ) AS moving_avg +FROM home +WHERE room = 'Kitchen' +``` +{{% /code-tab-content %}} +{{% code-tab-content %}} +```sql +SELECT + time, + room, + temp, + avg(temp) OVER ( + ORDER BY room + GROUPS 1 PRECEDING + ) AS moving_avg +FROM home +``` +{{% /code-tab-content %}} +{{< /code-tabs-wrapper >}} + +_For more information about how window frames work, see the [frame clause](#frame-clause)._ + +If you don't specify window frames, window functions use all rows in the current +partition to perform their operation. + +```sql +function([expr]) + OVER( + [PARTITION BY expr[, …]] + [ORDER BY expr [ ASC | DESC ][, …]] + [ frame_clause ] + ) +``` + +### OVER clause + +Window functions use an `OVER` clause that directly follows the window function's +name and arguments. +The `OVER` clause syntactically distinguishes a window +function from a non-window or aggregate function and defines how to group and order rows for the window operation. + +### PARTITION BY clause + +The `PARTITION BY` clause in the `OVER` clause divides the rows into groups, or +partitions, that share the same values of the `PARTITION BY` expressions. +The window function operates on all the rows in the same partition as the +current row. + +### ORDER BY clause + +The `ORDER BY` clause inside of the `OVER` clause controls the order that the +window function processes rows in each partition. +When a window clause contains an `ORDER BY` clause, the window frame boundaries +may be explicit or implicit, limiting a window frame size in both directions +relative to the current row. + +> [!Note] +> The `ORDER BY` clause in an `OVER` clause determines the processing order for +> rows in each partition and is separate from the `ORDER BY` +> clause of the query. + +### Frame clause + +The _frame clause_ defines window frame boundaries and can be one of the following: + +```sql +{ RANGE | ROWS | GROUPS } frame_start +{ RANGE | ROWS | GROUPS } BETWEEN frame_start AND frame_end +``` + +- [Frame units](#frame-units) + - [RANGE](#range) + - [ROWS](#rows) + - [GROUPS](#groups) +- [Frame boundaries](#frame-boundaries) + - [UNBOUNDED PRECEDING](#unbounded-preceding) + - [offset PRECEDING](#offset-preceding) + - [CURRENT ROW](#current-row) + - [offset FOLLOWING](#offset-following) + - [UNBOUNDED FOLLOWING](#unbounded-following) + +#### Frame units + +When defining window frames, you can use one of the following frame units: + +- [RANGE](#range) +- [ROWS](#rows) +- [GROUPS](#groups) + +##### RANGE + +Defines frame boundaries using rows with values for columns specified +in the [`ORDER BY` clause](#order-by-clause) within a value range relative to +the current row value. + +> [!Important] +> When using `RANGE` frame units, you must include an `ORDER BY` clause with +> _exactly one column_. + +The offset is the difference between the current row value and surrounding +row values. `RANGE` supports the following offset types: + +- Numeric _(non-negative)_ +- Numeric string _(non-negative)_ +- Interval + +{{< expand-wrapper >}} +{{% expand "See how `RANGE` frame units work with numeric offsets" %}} + +To use a numeric offset with the `RANGE` frame unit, you must sort partitions +by a numeric-type column. + +```sql +... OVER ( + ORDER BY wind_direction + RANGE BETWEEN 45 PRECEDING AND 45 FOLLOWING +) +``` + +The window frame includes rows with sort column values between 45 below and +45 above the current row's value: + +{{< sql/window-frame-units "range numeric" >}} + +{{% /expand %}} + +{{% expand "See how `RANGE` frame units work with interval offsets" %}} + +To use an interval offset with the `RANGE` frame unit, you must sort partitions +by `time` or a timestamp-type column. + +```sql +... OVER ( + ORDER BY time + RANGE BETWEEN + INTERVAL '3 hours' PRECEDING + AND INTERVAL '1 hour' FOLLOWING +) +``` + +The window frame includes rows with timestamps between three hours before and +one hour after the current row's timestamp: + +{{% influxdb/custom-timestamps %}} + +{{< sql/window-frame-units "range interval" >}} + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +##### ROWS + +Defines window frame boundaries using row positions relative to the current row. +The offset is the difference in row position from the current row. +`ROWS` supports the following offset types: + +- Numeric _(non-negative)_ +- Numeric string _(non-negative)_ + +{{< expand-wrapper >}} +{{% expand "See how `ROWS` frame units work" %}} + +When using the `ROWS` frame unit, row positions relative to the current row +determine frame boundaries--for example: + +```sql +... OVER ( + ROWS BETWEEN 2 PRECEDING AND 1 FOLLOWING +) +``` + +The window frame includes the two rows before and the one row after the current row: + +{{< sql/window-frame-units "rows" >}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +##### GROUPS + +Defines window frame boundaries using row groups. +Rows with the same values for the columns in the [`ORDER BY` clause](#order-by-clause) +comprise a row group. + +> [!Important] +> When using `GROUPS` frame units, include an `ORDER BY` clause. + +The offset is the difference in row group position relative to the current row group. +`GROUPS` supports the following offset types: + +- Numeric _(non-negative)_ +- Numeric string _(non-negative)_ + +{{< expand-wrapper >}} +{{% expand "See how `GROUPS` frame units work" %}} + +When using the `GROUPS` frame unit, unique combinations column values specified +in the `ORDER BY` clause determine each row group. For example, if you sort +partitions by `country` and `city`: + +```sql +... OVER ( + ORDER BY country, city + GROUPS ... +) +``` + +The query defines row groups in the following way: + +{{< sql/window-frame-units "groups" >}} + +You can then use group offsets to determine frame boundaries: + +```sql +... OVER ( + ORDER BY country, city + GROUPS 2 PRECEDING +) +``` + +The window function uses all rows in the current row group and the two preceding row groups to perform the operation: + +{{< sql/window-frame-units "groups with frame" >}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +#### Frame boundaries + +Frame boundaries (**frame_start** and **frame_end**) define the boundaries of +each frame that the window function operates on. + +- [UNBOUNDED PRECEDING](#unbounded-preceding) +- [offset PRECEDING](#offset-preceding) +- CURRENT_ROW](#current-row) +- [offset> FOLLOWING](#offset-following) +- [UNBOUNDED FOLLOWING](#unbounded-following) + +##### UNBOUNDED PRECEDING + +Starts at the first row of the partition and ends at the current row. + +```sql +UNBOUNDED PRECEDING +``` + +##### offset PRECEDING + +Starts at `offset` [frame units](#frame-units) before the current row and ends at the current row. +For example, `3 PRECEDING` includes 3 rows before the current row. + +```sql + PRECEDING +``` + +##### CURRENT ROW + +Both starts and ends at the current row when used as a boundary. + +```sql +CURRENT ROW +``` + +##### offset FOLLOWING + +Starts at the current row and ends at `offset` [frame units](#frame-units) after the current row. +For example, `3 FOLLOWING` includes 3 rows after the current row. + +```sql + FOLLOWING +``` + +##### UNBOUNDED FOLLOWING + +Starts at the current row and ends at the last row of the partition. +##### offset FOLLOWING + +Use a specified offset of [frame units](#frame-units) _after_ the current row +as a frame boundary. + +```sql +offset FOLLOWING +``` + +##### UNBOUNDED FOLLOWING + +Use the current row to the end of the current partition the frame boundary. + +```sql +UNBOUNDED FOLLOWING +``` + +### WINDOW clause + +Use the `WINDOW` clause to define a reusable alias for a window specification. +This is useful when multiple window functions in your query share the same window definition. + +Instead of repeating the same OVER clause for each function, +define the window once and reference it by alias--for example: + +```sql +SELECT + sum(net_gain) OVER w, + avg(net_net) OVER w +FROM + finance +WINDOW w AS ( PARTITION BY ticker ORDER BY time DESC); +``` + +--- + +## Aggregate functions + +All [aggregate functions](/influxdb3/cloud-dedicated/reference/sql/functions/aggregate/) +can be used as window functions. + +## Ranking Functions + +- [cume_dist](#cume_dist) +- [dense_rank](#dense_rank) +- [ntile](#ntile) +- [percent_rank](#percent_rank) +- [rank](#rank) +- [row_number](#row_number) + +### cume_dist + +Returns the cumulative distribution of a value within a group of values. +The returned value is greater than 0 and less than or equal to 1 and represents +the relative rank of the value in the set of values. +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause is used +to correctly calculate the cumulative distribution of the current row value. + +```sql +cume_dist() +``` + +> [!Important] +> When using `cume_dist`, include an [`ORDER BY` clause](#order-by-clause) in the `OVER` clause. + +{{< expand-wrapper >}} +{{% expand "View `cume_dist` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + cume_dist() OVER ( + PARTITION BY room + ORDER BY temp + ) AS cume_dist +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T12:00:00Z' +``` + +| time | room | temp | cume_dist | +| :------------------ | :---------- | ---: | --------: | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 0.25 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 0.5 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 0.75 | +| 2022-01-01T11:00:00 | Living Room | 22.2 | 1.0 | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 0.25 | +| 2022-01-01T11:00:00 | Kitchen | 22.4 | 0.5 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 0.75 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 1.0 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### dense_rank + +Returns the rank of the current row in its partition. +Ranking is consecutive; assigns duplicate values the same rank number and the rank sequence continues +with the next distinct value (unlike [`rank()`](#rank)). + +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause determines +ranking order. + +```sql +dense_rank() +``` + +{{< expand-wrapper >}} +{{% expand "View `dense_rank` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + dense_rank() OVER ( + PARTITION BY room + ORDER BY temp + ) AS dense_rank +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T12:00:00Z' +``` + +| time | room | temp | dense_rank | +| :------------------ | :---------- | ---: | ---------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 1 | +| 2022-01-01T11:00:00 | Kitchen | 22.4 | 2 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 3 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 4 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 1 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 2 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 3 | +| 2022-01-01T11:00:00 | Living Room | 22.2 | 4 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{% expand "Compare `dense_rank`, `rank`, and `row_number` functions"%}} + +Consider a table with duplicate ID values. +The following query shows how each ranking function handles duplicate values: + +```sql +SELECT + id, + rank() OVER(ORDER BY id), + dense_rank() OVER(ORDER BY id), + row_number() OVER(ORDER BY id) +FROM my_table; +``` + +| ID | rank | dense_rank | row_number | +|:----|-----:|-----------:|-----------:| +| 1 | 1 | 1 | 1 | +| 1 | 1 | 1 | 2 | +| 1 | 1 | 1 | 3 | +| 2 | 4 | 2 | 4 | + +Key differences: + +- [`rank()`](#rank) assigns the same rank to equal values but skips ranks for subsequent values +- [`dense_rank()`](#dense_rank) assigns the same rank to equal values and uses consecutive ranks +- [`row_number()`](#row_number) assigns unique sequential numbers regardless of value (non-deterministic) +{{% /expand %}} +{{< /expand-wrapper >}} + +### ntile + +Distributes the rows in an ordered partition into the specified number of groups. +Each group is numbered, starting at one. +For each row, `ntile` returns the group number to which the row belongs. +Group numbers range from 1 to the `expression` value, dividing the partition as +equally as possible. +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause determines +ranking order. + +```sql +ntile(expression) +``` + +##### Arguments + +- **expression**: An integer. The number of groups to split the partition into. + +{{< expand-wrapper >}} +{{% expand "View `ntile` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + temp, + ntile(4) OVER ( + ORDER BY time + ) AS ntile +FROM home +WHERE + room = 'Kitchen' + AND time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T15:00:00Z' +``` + +| time | temp | ntile | +| :------------------ | ---: | ----: | +| 2022-01-01T08:00:00 | 21.0 | 1 | +| 2022-01-01T09:00:00 | 23.0 | 1 | +| 2022-01-01T10:00:00 | 22.7 | 2 | +| 2022-01-01T11:00:00 | 22.4 | 2 | +| 2022-01-01T12:00:00 | 22.5 | 3 | +| 2022-01-01T13:00:00 | 22.8 | 3 | +| 2022-01-01T14:00:00 | 22.8 | 4 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### percent_rank + +Returns the percentage rank of the current row within its partition. +The returned value is between `0` and `1`, computed as: + +``` +(rank - 1) / (total_rows - 1) +``` + +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause determines +the ranking order. + +```sql +percent_rank() +``` + +{{< expand-wrapper >}} +{{% expand "View `percent_rank` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + percent_rank() OVER ( + PARTITION BY room + ORDER BY temp + ) AS percent_rank +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +``` + +| time | room | temp | percent_rank | +| :------------------ | :---------- | ---: | -----------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 0.0 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 0.5 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 1.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 0.0 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 0.5 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 1.0 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### rank + +Returns the rank of the current row in its partition. +For duplicate values, `rank` assigns them the same rank number, skips subsequent ranks (unlike [`dense_rank()`](#dense_rank)), +and then continues ranking with the next distinct value. + +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause determines +ranking order. + +```sql +rank() +``` + +{{< expand-wrapper >}} +{{% expand "View `rank` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + rank() OVER ( + PARTITION BY room + ORDER BY temp + ) AS rank +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +``` + +| time | room | temp | rank | +| :------------------ | :---------- | ---: | ---: | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 1 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 2 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 3 | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 1 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 2 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 3 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{% expand "Compare `dense_rank`, `rank`, and `row_number` functions"%}} + +Consider a table with duplicate ID values. +The following query shows how each ranking function handles duplicate values: + +```sql +SELECT + id, + rank() OVER(ORDER BY id), + dense_rank() OVER(ORDER BY id), + row_number() OVER(ORDER BY id) +FROM my_table; +``` + +| ID | rank | dense_rank | row_number | +|:----|-----:|-----------:|-----------:| +| 1 | 1 | 1 | 1 | +| 1 | 1 | 1 | 2 | +| 1 | 1 | 1 | 3 | +| 2 | 4 | 2 | 4 | + +Key differences: + +- [`rank()`](#rank) assigns the same rank to equal values but skips ranks for subsequent values +- [`dense_rank()`](#dense_rank) assigns the same rank to equal values and uses consecutive ranks +- [`row_number()`](#row_number) assigns unique sequential numbers regardless of value (non-deterministic) +{{% /expand %}} +{{< /expand-wrapper >}} + +### row_number + +Returns the position of the current row in its partition, counting from 1. +The [`ORDER BY` clause](#order-by-clause) in the `OVER` clause determines +row order. + +```sql +row_number() +``` + +{{< expand-wrapper >}} +{{% expand "View `row_number` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + row_number() OVER ( + PARTITION BY room + ORDER BY temp + ) AS row_number +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +``` + +| time | room | temp | row_number | +| :------------------ | :---------- | ---: | ---------: | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 1 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 2 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 3 | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 1 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 2 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 3 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{% expand "Compare `dense_rank`, `rank`, and `row_number` functions"%}} + +Consider a table with duplicate ID values. +The following query shows how each ranking function handles duplicate values: + +```sql +SELECT + id, + rank() OVER(ORDER BY id), + dense_rank() OVER(ORDER BY id), + row_number() OVER(ORDER BY id) +FROM my_table; +``` + +| ID | rank | dense_rank | row_number | +|:----|-----:|-----------:|-----------:| +| 1 | 1 | 1 | 1 | +| 1 | 1 | 1 | 2 | +| 1 | 1 | 1 | 3 | +| 2 | 4 | 2 | 4 | + +Key differences: + +- [`rank()`](#rank) assigns the same rank to equal values but skips ranks for subsequent values +- [`dense_rank()`](#dense_rank) assigns the same rank to equal values and uses consecutive ranks +- [`row_number()`](#row_number) assigns unique sequential numbers regardless of value (non-deterministic) +{{% /expand %}} +{{< /expand-wrapper >}} + +## Analytical Functions + +- [first_value](#first_value) +- [lag](#lag) +- [last_value](#last_value) +- [lead](#lead) +- [nth_value](#nth_value) + +### first_value + +Returns the value from the first row of the window frame. + +```sql +first_value(expression) +``` + +##### Arguments + +- **expression**: Expression to operate on. Can be a constant, column, or + function, and any combination of arithmetic operators. + +##### Related functions + +[last_value](#last_value) + +{{< expand-wrapper >}} +{{% expand "View `first_value` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + first_value(temp) OVER ( + PARTITION BY room + ORDER BY time + ) AS first_value +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +ORDER BY room, time +``` + +| time | room | temp | first_value | +| :------------------ | :---------- | ---: | ----------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 21.0 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 21.0 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 21.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 21.1 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.1 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 21.1 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### lag + +Returns the value from the row that is at the specified offset before the +current row in the partition. If the offset row is outside the partition, +the function returns the specified default. + +```sql +lag(expression, offset, default) +``` + +##### Arguments + +- **expression**: Expression to operate on. + Can be a constant, column, or function, and any combination of arithmetic or + string operators. +- **offset**: How many rows _before_ the current row to retrieve the value of + _expression_ from. Default is `1`. +- **default**: The default value to return if the offset is in the partition. + Must be of the same type as _expression_. + +##### Related functions + +[lead](#lead) + +{{< expand-wrapper >}} +{{% expand "View `lag` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + lag(temp, 1, 0) OVER ( + PARTITION BY room + ORDER BY time + ) AS previous_value +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +ORDER BY room, time +``` + +| time | room | temp | previous_value | +|:--------------------|:------------|-----:|---------------:| +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 0.0 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 21.0 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 23.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 0.0 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.1 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 21.4 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### last_value + +Returns the value from the last row of the window frame. + +```sql +last_value(expression) +``` + +##### Arguments + +- **expression**: Expression to operate on. Can be a constant, column, or + function, and any combination of arithmetic operators. + +##### Related functions + +[first_value](#first_value) + +{{< expand-wrapper >}} +{{% expand "View `last_value` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + last_value(temp) OVER ( + PARTITION BY room + ORDER BY time + ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING + ) AS last_value +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +ORDER BY room, time +``` + +| time | room | temp | last_value | +| :------------------ | :---------- | ---: | ---------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 22.7 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 22.7 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 22.7 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 21.8 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.8 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 21.8 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### lead + +Returns the value from the row that is at the specified offset after the +current row in the partition. If the offset row is outside the partition, +the function returns the specified default. + +```sql +lead(expression, offset, default) +``` + +##### Arguments + +- **expression**: Expression to operate on. + Can be a constant, column, or function, and any combination of arithmetic or + string operators. +- **offset**: How many rows _before_ the current row to retrieve the value of + _expression_ from. Default is `1`. +- **default**: The default value to return if the offset is in the partition. + Must be of the same type as _expression_. + +##### Related functions + +[lag](#lag) + +{{< expand-wrapper >}} +{{% expand "View `lead` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + lead(temp, 1, 0) OVER ( + PARTITION BY room + ORDER BY time + ) AS next_value +FROM home +WHERE + time >= '2022-01-01T08:00:00Z' + AND time < '2022-01-01T11:00:00Z' +ORDER BY room, time +``` + +| time | room | temp | next_value | +| :------------------ | :---------- | ---: | ---------: | +| 2022-01-01T08:00:00 | Kitchen | 21.0 | 23.0 | +| 2022-01-01T09:00:00 | Kitchen | 23.0 | 22.7 | +| 2022-01-01T10:00:00 | Kitchen | 22.7 | 0.0 | +| 2022-01-01T08:00:00 | Living Room | 21.1 | 21.4 | +| 2022-01-01T09:00:00 | Living Room | 21.4 | 21.8 | +| 2022-01-01T10:00:00 | Living Room | 21.8 | 0.0 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} + +### nth_value + +Returns the value from the row that is the nth row of the window frame +(counting from 1). If the nth row doesn't exist, the function returns _null_. + +```sql +nth_value(expression, n) +``` + +##### Arguments + +- **expression**: The expression to operator on. + Can be a constant, column, or function, and any combination of arithmetic or + string operators. +- **n**: Specifies the row number in the current frame and partition to reference. + +{{< expand-wrapper >}} +{{% expand "View `lead` query example" %}} + +The following example uses the {{< influxdb3/home-sample-link >}}. + +{{% influxdb/custom-timestamps %}} + +```sql +SELECT + time, + room, + temp, + nth_value(temp, 2) OVER ( + PARTITION BY room + ) AS "2nd_temp" +FROM home +WHERE + time >= '2025-02-10T08:00:00Z' + AND time < '2025-02-10T11:00:00Z' +``` + +| time | room | temp | 2nd_temp | +| :------------------ | :---------- | ---: | -------: | +| 2025-02-10T08:00:00 | Kitchen | 21.0 | 22.7 | +| 2025-02-10T10:00:00 | Kitchen | 22.7 | 22.7 | +| 2025-02-10T09:00:00 | Kitchen | 23.0 | 22.7 | +| 2025-02-10T08:00:00 | Living Room | 21.1 | 21.8 | +| 2025-02-10T10:00:00 | Living Room | 21.8 | 21.8 | +| 2025-02-10T09:00:00 | Living Room | 21.4 | 21.8 | + +{{% /influxdb/custom-timestamps %}} + +{{% /expand %}} +{{< /expand-wrapper >}} diff --git a/content/shared/sql-reference/join.md b/content/shared/sql-reference/join.md index 4911237fd..f2f288a08 100644 --- a/content/shared/sql-reference/join.md +++ b/content/shared/sql-reference/join.md @@ -241,7 +241,7 @@ ORDER BY ### Ambiguous reference to unqualified field -If a column exists on both sides of the join and is used in in the `SELECT`, +If a column exists on both sides of the join and is used in the `SELECT`, `ON`, `WHERE`, `HAVING`, `GROUP BY`, or `ORDER BY` clause, you must use a [fully-qualified reference](#fully-qualified-reference). For example, if both sides of the join have a `time` column and you want to explicitly select a diff --git a/content/shared/sql-reference/operators/comparison.md b/content/shared/sql-reference/operators/comparison.md index 1dc8fe84d..00581c96c 100644 --- a/content/shared/sql-reference/operators/comparison.md +++ b/content/shared/sql-reference/operators/comparison.md @@ -2,19 +2,23 @@ Comparison operators evaluate the relationship between the left and right operands and returns `true` or `false`. -| Operator | Meaning | | -| :------: | :------------------------------------------------------- | :------------------------------------------------------ | -| `=` | Equal to | [{{< icon "link" >}}](#equal-to) | -| `<>` | Not equal to | [{{< icon "link" >}}](#not-equal-to) | -| `!=` | Not equal to | [{{< icon "link" >}}](#not-equal-to) | -| `>` | Greater than | [{{< icon "link" >}}](#greater-than) | -| `>=` | Greater than or equal to | [{{< icon "link" >}}](#greater-than-or-equal) | -| `<` | Less than | [{{< icon "link" >}}](#less-than) | -| `<=` | Less than or equal to | [{{< icon "link" >}}](#less-than-or-equal) | -| `~` | Matches a regular expression | [{{< icon "link" >}}](#regexp-match) | -| `~*` | Matches a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-match-case-insensitive) | -| `!~` | Does not match a regular expression | [{{< icon "link" >}}](#regexp-nomatch) | -| `!~*` | Does not match a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-nomatch-case-insensitive) | +| Operator | Meaning | | +| :--------------------: | :------------------------------------------------------- | :------------------------------------------------------ | +| `=` | Equal to | [{{< icon "link" >}}](#equal-to) | +| `<>` | Not equal to | [{{< icon "link" >}}](#not-equal-to) | +| `!=` | Not equal to | [{{< icon "link" >}}](#not-equal-to) | +| `>` | Greater than | [{{< icon "link" >}}](#greater-than) | +| `>=` | Greater than or equal to | [{{< icon "link" >}}](#greater-than-or-equal) | +| `<` | Less than | [{{< icon "link" >}}](#less-than) | +| `<=` | Less than or equal to | [{{< icon "link" >}}](#less-than-or-equal) | +| `IS DISTINCT FROM` | Is distinct from | [{{< icon "link" >}}](#is-distinct-from) | +| `IS NOT DISTINCT FROM` | Is not distinct from | [{{< icon "link" >}}](#is-not-distinct-from) | +| `~` | Matches a regular expression | [{{< icon "link" >}}](#regexp-match) | +| `~*` | Matches a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-match-case-insensitive) | +| `!~` | Does not match a regular expression | [{{< icon "link" >}}](#regexp-nomatch) | +| `!~*` | Does not match a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-nomatch-case-insensitive) | + + ## = {#equal-to .monospace} @@ -169,6 +173,141 @@ SELECT 1 <= 2 {{% /flex-content %}} {{< /flex >}} +## IS DISTINCT FROM {.monospace} + +The `IS DISTINCT FROM` operator is a _NULL_-safe operator that returns +`true` if both operands are not equal; otherwise, it returns `false`. +This operator guarantees the result of a comparison is `true` or `false` and not +an empty set. + +{{< flex >}} +{{% flex-content "two-thirds operator-example" %}} + +```sql +SELECT 0 IS DISTINCT FROM NULL +``` + +{{% /flex-content %}} +{{% flex-content "third operator-example" %}} + +| Int64(0) IS DISTINCT FROM NULL | +| :----------------------------- | +| true | + +{{% /flex-content %}} +{{< /flex >}} + +## IS NOT DISTINCT FROM {.monospace} + +The `IS NOT DISTINCT FROM` operator is a _NULL_-safe operator that returns +`true` if both operands are equal or _NULL_; otherwise, it returns `false`. +This operator negates [`IS DISTINCT FROM`](#is-distinct-from). + + + +{{< flex >}} +{{% flex-content "two-thirds operator-example" %}} + +```sql +SELECT NULL IS NOT DISTINCT FROM NULL +``` + +{{% /flex-content %}} +{{% flex-content "third operator-example" %}} + +| NULL IS NOT DISTINCT FROM NULL | +| :----------------------------- | +| true | + +{{% /flex-content %}} +{{< /flex >}} + + + ## ~ {#regexp-match .monospace} The `~` operator compares the left string operand to the right regular expression diff --git a/content/shared/v3-core-get-started/_index.md b/content/shared/v3-core-get-started/_index.md index 847fd0ba0..ab3e024ac 100644 --- a/content/shared/v3-core-get-started/_index.md +++ b/content/shared/v3-core-get-started/_index.md @@ -52,7 +52,6 @@ This guide covers InfluxDB 3 Core (the open source release), including the follo * [Last values cache](#last-values-cache) * [Distinct values cache](#distinct-values-cache) * [Python plugins and the processing engine](#python-plugins-and-the-processing-engine) -* [Diskless architecture](#diskless-architecture) ### Install and startup @@ -62,12 +61,13 @@ This guide covers InfluxDB 3 Core (the open source release), including the follo {{% tabs %}} [Linux or macOS](#linux-or-macos) [Windows](#windows) -[Docker (x86)](#docker-x86) +[Docker](#docker) {{% /tabs %}} {{% tab-content %}} To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html): + ```bash curl -O https://www.influxdata.com/d/install_influxdb3.sh \ && sh install_influxdb3.sh @@ -75,15 +75,9 @@ curl -O https://www.influxdata.com/d/install_influxdb3.sh \ Or, download and install [build artifacts](/influxdb3/core/install/#download-influxdb-3-core-binaries): -- [Linux | x86 | musl](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-musl.tar.gz.sha256) - [Linux | x86 | gnu](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_x86_64-unknown-linux-gnu.tar.gz.sha256) -- [Linux | ARM | musl](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-musl.tar.gz.sha256) - [Linux | ARM | gnu](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-core_aarch64-unknown-linux-gnu.tar.gz.sha256) @@ -107,8 +101,12 @@ Download and install the {{% product-name %}} [Windows (x86) binary](https://dl. {{% tab-content %}} -Pull the [`influxdb3-core` image](https://quay.io/repository/influxdb/influxdb3-core?tab=tags&tag=latest): +The [`influxdb3-core` image](https://quay.io/repository/influxdb/influxdb3-core?tab=tags&tag=latest) +is available for x86_64 (AMD64) and ARM64 architectures. +Pull the image: + + ```bash docker pull quay.io/influxdb/influxdb3-core:latest ``` @@ -129,6 +127,7 @@ influxdb3 --version If your system doesn't locate `influxdb3`, then `source` the configuration file (for example, .bashrc, .zshrc) for your shell--for example: + ```zsh source ~/.zshrc ``` @@ -138,19 +137,30 @@ source ~/.zshrc To start your InfluxDB instance, use the `influxdb3 serve` command and provide the following: -- `--object-store`: Specifies the type of Object store to use. InfluxDB supports the following: local file system (`file`), `memory`, S3 (and compatible services like Ceph or Minio) (`s3`), Google Cloud Storage (`google`), and Azure Blob Storage (`azure`). -- `--node-id`: A string identifier that determines the server's storage path within the configured storage location +- `--object-store`: Specifies the type of Object store to use. + InfluxDB supports the following: local file system (`file`), `memory`, + S3 (and compatible services like Ceph or Minio) (`s3`), + Google Cloud Storage (`google`), and Azure Blob Storage (`azure`). +- `--node-id`: A string identifier that determines the server's storage path + within the configured storage location, and, in a multi-node setup, is used to reference the node. + +> [!Note] +> #### Diskless architecture +> +> InfluxDB 3 supports a diskless architecture that can operate with object +> storage alone, eliminating the need for locally attached disks. +> {{% product-name %}} can also work with only local disk storage when needed. The following examples show how to start InfluxDB 3 with different object store configurations: ```bash -# MEMORY +# Memory object store # Stores data in RAM; doesn't persist data influxdb3 serve --node-id=local01 --object-store=memory ``` ```bash -# FILESYSTEM +# Filesystem object store # Provide the filesystem directory influxdb3 serve \ --node-id=local01 \ @@ -163,10 +173,17 @@ To run the [Docker image](/influxdb3/core/install/#docker-image) and persist dat - `-v /path/on/host:/path/in/container`: Mounts a directory from your filesystem to the container - `--object-store file --data-dir /path/in/container`: Uses the mount for server storage +> [!Note] +> +> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3` server default for HTTP connections. +> To map the exposed port to a different port when running a container, see the Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/). + + ```bash -# FILESYSTEM USING DOCKER +# Filesystem object store with Docker # Create a mount # Provide the mount path + docker run -it \ -v /path/on/host:/path/in/container \ quay.io/influxdb/influxdb3-core:latest serve \ @@ -176,15 +193,29 @@ docker run -it \ ``` ```bash -# S3 (defaults to us-east-1 for region) +# S3 object store (default is the us-east-1 region) # Specify the Object store type and associated options -influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY] + +```bash +influxdb3 serve \ + --node-id=local01 \ + --object-store=s3 \ + --bucket=BUCKET \ + --aws-access-key=AWS_ACCESS_KEY \ + --aws-secret-access-key=AWS_SECRET_ACCESS_KEY ``` ```bash -# Minio/Open Source Object Store (Uses the AWS S3 API, with additional parameters) -# Specify the Object store type and associated options -influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY] --aws-endpoint=[ENDPOINT] --aws-allow-http +# Minio or other open source object store +# (using the AWS S3 API with additional parameters) +# Specify the object store type and associated options + +```bash +influxdb3 serve --node-id=local01 --object-store=s3 --bucket=BUCKET \ + --aws-access-key=AWS_ACCESS_KEY \ + --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \ + --aws-endpoint=ENDPOINT \ + --aws-allow-http ``` _For more information about server options, run `influxdb3 serve --help`._ @@ -196,15 +227,17 @@ _For more information about server options, run `influxdb3 serve --help`._ > Use the `docker kill` command to stop the container: > > 1. Enter the following command to find the container ID: +> > ```bash > docker ps -a > ``` > 2. Enter the command to stop the container: +> > ```bash > docker kill > ``` -### Data Model +### Data model The database server contains logical databases, which have tables, which have columns. Compared to previous versions of InfluxDB you can think of a database as a `bucket` in v2 or as a `db/retention_policy` in v1. A `table` is equivalent to a `measurement`, which has columns that can be of type `tag` (a string dictionary), `int64`, `float64`, `uint64`, `bool`, or `string` and finally every table has a `time` column that is a nanosecond precision timestamp. @@ -213,31 +246,56 @@ This is the sort order used for all Parquet files that get created. When you cre Tags should hold unique identifying information like `sensor_id`, or `building_id` or `trace_id`. All other data should be kept in fields. You will be able to add fast last N value and distinct value lookups later for any column, whether it is a field or a tag. -### Write Data +### Write data InfluxDB is a schema-on-write database. You can start writing data and InfluxDB creates the logical database, tables, and their schemas on the fly. After a schema is created, InfluxDB validates future write requests against it before accepting the data. Subsequent requests can add new fields on-the-fly, but can't add new tags. -InfluxDB 3 Core is optimized for recent data, but accepts writes from any time period. It persists that data in Parquet files for access by third-party systems for longer term historical analysis and queries. If you require longer historical queries with a compactor that optimizes data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/). +> [!Note] +> #### Core is optimized for recent data +> +> {{% product-name %}} is optimized for recent data but accepts writes from any time period. +> The system persists data to Parquet files for historical analysis with [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/) or third-party tools. +> For extended historical queries and optimized data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/). +{{% product-name %}} provides three write API endpoints that respond to HTTP `POST` requests: -The database has three write API endpoints that respond to HTTP `POST` requests: +#### /api/v3/write_lp endpoint -* `/write?db=mydb&precision=ns` -* `/api/v2/write?bucket=mydb&precision=ns` -* `/api/v3/write_lp?db=mydb&precision=nanosecond&accept_partial=true` +{{% product-name %}} adds the `/api/v3/write_lp` endpoint. -{{% product-name %}} provides the `/write` and `/api/v2/write` endpoints for backward compatibility with clients that can write data to previous versions of InfluxDB. -However, these APIs differ from the APIs in the previous versions in the following ways: +{{}} + +This endpoint accepts the same line protocol syntax as previous versions, +and supports the `?accept_partial=` parameter, which +lets you accept or reject partial writes (default is `true`). + +#### /api/v2/write InfluxDB v2 compatibility endpoint + +Provides backwards compatibility with clients that can write data to InfluxDB OSS v2.x and Cloud 2 (TSM). +{{}} + +#### /write InfluxDB v1 compatibility endpoint + +Provides backwards compatibility for clients that can write data to InfluxDB v1.x +{{}} + +Keep in mind that these compatibility APIs differ from the v1 and v2 APIs in previous versions in the following ways: - Tags in a table (measurement) are _immutable_ - A tag and a field can't have the same name within a table. -{{% product-name %}} adds the `/api/v3/write_lp` endpoint, which accepts the same line protocol syntax as previous versions, and supports an `?accept_partial=` parameter, which -lets you accept or reject partial writes (default is `true`). +#### Write line protocol -The following code block is an example of [line protocol](/influxdb3/core/reference/syntax/line-protocol/), which shows the table name followed by tags, which are an ordered, comma-separated list of key/value pairs where the values are strings, followed by a comma-separated list of key/value pairs that are the fields, and ending with an optional timestamp. The timestamp by default is a nanosecond epoch, but you can specify a different precision through the `precision` query parameter. +The following code block is an example of time series data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) syntax: + +- `cpu`: the table name. +- `host`, `region`, `applications`: the tags. A tag set is an ordered, comma-separated list of key/value pairs where the values are strings. +- `val`, `usage_percent`, `status`: the fields. A field set is a comma-separated list of key/value pairs. +- timestamp: If you don't specify a timestamp, InfluxData uses the time when data is written. + The default precision is a nanosecond epoch. + To specify a different precision, pass the `precision` query parameter. ``` cpu,host=Alpha,region=us-west,application=webserver val=1i,usage_percent=20.5,status="OK" @@ -248,16 +306,20 @@ cpu,host=Bravo,region=us-central,application=database val=5i,usage_percent=80.5, cpu,host=Alpha,region=us-west,application=webserver val=6i,usage_percent=25.3,status="Warn" ``` +##### Example: write data using the influxdb3 CLI + If you save the preceding line protocol to a file (for example, `server_data`), then you can use the `influxdb3` CLI to write the data--for example: ```bash influxdb3 write --database=mydb --file=server_data ``` +##### Example: write data using the /api/v3 HTTP API + The following examples show how to write data using `curl` and the `/api/3/write_lp` HTTP endpoint. To show the difference between accepting and rejecting partial writes, line `2` in the example contains a `string` value for a `float` field (`temp=hi`). -##### Partial write of line protocol occurred +###### Partial write of line protocol occurred With `accept_partial=true`: @@ -281,9 +343,9 @@ With `accept_partial=true`: ``` Line `1` is written and queryable. -The response is an HTTP error (`400`) status, and the response body contains `partial write of line protocol occurred` and details about the problem line. +The response is an HTTP error (`400`) status, and the response body contains the error message `partial write of line protocol occurred` with details about the problem line. -##### Parsing failed for write_lp endpoint +###### Parsing failed for write_lp endpoint With `accept_partial=false`: @@ -314,19 +376,51 @@ The response is the following: InfluxDB rejects all points in the batch. The response is an HTTP error (`400`) status, and the response body contains `parsing failed for write_lp endpoint` and details about the problem line. -##### Data durability +### Data flow -When you write data to InfluxDB, InfluxDB ingests the data and writes it to WAL files, created once per second, and to an in-memory queryable buffer. -Later, InfluxDB snapshots the WAL and persists the data into object storage as Parquet files. -For more information, see [diskless architecture](#diskless-architecture). +The figure below shows how written data flows through the database. -> [!Note] -> ##### Write requests return after WAL flush -> -> Because InfluxDB sends a write response after the WAL file has been flushed to the configured object store (default is every second), individual write requests might not complete quickly, but you can make many concurrent requests to achieve higher total throughput. -> Future enhancements will include an API parameter that lets requests return without waiting for the WAL flush. +{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}} -#### Create a database or Table +1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If [`no_sync=true`](#no-sync-write-option), the server sends a response to acknowledge the write. +2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If [`no_sync=false`](#no-sync-write-option) (default), the server sends a response to acknowledge the write. +3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. +4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. +5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + +#### Write responses + +By default, InfluxDB acknowledges writes after flushing the WAL file to the Object store (occurring every second). +For high write throughput, you can send multiple concurrent write requests. + +#### Use no_sync for immediate write responses + +To reduce the latency of writes, use the `no_sync` write option, which acknowledges writes _before_ WAL persistence completes. +When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the Object store. + +Using `no_sync=true` is best when prioritizing high-throughput writes over absolute durability. + +- Default behavior (`no_sync=false`): Waits for data to be written to the Object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response. +- With `no_sync=true`: Reduces write latency, but increases the risk of data loss in case of a crash before WAL persistence. + +##### Immediate write using the HTTP API + +The `no_sync` parameter controls when writes are acknowledged--for example: + +```sh +curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&no_sync=true" \ + --data-raw "home,room=Sunroom temp=96" +``` + +##### Immediate write using the influxdb3 CLI + +The `no_sync` CLI option controls when writes are acknowledged--for example: + +```sh +influxdb3 write --bucket=mydb --org=my_org --token=my-token --no-sync +``` + +### Create a database or table To create a database without writing data, use the `create` subcommand--for example: @@ -340,12 +434,13 @@ To learn more about a subcommand, use the `-h, --help` flag: influxdb3 create -h ``` -### Query the database +### Query data InfluxDB 3 now supports native SQL for querying, in addition to InfluxQL, an -SQL-like language customized for time series queries. {{< product-name >}} limits -query time ranges to 72 hours (both recent and historical) to ensure query performance. +SQL-like language customized for time series queries. +{{< product-name >}} limits +query time ranges to 72 hours (both recent and historical) to ensure query performance. For more information about the 72-hour limitation, see the [update on InfluxDB 3 Core’s 72-hour limitation](https://www.influxdata.com/blog/influxdb3-open-source-public-alpha-jan-27/). @@ -403,7 +498,7 @@ $ influxdb3 query --database=servers "SELECT DISTINCT usage_percent, time FROM c ### Querying using the CLI for InfluxQL -[InfluxQL](/influxdb3/core/reference/influxql/) is an SQL-like language developed by InfluxData with specific features tailored for leveraging and working with InfluxDB. It’s compatible with all versions of InfluxDB, making it a good choice for interoperability across different InfluxDB installations. +[InfluxQL](/influxdb3/version/reference/influxql/) is an SQL-like language developed by InfluxData with specific features tailored for leveraging and working with InfluxDB. It’s compatible with all versions of InfluxDB, making it a good choice for interoperability across different InfluxDB installations. To query using InfluxQL, enter the `influxdb3 query` subcommand and specify `influxql` in the language option--for example: @@ -502,7 +597,7 @@ You can use the `influxdb3` CLI to create a last value cache. Usage: $ influxdb3 create last_cache [OPTIONS] -d -t [CACHE_NAME] Options: - -h, --host URL of the running InfluxDB 3 Core server [env: INFLUXDB3_HOST_URL=] + -h, --host URL of the running {{% product-name %}} server [env: INFLUXDB3_HOST_URL=] -d, --database The database to run the query against [env: INFLUXDB3_DATABASE_NAME=] --token The token for authentication [env: INFLUXDB3_AUTH_TOKEN=] -t, --table
The table for which the cache is created @@ -570,50 +665,31 @@ influxdb3 create distinct_cache -h ### Python plugins and the Processing engine -> [!Important] -> #### Processing engine only works with Docker -> -> The Processing engine is currently supported only in Docker x86 environments. Non-Docker support is coming soon. The engine, API, and developer experience are actively evolving and may change. Join our [Discord](https://discord.gg/9zaNCW2PRT) for updates and feedback. - The InfluxDB 3 Processing engine is an embedded Python VM for running code inside the database to process and transform data. -To use the Processing engine, you create [plugins](#plugin) and [triggers](#trigger). +To activate the Processing engine, pass the `--plugin-dir ` option when starting the {{% product-name %}} server. +`PLUGIN_DIR` is your filesystem location for storing [plugin](#plugin) files for the Processing engine to run. #### Plugin -A plugin is a Python function that has a signature compatible with one of the [trigger types](#trigger-types). -The [`influxdb3 create plugin`](/influxdb3/core/reference/cli/influxdb3/create/plugin/) command loads a Python plugin file into the server. +A plugin is a Python function that has a signature compatible with a Processing engine [trigger](#trigger). #### Trigger -After you load a plugin into an InfluxDB 3 server, you can create one or more -triggers associated with the plugin. -When you create a trigger, you specify a plugin, a database, optional runtime arguments, -and a trigger-spec, which specifies `all_tables` or `table:my_table_name` (for filtering data sent to the plugin). -When you _enable_ a trigger, the server executes the plugin code according to the -plugin signature. +When you create a trigger, you specify a [plugin](#plugin), a database, optional arguments, +and a _trigger-spec_, which defines when the plugin is executed and what data it receives. ##### Trigger types -InfluxDB 3 provides the following types of triggers: +InfluxDB 3 provides the following types of triggers, each with specific trigger-specs: -- **On WAL flush**: Sends the batch of write data to a plugin once a second (configurable). - -> [!Note] -> Currently, only the **WAL flush** trigger is supported, but more are on the way: -> -> - **On Snapshot**: Sends metadata to a plugin for further processing against the Parquet data or to send the information elsewhere (for example, to an Iceberg Catalog). _Not yet available._ -> - **On Schedule**: Executes a plugin on a user-configured schedule, useful for data collection and deadman monitoring. _Not yet available._ -> - **On Request**: Binds a plugin to an HTTP endpoint at `/api/v3/plugins/`. _Not yet available._ -> The plugin receives the HTTP request headers and content, and can then parse, process, and send the data into the database or to third-party services. +- **On WAL flush**: Sends a batch of written data (for a specific table or all tables) to a plugin (by default, every second). +- **On Schedule**: Executes a plugin on a user-configured schedule (using a crontab or a duration); useful for data collection and deadman monitoring. +- **On Request**: Binds a plugin to a custom HTTP API endpoint at `/api/v3/engine/`. + The plugin receives the HTTP request headers and content, and can then parse, process, and send the data into the database or to third-party services. ### Test, create, and trigger plugin code -> [!Important] -> #### Processing engine only works with Docker -> -> The Processing engine is currently supported only in Docker x86 environments. Non-Docker support is coming soon. The engine, API, and developer experience are actively evolving and may change. Join our [Discord](https://discord.gg/9zaNCW2PRT) for updates and feedback. - ##### Example: Python plugin for WAL flush ```python @@ -699,10 +775,9 @@ Test your InfluxDB 3 plugin safely without affecting written data. During a plug To test a plugin, do the following: 1. Create a _plugin directory_--for example, `/path/to/.influxdb/plugins` -2. Make the plugin directory available to the Docker container (for example, using a bind mount) -3. Run the Docker command to [start the server](#start-influxdb) and include the `--plugin-dir` option with your plugin directory path. -4. Save the [preceding example code](#example-python-plugin) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. -5. To run the test, enter the following command with the following options: +2. [Start the InfluxDB server](#start-influxdb) and include the `--plugin-dir ` option. +3. Save the [preceding example code](#example-python-plugin) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. +4. To run the test, enter the following command with the following options: - `--lp` or `--file`: The line protocol to test - Optional: `--input-arguments`: A comma-delimited list of `=` arguments for your plugin code @@ -720,7 +795,7 @@ You can quickly see how the plugin behaves, what data it would have written to t You can then edit your Python code in the plugins directory, and rerun the test. The server reloads the file for every request to the `test` API. -For more information, see [`influxdb3 test wal_plugin`](/influxdb3/core/reference/cli/influxdb3/test/wal_plugin/) or run `influxdb3 test wal_plugin -h`. +For more information, see [`influxdb3 test wal_plugin`](/influxdb3/version/reference/cli/influxdb3/test/wal_plugin/) or run `influxdb3 test wal_plugin -h`. With the plugin code inside the server plugin directory, and a successful test, you're ready to create a plugin and a trigger to run on the server. @@ -743,14 +818,6 @@ influxdb3 test wal_plugin \ test.py ``` -```bash -# Create a plugin to run -influxdb3 create plugin \ - -d mydb \ - --code-filename="/path/to/.influxdb3/plugins/test.py" \ - test_plugin -``` - ```bash # Create a trigger that runs the plugin influxdb3 create trigger \ @@ -768,21 +835,6 @@ enable the trigger and have it run the plugin as you write data: influxdb3 enable trigger --database mydb trigger1 ``` -For more information, see the following: +For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/). -- [`influxdb3 test wal_plugin`](/influxdb3/core/reference/cli/influxdb3/test/wal_plugin/) -- [`influxdb3 create plugin`](/influxdb3/core/reference/cli/influxdb3/create/plugin/) -- [`influxdb3 create trigger`](/influxdb3/core/reference/cli/influxdb3/create/trigger/) -### Diskless architecture - -InfluxDB 3 is able to operate using only object storage with no locally attached disk. -While it can use only a disk with no dependencies, the ability to operate without one is a new capability with this release. The figure below illustrates the write path for data landing in the database. - -{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}} - -As write requests come in to the server, they are parsed, validated, and put into an in-memory WAL buffer. This buffer is flushed every second by default (can be changed through configuration), which will create a WAL file. Once the data is flushed to disk, it is put into a queryable in-memory buffer and then a response is sent back to the client that the write was successful. That data will now show up in queries to the server. - -InfluxDB periodically snapshots the WAL to persist the oldest data in the queryable buffer, allowing the server to remove old WAL files. By default, the server will keep up to 900 WAL files buffered up (15 minutes of data) and attempt to persist the oldest 10 minutes, keeping the most recent 5 minutes around. - -When the data is persisted out of the queryable buffer it is put into the configured object store as Parquet files. Those files are also put into an in-memory cache so that queries against the most recently persisted data do not have to go to object storage. diff --git a/content/shared/v3-core-plugins/_index.md b/content/shared/v3-core-plugins/_index.md new file mode 100644 index 000000000..2566d551d --- /dev/null +++ b/content/shared/v3-core-plugins/_index.md @@ -0,0 +1,468 @@ + +Use the {{% product-name %}} Processing engine to run code and perform tasks +for different database events. + +{{% product-name %}} provides the InfluxDB 3 Processing engine, an embedded Python VM that can dynamically load and trigger Python plugins +in response to events in your database. + +## Key Concepts + +### Plugins + +A Processing engine _plugin_ is Python code you provide to run tasks, such as +downsampling data, monitoring, creating alerts, or calling external services. + +> [!Note] +> #### Contribute and use community plugins +> +> [influxdata/influxdb3_plugins](https://github.com/influxdata/influxdb3_plugins) is a public repository on GitHub where you can find +> and contribute example plugins. +> You can reference plugins from the repository directly within a trigger configuration. + +### Triggers + +A _trigger_ is an InfluxDB 3 resource you create to associate a database +event (for example, a WAL flush) with the plugin that should run. +When an event occurs, the trigger passes configuration details, optional arguments, and event data to the plugin. + +The Processing engine provides four types of triggers--each type corresponds to +an event type with event-specific configuration to let you handle events with targeted logic. + +- **WAL Flush**: Triggered when the write-ahead log (WAL) is flushed to the object store (default is every second). +- **Scheduled Tasks**: Triggered on a schedule you specify using cron syntax. +- **On-request**: Triggered on a GET or POST request to the bound HTTP API endpoint at `/api/v3/engine/`. + + +### Activate the Processing engine + +To enable the Processing engine, start the {{% product-name %}} server with the +`--plugin-dir` option and a path to your plugins directory. +If the directory doesn’t exist, the server creates it. + +```bash +influxdb3 serve --node-id node0 --object-store [OBJECT STORE TYPE] --plugin-dir /path/to/plugins +``` + +## Shared API + +All plugin types provide the InfluxDB 3 _shared API_ for interacting with the database. +The shared API provides access to the following: + +- `LineBuilder` to create Line Protocol lines for writing to the database +- `query` to query data from any database +- `info`, `warn`, and `error` to log messages to the database log, which is output in the server logs and captured in system tables queryable by SQL + +### LineBuilder + +The `LineBuilder` is a simple API for building lines of Line Protocol to write into the database. Writes are buffered while the plugin runs and are flushed when the plugin completes. The `LineBuilder` API is available in all plugin types. + +The following example shows how to use the `LineBuilder` API: + +```python +# Build line protocol incrementally +line = LineBuilder("weather") +line.tag("location", "us-midwest") +line.float64_field("temperature", 82.5) +line.time_ns(1627680000000000000) +influxdb3_local.write(line) + +# Output line protocol as a string ("weather,location=us-midwest temperature=82.5 1627680000000000000") +line_str = line.build() +``` + +Here is the Python implementation of the `LineBuilder` API: + +```python +from typing import Optional +from collections import OrderedDict + +class InfluxDBError(Exception): + """Base exception for InfluxDB-related errors""" + pass + +class InvalidMeasurementError(InfluxDBError): + """Raised when measurement name is invalid""" + pass + +class InvalidKeyError(InfluxDBError): + """Raised when a tag or field key is invalid""" + pass + +class InvalidLineError(InfluxDBError): + """Raised when a line protocol string is invalid""" + pass + +class LineBuilder: + def __init__(self, measurement: str): + if ' ' in measurement: + raise InvalidMeasurementError("Measurement name cannot contain spaces") + self.measurement = measurement + self.tags: OrderedDict[str, str] = OrderedDict() + self.fields: OrderedDict[str, str] = OrderedDict() + self._timestamp_ns: Optional[int] = None + + def _validate_key(self, key: str, key_type: str) -> None: + """Validate that a key does not contain spaces, commas, or equals signs.""" + if not key: + raise InvalidKeyError(f"{key_type} key cannot be empty") + if ' ' in key: + raise InvalidKeyError(f"{key_type} key '{key}' cannot contain spaces") + if ',' in key: + raise InvalidKeyError(f"{key_type} key '{key}' cannot contain commas") + if '=' in key: + raise InvalidKeyError(f"{key_type} key '{key}' cannot contain equals signs") + + def tag(self, key: str, value: str) -> 'LineBuilder': + """Add a tag to the line protocol.""" + self._validate_key(key, "tag") + self.tags[key] = str(value) + return self + + def uint64_field(self, key: str, value: int) -> 'LineBuilder': + """Add an unsigned integer field to the line protocol.""" + self._validate_key(key, "field") + if value < 0: + raise ValueError(f"uint64 field '{key}' cannot be negative") + self.fields[key] = f"{value}u" + return self + + def int64_field(self, key: str, value: int) -> 'LineBuilder': + """Add an integer field to the line protocol.""" + self._validate_key(key, "field") + self.fields[key] = f"{value}i" + return self + + def float64_field(self, key: str, value: float) -> 'LineBuilder': + """Add a float field to the line protocol.""" + self._validate_key(key, "field") + # Check if value has no decimal component + self.fields[key] = f"{int(value)}.0" if value % 1 == 0 else str(value) + return self + + def string_field(self, key: str, value: str) -> 'LineBuilder': + """Add a string field to the line protocol.""" + self._validate_key(key, "field") + # Escape quotes and backslashes in string values + escaped_value = value.replace('"', '\\"').replace('\\', '\\\\') + self.fields[key] = f'"{escaped_value}"' + return self + + def bool_field(self, key: str, value: bool) -> 'LineBuilder': + """Add a boolean field to the line protocol.""" + self._validate_key(key, "field") + self.fields[key] = 't' if value else 'f' + return self + + def time_ns(self, timestamp_ns: int) -> 'LineBuilder': + """Set the timestamp in nanoseconds.""" + self._timestamp_ns = timestamp_ns + return self + + def build(self) -> str: + """Build the line protocol string.""" + # Start with measurement name (escape commas only) + line = self.measurement.replace(',', '\\,') + + # Add tags if present + if self.tags: + tags_str = ','.join( + f"{k}={v}" for k, v in self.tags.items() + ) + line += f",{tags_str}" + + # Add fields (required) + if not self.fields: + raise InvalidLineError(f"At least one field is required: {line}") + + fields_str = ','.join( + f"{k}={v}" for k, v in self.fields.items() + ) + line += f" {fields_str}" + + # Add timestamp if present + if self._timestamp_ns is not None: + line += f" {self._timestamp_ns}" + + return line +``` + +### Query + +The shared API `query` function executes an SQL query with optional parameters (a [parameterized query](/influxdb3/version/query-data/sql/parameterized-queries/)) and returns results as a `List` of `Dict[String, Any]` where the key is the column name and the value is the column value. The `query` function is available in all plugin types. + +The following examples show how to use the `query` function: + +```python +influxdb3_local.query("SELECT * from foo where bar = 'baz' and time > now() - INTERVAL '1 hour'") + +# Or using parameterized queries +args = {"bar": "baz"} +influxdb3_local.query("SELECT * from foo where bar = $bar and time > now() - INTERVAL '1 hour'", args) +``` + +### Logging + +The shared API `info`, `warn`, and `error` functions log messages to the database log, which is output in the server logs and captured in system tables queryable by SQL. +The `info`, `warn`, and `error` functions are available in all plugin types. Each function accepts multiple arguments, converts them to strings, and logs them as a single, space-separated message. + +The following examples show how to use the `info`, `warn`, and `error` logging functions: + +```python +influxdb3_local.info("This is an info message") +influxdb3_local.warn("This is a warning message") +influxdb3_local.error("This is an error message") + +# Log a message that contains a data object +obj_to_log = {"hello": "world"} +influxdb3_local.info("This is an info message with an object", obj_to_log) +``` + +### Trigger Settings + +#### Control trigger execution + +By default, triggers run synchronously—each instance waits for previous instances to complete before executing. + +To allow multiple instances of the same trigger to run simultaneously, configure triggers to run asynchronously: + +```bash +# Create an asynchronous trigger +influx create trigger --run-asynchronously + +#### Configure error handling +#### Configure error behavior for plugins + +The Processing engine logs all plugin errors to stdout and the `system.processing_engine_logs` system table. + +To configure additional error handling for a trigger, use the `--error-behavior` flag: + +- `--error-behavior retry`: Attempt to run the plugin again immediately after an error +- `--error-behavior disable`: Automatically disable the plugin when an error occurs (can be re-enabled later via CLI) + +```bash +# Create a trigger that retries on error +influx create trigger --error-behavior retry + +# Create a trigger that disables the plugin on error +influx create trigger --error-behavior disable +This behavior can be changed by specifying the "Error behavior", via the `--error-behavior` flag. Apart from the default `log`, you may set + +* `--error-behavior retry` will immediately retry the plugin trigger in the event of error. +* `--error-behavior disable` will turn off the plugin as soon as an error occurs. You can enable it again using the CLI. + +### Trigger arguments + +A plugin can receive arguments from the trigger that runs it. +You can use this to provide runtime configuration and drive behavior of a plugin—for example: + +- threshold values for monitoring +- connection properties for connecting to third-party services + +To pass arguments to a plugin, specify trigger arguments in a comma-separated list +of key-value pairs--for example, using the CLI: + +```bash +influxdb3 create trigger +--trigger-arguments key1=val1,key2=val2 +``` + +The arguments are passed to the plugin as a `Dict[str, str]` where the key is +the argument name and the value is the argument value--for example: + +```python +args = { + "key1": "value1", + "key2": "value2", +} +``` + +The following example shows how to access and use an argument in a WAL plugin: + +```python +def process_writes(influxdb3_local, table_batches, args=None): + if args and "threshold" in args: + threshold = int(args["threshold"]) + influxdb3_local.info(f"Threshold is {threshold}") + else: + influxdb3_local.warn("No threshold provided") +``` + +The `args` parameter is optional. If a plugin doesn’t require arguments, you can omit it from the trigger definition. + +## Import plugin dependencies + +Use the `influxdb3 install` command to download and install Python packages that your plugin depends on. + +```bash +influxdb3 install package +``` + +### Use `influxdb3 install` with Docker + +1. Start the server + + ```bash + docker run \ + --name CONTAINER_NAME \ + -v /path/to/.influxdb3/data:/data \ + -v /path/to/.influxdb3/plugins:/plugins \ + quay.io/influxdb/influxdb3-{{< product-key >}}:latest \ + serve --node-id=node0 \ + --object-store=file \ + --data-dir=/data \ + --http-bind=localhost:8183 \ + --plugin-dir=/plugins + ``` + +2. Use `docker exec` to run the `influxdb3 install` command: + + ```bash + docker exec -it CONTAINER_NAME influxdb3 install package pandas + ``` + +The result is an active Python virtual environment with the package installed in `/.venv`. +You can specify additional options to install dependencies from a `requirements.txt` file or a custom virtual environment path. +For more information, see the `influxdb3` CLI help: + +```bash +influxdb3 install package --help +``` + +## Configure plugin triggers +Triggers define when and how plugins execute in response to database events. Each trigger type corresponds to a specific event, allowing precise control over automation within {{% product-name %}}. + +### WAL flush trigger + +When a WAL flush plugin is triggered, the plugin receives a list of `table_batches` filtered by the trigger configuration (either _all tables_ in the database or a specific table). + +The following example shows a simple WAL flush plugin: + +```python +def process_writes(influxdb3_local, table_batches, args=None): + for table_batch in table_batches: + # Skip the batch if table_name is write_reports + if table_batch["table_name"] == "write_reports": + continue + + row_count = len(table_batch["rows"]) + + # Double the row count if table name matches args table_name + if args and "double_count_table" in args and table_batch["table_name"] == args["double_count_table"]: + row_count *= 2 + + # Use the LineBuilder API to write data + line = LineBuilder("write_reports")\ + .tag("table_name", table_batch["table_name"])\ + .int64_field("row_count", row_count) + influxdb3_local.write(line) + + influxdb3_local.info("wal_plugin.py done") +``` + +#### WAL flush trigger configuration + +When you create a trigger, you associate it with a database and provide configuration specific to the trigger type. + +For a WAL flush trigger you specify a `trigger-spec`, which determines when the plugin is triggered (and what table data it receives): + +- `all-tables`: triggers the plugin on every write to the associated database +- `table:` triggers the plugin function only for writes to the specified table. + +The following example creates a WAL flush trigger for the `gh:examples/wal_plugin/wal_plugin.py` plugin. + +```bash +influxdb3 create trigger \ + --trigger-spec "table:TABLE_NAME" \ + --plugin-filename "gh:examples/wal_plugin/wal_plugin.py" \ + --database DATABASE_NAME TRIGGER_NAME +``` + +The `gh:` prefix lets you fetch a plugin file directly from the [influxdata/influxdb3_plugins](https://github.com/influxdata/influxdb3_plugins) repository in GitHub. +Without the prefix, the server looks for the file inside of the plugins directory. + +To provide additional configuration to your plugin, pass a list of key-value pairs in the `--trigger-arguments` option and, in your plugin, use the `args` parameter to receive the arguments. +For more information about trigger arguments, see the CLI help: + +```bash +influxdb3 create trigger help +``` + +### Schedule trigger + +Schedule plugins run on a schedule specified in cron syntax. The plugin receives the local API, the time of the trigger, and any arguments passed in the trigger definition. Here's an example of a simple schedule plugin: + +```python +# see if a table has been written to in the last 5 minutes +def process_scheduled_call(influxdb3_local, time, args=None): + if args and "table_name" in args: + table_name = args["table_name"] + result = influxdb3_local.query(f"SELECT * FROM {table_name} WHERE time > now() - 'interval 5m'") + # write an error log if the result is empty + if not result: + influxdb3_local.error(f"No data in {table_name} in the last 5 minutes") + else: + influxdb3_local.error("No table_name provided for schedule plugin") +``` + +#### Schedule trigger configuration + +Schedule plugins are set with a `trigger-spec` of `schedule:` or `every:`. The `args` parameter can be used to pass configuration to the plugin. For example, if we wanted to use the system-metrics example from the Github repo and have it collect every 10 seconds we could use the following trigger definition: + +```bash +influxdb3 create trigger \ + --trigger-spec "every:10s" \ + --plugin-filename "gh:examples/schedule/system_metrics/system_metrics.py" \ + --database mydb system-metrics +``` + +### On Request trigger + +On Request plugins are triggered by a request to a custom HTTP API endpoint. +The plugin receives the shared API, query parameters `Dict[str, str]`, request headers `Dict[str, str]`, the request body (as bytes), and any arguments passed in the trigger definition. +On Request plugin responses follow conventions for [Flask responses](https://flask.palletsprojects.com/en/stable/quickstart/#about-responses). + +#### Example: On Request plugin + +```python +import json + +def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None): + for k, v in query_parameters.items(): + influxdb3_local.info(f"query_parameters: {k}={v}") + for k, v in request_headers.items(): + influxdb3_local.info(f"request_headers: {k}={v}") + + request_data = json.loads(request_body) + + influxdb3_local.info("parsed JSON request body:", request_data) + + # write the data to the database + line = LineBuilder("request_data").tag("tag1", "tag1_value").int64_field("field1", 1) + # get a string of the line to return as the body + line_str = line.build() + + influxdb3_local.write(line) + + return {"status": "ok", "line": line_str} +``` + +#### On Request trigger configuration + +To create a trigger for an On Request plugin, specify the `request:` trigger-spec. + +For example, the following command creates an HTTP API `/api/v3/engine/my-plugin` endpoint for the plugin file: + +```bash +influxdb3 create trigger \ + --trigger-spec "request:my-plugin" \ + --plugin-filename "examples/my-on-request.py" \ + --database mydb my-plugin +``` + +To run the plugin, you send an HTTP request to `/api/v3/engine/my-plugin`. + +Because all On Request plugins for a server share the same `/api/v3/engine/` base URL, +the trigger-spec you define must be unique across all plugins configured for a server, +regardless of which database they are associated with. diff --git a/content/shared/v3-enterprise-get-started/_index.md b/content/shared/v3-enterprise-get-started/_index.md index 9a68ddf7f..8be1bb216 100644 --- a/content/shared/v3-enterprise-get-started/_index.md +++ b/content/shared/v3-enterprise-get-started/_index.md @@ -42,7 +42,6 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following * [Last values cache](#last-values-cache) * [Distinct values cache](#distinct-values-cache) * [Python plugins and the processing engine](#python-plugins-and-the-processing-engine) -* [Diskless architecture](#diskless-architecture) * [Multi-server setups](#multi-server-setup) ### Install and startup @@ -53,12 +52,13 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following {{% tabs %}} [Linux or macOS](#linux-or-macos) [Windows](#windows) -[Docker (x86)](#docker-x86) +[Docker](#docker) {{% /tabs %}} {{% tab-content %}} To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html): + ```bash curl -O https://www.influxdata.com/d/install_influxdb3.sh \ && sh install_influxdb3.sh enterprise @@ -69,15 +69,9 @@ Or, download and install [build artifacts](/influxdb3/enterprise/install/#downlo - [Linux | x86_64 | GNU](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-gnu.tar.gz.sha256) -- [Linux | x86_64 | MUSL](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_x86_64-unknown-linux-musl.tar.gz.sha256) - [Linux | ARM64 | GNU](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-gnu.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-gnu.tar.gz.sha256) -- [Linux | ARM64 | MUSL](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-musl.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-unknown-linux-musl.tar.gz.sha256) - [macOS | ARM64](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-apple-darwin.tar.gz) • [sha256](https://dl.influxdata.com/influxdb/snapshots/influxdb3-enterprise_aarch64-apple-darwin.tar.gz.sha256) @@ -98,8 +92,12 @@ Download and install the {{% product-name %}} [Windows (x86) binary](https://dl. {{% tab-content %}} -Pull the [`influxdb3-enterprise` image](https://quay.io/repository/influxdb/influxdb3-enterprise?tab=tags&tag=latest): +The [`influxdb3-enterprise` image](https://quay.io/repository/influxdb/influxdb3-enterprise?tab=tags&tag=latest) +is available for x86_64 (AMD64) and ARM64 architectures. +Pull the image: + + ```bash docker pull quay.io/influxdb/influxdb3-enterprise:latest ``` @@ -120,6 +118,7 @@ influxdb3 --version If your system doesn't locate `influxdb3`, then `source` the configuration file (for example, .bashrc, .zshrc) for your shell--for example: + ```zsh source ~/.zshrc ``` @@ -129,19 +128,30 @@ source ~/.zshrc To start your InfluxDB instance, use the `influxdb3 serve` command and provide the following: -- `--object-store`: Specifies the type of Object store to use. InfluxDB supports the following: local file system (`file`), `memory`, S3 (and compatible services like Ceph or Minio) (`s3`), Google Cloud Storage (`google`), and Azure Blob Storage (`azure`). -- `--node-id`: A string identifier that determines the server's storage path within the configured storage location, and, in a multi-node setup, is used to reference the node +- `--object-store`: Specifies the type of Object store to use. + InfluxDB supports the following: local file system (`file`), `memory`, + S3 (and compatible services like Ceph or Minio) (`s3`), + Google Cloud Storage (`google`), and Azure Blob Storage (`azure`). +- `--node-id`: A string identifier that determines the server's storage path + within the configured storage location, and, in a multi-node setup, is used to reference the node. + +> [!Note] +> #### Diskless architecture +> +> InfluxDB 3 supports a diskless architecture that can operate with object +> storage alone, eliminating the need for locally attached disks. +> {{% product-name %}} can also work with only local disk storage when needed. The following examples show how to start InfluxDB 3 with different object store configurations: ```bash -# MEMORY +# Memory object store # Stores data in RAM; doesn't persist data influxdb3 serve --node-id=local01 --object-store=memory ``` ```bash -# FILESYSTEM +# Filesystem object store # Provide the filesystem directory influxdb3 serve \ --node-id=local01 \ @@ -154,8 +164,14 @@ To run the [Docker image](/influxdb3/enterprise/install/#docker-image) and persi - `-v /path/on/host:/path/in/container`: Mounts a directory from your filesystem to the container - `--object-store file --data-dir /path/in/container`: Uses the mount for server storage +> [!Note] +> +> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3` server default for HTTP connections. +> To map the exposed port to a different port when running a container, see the Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/). + + ```bash -# FILESYSTEM USING DOCKER +# Filesystem object store with Docker # Create a mount # Provide the mount path docker run -it \ @@ -167,15 +183,29 @@ docker run -it \ ``` ```bash -# S3 (defaults to us-east-1 for region) +# S3 object store (default is the us-east-1 region) # Specify the Object store type and associated options -influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY] + +```bash +influxdb3 serve \ + --node-id=local01 \ + --object-store=s3 \ + --bucket=BUCKET \ + --aws-access-key=AWS_ACCESS_KEY \ + --aws-secret-access-key=AWS_SECRET_ACCESS_KEY ``` ```bash -# Minio/Open Source Object Store (Uses the AWS S3 API, with additional parameters) -# Specify the Object store type and associated options -influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY] --aws-endpoint=[ENDPOINT] --aws-allow-http +# Minio or other open source object store +# (using the AWS S3 API with additional parameters) +# Specify the object store type and associated options + +```bash +influxdb3 serve --node-id=local01 --object-store=s3 --bucket=BUCKET \ + --aws-access-key=AWS_ACCESS_KEY \ + --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \ + --aws-endpoint=ENDPOINT \ + --aws-allow-http ``` _For more information about server options, run `influxdb3 serve --help`._ @@ -187,10 +217,12 @@ _For more information about server options, run `influxdb3 serve --help`._ > Use the `docker kill` command to stop the container: > > 1. Enter the following command to find the container ID: +> > ```bash > docker ps -a > ``` > 2. Enter the command to stop the container: +> > ```bash > docker kill > ``` @@ -217,22 +249,43 @@ InfluxDB is a schema-on-write database. You can start writing data and InfluxDB After a schema is created, InfluxDB validates future write requests against it before accepting the data. Subsequent requests can add new fields on-the-fly, but can't add new tags. -The database has three write API endpoints that respond to HTTP `POST` requests: +The database provides three write API endpoints that respond to HTTP `POST` requests: -* `/write?db=mydb&precision=ns` -* `/api/v2/write?bucket=mydb&precision=ns` -* `/api/v3/write_lp?db=mydb&precision=nanosecond&accept_partial=true` +#### /api/v3/write_lp endpoint -{{% product-name %}} provides the `/write` and `/api/v2/write` endpoints for backward compatibility with clients that can write data to previous versions of InfluxDB. -However, these APIs differ from the APIs in the previous versions in the following ways: +{{% product-name %}} adds the `/api/v3/write_lp` endpoint. + +{{}} + +This endpoint accepts the same line protocol syntax as previous versions, +and supports the `?accept_partial=` parameter, which +lets you accept or reject partial writes (default is `true`). + +#### /api/v2/write InfluxDB v2 compatibility endpoint + +Provides backwards compatibility with clients that can write data to InfluxDB OSS v2.x and Cloud 2 (TSM). +{{}} + +#### /write InfluxDB v1 compatibility endpoint + +Provides backwards compatibility for clients that can write data to InfluxDB v1.x +{{}} + +Keep in mind that these compatibility APIs differ from the v1 and v2 APIs in previous versions in the following ways: - Tags in a table (measurement) are _immutable_ - A tag and a field can't have the same name within a table. -{{% product-name %}} adds the `/api/v3/write_lp` endpoint, which accepts the same line protocol syntax as previous versions, and supports an `?accept_partial=` parameter, which -lets you accept or reject partial writes (default is `true`). +#### Write line protocol -The following code block is an example of [line protocol](/influxdb3/core/reference/syntax/line-protocol/), which shows the table name followed by tags, which are an ordered, comma-separated list of key/value pairs where the values are strings, followed by a comma-separated list of key/value pairs that are the fields, and ending with an optional timestamp. The timestamp by default is a nanosecond epoch, but you can specify a different precision through the `precision` query parameter. +The following code block is an example of time series data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) syntax: + +- `cpu`: the table name. +- `host`, `region`, `applications`: the tags. A tag set is an ordered, comma-separated list of key/value pairs where the values are strings. +- `val`, `usage_percent`, `status`: the fields. A field set is a comma-separated list of key/value pairs. +- timestamp: If you don't specify a timestamp, InfluxData uses the time when data is written. + The default precision is a nanosecond epoch. + To specify a different precision, pass the `precision` query parameter. ``` cpu,host=Alpha,region=us-west,application=webserver val=1i,usage_percent=20.5,status="OK" @@ -243,12 +296,16 @@ cpu,host=Bravo,region=us-central,application=database val=5i,usage_percent=80.5, cpu,host=Alpha,region=us-west,application=webserver val=6i,usage_percent=25.3,status="Warn" ``` +##### Example: write data using the influxdb3 CLI + If you save the preceding line protocol to a file (for example, `server_data`), then you can use the `influxdb3` CLI to write the data--for example: ```bash influxdb3 write --database=mydb --file=server_data ``` +##### Example: write data using the /api/v3 HTTP API + The following examples show how to write data using `curl` and the `/api/3/write_lp` HTTP endpoint. To show the difference between accepting and rejecting partial writes, line `2` in the example contains a `string` value for a `float` field (`temp=hi`). @@ -276,9 +333,9 @@ With `accept_partial=true`: ``` Line `1` is written and queryable. -The response is an HTTP error (`400`) status, and the response body contains `partial write of line protocol occurred` and details about the problem line. +The response is an HTTP error (`400`) status, and the response body contains the error message `partial write of line protocol occurred` with details about the problem line. -##### Parsing failed for write_lp endpoint +###### Parsing failed for write_lp endpoint With `accept_partial=false`: @@ -309,19 +366,51 @@ The response is the following: InfluxDB rejects all points in the batch. The response is an HTTP error (`400`) status, and the response body contains `parsing failed for write_lp endpoint` and details about the problem line. -##### Data durability +### Data flow -When you write data to InfluxDB, InfluxDB ingests the data and writes it to WAL files, created once per second, and to an in-memory queryable buffer. -Later, InfluxDB snapshots the WAL and persists the data into object storage as Parquet files. -For more information, see [diskless architecture](#diskless-architecture). +The figure below shows how written data flows through the database. -> [!Note] -> ##### Write requests return after WAL flush -> -> Because InfluxDB sends a write response after the WAL file has been flushed to the configured object store (default is every second), individual write requests might not complete quickly, but you can make many concurrent requests to achieve higher total throughput. -> Future enhancements will include an API parameter that lets requests return without waiting for the WAL flush. +{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}} -#### Create a database or table +1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If [`no_sync=true`](#no-sync-write-option), the server sends a response to acknowledge the write. +2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If [`no_sync=false`](#no-sync-write-option) (default), the server sends a response to acknowledge the write. +3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. +4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. +5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + +#### Write responses + +By default, InfluxDB acknowledges writes after flushing the WAL file to the Object store (occurring every second). +For high write throughput, you can send multiple concurrent write requests. + +#### Use no_sync for immediate write responses + +To reduce the latency of writes, use the `no_sync` write option, which acknowledges writes _before_ WAL persistence completes. +When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the Object store. + +Using `no_sync=true` is best when prioritizing high-throughput writes over absolute durability. + +- Default behavior (`no_sync=false`): Waits for data to be written to the Object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response. +- With `no_sync=true`: Reduces write latency, but increases the risk of data loss in case of a crash before WAL persistence. + +##### Immediate write using the HTTP API + +The `no_sync` parameter controls when writes are acknowledged--for example: + +```sh +curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&no_sync=true" \ + --data-raw "home,room=Sunroom temp=96" +``` + +##### Immediate write using the influxdb3 CLI + +The `no_sync` CLI option controls when writes are acknowledged--for example: + +```sh +influxdb3 write --bucket=mydb --org=my_org --token=my-token --no-sync +``` + +### Create a database or table To create a database without writing data, use the `create` subcommand--for example: @@ -335,7 +424,7 @@ To learn more about a subcommand, use the `-h, --help` flag: influxdb3 create -h ``` -### Query the database +### Query data InfluxDB 3 now supports native SQL for querying, in addition to InfluxQL, an SQL-like language customized for time series queries. @@ -393,7 +482,7 @@ $ influxdb3 query --database=servers "SELECT DISTINCT usage_percent, time FROM c ### Querying using the CLI for InfluxQL -[InfluxQL](/influxdb3/enterprise/reference/influxql/) is an SQL-like language developed by InfluxData with specific features tailored for leveraging and working with InfluxDB. It’s compatible with all versions of InfluxDB, making it a good choice for interoperability across different InfluxDB installations. +[InfluxQL](/influxdb3/version/reference/influxql/) is an SQL-like language developed by InfluxData with specific features tailored for leveraging and working with InfluxDB. It’s compatible with all versions of InfluxDB, making it a good choice for interoperability across different InfluxDB installations. To query using InfluxQL, enter the `influxdb3 query` subcommand and specify `influxql` in the language option--for example: @@ -492,7 +581,7 @@ You can use the `influxdb3` CLI to create a last value cache. Usage: $ influxdb3 create last_cache [OPTIONS] -d -t
[CACHE_NAME] Options: - -h, --host URL of the running InfluxDB 3 Enterprise server [env: INFLUXDB3_HOST_URL=] + -h, --host URL of the running {{% product-name %}} server [env: INFLUXDB3_HOST_URL=] -d, --database The database to run the query against [env: INFLUXDB3_DATABASE_NAME=] --token The token for authentication [env: INFLUXDB3_AUTH_TOKEN=] -t, --table
The table for which the cache is created @@ -560,50 +649,31 @@ influxdb3 create distinct_cache -h ### Python plugins and the Processing engine -> [!Important] -> #### Processing engine only works with Docker -> -> The Processing engine is currently supported only in Docker x86 environments. Non-Docker support is coming soon. The engine, API, and developer experience are actively evolving and may change. Join our [Discord](https://discord.gg/9zaNCW2PRT) for updates and feedback. - The InfluxDB 3 Processing engine is an embedded Python VM for running code inside the database to process and transform data. -To use the Processing engine, you create [plugins](#plugin) and [triggers](#trigger). +To activate the Processing engine, pass the `--plugin-dir ` option when starting the {{% product-name %}} server. +`PLUGIN_DIR` is your filesystem location for storing [plugin](#plugin) files for the Processing engine to run. #### Plugin -A plugin is a Python function that has a signature compatible with one of the [trigger types](#trigger-types). -The [`influxdb3 create plugin`](/influxdb3/enterprise/reference/cli/influxdb3/create/plugin/) command loads a Python plugin file into the server. +A plugin is a Python function that has a signature compatible with a Processing engine [trigger](#trigger). #### Trigger -After you load a plugin into an InfluxDB 3 server, you can create one or more -triggers associated with the plugin. -When you create a trigger, you specify a plugin, a database, optional runtime arguments, -and a trigger-spec, which specifies `all_tables` or `table:my_table_name` (for filtering data sent to the plugin). -When you _enable_ a trigger, the server executes the plugin code according to the -plugin signature. +When you create a trigger, you specify a [plugin](#plugin), a database, optional arguments, +and a _trigger-spec_, which defines when the plugin is executed and what data it receives. ##### Trigger types -InfluxDB 3 provides the following types of triggers: +InfluxDB 3 provides the following types of triggers, each with specific trigger-specs: -- **On WAL flush**: Sends the batch of write data to a plugin once a second (configurable). - -> [!Note] -> Currently, only the **WAL flush** trigger is supported, but more are on the way: -> -> - **On Snapshot**: Sends metadata to a plugin for further processing against the Parquet data or to send the information elsewhere (for example, to an Iceberg Catalog). _Not yet available._ -> - **On Schedule**: Executes a plugin on a user-configured schedule, useful for data collection and deadman monitoring. _Not yet available._ -> - **On Request**: Binds a plugin to an HTTP endpoint at `/api/v3/plugins/`. _Not yet available._ -> The plugin receives the HTTP request headers and content, and can then parse, process, and send the data into the database or to third-party services. +- **On WAL flush**: Sends a batch of written data (for a specific table or all tables) to a plugin (by default, every second). +- **On Schedule**: Executes a plugin on a user-configured schedule (using a crontab or a duration); useful for data collection and deadman monitoring. +- **On Request**: Binds a plugin to a custom HTTP API endpoint at `/api/v3/engine/`. + The plugin receives the HTTP request headers and content, and can then parse, process, and send the data into the database or to third-party services. ### Test, create, and trigger plugin code -> [!Important] -> #### Processing engine only works with Docker -> -> The Processing engine is currently supported only in Docker x86 environments. Non-Docker support is coming soon. The engine, API, and developer experience are actively evolving and may change. Join our [Discord](https://discord.gg/9zaNCW2PRT) for updates and feedback. - ##### Example: Python plugin for WAL flush ```python @@ -689,10 +759,9 @@ Test your InfluxDB 3 plugin safely without affecting written data. During a plug To test a plugin, do the following: 1. Create a _plugin directory_--for example, `/path/to/.influxdb/plugins` -2. Make the plugin directory available to the Docker container (for example, using a bind mount) -3. Run the Docker command to [start the server](#start-influxdb) and include the `--plugin-dir` option with your plugin directory path. -4. Save the [preceding example code](#example-python-plugin) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. -5. To run the test, enter the following command with the following options: +2. [Start the InfluxDB server](#start-influxdb) and include the `--plugin-dir ` option. +3. Save the [preceding example code](#example-python-plugin) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. +4. To run the test, enter the following command with the following options: - `--lp` or `--file`: The line protocol to test - Optional: `--input-arguments`: A comma-delimited list of `=` arguments for your plugin code @@ -710,7 +779,7 @@ You can quickly see how the plugin behaves, what data it would have written to t You can then edit your Python code in the plugins directory, and rerun the test. The server reloads the file for every request to the `test` API. -For more information, see [`influxdb3 test wal_plugin`](/influxdb3/enterprise/reference/cli/influxdb3/test/wal_plugin/) or run `influxdb3 test wal_plugin -h`. +For more information, see [`influxdb3 test wal_plugin`](/influxdb3/version/reference/cli/influxdb3/test/wal_plugin/) or run `influxdb3 test wal_plugin -h`. With the plugin code inside the server plugin directory, and a successful test, you're ready to create a plugin and a trigger to run on the server. @@ -733,14 +802,6 @@ influxdb3 test wal_plugin \ test.py ``` -```bash -# Create a plugin to run -influxdb3 create plugin \ - -d mydb \ - --code-filename="/path/to/.influxdb3/plugins/test.py" \ - test_plugin -``` - ```bash # Create a trigger that runs the plugin influxdb3 create trigger \ @@ -758,23 +819,7 @@ enable the trigger and have it run the plugin as you write data: influxdb3 enable trigger --database mydb trigger1 ``` -For more information, see the following: - -- [`influxdb3 test wal_plugin`](/influxdb3/enterprise/reference/cli/influxdb3/test/wal_plugin/) -- [`influxdb3 create plugin`](/influxdb3/enterprise/reference/cli/influxdb3/create/plugin/) -- [`influxdb3 create trigger`](/influxdb3/enterprise/reference/cli/influxdb3/create/trigger/) - -### Diskless architecture - -InfluxDB 3 is able to operate using only object storage with no locally attached disk. While it can use only a disk with no dependencies, the ability to operate without one is a new capability with this release. The figure below illustrates the write path for data landing in the database. - -{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}} - -As write requests come in to the server, they are parsed, validated, and put into an in-memory WAL buffer. This buffer is flushed every second by default (can be changed through configuration), which will create a WAL file. Once the data is flushed to disk, it is put into a queryable in-memory buffer and then a response is sent back to the client that the write was successful. That data will now show up in queries to the server. - -InfluxDB periodically snapshots the WAL to persist the oldest data in the queryable buffer, allowing the server to remove old WAL files. By default, the server will keep up to 900 WAL files buffered up (15 minutes of data) and attempt to persist the oldest 10 minutes, keeping the most recent 5 minutes around. - -When the data is persisted out of the queryable buffer it is put into the configured object store as Parquet files. Those files are also put into an in-memory cache so that queries against the most recently persisted data do not have to go to object storage. +For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/). ### Multi-server setup @@ -972,21 +1017,19 @@ For a very robust and effective setup for managing time-series data, you can run Congratulations, you have a robust setup to workload isolation using {{% product-name %}}. -### Writing and Querying for Multi-Node Setups +### Writing and querying for multi-node setups -If you’re running {{% product-name %}} in a single-instance setup, writing and querying is the same as for {{% product-name %}}. You can use the default port `8181` for any write or query, without changing any of the commands. > [!Note] > #### Specify hosts for writes and queries > -> To benefit from this multi-node, isolated architecture specify hosts: +> To benefit from this multi-node, isolated architecture, specify hosts: > -> - In write requests, specify a host designated for _write-only_ -> - In query requests, specify a host designated for _read-only +> - In write requests, specify a host that you have designated as _write-only_. +> - In query requests, specify a host that you have designated as _read-only_. > -> When running multiple local instances for testing, or separate nodes in production, specifying the host ensures writes and queries are routed to the correct instance. -> If you run locally and serve an instance on 8181 (the default port), then you don’t need to specify the host. +> When running multiple local instances for testing or separate nodes in production, specifying the host ensures writes and queries are routed to the correct instance. ``` # Example variables on a query diff --git a/content/telegraf/v1/configuration.md b/content/telegraf/v1/configuration.md index 3485c8778..e338f3d8e 100644 --- a/content/telegraf/v1/configuration.md +++ b/content/telegraf/v1/configuration.md @@ -55,8 +55,8 @@ The generated file contains settings for all available plugins--some are enabled To generate a configuration file that contains settings for only specific plugins, use the `--input-filter` and `--output-filter` options to -specify [input plugins](/telegraf/v1/plugins/input_plugins) -and [output plugins](/telegraf/v1/plugins/output_plugins/). +specify [input plugins](/telegraf/v1/configure_plugins/input_plugins/) +and [output plugins](/telegraf/v1/configure_plugins/output_plugins/). Use a colon (`:`) to separate plugin names. #### Syntax diff --git a/content/telegraf/v1/install.md b/content/telegraf/v1/install.md index b812ec401..31a30cc6d 100644 --- a/content/telegraf/v1/install.md +++ b/content/telegraf/v1/install.md @@ -584,8 +584,8 @@ telegraf config > telegraf.conf To generate a configuration file that contains settings for only specific plugins, use the `--input-filter` and `--output-filter` options to -specify [input plugins](/telegraf/v1/plugins/input_plugins) -and [output plugins](/telegraf/v1/plugins/output_plugins/)--for example: +specify [input plugins](/telegraf/v1/configure_plugins/input_plugins/) +and [output plugins](/telegraf/v1/configure_plugins/output_plugins/)--for example: {{% code-placeholders "cpu|http|influxdb_v2|file" %}} diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 000000000..6bc148d05 --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,45 @@ +const { defineConfig } = require('cypress'); +const process = require('process'); + +module.exports = defineConfig({ + e2e: { + // Automatically prefix cy.visit() and cy.request() commands with a baseUrl. + baseUrl: 'http://localhost:1313', + defaultCommandTimeout: 10000, + pageLoadTimeout: 30000, + responseTimeout: 30000, + experimentalMemoryManagement: true, + numTestsKeptInMemory: 5, + projectId: 'influxdata-docs', + setupNodeEvents(on, config) { + // implement node event listeners here + on('before:browser:launch', (browser, launchOptions) => { + if (browser.name === 'chrome' && browser.isHeadless) { + // Force Chrome to use a less memory-intensive approach + launchOptions.args.push('--disable-dev-shm-usage'); + launchOptions.args.push('--disable-gpu'); + launchOptions.args.push('--disable-extensions'); + return launchOptions; + } + }); + on('task', { + // Fetch the product list configured in /data/products.yml + getData(filename) { + return new Promise((resolve, reject) => { + const yq = require('js-yaml'); + const fs = require('fs'); + const cwd = process.cwd(); + try { + resolve( + yq.load(fs.readFileSync(`${cwd}/data/${filename}.yml`, 'utf8')) + ); + } catch (e) { + reject(e); + } + }); + }, + }); + return config; + }, + }, +}); diff --git a/cypress/e2e/content/api-reference.cy.js b/cypress/e2e/content/api-reference.cy.js new file mode 100644 index 000000000..ceeaffeff --- /dev/null +++ b/cypress/e2e/content/api-reference.cy.js @@ -0,0 +1,111 @@ +/// +const fakeGoogleTagManager = { + trackingOptIn: () => {}, + trackingOptOut: () => {} +} + +describe('API reference content', () => { + const subjects = [ + '/influxdb/cloud/api/', + '/influxdb/cloud/api/v1/', + '/influxdb/cloud/api/v1-compatibility/', + '/influxdb/cloud/api/v2/', + + '/influxdb/v2/api/', + '/influxdb/v2/api/v1/', + '/influxdb/v2/api/v1-compatibility/', + '/influxdb/v2/api/v2/', + + '/influxdb3/cloud-dedicated/api/', + '/influxdb3/cloud-dedicated/api/management/', + '/influxdb3/cloud-dedicated/api/v1/', + '/influxdb3/cloud-dedicated/api/v1-compatibility/', + '/influxdb3/cloud-dedicated/api/v2/', + + '/influxdb3/cloud-serverless/api/', + '/influxdb3/cloud-serverless/api/v1/', + '/influxdb3/cloud-serverless/api/v1-compatibility/', + '/influxdb3/cloud-serverless/api/v2/', + + '/influxdb3/clustered/api/', + // TODO '/influxdb3/clustered/api/management/', + '/influxdb3/clustered/api/v1/', + '/influxdb3/clustered/api/v1-compatibility/', + '/influxdb3/clustered/api/v2/', + + '/influxdb3/core/api/', + '/influxdb3/enterprise/api/', + ]; + + + subjects.forEach((subject) => { + describe(subject, () => { + beforeEach(() => { + // Intercept and modify the page HTML before it loads + cy.intercept('GET', '**', (req) => { + req.continue((res) => { + if (res.headers['content-type']?.includes('text/html')) { + // Modify the Kapa widget script attributes + // Avoid socket errors from fpjs in tests by disabling fingerprinting + res.body = res.body.replace( + /data-user-analytics-fingerprint-enabled="true"/, + 'data-user-analytics-fingerprint-enabled="false"' + ); + } + }); + }); + cy.visit(subject); + + + window.fcdsc = fakeGoogleTagManager; + cy.stub(window.fcdsc, 'trackingOptIn').as('trackingOptIn'); + cy.stub(window.fcdsc, 'trackingOptOut').as('trackingOptOut'); + }); + it(`has API info`, function () { + cy.get('script[data-user-analytics-fingerprint-enabled=false]').should('have.length', 1); + cy.get('h1').first().should('have.length', 1); + cy.get('[data-role$=description]').should('have.length', 1); + }); + it('links back to the version home page', function () { + cy.get('a.back').contains('Docs') + .should('have.length', 1) + .click(); + // Path should be the first two segments and trailing slash in $subject + cy.location('pathname') + .should('eq', subject.replace(/^(\/[^/]+\/[^/]+\/).*/, '$1')); + cy.get('h1').should('have.length', 1); + }); + it('contains valid internal links', function () { + // The following conditional test isn't the cypress way, but the doc might not have internal links. + cy.get('body').then(($body) => { + if ($body.find('p a[href^="/"]').length === 0) { + cy.log('No internal links found'); + return; + } + cy.get('p a[href^="/"]').as('internal-links'); + cy.get('@internal-links').each(($a) => { + cy.log(`** Testing link ${$a.attr('href')} **`); + // cy.request doesn't show in your browser's Developer Tools + // because the request comes from Node, not from the browser. + cy.request($a.attr('href')).its('status').should('eq', 200); + }); + + }); + }); + it('contains valid external links', function () { + // The following conditional test isn't the cypress way, but the doc might not have external links. + cy.get('body').then(($body) => { + if ($body.find('p a[href^="http"]').length === 0) { + cy.log('No external links found'); + return; + } + cy.get('p a[href^="http"]').as('external-links'); + cy.get('@external-links').each(($a) => { + cy.log(`** Testing link ${$a.attr('href')} **`); + cy.request($a.attr('href')).its('status').should('eq', 200); + }); + }); + }); + }); + }); +}); diff --git a/cypress/e2e/content/article-links.cy.js b/cypress/e2e/content/article-links.cy.js new file mode 100644 index 000000000..917fba033 --- /dev/null +++ b/cypress/e2e/content/article-links.cy.js @@ -0,0 +1,122 @@ +/// + +describe('Article links', () => { + const subjects = Cypress.env('test_subjects').split(','); + // Always use HEAD for downloads to avoid timeouts + const useHeadForDownloads = true; + + // Helper function to identify download links - improved + function isDownloadLink(href) { + // Check for common download file extensions + const downloadExtensions = [ + '.pdf', '.zip', '.tar.gz', '.tgz', '.rar', '.exe', '.dmg', '.pkg', + '.deb', '.rpm', '.xlsx', '.csv', '.doc', '.docx', '.ppt', '.pptx' + ]; + + // Check for download domains or paths + const downloadDomains = [ + 'dl.influxdata.com', + 'downloads.influxdata.com' + ]; + + // Check if URL contains a download extension + const hasDownloadExtension = downloadExtensions.some(ext => + href.toLowerCase().endsWith(ext) + ); + + // Check if URL is from a download domain + const isFromDownloadDomain = downloadDomains.some(domain => + href.toLowerCase().includes(domain) + ); + + // Return true if either condition is met + return hasDownloadExtension || isFromDownloadDomain; + } + + // Helper function to make appropriate request based on link type + function testLink(href) { + if (useHeadForDownloads && isDownloadLink(href)) { + cy.log(`** Testing download link with HEAD: ${href} **`); + cy.request({ + method: 'HEAD', + url: href, + failOnStatusCode: false, + timeout: 10000 // 10 second timeout for download links + }).then(response => { + expect(response.status).to.be.lt(400); + }); + } else { + cy.log(`** Testing link: ${href} **`); + cy.request({ + url: href, + failOnStatusCode: false, + timeout: 30000 // 30 second timeout for regular links + }).then(response => { + expect(response.status).to.be.lt(400); + }); + } + } + + subjects.forEach((subject) => { + it(`contains valid internal links on ${subject}`, function () { + cy.visit(`${subject}`); + + // Test internal links (including anchor links) + cy.get('article a[href^="/"]').each(($a) => { + const href = $a.attr('href'); + testLink(href); + }); + }); + + it(`checks anchor links on ${subject} (with warnings for missing targets)`, function () { + cy.visit(`${subject}`); + + // Track missing anchors for summary + const missingAnchors = []; + + // Process anchor links individually + cy.get('article a[href^="#"]').each(($a) => { + const href = $a.prop('href'); // Use prop() instead of attr() + if (href && href.length > 1) { // Skip empty anchors (#) + // Get just the fragment part + const url = new URL(href); + const anchorId = url.hash.substring(1); // Remove the # character + + if (!anchorId) { + cy.log(`Skipping empty anchor in ${href}`); + return; + } + + // Use DOM to check if the element exists, but don't fail if missing + cy.window().then(win => { + const element = win.document.getElementById(anchorId); + if (element) { + cy.log(`✅ Anchor target exists: #${anchorId}`); + } else { + // Just warn about the missing anchor + cy.log(`⚠️ WARNING: Missing anchor target: #${anchorId}`); + missingAnchors.push(anchorId); + } + }); + } + }).then(() => { + // After checking all anchors, log a summary + if (missingAnchors.length > 0) { + cy.log(`⚠️ Found ${missingAnchors.length} missing anchor targets: ${missingAnchors.join(', ')}`); + } else { + cy.log('✅ All anchor targets are valid'); + } + }); + }); + + it(`contains valid external links on ${subject}`, function () { + cy.visit(`${subject}`); + + // Test external links + cy.get('article a[href^="http"]').each(($a) => { + const href = $a.attr('href'); + testLink(href); + }); + }); + }); +}); \ No newline at end of file diff --git a/cypress/e2e/content/index.cy.js b/cypress/e2e/content/index.cy.js new file mode 100644 index 000000000..84ad1d9a3 --- /dev/null +++ b/cypress/e2e/content/index.cy.js @@ -0,0 +1,39 @@ +/// + +describe('Docs home', function() { + beforeEach(() => cy.visit('/')); + + it('has metadata', function() { + cy.title().should('eq', 'InfluxData Documentation'); + }); + + it('can search with mispellings', function() { + cy.get('.sidebar--search').within(() => { + cy.get('input#algolia-search-input').type('sql uery'); + cy.get('#algolia-autocomplete-listbox-0') + .should('contain', 'Basic query examples') + cy.get('input#algolia-search-input') + .type('{esc}') + cy.get('#algolia-autocomplete-listbox-0') + .should('not.be.visible'); + }); + }); + + it('main heading', function() { + cy.get('h1').should('contain', 'InfluxData Documentation'); + }); + + it('content has links to all products', function() { + cy.task('getData', 'products').then((productData) => { + Object.values(productData).forEach((p) => { + let name = p.altname?.length > p.name.length ? p.altname : p.name; + name = name.replace(/\((.*)\)/, '$1'); + cy.get('.home-content a').filter(`:contains(${name})`).first().click(); + const urlFrag = p.latest.replace(/(v\d+)\.\w+/, '$1'); + cy.url().should('include', urlFrag); + cy.go('back'); + }); + }); + }); +}); + diff --git a/cypress/e2e/topnav.cy.js b/cypress/e2e/topnav.cy.js new file mode 100644 index 000000000..44104c390 --- /dev/null +++ b/cypress/e2e/topnav.cy.js @@ -0,0 +1,40 @@ +describe('global top navigation', function () { + beforeEach(function () { + // Visit the Docs home page + cy.visit('/'); + cy.get('.notification').filter(':visible').find('.close-notification').click({ force: true }); +}); + + describe('theme switcher', function () { + it('switches light to dark', function () { + // Default is light theme + cy.get('body.home').should('have.css', 'background-color', 'rgb(243, 244, 251)'); + cy.get('#theme-switch-dark').click(); + cy.get('body.home').should('have.css', 'background-color', 'rgb(7, 7, 14)'); + cy.get('#theme-switch-light').click(); + cy.get('body.home').should('have.css', 'background-color', 'rgb(243, 244, 251)'); + }); + }); + + describe('product dropdown', function () { + it('has links to all products', function () { + cy.get('#product-dropdown .selected').contains('Select product').click({ force: true }); + cy.task('getData', 'products').then((productData) => { + Object.values(productData).forEach((p) => { + cy.get('#dropdown-items a').should('be.visible'); + let name = p.altname?.length > p.name.length ? p.altname : p.name; + name = name.replace(/\((.*)\)/, '$1'); + cy.get('#dropdown-items a') + .filter(`:contains(${name})`) + .first() + .click(); + const urlFrag = p.latest.replace(/(v\d+)\.\w+/, '$1'); + cy.url().should('include', urlFrag); + // Test that the selected option is for the current product. + // Reopen the dropdown. + cy.get('#product-dropdown .selected').contains(name).click({ force: true }); + }); + }); + }); + }); +}); diff --git a/cypress/support/commands.js b/cypress/support/commands.js new file mode 100644 index 000000000..66ea16ef0 --- /dev/null +++ b/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js new file mode 100644 index 000000000..3eaffffa6 --- /dev/null +++ b/cypress/support/e2e.js @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' \ No newline at end of file diff --git a/cypress/support/map-files-to-urls.mjs b/cypress/support/map-files-to-urls.mjs new file mode 100644 index 000000000..8ded4157f --- /dev/null +++ b/cypress/support/map-files-to-urls.mjs @@ -0,0 +1,79 @@ +#!/usr/bin/env node + +import { execSync } from 'child_process'; +import process from 'process'; + +// Get file paths from command line arguments +const filePaths = process.argv.slice(2); + +// Parse options +const debugMode = process.argv.includes('--debug'); + +// Filter for content files +const contentFiles = filePaths.filter(file => + file.startsWith('content/') && (file.endsWith('.md') || file.endsWith('.html')) +); + +if (contentFiles.length === 0) { + console.log('No content files to check.'); + process.exit(0); +} + +// Map file paths to URL paths +function mapFilePathToUrl(filePath) { + // Remove content/ prefix + let url = filePath.replace(/^content/, ''); + + // Handle _index files (both .html and .md) + url = url.replace(/\/_index\.(html|md)$/, '/'); + + // Handle regular .md files + url = url.replace(/\.md$/, '/'); + + // Handle regular .html files + url = url.replace(/\.html$/, '/'); + + // Ensure URL starts with a slash + if (!url.startsWith('/')) { + url = '/' + url; + } + + return url; +} + +const urls = contentFiles.map(mapFilePathToUrl); +const urlList = urls.join(','); + +console.log(`Testing links in URLs: ${urlList}`); + +// Create environment object with the cypress_test_subjects variable +const envVars = { + ...process.env, + cypress_test_subjects: urlList, + NODE_OPTIONS: '--max-http-header-size=80000 --max-old-space-size=4096' +}; + +// Run Cypress tests with the mapped URLs +try { + // Choose run mode based on debug flag + if (debugMode) { + // For debug mode, set the environment variable and open Cypress + // The user will need to manually select the test file + console.log('Opening Cypress in debug mode.'); + console.log('Please select the "article-links.cy.js" test file when Cypress opens.'); + + execSync('npx cypress open --e2e', { + stdio: 'inherit', + env: envVars + }); + } else { + // For normal mode, run the test automatically + execSync(`npx cypress run --spec "cypress/e2e/content/article-links.cy.js"`, { + stdio: 'inherit', + env: envVars + }); + } +} catch (error) { + console.error('Link check failed'); + process.exit(1); +} \ No newline at end of file diff --git a/layouts/partials/article/alpha.html b/layouts/partials/article/alpha.html index 84f2eb80e..8d58fef3a 100644 --- a/layouts/partials/article/alpha.html +++ b/layouts/partials/article/alpha.html @@ -19,7 +19,7 @@ invite you to join our public channels for updates and to share feedback.

-
+

Alpha expectations and recommendations

@@ -39,7 +39,7 @@
-
+

Join our public channels

diff --git a/layouts/robots.txt b/layouts/robots.txt index 3965018d4..1c6ecf933 100644 --- a/layouts/robots.txt +++ b/layouts/robots.txt @@ -1,5 +1,5 @@ User-agent: * -{{- if eq .Site.Params.environment "staging" }}Disallow: / +{{ if eq .Site.Params.environment "staging" }}Disallow: / {{- else }}{{ range where .Site.Pages ".Params.noindex" true }} Disallow: {{ .RelPermalink }} {{ end -}} diff --git a/layouts/shortcodes/influxdb3/home-sample-link.html b/layouts/shortcodes/influxdb3/home-sample-link.html new file mode 100644 index 000000000..dec324560 --- /dev/null +++ b/layouts/shortcodes/influxdb3/home-sample-link.html @@ -0,0 +1,8 @@ +{{- $productPathData := split .Page.RelPermalink "/" -}} +{{- $product := index $productPathData 2 -}} +{{- $isDistributed := in (slice "cloud-dedicated" "cloud-serverless" "clustered") $product -}} +{{- if $isDistributed -}} +Get started home sensor sample data +{{- else -}} +Home sensor sample data +{{- end -}} diff --git a/layouts/shortcodes/product-key.html b/layouts/shortcodes/product-key.html new file mode 100644 index 000000000..234e245be --- /dev/null +++ b/layouts/shortcodes/product-key.html @@ -0,0 +1,3 @@ +{{- $productPathData := findRE "[^/]+.*?" .Page.RelPermalink -}} +{{- $currentProduct := index $productPathData 1 -}} +{{ $currentProduct }} diff --git a/layouts/shortcodes/sql/window-frame-units..html b/layouts/shortcodes/sql/window-frame-units..html new file mode 100644 index 000000000..e74a0b6bb --- /dev/null +++ b/layouts/shortcodes/sql/window-frame-units..html @@ -0,0 +1,335 @@ +{{ $unit := .Get 0 | default "groups" }} + +{{ if eq $unit "groups" }} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
timecountrycitywind_direction
2025-02-17T00:00:00FranceStrasbourg181
2025-02-17T01:00:00FranceStrasbourg228
2025-02-17T02:00:00FranceStrasbourg289
2025-02-17T00:00:00FranceToulouse24
2025-02-17T01:00:00FranceToulouse210
2025-02-17T02:00:00FranceToulouse206
2025-02-17T00:00:00ItalyBari2
2025-02-17T01:00:00ItalyBari57
2025-02-17T00:00:00ItalyBologna351
2025-02-17T01:00:00ItalyBologna232
2025-02-17T02:00:00ItalyBologna29
+ +{{ else if eq $unit "groups with frame" }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
timecountrycitywind_direction
2025-02-17T00:00:00FranceStrasbourg181
2025-02-17T01:00:00FranceStrasbourg228
2025-02-17T02:00:00FranceStrasbourg289
2025-02-17T00:00:00FranceToulouse24
2025-02-17T01:00:00FranceToulouse210
2025-02-17T02:00:00FranceToulouse206
2025-02-17T00:00:00ItalyBari2
2025-02-17T01:00:00ItalyBari57
2025-02-17T00:00:00ItalyBologna351
2025-02-17T01:00:00ItalyBologna232
2025-02-17T02:00:00ItalyBologna29
+ +{{ else if (eq $unit "range interval") }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
timeroomtemp
2022-01-01T08:00:00Kitchen21.0
2022-01-01T09:00:00Kitchen23.0
2022-01-01T10:00:00Kitchen22.7
2022-01-01T11:00:00Kitchen22.4
2022-01-01T12:00:00Kitchen22.5
2022-01-01T13:00:00Kitchen22.8
2022-01-01T14:00:00Kitchen22.8
2022-01-01T15:00:00Kitchen22.7
+ +{{ else if (eq $unit "range numeric") }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
timecitywind_direction
2025-02-17T13:00:00Rome33
2025-02-17T08:00:00Rome34
2025-02-17T23:00:00Rome49
2025-02-17T17:00:00Rome86
2025-02-17T11:00:00Rome93
2025-02-17T12:00:00Rome115
2025-02-17T10:00:00Rome156
+ +{{ else if (eq $unit "rows") }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
timecitywind_direction
2025-02-17T08:00:00Rome34
2025-02-17T10:00:00Rome156
2025-02-17T11:00:00Rome93
2025-02-17T12:00:00Rome115
2025-02-17T13:00:00Rome33
2025-02-17T17:00:00Rome86
2025-02-17T23:00:00Rome49
+ +{{ end }} \ No newline at end of file diff --git a/lefthook.yml b/lefthook.yml index bc0a0b143..ecf91b6dc 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -50,6 +50,37 @@ pre-commit: run: '.ci/vale/vale.sh --config=content/influxdb/v2/.vale.ini --minAlertLevel=error {staged_files}' + + # Link checking for InfluxDB v2 + v2-links: + tags: test,links,v2 + glob: "content/influxdb/v2/**/*.{md,html}" + run: 'node cypress/support/map-files-to-urls.mjs {staged_files}' + + # Link checking for InfluxDB v3 core + v3-core-links: + tags: test,links,v3 + glob: "content/influxdb3/core/**/*.{md,html}" + run: 'node cypress/support/map-files-to-urls.mjs {staged_files}' + + # Link checking for InfluxDB v3 enterprise + v3-enterprise-links: + tags: test,links,v3 + glob: "content/influxdb3/enterprise/**/*.{md,html}" + run: 'node cypress/support/map-files-to-urls.mjs {staged_files}' + + # Link checking for Cloud products + cloud-links: + tags: test,links,cloud + glob: "content/influxdb/{cloud,cloud-dedicated,cloud-serverless}/**/*.{md,html}" + run: 'node cypress/support/map-files-to-urls.mjs {staged_files}' + + # Link checking for Telegraf + telegraf-links: + tags: test,links + glob: "content/telegraf/**/*.{md,html}" + run: 'node cypress/support/map-files-to-urls.mjs {staged_files}' + cloud-pytest: glob: content/influxdb/cloud/**/*.md tags: test,codeblocks,v2 diff --git a/package.json b/package.json index 6fbfea212..ad433c21a 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,15 @@ "version": "1.0.0", "description": "InfluxDB documentation", "license": "MIT", + "resolutions": { + "serialize-javascript": "^6.0.2" + }, "devDependencies": { "@eslint/js": "^9.18.0", "@evilmartians/lefthook": "^1.7.1", "@vvago/vale": "^3.4.2", "autoprefixer": ">=10.2.5", + "cypress": "^14.0.1", "eslint": "^9.18.0", "globals": "^15.14.0", "hugo-extended": ">=0.101.0", @@ -23,10 +27,16 @@ "jquery": "^3.7.1", "js-cookie": "^3.0.5", "js-yaml": "^4.1.0", + "lefthook": "^1.10.10", + "markdown-link": "^0.1.1", "mermaid": "^11.4.1", "vanillajs-datepicker": "^1.3.4" }, "scripts": { + "e2e:chrome": "npx cypress run --browser chrome", + "e2e:o": "npx cypress open", + "e2e:o:links": "node cypress/support/map-files-to-urls.mjs content/influxdb3/core/get-started/_index.md --debug", + "e2e:api-docs": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/api/,http://localhost:1313/influxdb3/enterprise/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/management/,http://localhost:1313/influxdb3/cloud-dedicated/api/management/\"; npx cypress run --spec cypress/e2e/article-links.cy.js", "lint": "LEFTHOOK_EXCLUDE=test lefthook run pre-commit && lefthook run pre-push", "pre-commit": "lefthook run pre-commit", "test-content": "docker compose --profile test up" diff --git a/test/scripts/prepare-content.sh b/test/scripts/prepare-content.sh index ae2ead0d8..d58eecc70 100644 --- a/test/scripts/prepare-content.sh +++ b/test/scripts/prepare-content.sh @@ -98,6 +98,8 @@ function substitute_placeholders { s|NUMBER_OF_DAYS|365|g; s|@path/to/line-protocol.txt|data/home-sensor-data.lp|g; s|/path/to/custom/assets-dir|/app/custom-assets|g; + s|/path/to/TEMPLATE_FILE.yml|/root/influxdb-templates/TEMPLATE_FILE.yml|g; + s|/path/to/TEMPLATE_FILE.json|/root/influxdb-templates/TEMPLATE_FILE.json|g; ' $file # v2-specific replacements. diff --git a/test/scripts/run-tests.sh b/test/scripts/run-tests.sh index 7f0588f98..92cef6f49 100644 --- a/test/scripts/run-tests.sh +++ b/test/scripts/run-tests.sh @@ -51,6 +51,7 @@ setup if [[ $runner == "pytest" ]]; then pytest \ + -ra \ -s \ --codeblocks \ --suppress-no-test-exit-code \ diff --git a/yarn.lock b/yarn.lock index 3e50f44ca..055ff98d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,18 @@ # yarn lockfile v1 -"@antfu/install-pkg@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1" - integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== +"@antfu/install-pkg@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-1.0.0.tgz#2912a150fc8b35ec912f583f90074ee98f64d66a" + integrity sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw== dependencies: - package-manager-detector "^0.2.0" - tinyexec "^0.3.0" + package-manager-detector "^0.2.8" + tinyexec "^0.3.2" -"@antfu/utils@^0.7.10": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== +"@antfu/utils@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-8.1.1.tgz#95b1947d292a9a2efffba2081796dcaa05ecedfb" + integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ== "@babel/code-frame@^7.0.0": version "7.26.2" @@ -29,7 +29,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== -"@braintree/sanitize-url@^7.0.1": +"@braintree/sanitize-url@^7.0.4": version "7.1.1" resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz#15e19737d946559289b915e5dad3b4c28407735e" integrity sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw== @@ -66,14 +66,51 @@ resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.0.3.tgz#e39999307b102cff3645ec4f5b3665f5297a2224" integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ== +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + "@colors/colors@1.6.0", "@colors/colors@^1.6.0": version "1.6.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== +"@cypress/request@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815" + integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~4.0.0" + http-signature "~1.4.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + performance-now "^2.1.0" + qs "6.14.0" + safe-buffer "^5.1.2" + tough-cookie "^5.0.0" + tunnel-agent "^0.6.0" + uuid "^8.3.2" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + "@dabh/diagnostics@^2.0.2": version "2.0.3" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== dependencies: colorspace "1.1.x" @@ -81,9 +118,9 @@ kuler "^2.0.0" "@eslint-community/eslint-utils@^4.2.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz#b0fc7e06d0c94f801537fd4237edc2706d3b8e4c" + integrity sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w== dependencies: eslint-visitor-keys "^3.4.3" @@ -92,26 +129,31 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/config-array@^0.19.0": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" - integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== +"@eslint/config-array@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa" + integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w== dependencies: - "@eslint/object-schema" "^2.1.5" + "@eslint/object-schema" "^2.1.6" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/core@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.10.0.tgz#23727063c21b335f752dbb3a16450f6f9cbc9091" - integrity sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw== +"@eslint/config-helpers@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.1.0.tgz#62f1b7821e9d9ced1b3f512c7ea731825765d1cc" + integrity sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA== + +"@eslint/core@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.12.0.tgz#5f960c3d57728be9f6c65bd84aa6aa613078798e" + integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" - integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== +"@eslint/eslintrc@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz#96a558f45842989cca7ea1ecd785ad5491193846" + integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -123,28 +165,28 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.18.0", "@eslint/js@^9.18.0": - version "9.18.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.18.0.tgz#3356f85d18ed3627ab107790b53caf7e1e3d1e84" - integrity sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA== +"@eslint/js@9.22.0", "@eslint/js@^9.18.0": + version "9.22.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.22.0.tgz#4ff53649ded7cbce90b444b494c234137fa1aa3d" + integrity sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ== -"@eslint/object-schema@^2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" - integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== -"@eslint/plugin-kit@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz#ee07372035539e7847ef834e3f5e7b79f09e3a81" - integrity sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A== +"@eslint/plugin-kit@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz#9901d52c136fb8f375906a73dcc382646c3b6a27" + integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g== dependencies: - "@eslint/core" "^0.10.0" + "@eslint/core" "^0.12.0" levn "^0.4.1" "@evilmartians/lefthook@^1.7.1": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.8.5.tgz#ce4805e7a67374d953946ea93a666939019123e9" - integrity sha512-TuAL6W+bj2DqYxqm5JnFi3s7RnjpU/IUxxHFZWUHNytZ+HDQfkceogo+1DlSBFXFva2V21CSaDkeWJJHOmmECw== + version "1.11.3" + resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.11.3.tgz#95c654b1aeac812efb34cda3d34f38dc3c9c3b25" + integrity sha512-ic3gCgCnm7XQCxGLsnLXU+33J86iFuC5r4JYSWrMXo0rTjGT6EqKKpSDuA0r/1F14VZmdgmvRUTXTBOvXA2UXA== "@humanfs/core@^0.19.1": version "0.19.1" @@ -169,33 +211,33 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@humanwhocodes/retry@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" - integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== +"@humanwhocodes/retry@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161" + integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ== "@iconify/types@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== -"@iconify/utils@^2.1.32": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.2.1.tgz#635b9bd8fd3e5e53742471bc0b5291f1570dda41" - integrity sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA== +"@iconify/utils@^2.1.33": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.3.0.tgz#1bbbf8c477ebe9a7cacaea78b1b7e8937f9cbfba" + integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA== dependencies: - "@antfu/install-pkg" "^0.4.1" - "@antfu/utils" "^0.7.10" + "@antfu/install-pkg" "^1.0.0" + "@antfu/utils" "^8.1.0" "@iconify/types" "^2.0.0" debug "^4.4.0" - globals "^15.13.0" + globals "^15.14.0" kolorist "^1.8.0" - local-pkg "^0.5.1" - mlly "^1.7.3" + local-pkg "^1.0.0" + mlly "^1.7.4" "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -212,45 +254,19 @@ dependencies: langium "3.0.0" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@sindresorhus/is@^5.2.0": version "5.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@sindresorhus/merge-streams@^2.1.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz" - integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== - "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: defer-to-connect "^2.0.1" @@ -356,9 +372,9 @@ "@types/d3-color" "*" "@types/d3-path@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" - integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" + integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== "@types/d3-polygon@*": version "3.0.2" @@ -381,9 +397,9 @@ integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== "@types/d3-scale@*": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" - integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" + integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== dependencies: "@types/d3-time" "*" @@ -477,7 +493,7 @@ "@types/http-cache-semantics@^4.0.2": version "4.0.4" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/json-schema@^7.0.15": @@ -485,11 +501,28 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/node@*": + version "22.13.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4" + integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw== + dependencies: + undici-types "~6.20.0" + "@types/normalize-package-data@^2.4.1": version "2.4.4" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== +"@types/sinonjs__fake-timers@8.1.1": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" + integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== + +"@types/sizzle@^2.3.2": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" + integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== + "@types/triple-beam@^1.3.2": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" @@ -500,32 +533,40 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + "@vvago/vale@^3.4.2": - version "3.9.1" - resolved "https://registry.yarnpkg.com/@vvago/vale/-/vale-3.9.1.tgz#8b34b30413ad087034fe171f6d8a21dc64a69bbe" - integrity sha512-EEit9vmdArdr+YE3+dnedX/KPecPV1spcwjRlsYH5FugREVkjyvx+TCwcxVlddJ1/tWS3vQ1DYWZBUZ8Hlikpg== + version "3.9.6" + resolved "https://registry.yarnpkg.com/@vvago/vale/-/vale-3.9.6.tgz#5d21b9fa3d940c40853e7c47968ee70042f8bbef" + integrity sha512-KD48GmGT5dgFWz14bJb154NVRzjiRbnZk8n+Pk824r2Cn78vzLxzB9mGvn0OcOTZXC3IhqyUUo9vZo/V9SGfTw== dependencies: axios "^1.4.0" rimraf "^5.0.0" tar "^6.1.15" unzipper "^0.10.14" -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.14.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" ajv@^6.12.4: version "6.12.6" @@ -537,67 +578,116 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -async@^3.2.3: +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.0, async@^3.2.3: version "3.2.6" - resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + autoprefixer@>=10.2.5: - version "10.4.20" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.1" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" + integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== + axios@^1.4.0, axios@^1.7.4: - version "1.7.9" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a" - integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== + version "1.8.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.3.tgz#9ebccd71c98651d547162a018a1a95a4b4ed4de8" + integrity sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -605,27 +695,34 @@ axios@^1.4.0, axios@^1.7.4: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + big-integer@^1.6.17, big-integer@^1.6.48: version "1.6.52" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== binary@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== dependencies: buffers "~0.1.1" @@ -633,20 +730,30 @@ binary@~0.3.0: bl@^1.0.0: version "1.2.3" - resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== dependencies: readable-stream "^2.3.5" safe-buffer "^5.1.1" +blob-util@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bluebird@~3.4.1: version "3.4.7" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -654,36 +761,36 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.3, braces@~3.0.2: +braces@~3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.23.3: - version "4.24.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== +browserslist@^4.24.4: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" update-browserslist-db "^1.1.1" buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -691,48 +798,40 @@ buffer-alloc@^1.2.0: buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-indexof-polyfill@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer@^5.2.1: +buffer@^5.2.1, buffer@^5.7.1: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - buffers@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== cacheable-lookup@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: version "10.2.14" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: "@types/http-cache-semantics" "^4.0.2" @@ -743,19 +842,40 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" +cachedir@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669: - version "1.0.30001686" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz#0e04b8d90de8753188e93c9989d56cb19d902670" - integrity sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA== +caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702: + version "1.0.30001704" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001704.tgz#6644fe909d924ac3a7125e8a0ab6af95b1f32990" + integrity sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew== careful-downloader@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/careful-downloader/-/careful-downloader-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/careful-downloader/-/careful-downloader-3.0.0.tgz#7e613e582078e8124e9dab4a2293cd48e6d07e6d" integrity sha512-5KMIPa0Yoj+2tY6OK9ewdwcPebp+4XS0dMYvvF9/8fkFEfvnEpWmHWYs9JNcZ7RZUvY/v6oPzLpmmTzSIbroSA== dependencies: debug "^4.3.4" @@ -765,14 +885,19 @@ careful-downloader@^3.0.0: is-path-inside "^4.0.0" tempy "^3.0.0" +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + chainsaw@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== dependencies: traverse ">=0.3.0 <0.4" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -781,9 +906,14 @@ chalk@^4.0.0: supports-color "^7.1.0" chalk@^5.0.0: - version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + version "5.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" + integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== chevrotain-allstar@~0.3.0: version "0.3.1" @@ -806,7 +936,7 @@ chevrotain@~11.0.3: chokidar@^3.3.0: version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -821,12 +951,46 @@ chokidar@^3.3.0: chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +ci-info@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7" + integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-table3@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cliui@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -842,7 +1006,7 @@ color-convert@^1.9.3: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" @@ -854,12 +1018,12 @@ color-name@1.1.3: color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: version "1.9.1" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" @@ -867,23 +1031,28 @@ color-string@^1.6.0: color@^3.1.3: version "3.2.1" - resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== dependencies: color-convert "^1.9.3" color-string "^1.6.0" +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + colorspace@1.1.x: version "1.1.4" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== dependencies: color "^3.1.3" text-hex "1.0.x" -combined-stream@^1.0.8: +combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" @@ -895,17 +1064,27 @@ commander@7: commander@^2.19.0, commander@^2.8.1: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== confbox@^0.1.8: @@ -913,9 +1092,19 @@ confbox@^0.1.8: resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== +confbox@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b" + integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cose-base@^1.0.0: @@ -943,11 +1132,60 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.6: crypto-random-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== dependencies: type-fest "^1.0.1" +cypress@^14.0.1: + version "14.2.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.2.0.tgz#cd1a846385d4aae13b009dcaa2d88f5156cafcb1" + integrity sha512-u7fuc9JEpSYLOdu8mzZDZ/JWsHUzR5pc8i1TeSqMz/bafXp+6IweMAeyphsEJ6/13qbB6nwTEY1m+GUAp6GqCQ== + dependencies: + "@cypress/request" "^3.0.7" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "8.1.1" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + buffer "^5.7.1" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + ci-info "^4.1.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.5" + commander "^6.2.1" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.4" + enquirer "^2.3.6" + eventemitter2 "6.4.7" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + figures "^3.2.0" + fs-extra "^9.1.0" + getos "^3.2.1" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.8" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + process "^0.11.10" + proxy-from-env "1.0.0" + request-progress "^3.0.0" + semver "^7.5.3" + supports-color "^8.1.1" + tmp "~0.2.3" + tree-kill "1.2.2" + untildify "^4.0.0" + yauzl "^2.10.0" + cytoscape-cose-bilkent@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" @@ -962,10 +1200,10 @@ cytoscape-fcose@^2.2.0: dependencies: cose-base "^2.2.0" -cytoscape@^3.29.2: - version "3.31.0" - resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.0.tgz#cffbbb8ca51db01cbf360e0cf59088db6d429837" - integrity sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw== +cytoscape@^3.29.3: + version "3.31.1" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.1.tgz#29b12cac715fbb2aacc50cdf5cf1467aadde9c00" + integrity sha512-Hx5Mtb1+hnmAKaZZ/7zL1Y5HTFYOjdDswZy/jD+1WINRU8KVi1B7+vlHdsTwY+VCFucTreoyu1RDzQJ9u0d2Hw== "d3-array@1 - 2": version "2.12.1" @@ -1246,35 +1484,42 @@ dagre-d3-es@7.0.11: d3 "^7.9.0" lodash-es "^4.17.21" -dayjs@^1.11.10: +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +dayjs@^1.10.4, dayjs@^1.11.13: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== -debug@^4.3.1, debug@^4.3.2, debug@^4.4.0: +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" -debug@^4.3.4: - version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== dependencies: file-type "^5.2.0" @@ -1283,7 +1528,7 @@ decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: decompress-tarbz2@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== dependencies: decompress-tar "^4.1.0" @@ -1294,7 +1539,7 @@ decompress-tarbz2@^4.0.0: decompress-targz@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== dependencies: decompress-tar "^4.1.1" @@ -1303,7 +1548,7 @@ decompress-targz@^4.0.0: decompress-unzip@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== dependencies: file-type "^3.8.0" @@ -1313,7 +1558,7 @@ decompress-unzip@^4.0.1: decompress@^4.2.1: version "4.2.1" - resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== dependencies: decompress-tar "^4.0.0" @@ -1332,7 +1577,7 @@ deep-is@^0.1.3: defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== delaunator@5: @@ -1344,51 +1589,68 @@ delaunator@5: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -dependency-graph@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz" - integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== +dependency-graph@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-1.0.0.tgz#bb5e85aec1310bc13b22dbd76e3196c4ee4c10d2" + integrity sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg== discontinuous-range@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== -dompurify@^3.2.1: - version "3.2.3" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.3.tgz#05dd2175225324daabfca6603055a09b2382a4cd" - integrity sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA== +dompurify@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.4.tgz#af5a5a11407524431456cf18836c55d13441cd8e" + integrity sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg== optionalDependencies: "@types/trusted-types" "^2.0.7" +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexer2@~0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== dependencies: readable-stream "^2.0.2" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.5.41: - version "1.5.71" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz#d8b5dba1e55b320f2f4e9b1ca80738f53fcfec2b" - integrity sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +electron-to-chromium@^1.5.73: + version "1.5.117" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.117.tgz#7739799f513285630c4388721310af5fda480f79" + integrity sha512-G4+CYIJBiQ72N0gi868tmG4WsD8bwLE9XytBdfgXO5zdlTlvOP2ABzWYILYxCIHmsbm2HjBSgm/E/H/QfcnIyQ== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== enabled@2.0.x: @@ -1396,34 +1658,74 @@ enabled@2.0.x: resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== -end-of-stream@^1.0.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +enquirer@^2.3.6: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-scope@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" - integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== +eslint-scope@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d" + integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1439,20 +1741,21 @@ eslint-visitor-keys@^4.2.0: integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== eslint@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.18.0.tgz#c95b24de1183e865de19f607fda6518b54827850" - integrity sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA== + version "9.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.22.0.tgz#0760043809fbf836f582140345233984d613c552" + integrity sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.19.0" - "@eslint/core" "^0.10.0" - "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.18.0" - "@eslint/plugin-kit" "^0.2.5" + "@eslint/config-array" "^0.19.2" + "@eslint/config-helpers" "^0.1.0" + "@eslint/core" "^0.12.0" + "@eslint/eslintrc" "^3.3.0" + "@eslint/js" "9.22.0" + "@eslint/plugin-kit" "^0.2.7" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.1" + "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" @@ -1460,7 +1763,7 @@ eslint@^9.18.0: cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.2.0" + eslint-scope "^8.3.0" eslint-visitor-keys "^4.2.0" espree "^10.3.0" esquery "^1.5.0" @@ -1511,32 +1814,69 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter2@6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== -events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exsolve@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39" + integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw== + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -1547,25 +1887,30 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" +fdir@^6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" + integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== + fecha@^4.2.0: version "4.2.3" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" @@ -1575,22 +1920,22 @@ file-entry-cache@^8.0.0: file-type@^3.8.0: version "3.9.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== file-type@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== file-type@^6.1.0: version "6.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -1605,7 +1950,7 @@ find-up@^5.0.0: find-up@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: locate-path "^7.1.0" @@ -1620,81 +1965,97 @@ flat-cache@^4.0.0: keyv "^4.5.4" flatted@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" - integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== fn.name@1.x.x: version "1.1.0" - resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== follow-redirects@^1.15.6: version "1.15.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.6" signal-exit "^4.0.1" +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + form-data-encoder@^2.1.2: version "2.1.4" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" - integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== +form-data@^4.0.0, form-data@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" mime-types "^2.1.12" fraction.js@^4.3.7: version "4.3.7" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^11.0.0, fs-extra@^11.1.1: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + version "11.3.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== fstream@^1.0.12: version "1.0.12" - resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== dependencies: graceful-fs "^4.1.2" @@ -1704,43 +2065,76 @@ fstream@^1.0.12: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + get-stdin@=8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== -get-stdin@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz" - integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== - get-stream@^2.2.0: version "2.3.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== dependencies: object-assign "^4.0.1" pinkie-promise "^2.0.0" +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== dependencies: - is-glob "^4.0.1" + async "^3.2.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" glob-parent@^6.0.2: version "6.0.2" @@ -1749,9 +2143,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^10.3.7: version "10.4.5" - resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" @@ -1763,7 +2164,7 @@ glob@^10.3.7: glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1773,31 +2174,31 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + globals@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globals@^15.13.0, globals@^15.14.0: - version "15.14.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-15.14.0.tgz#b8fd3a8941ff3b4d38f3319d433b61bbb482e73f" - integrity sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig== +globals@^15.14.0: + version "15.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8" + integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== -globby@^14.0.0: - version "14.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz" - integrity sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw== - dependencies: - "@sindresorhus/merge-streams" "^2.1.0" - fast-glob "^3.3.2" - ignore "^5.2.4" - path-type "^5.0.0" - slash "^5.1.0" - unicorn-magic "^0.1.0" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== got@^12.6.0: version "12.6.1" - resolved "https://registry.npmjs.org/got/-/got-12.6.1.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" @@ -1814,7 +2215,7 @@ got@^12.6.0: graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== hachure-fill@^0.5.2: @@ -1827,42 +2228,68 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + hasown@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" hosted-git-info@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" http-cache-semantics@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +http-signature@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" + integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== + dependencies: + assert-plus "^1.0.0" + jsprim "^2.0.2" + sshpk "^1.18.0" + http2-wrapper@^2.1.10: version "2.2.1" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" hugo-extended@>=0.101.0: - version "0.139.2" - resolved "https://registry.yarnpkg.com/hugo-extended/-/hugo-extended-0.139.2.tgz#123ba6092ba8bb751c62545227238b62bbc47156" - integrity sha512-svbD47E2fkPVFEgNNx6zB5fPRZ0yPPgW4J/+OU0+1LS5nkSVVDpxWZe0od1g4Eekn/2TFSje1LBdojIJPeotnQ== + version "0.145.0" + resolved "https://registry.yarnpkg.com/hugo-extended/-/hugo-extended-0.145.0.tgz#04fe311dc8176a6a7f909faf1c17c4d5b196ae5d" + integrity sha512-ty+vVfBBxc6w9p4vKt1zbtIPLZi+N+3ibCfil18FtNpXuQhN3vwH/1KLNrj59tSZpMJjk12SosyeRHAefgIEXw== dependencies: careful-downloader "^3.0.0" log-symbols "^5.1.0" read-pkg-up "^9.1.0" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + iconv-lite@0.6: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -1870,20 +2297,20 @@ iconv-lite@0.6: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0: version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -1893,9 +2320,14 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -1903,9 +2335,14 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + "internmap@1 - 2": version "2.0.3" resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" @@ -1918,93 +2355,121 @@ internmap@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.5.0: - version "2.15.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" +is-installed-globally@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-natural-number@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-path-inside@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-unicode-supported@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -2023,24 +2488,29 @@ js-cookie@^3.0.5: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: @@ -2048,14 +2518,24 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -2067,6 +2547,16 @@ jsox@^1.2.119: resolved "https://registry.yarnpkg.com/jsox/-/jsox-1.2.121.tgz#e51c1f42188772a3493a56b805f64cbd06c39779" integrity sha512-9Ag50tKhpTwS6r5wh3MJSAvpSof0UBr39Pto8OnzFT32Z/pAbxAsKHzyvsyMEHVslELvHyO/4/jaQELHk8wDcw== +jsprim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + katex@^0.16.9: version "0.16.21" resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.21.tgz#8f63c659e931b210139691f2cc7bb35166b792a3" @@ -2076,7 +2566,7 @@ katex@^0.16.9: keyv@^4.5.3, keyv@^4.5.4: version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -2117,6 +2607,77 @@ layout-base@^2.0.0: resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + +lefthook-darwin-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.11.3.tgz#adb4c44d4f82a07f97e09deca36fb706d51514d5" + integrity sha512-IYzAOf8Qwqk7q+LoRyy7kSk9vzpUZ5wb/vLzEAH/F86Vay9AUaWe1f2pzeLwFg18qEc1QNklT69h9p/uLQMojA== + +lefthook-darwin-x64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.11.3.tgz#b77c231371f6f60ddaf097d500a4aae5c374eb80" + integrity sha512-z/Wp7UMjE1Vyl+x9sjN3NvN6qKdwgHl+cDf98MKKDg/WyPE5XnzqLm9rLLJgImjyClfH7ptTfZxEyhTG3M3XvQ== + +lefthook-freebsd-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.11.3.tgz#27665ae8ab91c40a137d2f5a68ba84594988c120" + integrity sha512-QevwQ7lrv5wBCkk7LLTzT5KR3Bk/5nttSxT1UH2o0EsgirS/c2K5xSgQmV6m3CiZYuCe2Pja4BSIwN3zt17SMw== + +lefthook-freebsd-x64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.11.3.tgz#30f5f398af759212dd68b8b5307229d04ce5c26c" + integrity sha512-PYbcyNgdJJ4J2pEO9Ss4oYo5yq4vmQGTKm3RTYbRx4viSWR65hvKCP0C4LnIqspMvmR05SJi2bqe7UBP2t60EA== + +lefthook-linux-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.11.3.tgz#ac338808e1c560935704473707e7540171170618" + integrity sha512-0pBMBAoafOAEg345eOPozsmRjWR0zCr6k+m5ZxwRBZbZx1bQFDqBakQ3TpFCphhcykmgFyaa1KeZJZUOrEsezA== + +lefthook-linux-x64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.11.3.tgz#eea29dc603f34822c57f47bd9777bfa0e1ffa223" + integrity sha512-eiezheZ/bisBCMB2Ur0mctug/RDFyu39B5wzoE8y4z0W1yw6jHGrWMJ4Y8+5qKZ7fmdZg+7YPuMHZ2eFxOnhQA== + +lefthook-openbsd-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.11.3.tgz#b6eae9109a1a7520392317d635810e43cabe1b89" + integrity sha512-DRLTzXdtCj/TizpLcGSqXcnrqvgxeXgn/6nqzclIGqNdKCsNXDzpI0D3sP13Vwwmyoqv2etoTak2IHqZiXZDqg== + +lefthook-openbsd-x64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.11.3.tgz#4b681975fe17ad9615b92310ca094c4d292aa5ec" + integrity sha512-l7om+ZjWpYrVZyDuElwnucZhEqa7YfwlRaKBenkBxEh2zMje8O6Zodeuma1KmyDbSFvnvEjARo/Ejiot4gLXEw== + +lefthook-windows-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.11.3.tgz#0cf029605d0c2983bf287269b8347aed460561c5" + integrity sha512-X0iTrql2gfPAkU2dzRwuHWgW5RcqCPbzJtKQ41X6Y/F7iQacRknmuYUGyC81funSvzGAsvlusMVLUvaFjIKnbA== + +lefthook-windows-x64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.11.3.tgz#6baac87f6fb36885dea0c360452049dd8d6dad44" + integrity sha512-F+ORMn6YJXoS0EXU5LtN1FgV4QX9rC9LucZEkRmK6sKmS7hcb9IHpyb7siRGytArYzJvXVjPbxPBNSBdN4egZQ== + +lefthook@^1.10.10: + version "1.11.3" + resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.11.3.tgz#d4c23eade3f9d6c32900c356555ca6380c601513" + integrity sha512-HJp37y62j3j8qzAOODWuUJl4ysLwsDvCTBV6odr3jIRHR/a5e+tI14VQGIBcpK9ysqC3pGWyW5Rp9Jv1YDubyw== + optionalDependencies: + lefthook-darwin-arm64 "1.11.3" + lefthook-darwin-x64 "1.11.3" + lefthook-freebsd-arm64 "1.11.3" + lefthook-freebsd-x64 "1.11.3" + lefthook-linux-arm64 "1.11.3" + lefthook-linux-x64 "1.11.3" + lefthook-openbsd-arm64 "1.11.3" + lefthook-openbsd-x64 "1.11.3" + lefthook-windows-arm64 "1.11.3" + lefthook-windows-x64 "1.11.3" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -2132,21 +2693,36 @@ lilconfig@^3.1.1: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== listenercount@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== -local-pkg@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" - integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== +listr2@^3.8.3: + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== dependencies: - mlly "^1.7.3" - pkg-types "^1.2.1" + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.1" + through "^2.3.8" + wrap-ansi "^7.0.0" + +local-pkg@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd" + integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg== + dependencies: + mlly "^1.7.4" + pkg-types "^2.0.1" + quansync "^0.2.8" locate-path@^6.0.0: version "6.0.0" @@ -2157,7 +2733,7 @@ locate-path@^6.0.0: locate-path@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== dependencies: p-locate "^6.0.0" @@ -2172,18 +2748,46 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-symbols@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== dependencies: chalk "^5.0.0" is-unicode-supported "^1.1.0" -logform@^2.6.0, logform@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/logform/-/logform-2.6.1.tgz" - integrity sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA== +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +logform@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.7.0.tgz#cfca97528ef290f2e125a08396805002b2d060d1" + integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ== dependencies: "@colors/colors" "1.6.0" "@types/triple-beam" "^1.3.2" @@ -2194,133 +2798,140 @@ logform@^2.6.0, logform@^2.6.1: lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== lru-cache@^10.2.0: version "10.4.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" make-dir@^1.0.0: version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" -marked@^13.0.2: - version "13.0.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" - integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== +markdown-link@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" + integrity sha512-TurLymbyLyo+kAUUAV9ggR9EPcDjP/ctlv9QAFiqUH7c+t6FlsbivPo9OKTU8xdOx9oNd2drW/Fi5RRElQbUqA== -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +marked@^15.0.7: + version "15.0.7" + resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.7.tgz#f67d7e34d202ce087e6b879107b5efb04e743314" + integrity sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg== + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== mermaid@^11.4.1: - version "11.4.1" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.1.tgz#577fad5c31a01a06d9f793e298d411f1379eecc8" - integrity sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A== + version "11.5.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.5.0.tgz#67f1dae9ddcc700b079bae6a5a7b605ea66e7928" + integrity sha512-IYhyukID3zzDj1EihKiN1lp+PXNImoJ3Iyz73qeDAgnus4BNGsJV1n471P4PyeGxPVONerZxignwGxGTSwZnlg== dependencies: - "@braintree/sanitize-url" "^7.0.1" - "@iconify/utils" "^2.1.32" + "@braintree/sanitize-url" "^7.0.4" + "@iconify/utils" "^2.1.33" "@mermaid-js/parser" "^0.3.0" "@types/d3" "^7.4.3" - cytoscape "^3.29.2" + cytoscape "^3.29.3" cytoscape-cose-bilkent "^4.1.0" cytoscape-fcose "^2.2.0" d3 "^7.9.0" d3-sankey "^0.12.3" dagre-d3-es "7.0.11" - dayjs "^1.11.10" - dompurify "^3.2.1" + dayjs "^1.11.13" + dompurify "^3.2.4" katex "^0.16.9" khroma "^2.1.0" lodash-es "^4.17.21" - marked "^13.0.2" + marked "^15.0.7" roughjs "^4.6.6" - stylis "^4.3.1" + stylis "^4.3.6" ts-dedent "^2.2.0" - uuid "^9.0.1" - -micromatch@^4.0.4: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" + uuid "^11.1.0" mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== mimic-response@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimatch@^9.0.4: version "9.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" -minimist@^1.2.6: +minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0: version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -2328,17 +2939,17 @@ minizlib@^2.1.1: "mkdirp@>=0.5 0": version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.7.3, mlly@^1.7.4: +mlly@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f" integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw== @@ -2350,7 +2961,7 @@ mlly@^1.7.3, mlly@^1.7.4: moo@^0.5.0: version "0.5.2" - resolved "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== ms@^2.1.1, ms@^2.1.3: @@ -2358,10 +2969,10 @@ ms@^2.1.1, ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@^3.3.7: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== +nanoid@^3.3.8: + version "3.3.9" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.9.tgz#e0097d8e026b3343ff053e9ccd407360a03f503a" + integrity sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg== natural-compare@^1.4.0: version "1.4.0" @@ -2370,7 +2981,7 @@ natural-compare@^1.4.0: nearley@^2.20.1: version "2.20.1" - resolved "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== dependencies: commander "^2.19.0" @@ -2378,21 +2989,21 @@ nearley@^2.20.1: railroad-diagrams "^1.0.0" randexp "0.4.6" -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== node-sql-parser@^4.12.0: version "4.18.0" - resolved "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.18.0.tgz" + resolved "https://registry.yarnpkg.com/node-sql-parser/-/node-sql-parser-4.18.0.tgz#516b6e633c55c5abbba1ca588ab372db81ae9318" integrity sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ== dependencies: big-integer "^1.6.48" normalize-package-data@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: hosted-git-info "^4.0.1" @@ -2402,27 +3013,39 @@ normalize-package-data@^3.0.2: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^8.0.0: version "8.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + object-assign@^4.0.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -once@^1.3.0, once@^1.4.0: +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -2434,6 +3057,13 @@ one-time@^1.0.0: dependencies: fn.name "1.x.x" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -2446,9 +3076,14 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== + p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^3.0.2: @@ -2460,7 +3095,7 @@ p-limit@^3.0.2: p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" @@ -2474,20 +3109,29 @@ p-locate@^5.0.0: p-locate@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== dependencies: p-limit "^4.0.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== -package-manager-detector@^0.2.0: - version "0.2.8" - resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.8.tgz#f5ace2dbd37666af54e5acec11bc37c8450f72d0" - integrity sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA== +package-manager-detector@^0.2.8: + version "0.2.11" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.11.tgz#3af0b34f99d86d24af0a0620603d2e1180d05c9c" + integrity sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ== + dependencies: + quansync "^0.2.7" parent-module@^1.0.0: version "1.0.1" @@ -2498,7 +3142,7 @@ parent-module@^1.0.0: parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -2518,75 +3162,80 @@ path-exists@^4.0.0: path-exists@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-scurry@^1.11.1: version "1.11.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - -pathe@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.2.tgz#5ed86644376915b3c7ee4d00ac8c348d671da3a5" - integrity sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w== +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1: +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.3.0: +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pify@^2.2.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pkg-types@^1.2.1, pkg-types@^1.3.0: +pkg-types@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== @@ -2595,6 +3244,15 @@ pkg-types@^1.2.1, pkg-types@^1.3.0: mlly "^1.7.4" pathe "^2.0.1" +pkg-types@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.1.0.tgz#70c9e1b9c74b63fdde749876ee0aa007ea9edead" + integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A== + dependencies: + confbox "^0.2.1" + exsolve "^1.0.1" + pathe "^2.0.3" + points-on-curve@0.2.0, points-on-curve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" @@ -2609,26 +3267,25 @@ points-on-path@^0.2.1: points-on-curve "0.2.0" postcss-cli@>=9.1.0: - version "11.0.0" - resolved "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz" - integrity sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA== + version "11.0.1" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-11.0.1.tgz#341188ff7b26b19b206ca923ae2bd979751e7da7" + integrity sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g== dependencies: chokidar "^3.3.0" - dependency-graph "^0.11.0" + dependency-graph "^1.0.0" fs-extra "^11.0.0" - get-stdin "^9.0.0" - globby "^14.0.0" picocolors "^1.0.0" postcss-load-config "^5.0.0" postcss-reporter "^7.0.0" pretty-hrtime "^1.0.3" read-cache "^1.0.0" slash "^5.0.0" + tinyglobby "^0.2.12" yargs "^17.0.0" postcss-load-config@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-5.1.0.tgz#4ded23410da973e05edae9d41fa99bb5c1d5477f" integrity sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA== dependencies: lilconfig "^3.1.1" @@ -2636,7 +3293,7 @@ postcss-load-config@^5.0.0: postcss-reporter@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.1.0.tgz#5ec476d224e2fe25a054e3c66d9b2901d4fab422" integrity sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA== dependencies: picocolors "^1.0.0" @@ -2644,15 +3301,15 @@ postcss-reporter@^7.0.0: postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@>=8.4.31: - version "8.4.49" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" - integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: - nanoid "^3.3.7" + nanoid "^3.3.8" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -2663,7 +3320,7 @@ prelude-ls@^1.2.1: prettier-plugin-sql@^0.18.0: version "0.18.1" - resolved "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.18.1.tgz" + resolved "https://registry.yarnpkg.com/prettier-plugin-sql/-/prettier-plugin-sql-0.18.1.tgz#037c6a55ee6c78f80df42041f8f53340651fc7d8" integrity sha512-2+Nob2sg7hzLAKJoE6sfgtkhBZCqOzrWHZPvE4Kee/e80oOyI4qwy9vypeltqNBJwTtq3uiKPrCxlT03bBpOaw== dependencies: jsox "^1.2.119" @@ -2672,18 +3329,23 @@ prettier-plugin-sql@^0.18.0: tslib "^2.6.2" prettier@^3.2.5: - version "3.4.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" - integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + +pretty-bytes@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-hrtime@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: @@ -2691,49 +3353,76 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +proxy-from-env@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== + proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +pump@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +qs@6.14.0: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + dependencies: + side-channel "^1.1.0" + +quansync@^0.2.7, quansync@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.8.tgz#2e893d17bb754ba0988ea399ff0bc5f2a8467793" + integrity sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== railroad-diagrams@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== randexp@0.4.6: version "0.4.6" - resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== dependencies: discontinuous-range "1.0.0" ret "~0.1.10" +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" read-pkg-up@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== dependencies: find-up "^6.3.0" @@ -2742,7 +3431,7 @@ read-pkg-up@^9.1.0: read-pkg@^7.1.0: version "7.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== dependencies: "@types/normalize-package-data" "^2.4.1" @@ -2752,7 +3441,7 @@ read-pkg@^7.1.0: readable-stream@^2.0.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -2763,7 +3452,7 @@ readable-stream@^2.0.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0: +readable-stream@^3.4.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -2772,32 +3461,28 @@ readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^4.5.2: - version "4.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.6.0.tgz#ce412dfb19c04efde1c5936d99c27f37a1ff94c9" - integrity sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== + dependencies: + throttleit "^1.0.0" + require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^4.0.0: @@ -2807,31 +3492,39 @@ resolve-from@^4.0.0: responselike@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: lowercase-keys "^3.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@2: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^5.0.0: version "5.0.10" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== dependencies: glob "^10.3.7" @@ -2851,70 +3544,122 @@ roughjs@^4.6.6: points-on-curve "^0.2.0" points-on-path "^0.2.1" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== -safe-buffer@^5.1.1, safe-buffer@~5.2.0: +rxjs@^7.5.1: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-stable-stringify@^2.3.1: version "2.5.0" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== -"safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== seek-bzip@^1.0.5: version "1.0.6" - resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== dependencies: commander "^2.8.1" -semver@^7.3.4: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== +semver@^7.3.4, semver@^7.5.3: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" setimmediate@~1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-swizzle@^0.2.2: @@ -2924,19 +3669,37 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -slash@^5.0.0, slash@^5.1.0: +slash@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -2944,39 +3707,54 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.5.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.20" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz" - integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + version "3.0.21" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" + integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== sql-formatter@^15.0.2: - version "15.4.6" - resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.4.6.tgz#6e00e967ce86aa70daa0249097b2d3941e4e66f4" - integrity sha512-aH6kwvJpylljHqXe+zpie0Q5snL3uerDLLhjPEBjDCVK1NMRFq4nMJbuPJWYp08LaaaJJgBhShAdAfspcBYY0Q== + version "15.4.11" + resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.4.11.tgz#10a8205aa82d60507811360d4735e81d4a21c137" + integrity sha512-AfIjH0mYxv0NVzs4mbcGIAcos2Si20LeF9GMk0VmVA4A3gs1PFIixVu3rtcz34ls7ghPAjrDb+XbRly/aF6HAg== dependencies: argparse "^2.0.1" get-stdin "=8.0.0" nearley "^2.20.1" +sshpk@^1.18.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + stack-trace@0.0.x: version "0.0.10" - resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2985,7 +3763,7 @@ stack-trace@0.0.x: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2994,64 +3772,69 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1, string_decoder@^1.3.0: +string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-dirs@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== dependencies: is-natural-number "^4.0.1" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -stylis@^4.3.1: - version "4.3.5" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.5.tgz#432cc99c81e28d7062c88d979d2163891e860489" - integrity sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA== +stylis@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== supports-color@^7.1.0: version "7.2.0" @@ -3060,9 +3843,16 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + tar-stream@^1.5.2: version "1.6.2" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" @@ -3075,7 +3865,7 @@ tar-stream@^1.5.2: tar@^6.1.15: version "6.2.1" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" @@ -3087,12 +3877,12 @@ tar@^6.1.15: temp-dir@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== tempy@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.1.0.tgz#00958b6df85db8589cb595465e691852aac038e9" integrity sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g== dependencies: is-stream "^3.0.0" @@ -3102,41 +3892,83 @@ tempy@^3.0.0: text-hex@1.0.x: version "1.0.0" - resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== thenby@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz" + resolved "https://registry.yarnpkg.com/thenby/-/thenby-1.3.4.tgz#81581f6e1bb324c6dedeae9bfc28e59b1a2201cc" integrity sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ== +throttleit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5" + integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== + through@^2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tinyexec@^0.3.0: +tinyexec@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== +tinyglobby@^0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5" + integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww== + dependencies: + fdir "^6.4.3" + picomatch "^4.0.2" + +tldts-core@^6.1.84: + version "6.1.84" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.84.tgz#f8ac2af9969bf9c2f7a99fa05d9c667b5e5b768c" + integrity sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg== + +tldts@^6.1.32: + version "6.1.84" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.84.tgz#fb58b1ceb70972a1ecd683606cea3d06c78f7238" + integrity sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg== + dependencies: + tldts-core "^6.1.84" + +tmp@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + to-buffer@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" +tough-cookie@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== + dependencies: + tldts "^6.1.32" + "traverse@>=0.3.0 <0.4": version "0.3.9" - resolved "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + triple-beam@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" @@ -3147,11 +3979,23 @@ ts-dedent@^2.2.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== -tslib@^2.6.2: +tslib@^2.1.0, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -3159,14 +4003,19 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^1.0.1: version "1.4.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-fest@^2.0.0, type-fest@^2.12.2, type-fest@^2.5.0: version "2.19.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== ufo@^1.5.4: @@ -3176,32 +4025,37 @@ ufo@^1.5.4: unbzip2-stream@^1.0.9: version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: buffer "^5.2.1" through "^2.3.8" -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== unique-string@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== dependencies: crypto-random-string "^4.0.0" universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + unzipper@^0.10.14: version "0.10.14" - resolved "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== dependencies: big-integer "^1.6.17" @@ -3216,12 +4070,12 @@ unzipper@^0.10.14: setimmediate "~1.0.4" update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" - picocolors "^1.1.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" @@ -3232,17 +4086,22 @@ uri-js@^4.2.2: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -3253,6 +4112,15 @@ vanillajs-datepicker@^1.3.4: resolved "https://registry.yarnpkg.com/vanillajs-datepicker/-/vanillajs-datepicker-1.3.4.tgz#69b42f9106e944c248b7479249889ee1fd8465ef" integrity sha512-waOyp2Ay+K1VA/B5cNlFgSNzFR9efCVKaoyMyNEAhAwmKLzMB9nCJs6Vqmo6HuHWA98VEHXbgz5thZ7hH/uohA== +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vscode-jsonrpc@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" @@ -3290,36 +4158,36 @@ vscode-uri@~3.0.8: which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -winston-transport@^4.7.0: - version "4.8.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.8.0.tgz" - integrity sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA== +winston-transport@^4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.9.0.tgz#3bba345de10297654ea6f33519424560003b3bf9" + integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A== dependencies: - logform "^2.6.1" - readable-stream "^4.5.2" + logform "^2.7.0" + readable-stream "^3.6.2" triple-beam "^1.3.0" winston@^3.16.0: - version "3.16.0" - resolved "https://registry.npmjs.org/winston/-/winston-3.16.0.tgz" - integrity sha512-xz7+cyGN5M+4CmmD4Npq1/4T+UZaz7HaeTlAruFUTjk79CNMq+P6H30vlE4z0qfqJ01VHYQwd7OZo03nYm/+lg== + version "3.17.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.17.0.tgz#74b8665ce9b4ea7b29d0922cfccf852a08a11423" + integrity sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw== dependencies: "@colors/colors" "^1.6.0" "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" - logform "^2.6.0" + logform "^2.7.0" one-time "^1.0.0" readable-stream "^3.4.0" safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.7.0" + winston-transport "^4.9.0" word-wrap@^1.2.5: version "1.2.5" @@ -3328,16 +4196,25 @@ word-wrap@^1.2.5: "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -3346,7 +4223,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -3355,37 +4232,37 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xtend@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.4.2: - version "2.6.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773" - integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg== + version "2.7.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" + integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.0.0: version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -3396,9 +4273,9 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" -yauzl@^2.4.2: +yauzl@^2.10.0, yauzl@^2.4.2: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" @@ -3410,6 +4287,6 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + version "1.2.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.0.tgz#4a29a93e7591328fa31768701e6ea66962401f79" + integrity sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==