fleet/website/api/controllers/webhooks/receive-usage-analytics.js
gillespi314 6ee6dba4a4
Update anonymous usage statistics to record Fleet feature adoption (#3056)
* Collect additional anonymous usage statistics

* Update fleetdm.com and docs for usage stats

* Fix lint-go errors

* Fix failing test

* update webhook inputs

* Update receive-usage-analytics.js

* fix failing test

* Update statistics_test.go

Co-authored-by: eashaw <[email protected]>
2021-12-06 14:39:00 -06:00

38 lines
1.3 KiB
JavaScript
Vendored

module.exports = {
friendlyName: 'Receive usage analytics',
description: 'Receive anonymous usage analytics from deployments of Fleet running in production. (Not fleetctl preview or dev-mode deployments.)',
inputs: {
anonymousIdentifier: { required: true, type: 'string', example: '9pnzNmrES3mQG66UQtd29cYTiX2+fZ4CYxDvh495720=', description: 'An anonymous identifier telling us which Fleet deployment this is.', },
fleetVersion: { required: true, type: 'string', example: 'x.x.x' },
licenseTier: { type: 'string', isIn: ['free', 'premium', 'unknown'], defaultsTo: 'unknown' },
numHostsEnrolled: { required: true, type: 'number', min: 0, custom: (num) => Math.floor(num) === num },
numUsers: { type: 'number', defaultsTo: 0 },
numTeams: { type: 'number', defaultsTo: 0 },
numPolicies: { type: 'number', defaultsTo: 0 },
numLabels: { type: 'number', defaultsTo: 0 },
softwareInventoryEnabled: { type: 'boolean', defaultsTo: false },
vulnDetectionEnabled: { type: 'boolean', defaultsTo: false },
systemUsersEnabled: { type: 'boolean', defaultsTo: false },
hostStatusWebhookEnabled: { type: 'boolean', defaultsTo: false },
},
exits: {
success: { description: 'Analytics data was stored successfully.' },
},
fn: async function (inputs) {
await HistoricalUsageSnapshot.create(inputs);
}
};