Skip to content

Commit ef9bc47

Browse files
author
Matt Apperson
authored
[Ingest] Adds support for a working default output (#51841)
* aadding config * add working settings to the default output * remove default username and password * update libs
1 parent ce760f0 commit ef9bc47

6 files changed

Lines changed: 36 additions & 21 deletions

File tree

x-pack/legacy/plugins/ingest/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { mappings } from './server/mappings';
1414

1515
export const config = Joi.object({
1616
enabled: Joi.boolean().default(true),
17+
defaultOutputHost: Joi.string().default('http://localhost:9200'),
1718
}).default();
1819

1920
export function ingest(kibana: any) {

x-pack/legacy/plugins/ingest/server/libs/adapters/policy/adapter_types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ export enum InputType {
132132
*/
133133
export interface Output {
134134
api_token?: string;
135+
username?: string;
136+
password?: string;
135137
/**
136138
* contains everything not otherwise specified (e.g. TLS, etc)
137139
*/

x-pack/legacy/plugins/ingest/server/libs/compose/kibana.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import { PLUGIN } from '../../../common/constants';
99
import { CONFIG_PREFIX } from '../../../common/constants/plugin';
1010
import { DatabaseKbnESPlugin } from '../adapters/es_database/adapter_types';
1111
import { ESDatabaseAdapter } from '../adapters/es_database/default';
12+
import { KibanaLegacyServer } from '../adapters/framework/adapter_types';
1213
import { BackendFrameworkAdapter } from '../adapters/framework/default';
13-
import { ServerLibs } from '../types';
14-
import { BackendFrameworkLib } from './../framework';
15-
import { PolicyLib } from '../policy';
1614
import { PolicyAdapter } from '../adapters/policy/default';
1715
import { SODatabaseAdapter } from '../adapters/so_database/default';
18-
import { KibanaLegacyServer } from '../adapters/framework/adapter_types';
19-
import { OutputsLib } from '../outputs';
2016
import { DatasourcesLib } from '../datasources';
17+
import { OutputsLib } from '../outputs';
18+
import { PolicyLib } from '../policy';
19+
import { ServerLibs } from '../types';
20+
import { BackendFrameworkLib } from './../framework';
2121

2222
export function compose(server: KibanaLegacyServer): ServerLibs {
2323
const framework = new BackendFrameworkLib(
@@ -26,7 +26,7 @@ export function compose(server: KibanaLegacyServer): ServerLibs {
2626
const database = new ESDatabaseAdapter(server.plugins.elasticsearch as DatabaseKbnESPlugin);
2727
const soDatabase = new SODatabaseAdapter(server.savedObjects, server.plugins.elasticsearch);
2828

29-
const outputs = new OutputsLib();
29+
const outputs = new OutputsLib({ framework });
3030

3131
const datasources = new DatasourcesLib();
3232

x-pack/legacy/plugins/ingest/server/libs/compose/memorized.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
import { camelCase } from 'lodash';
87
import { callWhenOnline } from '@mattapperson/slapshot/lib/call_when_online';
8+
import { camelCase } from 'lodash';
99
import { PLUGIN } from '../../../common/constants';
1010
import { CONFIG_PREFIX } from '../../../common/constants/plugin';
1111
import { ESDatabaseAdapter } from '../adapters/es_database/default';
12+
import { KibanaLegacyServer } from '../adapters/framework/adapter_types';
1213
import { BackendFrameworkAdapter } from '../adapters/framework/default';
13-
import { ServerLibs } from '../types';
14-
import { BackendFrameworkLib } from './../framework';
15-
import { PolicyLib } from '../policy';
14+
import { MemorizedBackendFrameworkAdapter } from '../adapters/framework/memorized';
1615
import { PolicyAdapter } from '../adapters/policy/default';
17-
import { SODatabaseAdapter } from '../adapters/so_database/default';
18-
import { KibanaLegacyServer } from '../adapters/framework/adapter_types';
1916
import { MemorizedPolicyAdapter } from '../adapters/policy/memorized';
20-
import { MemorizedBackendFrameworkAdapter } from '../adapters/framework/memorized';
21-
import { OutputsLib } from '../outputs';
17+
import { SODatabaseAdapter } from '../adapters/so_database/default';
2218
import { DatasourcesLib } from '../datasources';
19+
import { OutputsLib } from '../outputs';
20+
import { PolicyLib } from '../policy';
21+
import { ServerLibs } from '../types';
22+
import { BackendFrameworkLib } from './../framework';
2323

2424
export function compose(servers?: {
2525
shutdown: () => Promise<void>;
@@ -52,7 +52,7 @@ export function compose(servers?: {
5252
) as BackendFrameworkAdapter;
5353
const framework = new BackendFrameworkLib(memorizedFrameworkAdapter);
5454

55-
const outputs = new OutputsLib();
55+
const outputs = new OutputsLib({ framework });
5656

5757
const datasources = new DatasourcesLib();
5858

x-pack/legacy/plugins/ingest/server/libs/framework.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
import { Request } from 'src/legacy/server/kbn_server';
87
import { get } from 'lodash';
9-
import { BackendFrameworkAdapter } from './adapters/framework/default';
8+
import { Request } from 'src/legacy/server/kbn_server';
109
import { LicenseType } from '../../common/types/security';
10+
import { BackendFrameworkAdapter } from './adapters/framework/default';
1111

1212
export class BackendFrameworkLib {
1313
/**
@@ -37,9 +37,11 @@ export class BackendFrameworkLib {
3737
public getCurrentUser(request: Request) {
3838
return this.adapter.getUser(request);
3939
}
40+
41+
public getSetting(setting: 'defaultOutputHost'): string;
4042
public getSetting(setting: 'defaultUserRoles'): string[];
41-
public getSetting(setting: 'defaultUserRoles') {
42-
return this.adapter.getSetting(`xpack.ingest-do-not-disable.${setting}`);
43+
public getSetting(setting: string): string | string[] {
44+
return this.adapter.getSetting(`xpack.ingest.${setting}`) as any;
4345
}
4446
public expose(name: string, thing: any) {
4547
return this.adapter.expose(name, thing);

x-pack/legacy/plugins/ingest/server/libs/outputs.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,25 @@
55
*/
66
import { FrameworkUser } from './adapters/framework/adapter_types';
77
import { Output, OutputType } from './adapters/policy/adapter_types';
8+
import { BackendFrameworkLib } from './framework';
89

910
export class OutputsLib {
10-
public async getByIDs(_user: FrameworkUser, _ids: string[]): Promise<Output[]> {
11+
constructor(
12+
private readonly libs: {
13+
framework: BackendFrameworkLib;
14+
}
15+
) {}
16+
public async getByIDs(_user: FrameworkUser, ids: string[]): Promise<Output[]> {
17+
if (ids.length > 0 || ids[0] !== 'default') {
18+
throw new Error('Currently, only a default output is supported');
19+
}
20+
1121
return [
1222
{
1323
id: 'default',
1424
name: 'default',
1525
type: OutputType.Elasticsearch,
16-
url: '<Kibana URL>',
26+
url: this.libs.framework.getSetting('defaultOutputHost'),
1727
ingest_pipeline: 'default',
1828
},
1929
];

0 commit comments

Comments
 (0)