diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 7d58f177e0764..122486a1d0e9d 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -159,6 +159,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { }, logstash: { base: `${ELASTIC_WEBSITE_URL}guide/en/logstash/${DOC_LINK_VERSION}`, + inputElasticAgent: `${ELASTIC_WEBSITE_URL}guide/en/logstash/${DOC_LINK_VERSION}/plugins-inputs-elastic_agent.html`, }, functionbeat: { base: `${ELASTIC_WEBSITE_URL}guide/en/beats/functionbeat/${DOC_LINK_VERSION}`, @@ -579,7 +580,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { guide: `${FLEET_DOCS}index.html`, fleetServer: `${FLEET_DOCS}fleet-server.html`, fleetServerAddFleetServer: `${FLEET_DOCS}add-a-fleet-server.html`, - settings: `${FLEET_DOCS}fleet-settings.html#fleet-server-hosts-setting`, + settings: `${FLEET_DOCS}fleet-settings.html`, settingsFleetServerHostSettings: `${FLEET_DOCS}fleet-settings.html#fleet-server-hosts-setting`, settingsFleetServerProxySettings: `${KIBANA_DOCS}fleet-settings-kb.html#fleet-data-visualizer-settings`, troubleshooting: `${FLEET_DOCS}fleet-troubleshooting.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 9a4ff1a58cf13..5e85d01c22ce2 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -141,6 +141,7 @@ export interface DocLinks { }; readonly logstash: { readonly base: string; + readonly inputElasticAgent: string; }; readonly functionbeat: { readonly base: string; diff --git a/x-pack/plugins/fleet/public/applications/fleet/app.tsx b/x-pack/plugins/fleet/public/applications/fleet/app.tsx index b5872b0a995a9..cd4ba97019766 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/app.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/app.tsx @@ -279,7 +279,7 @@ const FleetTopNav = memo( const topNavConfig: TopNavMenuData[] = [ { label: i18n.translate('xpack.fleet.appNavigation.sendFeedbackButton', { - defaultMessage: 'Send Feedback', + defaultMessage: 'Send feedback', }), iconType: 'popout', run: () => window.open(FEEDBACK_URL), diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx index 72642e68d85c1..c0b8f158f43de 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx @@ -46,7 +46,7 @@ export interface EditOutputFlyoutProps { const OUTPUT_TYPE_OPTIONS = [ { value: 'elasticsearch', text: 'Elasticsearch' }, - { value: 'logstash', text: 'Logstash (BETA)' }, + { value: 'logstash', text: 'Logstash (beta)' }, ]; export const EditOutputFlyout: React.FunctionComponent = ({ @@ -138,14 +138,15 @@ export const EditOutputFlyout: React.FunctionComponent = isLogstashOutput && ( - {i18n.translate('xpack.fleet.editOutputFlyout.learnMoreLink', { - defaultMessage: 'Learn more', - })} - + sendFeedback: ( + + + ), }} /> @@ -203,13 +204,13 @@ export const EditOutputFlyout: React.FunctionComponent = helpText={ + ), diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.test.tsx index 57b8681e834bb..ea0e1541fb41c 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.test.tsx @@ -72,7 +72,7 @@ describe('Output form validation', () => { const res = validateLogstashHosts(['https://test.fr:5044']); expect(res).toEqual([ - { index: 0, message: 'Invalid logstash host should not start with http(s)' }, + { index: 0, message: 'Host address must begin with a domain name or IP address' }, ]); }); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.tsx index 13b90fe661f61..9a95b9e834ec1 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_validators.tsx @@ -67,7 +67,7 @@ export function validateLogstashHosts(value: string[]) { if (val.match(/^http([s]){0,1}:\/\//)) { res.push({ message: i18n.translate('xpack.fleet.settings.outputForm.logstashHostProtocolError', { - defaultMessage: 'Invalid logstash host should not start with http(s)', + defaultMessage: 'Host address must begin with a domain name or IP address', }), index: idx, }); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx index 19ff2cbc61d77..1fdffd1c8a30b 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx @@ -34,21 +34,21 @@ export const LogstashInstructions = () => { title={ } > <> + ), @@ -71,14 +71,14 @@ const CollapsibleCallout: React.FunctionComponent = ({ children setIsOpen(false)}> ) : ( setIsOpen(true)} fill={true}> )} @@ -191,13 +191,6 @@ const LogstashInstructionSteps = () => { }} /> - - - - ), }, diff --git a/x-pack/plugins/fleet/server/types/models/output.test.ts b/x-pack/plugins/fleet/server/types/models/output.test.ts index 8ad2b14299c73..4441630653a99 100644 --- a/x-pack/plugins/fleet/server/types/models/output.test.ts +++ b/x-pack/plugins/fleet/server/types/models/output.test.ts @@ -14,12 +14,12 @@ describe('Output model', () => { }); it('should return an error for an invalid host', () => { - expect(validateLogstashHost('!@#%&!#!@')).toMatchInlineSnapshot(`"Invalid logstash host"`); + expect(validateLogstashHost('!@#%&!#!@')).toMatchInlineSnapshot(`"Invalid Logstash host"`); }); it('should return an error for an invalid host with http scheme', () => { expect(validateLogstashHost('https://test.fr:5044')).toMatchInlineSnapshot( - `"Invalid logstash host should not start with http(s)"` + `"Host address must begin with a domain name or IP address"` ); }); }); diff --git a/x-pack/plugins/fleet/server/types/models/output.ts b/x-pack/plugins/fleet/server/types/models/output.ts index 86b2a70a318fc..2354412d073b2 100644 --- a/x-pack/plugins/fleet/server/types/models/output.ts +++ b/x-pack/plugins/fleet/server/types/models/output.ts @@ -11,7 +11,7 @@ import { outputType } from '../../../common/constants'; export function validateLogstashHost(val: string) { if (val.match(/^http([s]){0,1}:\/\//)) { - return 'Invalid logstash host should not start with http(s)'; + return 'Host address must begin with a domain name or IP address'; } try { @@ -21,7 +21,7 @@ export function validateLogstashHost(val: string) { return 'Invalid host'; } } catch (err) { - return 'Invalid logstash host'; + return 'Invalid Logstash host'; } } diff --git a/x-pack/test/fleet_api_integration/apis/outputs/crud.ts b/x-pack/test/fleet_api_integration/apis/outputs/crud.ts index 14f2e53949cfc..43a3707a21963 100644 --- a/x-pack/test/fleet_api_integration/apis/outputs/crud.ts +++ b/x-pack/test/fleet_api_integration/apis/outputs/crud.ts @@ -148,7 +148,9 @@ export default function (providerContext: FtrProviderContext) { }) .expect(400); - expect(postResponse.message).match(/Invalid logstash host should not start with http\(s\)/); + expect(postResponse.message).match( + /Host address must begin with a domain name or IP address/ + ); }); it('should toggle default output when creating a new default output ', async function () {