Skip to content

Conversation

@KlimTodrik
Copy link
Contributor

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request implements a comprehensive authentication plugin for Manticore Search, adding support for user management and permissions through SQL-like commands. The implementation includes handlers for creating/dropping users, granting/revoking permissions, showing permissions, and setting passwords, along with comprehensive test coverage.

  • Authentication plugin implementation with full CRUD operations for users and permissions
  • Comprehensive test suite with unit tests, integration tests, and helper utilities
  • Hash generation system for secure password and token storage

Reviewed Changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/init.php Adds auth plugin to the list of available plugins
src/Plugin/Auth/*.php Core authentication plugin implementation with handlers for user management, permissions, and password operations
test/src/Trait/AuthTestTrait.php Test trait providing mock utilities for authentication testing
test/src/Helper/AuthTestHelpers.php Helper class for creating test response objects
test/Plugin/Auth/*.php Comprehensive test suite covering all authentication functionality
phpstan.neon Updates PHPStan configuration to specify PHP version
Comments suppressed due to low confidence (1)

src/Plugin/Auth/UserHandler.php:1

  • The method processRequest() lacks documentation explaining its core functionality of routing between create and drop user operations based on payload type. Consider adding a docblock that describes the method's role in request processing.
<?php declare(strict_types=1);

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@github-actions
Copy link

clt

❌ CLT tests in test/clt-tests/http-interface/
✅ OK: 11
❌ Failed: 1
⏳ Duration: 49s
👉 Check Action Results for commit e1dd803

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/cli-json-endpoint.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT, value_attr STRING) min_infix_len = '3' min_prefix_len = '3'; INSERT INTO t VALUES (1, 'example', 'example'), (2, 'test', 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20version"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20buddy%20plugins"
––– output –––
- [{"total":27,"error":"","warning":"","columns":[{"Package":{"type":"string"}},{"Plugin":{"type":"string"}},{"Version":{"type":"string"}},{"Type":{"type":"string"}},{"Info":{"type":"string"}}],"data":[{"Package":"manticoresoftware/buddy-plugin-empty-string","Plugin":"empty-string","Version":"%{VERSION}","Type":"core","Info":"Handles empty queries, which can occur when trimming comments or dealing with specific SQL protocol instructions in comments that are not supported"},{"Package":"manticoresoftware/buddy-plugin-backup","Plugin":"backup","Version":"%{VERSION}","Type":"core","Info":"BACKUP sql statement"},{"Package":"manticoresoftware/buddy-plugin-emulate-elastic","Plugin":"emulate-elastic","Version":"%{VERSION}","Type":"core","Info":"Emulates some Elastic queries and generates responses as if they were made by ES"},{"Package":"manticoresoftware/buddy-plugin-fuzzy","Plugin":"fuzzy","Version":"%{VERSION}","Type":"core","Info":"Fuzzy search plugin. It helps to find the best match for a given query."},{"Package":"manticoresoftware/buddy-plugin-create-table","Plugin":"create-table","Version":"%{VERSION}","Type":"core","Info":"Enables tables copying; handles CREATE TABLE statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-create-cluster","Plugin":"create-cluster","Version":"%{VERSION}","Type":"core","Info":"Enable CREATE CLUSTER IF NOT EXISTS statements"},{"Package":"manticoresoftware/buddy-plugin-drop","Plugin":"drop","Version":"%{VERSION}","Type":"core","Info":"Handles DROP statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-insert","Plugin":"insert","Version":"%{VERSION}","Type":"core","Info":"Auto schema support. When an insert operation is performed and the table does not exist, it creates it with data types auto-detection"},{"Package":"manticoresoftware/buddy-plugin-alias","Plugin":"alias","Version":"%{VERSION}","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-select","Plugin":"select","Version":"%{VERSION}","Type":"core","Info":"Various SELECTs handlers needed for mysqldump and other software support, mostly aiming to work similarly to MySQL"},{"Package":"manticoresoftware/buddy-plugin-show","Plugin":"show","Version":"%{VERSION}","Type":"core","Info":"Various \"show\" queries handlers, for example, `show queries`, `show fields`, `show full tables`, etc"},{"Package":"manticoresoftware/buddy-plugin-plugin","Plugin":"plugin","Version":"%{VERSION}","Type":"core","Info":"Core logic for plugin support and helpers. Also handles `create buddy plugin`, `delete buddy plugin`, and `show buddy plugins`"},{"Package":"manticoresoftware/buddy-plugin-test","Plugin":"test","Version":"%{VERSION}","Type":"core","Info":"Test plugin, used exclusively for tests"},{"Package":"manticoresoftware/buddy-plugin-alter-column","Plugin":"alter-column","Version":"%{VERSION}","Type":"core","Info":"Enables adding/dropping table fields(columns)"},{"Package":"manticoresoftware/buddy-plugin-alter-distributed-table","Plugin":"alter-distributed-table","Version":"%{VERSION}","Type":"core","Info":"Enables alter for distributed tables"},{"Package":"manticoresoftware/buddy-plugin-alter-rename-table","Plugin":"alter-rename-table","Version":"%{VERSION}","Type":"core","Info":"Enables alter table rename"},{"Package":"manticoresoftware/buddy-plugin-modify-table","Plugin":"modify-table","Version":"%{VERSION}","Type":"core","Info":"Assists in standardizing options in create and alter table statements to show option=1 for integers."},{"Package":"manticoresoftware/buddy-plugin-knn","Plugin":"knn","Version":"%{VERSION}","Type":"core","Info":"Enables KNN by document id"},{"Package":"manticoresoftware/buddy-plugin-replace","Plugin":"replace","Version":"%{VERSION}","Type":"core","Info":"Enables partial replaces"},{"Package":"manticoresoftware/buddy-plugin-queue","Plugin":"queue","Version":"%{VERSION}","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-sharding","Plugin":"sharding","Version":"%{VERSION}","Type":"core","Info":"Enables sharded tables."},{"Package":"manticoresoftware/buddy-plugin-update","Plugin":"update","Version":"%{VERSION}","Type":"core","Info":"Handles UPDATE statements sent by MySQL tools making possible for them to update full-text fields"},{"Package":"manticoresoftware/buddy-plugin-autocomplete","Plugin":"autocomplete","Version":"%{VERSION}","Type":"core","Info":"Autocomplete plugin that offers suggestions based on the starting query"},{"Package":"manticoresoftware/buddy-plugin-cli-table","Plugin":"cli-table","Version":"%{VERSION}","Type":"core","Info":"/cli endpoint based on /cli_json - outputs query result as a table"},{"Package":"manticoresoftware/buddy-plugin-distributed-insert","Plugin":"distributed-insert","Version":"%{VERSION}","Type":"core","Info":"The plugin enables data insertion into distributed sharded tables."},{"Package":"manticoresoftware/buddy-plugin-truncate","Plugin":"truncate","Version":"%{VERSION}","Type":"core","Info":"Handles TRUNCATE statements on distributed tables"},{"Package":"manticoresoftware/buddy-plugin-metrics","Plugin":"metrics","Version":"%{VERSION}","Type":"core","Info":"Returns Prometheus metrics"}]}]
+ [{"total":28,"error":"","warning":"","columns":[{"Package":{"type":"string"}},{"Plugin":{"type":"string"}},{"Version":{"type":"string"}},{"Type":{"type":"string"}},{"Info":{"type":"string"}}],"data":[{"Package":"manticoresoftware/buddy-plugin-empty-string","Plugin":"empty-string","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Handles empty queries, which can occur when trimming comments or dealing with specific SQL protocol instructions in comments that are not supported"},{"Package":"manticoresoftware/buddy-plugin-backup","Plugin":"backup","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"BACKUP sql statement"},{"Package":"manticoresoftware/buddy-plugin-emulate-elastic","Plugin":"emulate-elastic","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Emulates some Elastic queries and generates responses as if they were made by ES"},{"Package":"manticoresoftware/buddy-plugin-fuzzy","Plugin":"fuzzy","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Fuzzy search plugin. It helps to find the best match for a given query."},{"Package":"manticoresoftware/buddy-plugin-create-table","Plugin":"create-table","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables tables copying; handles CREATE TABLE statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-create-cluster","Plugin":"create-cluster","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enable CREATE CLUSTER IF NOT EXISTS statements"},{"Package":"manticoresoftware/buddy-plugin-drop","Plugin":"drop","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Handles DROP statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-insert","Plugin":"insert","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Auto schema support. When an insert operation is performed and the table does not exist, it creates it with data types auto-detection"},{"Package":"manticoresoftware/buddy-plugin-alias","Plugin":"alias","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-select","Plugin":"select","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Various SELECTs handlers needed for mysqldump and other software support, mostly aiming to work similarly to MySQL"},{"Package":"manticoresoftware/buddy-plugin-show","Plugin":"show","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Various \"show\" queries handlers, for example, `show queries`, `show fields`, `show full tables`, etc"},{"Package":"manticoresoftware/buddy-plugin-plugin","Plugin":"plugin","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Core logic for plugin support and helpers. Also handles `create buddy plugin`, `delete buddy plugin`, and `show buddy plugins`"},{"Package":"manticoresoftware/buddy-plugin-test","Plugin":"test","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Test plugin, used exclusively for tests"},{"Package":"manticoresoftware/buddy-plugin-alter-column","Plugin":"alter-column","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables adding/dropping table fields(columns)"},{"Package":"manticoresoftware/buddy-plugin-alter-distributed-table","Plugin":"alter-distributed-table","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables alter for distributed tables"},{"Package":"manticoresoftware/buddy-plugin-alter-rename-table","Plugin":"alter-rename-table","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables alter table rename"},{"Package":"manticoresoftware/buddy-plugin-auth","Plugin":"auth","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Handles commands related to Authentication"},{"Package":"manticoresoftware/buddy-plugin-modify-table","Plugin":"modify-table","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Assists in standardizing options in create and alter table statements to show option=1 for integers."},{"Package":"manticoresoftware/buddy-plugin-knn","Plugin":"knn","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables KNN by document id"},{"Package":"manticoresoftware/buddy-plugin-replace","Plugin":"replace","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables partial replaces"},{"Package":"manticoresoftware/buddy-plugin-queue","Plugin":"queue","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-sharding","Plugin":"sharding","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Enables sharded tables."},{"Package":"manticoresoftware/buddy-plugin-update","Plugin":"update","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Handles UPDATE statements sent by MySQL tools making possible for them to update full-text fields"},{"Package":"manticoresoftware/buddy-plugin-autocomplete","Plugin":"autocomplete","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Autocomplete plugin that offers suggestions based on the starting query"},{"Package":"manticoresoftware/buddy-plugin-cli-table","Plugin":"cli-table","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"/cli endpoint based on /cli_json - outputs query result as a table"},{"Package":"manticoresoftware/buddy-plugin-distributed-insert","Plugin":"distributed-insert","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"The plugin enables data insertion into distributed sharded tables."},{"Package":"manticoresoftware/buddy-plugin-truncate","Plugin":"truncate","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Handles TRUNCATE statements on distributed tables"},{"Package":"manticoresoftware/buddy-plugin-metrics","Plugin":"metrics","Version":"3.39.1-18-g8ba2d8","Type":"core","Info":"Returns Prometheus metrics"}]}]
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20where%20match('exmaple')%20option%20fuzzy=1"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20fields%20from%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?create%20table%20t_copy2%20like%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20limit%201"
––– output –––
OK

@github-actions
Copy link

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feat_2983-auth-permissions-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-e1dd8035-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest

These images contain the buddy code from this PR and can be used for testing.

Built from commit: 8ba2d87

@github-actions
Copy link

clt

❌ CLT tests in test/clt-tests/http-interface/
✅ OK: 11
❌ Failed: 1
⏳ Duration: 43s
👉 Check Action Results for commit 1a944ad

Failed tests:

🔧 Edit failed tests in UI:

test/clt-tests/http-interface/cli-json-endpoint.rec
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd $SEARCHD_FLAGS > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT, value_attr STRING) min_infix_len = '3' min_prefix_len = '3'; INSERT INTO t VALUES (1, 'example', 'example'), (2, 'test', 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20version"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20buddy%20plugins"
––– output –––
- [{"total":27,"error":"","warning":"","columns":[{"Package":{"type":"string"}},{"Plugin":{"type":"string"}},{"Version":{"type":"string"}},{"Type":{"type":"string"}},{"Info":{"type":"string"}}],"data":[{"Package":"manticoresoftware/buddy-plugin-empty-string","Plugin":"empty-string","Version":"%{VERSION}","Type":"core","Info":"Handles empty queries, which can occur when trimming comments or dealing with specific SQL protocol instructions in comments that are not supported"},{"Package":"manticoresoftware/buddy-plugin-backup","Plugin":"backup","Version":"%{VERSION}","Type":"core","Info":"BACKUP sql statement"},{"Package":"manticoresoftware/buddy-plugin-emulate-elastic","Plugin":"emulate-elastic","Version":"%{VERSION}","Type":"core","Info":"Emulates some Elastic queries and generates responses as if they were made by ES"},{"Package":"manticoresoftware/buddy-plugin-fuzzy","Plugin":"fuzzy","Version":"%{VERSION}","Type":"core","Info":"Fuzzy search plugin. It helps to find the best match for a given query."},{"Package":"manticoresoftware/buddy-plugin-create-table","Plugin":"create-table","Version":"%{VERSION}","Type":"core","Info":"Enables tables copying; handles CREATE TABLE statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-create-cluster","Plugin":"create-cluster","Version":"%{VERSION}","Type":"core","Info":"Enable CREATE CLUSTER IF NOT EXISTS statements"},{"Package":"manticoresoftware/buddy-plugin-drop","Plugin":"drop","Version":"%{VERSION}","Type":"core","Info":"Handles DROP statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-insert","Plugin":"insert","Version":"%{VERSION}","Type":"core","Info":"Auto schema support. When an insert operation is performed and the table does not exist, it creates it with data types auto-detection"},{"Package":"manticoresoftware/buddy-plugin-alias","Plugin":"alias","Version":"%{VERSION}","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-select","Plugin":"select","Version":"%{VERSION}","Type":"core","Info":"Various SELECTs handlers needed for mysqldump and other software support, mostly aiming to work similarly to MySQL"},{"Package":"manticoresoftware/buddy-plugin-show","Plugin":"show","Version":"%{VERSION}","Type":"core","Info":"Various \"show\" queries handlers, for example, `show queries`, `show fields`, `show full tables`, etc"},{"Package":"manticoresoftware/buddy-plugin-plugin","Plugin":"plugin","Version":"%{VERSION}","Type":"core","Info":"Core logic for plugin support and helpers. Also handles `create buddy plugin`, `delete buddy plugin`, and `show buddy plugins`"},{"Package":"manticoresoftware/buddy-plugin-test","Plugin":"test","Version":"%{VERSION}","Type":"core","Info":"Test plugin, used exclusively for tests"},{"Package":"manticoresoftware/buddy-plugin-alter-column","Plugin":"alter-column","Version":"%{VERSION}","Type":"core","Info":"Enables adding/dropping table fields(columns)"},{"Package":"manticoresoftware/buddy-plugin-alter-distributed-table","Plugin":"alter-distributed-table","Version":"%{VERSION}","Type":"core","Info":"Enables alter for distributed tables"},{"Package":"manticoresoftware/buddy-plugin-alter-rename-table","Plugin":"alter-rename-table","Version":"%{VERSION}","Type":"core","Info":"Enables alter table rename"},{"Package":"manticoresoftware/buddy-plugin-modify-table","Plugin":"modify-table","Version":"%{VERSION}","Type":"core","Info":"Assists in standardizing options in create and alter table statements to show option=1 for integers."},{"Package":"manticoresoftware/buddy-plugin-knn","Plugin":"knn","Version":"%{VERSION}","Type":"core","Info":"Enables KNN by document id"},{"Package":"manticoresoftware/buddy-plugin-replace","Plugin":"replace","Version":"%{VERSION}","Type":"core","Info":"Enables partial replaces"},{"Package":"manticoresoftware/buddy-plugin-queue","Plugin":"queue","Version":"%{VERSION}","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-sharding","Plugin":"sharding","Version":"%{VERSION}","Type":"core","Info":"Enables sharded tables."},{"Package":"manticoresoftware/buddy-plugin-update","Plugin":"update","Version":"%{VERSION}","Type":"core","Info":"Handles UPDATE statements sent by MySQL tools making possible for them to update full-text fields"},{"Package":"manticoresoftware/buddy-plugin-autocomplete","Plugin":"autocomplete","Version":"%{VERSION}","Type":"core","Info":"Autocomplete plugin that offers suggestions based on the starting query"},{"Package":"manticoresoftware/buddy-plugin-cli-table","Plugin":"cli-table","Version":"%{VERSION}","Type":"core","Info":"/cli endpoint based on /cli_json - outputs query result as a table"},{"Package":"manticoresoftware/buddy-plugin-distributed-insert","Plugin":"distributed-insert","Version":"%{VERSION}","Type":"core","Info":"The plugin enables data insertion into distributed sharded tables."},{"Package":"manticoresoftware/buddy-plugin-truncate","Plugin":"truncate","Version":"%{VERSION}","Type":"core","Info":"Handles TRUNCATE statements on distributed tables"},{"Package":"manticoresoftware/buddy-plugin-metrics","Plugin":"metrics","Version":"%{VERSION}","Type":"core","Info":"Returns Prometheus metrics"}]}]
+ [{"total":28,"error":"","warning":"","columns":[{"Package":{"type":"string"}},{"Plugin":{"type":"string"}},{"Version":{"type":"string"}},{"Type":{"type":"string"}},{"Info":{"type":"string"}}],"data":[{"Package":"manticoresoftware/buddy-plugin-empty-string","Plugin":"empty-string","Version":"3.39.1-19-g120920","Type":"core","Info":"Handles empty queries, which can occur when trimming comments or dealing with specific SQL protocol instructions in comments that are not supported"},{"Package":"manticoresoftware/buddy-plugin-backup","Plugin":"backup","Version":"3.39.1-19-g120920","Type":"core","Info":"BACKUP sql statement"},{"Package":"manticoresoftware/buddy-plugin-emulate-elastic","Plugin":"emulate-elastic","Version":"3.39.1-19-g120920","Type":"core","Info":"Emulates some Elastic queries and generates responses as if they were made by ES"},{"Package":"manticoresoftware/buddy-plugin-fuzzy","Plugin":"fuzzy","Version":"3.39.1-19-g120920","Type":"core","Info":"Fuzzy search plugin. It helps to find the best match for a given query."},{"Package":"manticoresoftware/buddy-plugin-create-table","Plugin":"create-table","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables tables copying; handles CREATE TABLE statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-create-cluster","Plugin":"create-cluster","Version":"3.39.1-19-g120920","Type":"core","Info":"Enable CREATE CLUSTER IF NOT EXISTS statements"},{"Package":"manticoresoftware/buddy-plugin-drop","Plugin":"drop","Version":"3.39.1-19-g120920","Type":"core","Info":"Handles DROP statements with MySQL options not supported by Manticore"},{"Package":"manticoresoftware/buddy-plugin-insert","Plugin":"insert","Version":"3.39.1-19-g120920","Type":"core","Info":"Auto schema support. When an insert operation is performed and the table does not exist, it creates it with data types auto-detection"},{"Package":"manticoresoftware/buddy-plugin-alias","Plugin":"alias","Version":"3.39.1-19-g120920","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-select","Plugin":"select","Version":"3.39.1-19-g120920","Type":"core","Info":"Various SELECTs handlers needed for mysqldump and other software support, mostly aiming to work similarly to MySQL"},{"Package":"manticoresoftware/buddy-plugin-show","Plugin":"show","Version":"3.39.1-19-g120920","Type":"core","Info":"Various \"show\" queries handlers, for example, `show queries`, `show fields`, `show full tables`, etc"},{"Package":"manticoresoftware/buddy-plugin-plugin","Plugin":"plugin","Version":"3.39.1-19-g120920","Type":"core","Info":"Core logic for plugin support and helpers. Also handles `create buddy plugin`, `delete buddy plugin`, and `show buddy plugins`"},{"Package":"manticoresoftware/buddy-plugin-test","Plugin":"test","Version":"3.39.1-19-g120920","Type":"core","Info":"Test plugin, used exclusively for tests"},{"Package":"manticoresoftware/buddy-plugin-alter-column","Plugin":"alter-column","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables adding/dropping table fields(columns)"},{"Package":"manticoresoftware/buddy-plugin-alter-distributed-table","Plugin":"alter-distributed-table","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables alter for distributed tables"},{"Package":"manticoresoftware/buddy-plugin-alter-rename-table","Plugin":"alter-rename-table","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables alter table rename"},{"Package":"manticoresoftware/buddy-plugin-auth","Plugin":"auth","Version":"3.39.1-19-g120920","Type":"core","Info":"Handles commands related to Authentication"},{"Package":"manticoresoftware/buddy-plugin-modify-table","Plugin":"modify-table","Version":"3.39.1-19-g120920","Type":"core","Info":"Assists in standardizing options in create and alter table statements to show option=1 for integers."},{"Package":"manticoresoftware/buddy-plugin-knn","Plugin":"knn","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables KNN by document id"},{"Package":"manticoresoftware/buddy-plugin-replace","Plugin":"replace","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables partial replaces"},{"Package":"manticoresoftware/buddy-plugin-queue","Plugin":"queue","Version":"3.39.1-19-g120920","Type":"core","Info":""},{"Package":"manticoresoftware/buddy-plugin-sharding","Plugin":"sharding","Version":"3.39.1-19-g120920","Type":"core","Info":"Enables sharded tables."},{"Package":"manticoresoftware/buddy-plugin-update","Plugin":"update","Version":"3.39.1-19-g120920","Type":"core","Info":"Handles UPDATE statements sent by MySQL tools making possible for them to update full-text fields"},{"Package":"manticoresoftware/buddy-plugin-autocomplete","Plugin":"autocomplete","Version":"3.39.1-19-g120920","Type":"core","Info":"Autocomplete plugin that offers suggestions based on the starting query"},{"Package":"manticoresoftware/buddy-plugin-cli-table","Plugin":"cli-table","Version":"3.39.1-19-g120920","Type":"core","Info":"/cli endpoint based on /cli_json - outputs query result as a table"},{"Package":"manticoresoftware/buddy-plugin-distributed-insert","Plugin":"distributed-insert","Version":"3.39.1-19-g120920","Type":"core","Info":"The plugin enables data insertion into distributed sharded tables."},{"Package":"manticoresoftware/buddy-plugin-truncate","Plugin":"truncate","Version":"3.39.1-19-g120920","Type":"core","Info":"Handles TRUNCATE statements on distributed tables"},{"Package":"manticoresoftware/buddy-plugin-metrics","Plugin":"metrics","Version":"3.39.1-19-g120920","Type":"core","Info":"Returns Prometheus metrics"}]}]
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20where%20match('exmaple')%20option%20fuzzy=1"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?show%20fields%20from%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?create%20table%20t_copy2%20like%20t"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli_json?select%20*%20from%20t%20limit%201"
––– output –––
OK

@github-actions
Copy link

🐳 Docker Images Pushed

Buddy Test-Kit Images:

  • Branch image: ghcr.io/manticoresoftware/manticoresearch:test-kit-feat_2983-auth-permissions-buddy
  • Commit image: ghcr.io/manticoresoftware/manticoresearch:test-kit-1a944ad7-buddy

Base image used: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest

These images contain the buddy code from this PR and can be used for testing.

Built from commit: 1209204

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants