[Inference API] Add mapping and model changes for exposing endpoint heuristics#141393
Merged
jonathan-buttner merged 75 commits intoelastic:mainfrom Feb 13, 2026
Merged
[Inference API] Add mapping and model changes for exposing endpoint heuristics#141393jonathan-buttner merged 75 commits intoelastic:mainfrom
jonathan-buttner merged 75 commits intoelastic:mainfrom
Conversation
Collaborator
|
Hi @jonathan-buttner, I've created a changelog YAML for you. |
DonalEvans
reviewed
Feb 10, 2026
...ence/src/test/java/org/elasticsearch/xpack/inference/parser/EndpointMetadataParserTests.java
Outdated
Show resolved
Hide resolved
...ence/src/test/java/org/elasticsearch/xpack/inference/parser/EndpointMetadataParserTests.java
Outdated
Show resolved
Hide resolved
...ence/src/test/java/org/elasticsearch/xpack/inference/parser/EndpointMetadataParserTests.java
Outdated
Show resolved
Hide resolved
...ence/src/test/java/org/elasticsearch/xpack/inference/parser/EndpointMetadataParserTests.java
Show resolved
Hide resolved
...inference/services/elastic/authorization/ElasticInferenceServiceAuthorizationModelTests.java
Outdated
Show resolved
Hide resolved
...rence/services/elastic/response/ElasticInferenceServiceAuthorizationResponseEntityTests.java
Outdated
Show resolved
Hide resolved
...rence/services/elastic/response/ElasticInferenceServiceAuthorizationResponseEntityTests.java
Outdated
Show resolved
Hide resolved
DonalEvans
approved these changes
Feb 10, 2026
Jan-Kazlouski-elastic
approved these changes
Feb 11, 2026
sidosera
pushed a commit
to sidosera/elasticsearch
that referenced
this pull request
Feb 13, 2026
…euristics (elastic#141393) * Starting cluster state changes * Adding metadata model and tests * Adding model configuration changes * Update docs/changelog/141393.yaml * [CI] Update transport version definitions * [CI] Auto commit changes from spotless * Switching to fingerprint * [CI] Auto commit changes from spotless * Adding heuristics tests to the auth model * Trying to fix transport version * [CI] Update transport version definitions * Fixing transport version and working response entity tests * [CI] Auto commit changes from spotless * Working ElasticInferenceServiceAuthorizationModelTests tests * Refactoring ElasticInferenceService to include endpoint metadata * Tests working * Updating EndpointMetadata to include display object * [CI] Auto commit changes from spotless * Undo esql changes * Fixing transport version * Adding hidden field tests and fixing mapping * Adding more tests and refactoring * Fixing tests * Excluding empty metadata * Adding rolling upgrade test * [CI] Auto commit changes from spotless * Removing rolling upgrade tests * Fixing tests * Skipping auth call if cluster is currently upgrading * Refactoring actions * Fixing transport version * Adding more tests * [CI] Auto commit changes from spotless * Exclude empty metadata from cluster state * Fix transport version * Fixing long line * Addressing feedback * Finish Jan feedback * [CI] Auto commit changes from spotless * Addressing remaining feedback * Adding some comments for ModelConfigurations * [CI] Auto commit changes from spotless * Addressing Donal's feedback v2 * Switching to display_name * Adding endpoint metadata toXContent test * Adding tests for minimal service settings --------- Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
4 tasks
dimitris-athanasiou
added a commit
to dimitris-athanasiou/elasticsearch
that referenced
this pull request
Feb 25, 2026
This PR continues from elastic#141393. It wires in parsing the endpoint metadata from the persisted endpoints. This means endpoint metadata will now be available from the GET inference APIs. As we had to make `UnparsedModel` the way to parse persisted configs for EIS, I took the opportunity to refactor the `InferenceService.parsePersistedConfig` methods so that there is now only one, the one expecting an `UnparsedModel`. This is a nice clean up in that area. Even after this PR there is quite some duplication across services for their parse request/persistent config code. I'll follow up to clean further in separate PRs in the future.
dimitris-athanasiou
added a commit
that referenced
this pull request
Mar 2, 2026
…3081) This PR continues from #141393. It wires in parsing the endpoint metadata from the persisted endpoints. This means endpoint metadata will now be available from the GET inference APIs. As we had to make `UnparsedModel` the way to parse persisted configs for EIS, I took the opportunity to refactor the `InferenceService.parsePersistedConfig` methods so that there is now only one, the one expecting an `UnparsedModel`. Also, I'm removing the duplication by pulling this method up in `SenderService`.
tballison
pushed a commit
to tballison/elasticsearch
that referenced
this pull request
Mar 3, 2026
…stic#143081) This PR continues from elastic#141393. It wires in parsing the endpoint metadata from the persisted endpoints. This means endpoint metadata will now be available from the GET inference APIs. As we had to make `UnparsedModel` the way to parse persisted configs for EIS, I took the opportunity to refactor the `InferenceService.parsePersistedConfig` methods so that there is now only one, the one expecting an `UnparsedModel`. Also, I'm removing the duplication by pulling this method up in `SenderService`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is the first stage to implement exposing the endpoint heuristics. To facility this the following changes were made:
Example document
ModelConfigurationsto accept theEndpointMetadataand store itinternalobject when using the filtered methodInferenceServiceso theparsePersistedConfig*methods can also take anUnparsedModelEndpointMetadatais parsed within theModelRegistryat the same place as the task type and service nameEndpointMetadatawithin their constructorsModelConfigurationsmetadatafield being written and potentially causing unanticipated validation/mapping issues, the authorization polling logic will skip sending the authorization GET request until all nodes in the cluster can handle the new metadata fieldThe endpoint metadata isn't used at the moment. The cluster state and inference index will contain the metadata (for all endpoints). For EIS endpoints that already existed in the index, the metadata field will default to the
EMPTYimplementation. For new EIS endpoints, the metadata will be populated with the fields that EIS currently returns (properties,status,release_date,end_of_life_date). The other fields likefingerprintandkibana_connector_namewill remain null. Theversionfield will be set to0.This PR doesn't implement the logic to update the old endpoints. That logic will be added in a follow up PR.
User created endpoints will have metadata set to the
EMPTYstate.The empty metadata state is not serialized to avoid a mixed cluster mapping failure where older nodes' mapping hasn't been updated yet.
Testing
Our rolling upgrade tests initially caught the mapping issue. Those will fail if we persist the new field during an upgrade.