Skip to content

Commit

Permalink
[Ent Search Plugin] Fix loading initial plugin data, save kbn version…
Browse files Browse the repository at this point in the history
… in kea, fix connector img version (elastic#199777)

## Summary

PR is a bugfix to dynamically populate the `version` of the connectors
docker image shown in the onboarding. It's hardcoded to `8.15.0` now
....

Ideally we want to backport this to 8.16.1 +

Changes:
- Given that we are already getting
[kibanaVersion](https://github.com/elastic/kibana/blob/main/x-pack/plugins/enterprise_search/public/applications/index.tsx#L65)
from the
[backend](https://github.com/elastic/kibana/blob/main/x-pack/plugins/enterprise_search/public/plugin.ts#L212),
I'm saving the version in `KibanaLogic` reducer and use it to popuale
the docker image version
- I realised that because of [this
change](elastic@664c1a0#diff-19a48c92980fd550e48c5e1d4d1f9a2bec4d309909b7cfa693264c92b387fe3dR95)
~10 months ago, we stopped passing plugin data, due to `if
(!this.config.host) return; // No API to call` therefore I removed this
line to fix this. Why I think it's safe to merge?
- It was only added 10 months ago, before things were working without
this extra if statement
- The backend logic handles the non-existent host: see
[here](https://github.com/elastic/kibana/blob/main/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts#L45-L61)
- We are guaranteed that other config fields exist, see [config
schema](https://github.com/elastic/kibana/blob/d276b4899533b0bde2038c7fedfed7c30a74a80b/x-pack/plugins/enterprise_search/server/index.ts#L16-L42)

<img width="1204" alt="Screenshot 2024-11-13 at 10 51 36"
src="https://github.com/user-attachments/assets/dbd2395b-00e5-4331-a9be-cb2a87133321">

### Checklist

Delete any items that are not applicable to this PR.


- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Elastic Machine <[email protected]>
  • Loading branch information
3 people authored and CAWilson94 committed Dec 12, 2024
1 parent 184c392 commit 5e6a204
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export const mockKibanaValues = {
indexMappingComponent: null,
isCloud: false,
isSidebarEnabled: true,
kibanaVersion: null,
lens: {
EmbeddableComponent: jest.fn(),
stateHelperApi: jest.fn().mockResolvedValue({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,14 @@ export interface DockerInstructionsStepProps {
hasApiKey: boolean;
isWaitingForConnector: boolean;
serviceType: string;
connectorVersion: string;
}
export const DockerInstructionsStep: React.FC<DockerInstructionsStepProps> = ({
connectorId,
isWaitingForConnector,
serviceType,
apiKeyData,
connectorVersion,
}) => {
const [isOpen, setIsOpen] = React.useState<EuiAccordionProps['forceState']>('open');
const { elasticsearchUrl } = useCloudDetails();
Expand Down Expand Up @@ -163,7 +165,7 @@ export const DockerInstructionsStep: React.FC<DockerInstructionsStepProps> = ({
showTopBar={false}
languageType="bash"
codeSnippet={getRunFromDockerSnippet({
version: '8.15.0',
version: connectorVersion,
})}
/>
</EuiAccordion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import { ConnectorStatus } from '@kbn/search-connectors';

import { Status } from '../../../../../common/types/api';

import { KibanaLogic } from '../../../shared/kibana';
import { GetApiKeyByIdLogic } from '../../api/api_key/get_api_key_by_id_api_logic';

import { GenerateConnectorApiKeyApiLogic } from '../../api/connector/generate_connector_api_key_api_logic';
Expand All @@ -48,6 +49,7 @@ export const ConnectorDeployment: React.FC = () => {
const [selectedDeploymentMethod, setSelectedDeploymentMethod] = useState<'docker' | 'source'>(
'docker'
);
const { kibanaVersion } = useValues(KibanaLogic);
const { generatedData, isGenerateLoading } = useValues(DeploymentLogic);
const { index, isLoading, connector, connectorId } = useValues(ConnectorViewLogic);
const { fetchConnector } = useActions(ConnectorViewLogic);
Expand Down Expand Up @@ -199,6 +201,7 @@ export const ConnectorDeployment: React.FC = () => {
serviceType={connector.service_type ?? ''}
isWaitingForConnector={isWaitingForConnector}
apiKeyData={apiKey}
connectorVersion={kibanaVersion ?? ''}
/>
)}
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ export const renderApp = (
history,
indexMappingComponent,
isSidebarEnabled,
kibanaVersion,
lens,
ml,
navigateToUrl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export interface KibanaLogicProps {
history: ScopedHistory;
indexMappingComponent?: React.FC<IndexMappingProps>;
isSidebarEnabled: boolean;
kibanaVersion?: string;
lens?: LensPublicStart;
ml?: MlPluginStart;
navigateToUrl: RequiredFieldsOnly<ApplicationStart['navigateToUrl']>;
Expand Down Expand Up @@ -94,6 +95,7 @@ export interface KibanaValues {
indexMappingComponent: React.FC<IndexMappingProps> | null;
isCloud: boolean;
isSidebarEnabled: boolean;
kibanaVersion: string | null;
lens: LensPublicStart | null;
ml: MlPluginStart | null;
navigateToUrl(path: string, options?: CreateHrefOptions): Promise<void>;
Expand Down Expand Up @@ -133,6 +135,7 @@ export const KibanaLogic = kea<MakeLogicType<KibanaValues>>({
history: [props.history, {}],
indexMappingComponent: [props.indexMappingComponent || null, {}],
isSidebarEnabled: [props.isSidebarEnabled, {}],
kibanaVersion: [props.kibanaVersion || null, {}],
lens: [props.lens || null, {}],
ml: [props.ml || null, {}],
navigateToUrl: [
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/enterprise_search/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,6 @@ export class EnterpriseSearchPlugin implements Plugin {
this.esConfig = { elasticsearch_host: ELASTICSEARCH_URL_PLACEHOLDER };
}

if (!this.config.host) return; // No API to call
if (this.hasInitialized) return; // We've already made an initial call

try {
Expand Down

0 comments on commit 5e6a204

Please sign in to comment.