-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Makes route prefix setting routeNamePrefix
optional
#868
Makes route prefix setting routeNamePrefix
optional
#868
Conversation
Signed-off-by: Darshit Chanpura <[email protected]>
Signed-off-by: Darshit Chanpura <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While renaming will "fix" the sample, it doesn't solve the underlying problem:
- There is no documentation to users on what is a valid name (and the OpenSearch error message isn't helpful enough to debug the problem without referencing the source code)
- It disallows the existing names for every plugin, many of which we would migrate, e.g.,
opensearch-alerting
,opensearch-anomaly-detection
,opensearch-knn
,opensearch-ml
, etc.
The name here isn't actually used for anything programmatic. It's purely decorative and is only used as the response to the initialization command where it is displayed in a log message, and as the "node name". Node names in OpenSearch use hyphens.
Our test cases still use sample-extension
as well, and don't fail on an illegal name there. If we're really set on disallowing a hyphen those need to validate the names.
I strongly prefer one of the following two options:
- Simply remove the
routePrefix()
method and replace it with a constant in each REST handler, or a local method in a REST handler that uses an allowed prefix - If you keep the route prefix method, add a
setRoutePrefix()
method that validates it's a legal prefix.
I agree. However routePrefix only comes into play if an extension developer decides to use it while registering a route. i.e. HelloWorld extension can also be registered without calling routePrefix method.
This would still work. |
Signed-off-by: Darshit Chanpura <[email protected]>
8ee2f54
Signed-off-by: Darshit Chanpura <[email protected]>
Added a validation check when extensionName is set to be later used by |
Signed-off-by: Darshit Chanpura <[email protected]>
…ePrefix` Signed-off-by: Darshit Chanpura <[email protected]>
Signed-off-by: Darshit Chanpura <[email protected]>
Signed-off-by: Darshit Chanpura <[email protected]>
helloWorld
routeNamePrefix
optional
@dbwiddis I've update the routePrefix setting to be completely optional in extension-settings.yml |
Signed-off-by: Darshit Chanpura <[email protected]>
src/main/java/org/opensearch/sdk/rest/BaseExtensionRestHandler.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/sdk/rest/BaseExtensionRestHandler.java
Outdated
Show resolved
Hide resolved
…te name prefix Signed-off-by: Darshit Chanpura <[email protected]>
0edce76
to
29c3999
Compare
@DarshitChanpura I'm still confused, isn't this PR purpose is to add hyphen to the extension name? |
If this is about adding support for hyphen then why not update the pattern here? |
We are not meddling with extension name any more. This PR talks about a new optional setting |
This can be addressed in future PRs. As of now there are no restrictions on the way extension is named. The restrictions only apply to |
The backport to
To backport manually, run these commands in your terminal: # Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/opensearch-sdk-java/backport-1.x 1.x
# Navigate to the new working tree
pushd ../.worktrees/opensearch-sdk-java/backport-1.x
# Create a new branch
git switch --create backport/backport-868-to-1.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9e31418e5642cd4772db8641d8baed2392480a16
# Push it to GitHub
git push --set-upstream origin backport/backport-868-to-1.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/opensearch-sdk-java/backport-1.x Then, create a pull request where the |
Cherry-picking this manually into #866 |
…ject#868) * Renames demo extension to `helloWorld` Signed-off-by: Darshit Chanpura <[email protected]> * Updates uniqueId to not reflect the change Signed-off-by: Darshit Chanpura <[email protected]> * Adds a validation check for setting extension name Signed-off-by: Darshit Chanpura <[email protected]> * Fixes checkstyle errors Signed-off-by: Darshit Chanpura <[email protected]> * Adds routePrefix as an optional setting in .yml Signed-off-by: Darshit Chanpura <[email protected]> * Updates dev guide to add documentation for the optional setting `routePrefix` Signed-off-by: Darshit Chanpura <[email protected]> * Renames `routePrefix` to `routeNamePrefix` Signed-off-by: Darshit Chanpura <[email protected]> * Renames erroneous instance of `hello-world` Signed-off-by: Darshit Chanpura <[email protected]> * Addresses PR feedback Signed-off-by: Darshit Chanpura <[email protected]> (cherry picked from commit 0103ada30250693c7b986a9667fd0060b414a66e) * Changes allowed route name prefixes Signed-off-by: Darshit Chanpura <[email protected]> * Fixes error message and removes hyphen from allowed characters in route name prefix Signed-off-by: Darshit Chanpura <[email protected]> --------- Signed-off-by: Darshit Chanpura <[email protected]> (cherry picked from commit 9e31418)
… Makes route prefix setting routeNamePrefix optional #868 (#866) * Register new routes via SDK as named routes (#827) * WIP on Handler naming and SSL Signed-off-by: Craig Perkins <[email protected]> * Add concept of extension shortname via settings Signed-off-by: Craig Perkins <[email protected]> * WIP on extension ssl Signed-off-by: Craig Perkins <[email protected]> * Get registry from runner Signed-off-by: Craig Perkins <[email protected]> * Read settings from extension config file Signed-off-by: Craig Perkins <[email protected]> * Update license headers Signed-off-by: Craig Perkins <[email protected]> * Run spotlessApply Signed-off-by: Craig Perkins <[email protected]> * Remove authz changes and only keep TLS Signed-off-by: Craig Perkins <[email protected]> * Remove authz changes and only keep TLS Signed-off-by: Craig Perkins <[email protected]> * Remove authz changes and only keep TLS Signed-off-by: Craig Perkins <[email protected]> * Remove authz changes and only keep TLS Signed-off-by: Craig Perkins <[email protected]> * Remove authz changes and only keep TLS Signed-off-by: Craig Perkins <[email protected]> * Update cert generation documents Signed-off-by: Craig Perkins <[email protected]> * Re-add authz changes for sample Hello world extension Signed-off-by: Craig Perkins <[email protected]> * Add ssl.transport.enabled in ExtensionsRunner Signed-off-by: Craig Perkins <[email protected]> * Name all HelloWorld extension routes Signed-off-by: Craig Perkins <[email protected]> * Run spotlessApply Signed-off-by: Craig Perkins <[email protected]> * Merge main into branch Signed-off-by: Craig Perkins <[email protected]> * Add instructions for running in SSL only mode Signed-off-by: Craig Perkins <[email protected]> * Add all SSL settings to extension settings Signed-off-by: Craig Perkins <[email protected]> * Update TestExtensionsRunner Signed-off-by: Craig Perkins <[email protected]> * Set default enforce_hostname_verification Signed-off-by: Craig Perkins <[email protected]> * Run spotlessApply Signed-off-by: Craig Perkins <[email protected]> * Respond to code review feedback Signed-off-by: Craig Perkins <[email protected]> * fix merge conflicts Signed-off-by: Craig Perkins <[email protected]> * Fix typos in debug messages Signed-off-by: Craig Perkins <[email protected]> * Add docstrings Signed-off-by: Craig Perkins <[email protected]> * Address code review feedback Signed-off-by: Craig Perkins <[email protected]> * Remove duplicate Signed-off-by: Craig Perkins <[email protected]> * Remove duplicate Signed-off-by: Craig Perkins <[email protected]> * Create ExtensionRouteHandlerFactory Signed-off-by: Craig Perkins <[email protected]> * Remove extension: from action naming Signed-off-by: Craig Perkins <[email protected]> * Add javadoc Signed-off-by: Craig Perkins <[email protected]> * Fix test compilation errors Signed-off-by: Craig Perkins <[email protected]> * Consolidate registerHandler Signed-off-by: Craig Perkins <[email protected]> * Fix missed registerHandler usage Signed-off-by: Craig Perkins <[email protected]> * Fix javadoc Signed-off-by: Craig Perkins <[email protected]> * Add method to check if class is initialized Signed-off-by: Craig Perkins <[email protected]> * Fix failing tests Signed-off-by: Craig Perkins <[email protected]> * Update helloworld-settings Signed-off-by: Craig Perkins <[email protected]> * Run spotlessApply Signed-off-by: Craig Perkins <[email protected]> * Run spotlessApply Signed-off-by: Craig Perkins <[email protected]> * Add shortExtensionName to BaseExtensionRouteHandler Signed-off-by: Craig Perkins <[email protected]> * Adds support for legacy action names while registering extension routes on extension start up Signed-off-by: Darshit Chanpura <[email protected]> * Modifies sample hello extension to conform to the new registration scheme Signed-off-by: Darshit Chanpura <[email protected]> * Renames route handlers Signed-off-by: Darshit Chanpura <[email protected]> * Adds certificate generation script Signed-off-by: Darshit Chanpura <[email protected]> * Fixes spotless errors Signed-off-by: Darshit Chanpura <[email protected]> * Fixes Javadoc Signed-off-by: Darshit Chanpura <[email protected]> * Cleans up route handlers to be more readable and adds an interface Signed-off-by: Darshit Chanpura <[email protected]> * Updates test to reflect changes in route handler signatures Signed-off-by: Darshit Chanpura <[email protected]> * Fixes slf4j gradle build issue Signed-off-by: Darshit Chanpura <[email protected]> * Fixes replaced named route tests Signed-off-by: Darshit Chanpura <[email protected]> * Changes the way named routes are serialized to conform to core and fixes tests Signed-off-by: Darshit Chanpura <[email protected]> * Removes mention of shortNames and uses extensionName as permission prefix Signed-off-by: Darshit Chanpura <[email protected]> * Used builder for named routes Signed-off-by: Darshit Chanpura <[email protected]> * Fixes broken changes Signed-off-by: Darshit Chanpura <[email protected]> * Updates dev guide to state to use credentials when registering extension while security is enabled Signed-off-by: Darshit Chanpura <[email protected]> * Replaces NamedRouteHandler and update logic to map route handlers for Rest request Signed-off-by: Darshit Chanpura <[email protected]> * Fixes typos Signed-off-by: Darshit Chanpura <[email protected]> * Removes references to ReplaceNamedRouteHandlers and DeprecatedNamedRouteHandlers Signed-off-by: Darshit Chanpura <[email protected]> * Addresses PR feedback Signed-off-by: Darshit Chanpura <[email protected]> * Refactors ReplacedRoute and deprecated route handlers to use RestResponse Signed-off-by: Darshit Chanpura <[email protected]> * Forces httpcore5 to 5.2.2 Signed-off-by: Darshit Chanpura <[email protected]> * Updates documentation Signed-off-by: Darshit Chanpura <[email protected]> * Addresses PR feedback Signed-off-by: Darshit Chanpura <[email protected]> * Fixes broken reference due to changes in core 52a5e3f6e0ca599e3193807134ea42660ecdd195 Signed-off-by: Darshit Chanpura <[email protected]> * Removes extra resolutionStrategy Signed-off-by: Darshit Chanpura <[email protected]> --------- Signed-off-by: Craig Perkins <[email protected]> Signed-off-by: Darshit Chanpura <[email protected]> Co-authored-by: Craig Perkins <[email protected]> (cherry picked from commit 09c22b0) * Makes route prefix setting `routeNamePrefix` optional (#868) * Renames demo extension to `helloWorld` Signed-off-by: Darshit Chanpura <[email protected]> * Updates uniqueId to not reflect the change Signed-off-by: Darshit Chanpura <[email protected]> * Adds a validation check for setting extension name Signed-off-by: Darshit Chanpura <[email protected]> * Fixes checkstyle errors Signed-off-by: Darshit Chanpura <[email protected]> * Adds routePrefix as an optional setting in .yml Signed-off-by: Darshit Chanpura <[email protected]> * Updates dev guide to add documentation for the optional setting `routePrefix` Signed-off-by: Darshit Chanpura <[email protected]> * Renames `routePrefix` to `routeNamePrefix` Signed-off-by: Darshit Chanpura <[email protected]> * Renames erroneous instance of `hello-world` Signed-off-by: Darshit Chanpura <[email protected]> * Addresses PR feedback Signed-off-by: Darshit Chanpura <[email protected]> (cherry picked from commit 0103ada30250693c7b986a9667fd0060b414a66e) * Changes allowed route name prefixes Signed-off-by: Darshit Chanpura <[email protected]> * Fixes error message and removes hyphen from allowed characters in route name prefix Signed-off-by: Darshit Chanpura <[email protected]> --------- Signed-off-by: Darshit Chanpura <[email protected]> (cherry picked from commit 9e31418)
This reverts commit 9e31418.
…pensearch-project#827) and Makes route prefix setting routeNamePrefix optional opensearch-project#868 (opensearch-project#866)" This reverts commit 32d6567.
…pensearch-project#827) and Makes route prefix setting routeNamePrefix optional opensearch-project#868 (opensearch-project#866)" This reverts commit 32d6567. Signed-off-by: Darshit Chanpura <[email protected]>
) and Makes route prefix setting routeNamePrefix optional #868" (#877) * Revert "[Backport 1.x] Register new routes via SDK as named routes (#827) and Makes route prefix setting routeNamePrefix optional #868 (#866)" This reverts commit 32d6567. Signed-off-by: Darshit Chanpura <[email protected]> * Updates extension() method call in build.gradle Signed-off-by: Darshit Chanpura <[email protected]> --------- Signed-off-by: Darshit Chanpura <[email protected]>
Description
Describe what this change achieves.
Issues Resolved
#827 (comment)
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.