kibana/packages/kbn-data-stream-adapter
Pierre Gayvallet 1dee2872f3
Bump @elastic/elasticsearch to 8.14.0 (reloaded) (#186848)
## Summary

Reopening https://github.com/elastic/kibana/pull/186326 with my account,
non-internal PRs are just terrible to work with

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tiago Costa <tiago.costa@elastic.co>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@elastic.co>
2024-06-26 08:29:15 -07:00
..
src Bump @elastic/elasticsearch to 8.14.0 (reloaded) (#186848) 2024-06-26 08:29:15 -07:00
index.ts [Security Solution] Data quality dashboard persistence (#173185) 2024-01-24 10:20:49 -07:00
jest.config.js [Security Solution] Data quality dashboard persistence (#173185) 2024-01-24 10:20:49 -07:00
kibana.jsonc [Security Solution] Data quality dashboard persistence (#173185) 2024-01-24 10:20:49 -07:00
package.json [Security Solution] Data quality dashboard persistence (#173185) 2024-01-24 10:20:49 -07:00
README.md [Security Solution] Data quality dashboard persistence (#173185) 2024-01-24 10:20:49 -07:00
tsconfig.json [DataStreamAdapter] Remove alerts-as-data package dependency (#178127) 2024-03-06 17:51:17 +01:00

@kbn/data-stream-adapter

Utility library for Elasticsearch data stream management.

DataStreamAdapter

Manage single data streams. Example:

// Setup
const dataStream = new DataStreamAdapter('my-awesome-datastream', { kibanaVersion: '8.12.1' });

dataStream.setComponentTemplate({
    name: 'awesome-component-template',
    fieldMap: {
        'awesome.field1: { type: 'keyword', required: true },
        'awesome.nested.field2: { type: 'number', required: false },
        // ...
    },
});

dataStream.setIndexTemplate({
    name: 'awesome-index-template',
    componentTemplateRefs: ['awesome-component-template', 'ecs-component-template'],
    template: {
        lifecycle: {
            data_retention: '5d',
        },
    },
});

// Start
await dataStream.install({ logger, esClient, pluginStop$ }); // Installs templates and the data stream, or updates existing.

DataStreamSpacesAdapter

Manage data streams per space. Example:

// Setup
const spacesDataStream = new DataStreamSpacesAdapter('my-awesome-datastream', { kibanaVersion: '8.12.1' });

spacesDataStream.setComponentTemplate({
    name: 'awesome-component-template',
    fieldMap: {
        'awesome.field1: { type: 'keyword', required: true },
        'awesome.nested.field2: { type: 'number', required: false },
        // ...
    },
});

spacesDataStream.setIndexTemplate({
    name: 'awesome-index-template',
    componentTemplateRefs: ['awesome-component-template', 'ecs-component-template'],
    template: {
        lifecycle: {
            data_retention: '5d',
        },
    },
});

// Start
await spacesDataStream.install({ logger, esClient, pluginStop$ }); // Installs templates and updates existing data streams.

// Create a space data stream on the fly
await spacesDataStream.installSpace('space2'); // creates 'my-awesome-datastream-space2' data stream if it does not exist.