Skip to content

Commit

Permalink
Canvas saved objects for sample data (elastic#24347)
Browse files Browse the repository at this point in the history
* Canvas saved objects for sample data

* fix line break in MACHINE element

* store canvas saved objects in json files instead of js files to avoid build problems

* remove logging statement

* set canvas-workpad timestamps to current time so they are displayed at top of list when sorted by date
  • Loading branch information
nreese committed Oct 23, 2018
1 parent 7bd81b8 commit e86f588
Show file tree
Hide file tree
Showing 7 changed files with 2,540 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/server/sample_data/routes/install.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,13 @@ export const createInstallRoute = () => ({
}
}

const createResults = await request.getSavedObjectsClient().bulkCreate(sampleDataset.savedObjects, { overwrite: true });
let createResults;
try {
createResults = await request.getSavedObjectsClient().bulkCreate(sampleDataset.savedObjects, { overwrite: true });
} catch (err) {
server.log(['warning'], `bulkCreate failed, error: ${err.message}`);
return reply(`Unable to load kibana saved objects, see kibana logs for details`).code(500);
}
const errors = createResults.saved_objects.filter(savedObjectCreateResult => {
return savedObjectCreateResult.hasOwnProperty('error');
});
Expand Down
12 changes: 12 additions & 0 deletions src/server/sample_data/sample_data_mixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,18 @@ export function sampleDataMixin(kbnServer, server) {
sampleDatasets.push(value);
});

server.decorate('server', 'addSavedObjectsToSampleDataset', (id, savedObjects) => {
const sampleDataset = sampleDatasets.find(sampleDataset => {
return sampleDataset.id === id;
});

if (!sampleDataset) {
throw new Error(`Unable to find sample dataset with id: ${id}`);
}

sampleDataset.savedObjects = sampleDataset.savedObjects.concat(savedObjects);
});

server.registerSampleDataset(flightsSpecProvider);
server.registerSampleDataset(logsSpecProvider);
server.registerSampleDataset(ecommerceSpecProvider);
Expand Down
28 changes: 28 additions & 0 deletions x-pack/plugins/canvas/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ import { functionsRegistry } from './common/lib/functions_registry';
import { commonFunctions } from './common/functions';
import { loadServerPlugins } from './server/lib/load_server_plugins';
import { registerCanvasUsageCollector } from './server/usage';
import {
ecommerceSavedObjects,
flightsSavedObjects,
webLogsSavedObjects,
} from './server/sample_data';

export default function(server /*options*/) {
server.injectUiAppVars('canvas', () => {
Expand All @@ -31,4 +36,27 @@ export default function(server /*options*/) {

loadServerPlugins().then(() => routes(server));
registerCanvasUsageCollector(server);

const now = new Date();
const nowTimestamp = now.toISOString();
function updateCanvasWorkpadTimestamps(savedObjects) {
return savedObjects.map(savedObject => {
if (savedObject.type === 'canvas-workpad') {
savedObject.attributes['@timestamp'] = nowTimestamp;
savedObject.attributes['@created'] = nowTimestamp;
}

return savedObject;
});
}

server.addSavedObjectsToSampleDataset(
'ecommerce',
updateCanvasWorkpadTimestamps(ecommerceSavedObjects)
);
server.addSavedObjectsToSampleDataset(
'flights',
updateCanvasWorkpadTimestamps(flightsSavedObjects)
);
server.addSavedObjectsToSampleDataset('logs', updateCanvasWorkpadTimestamps(webLogsSavedObjects));
}
1,218 changes: 1,218 additions & 0 deletions x-pack/plugins/canvas/server/sample_data/ecommerce_saved_objects.json

Large diffs are not rendered by default.

Loading

0 comments on commit e86f588

Please sign in to comment.