2021-07-06 20:03:40 +00:00
module . exports = {
friendlyName : 'Receive usage analytics' ,
2021-09-17 03:33:25 +00:00
description : 'Receive anonymous usage analytics from deployments of Fleet running in production. (Not fleetctl preview or dev-mode deployments.)' ,
2021-07-06 20:03:40 +00:00
inputs : {
2021-12-06 20:39:00 +00:00
anonymousIdentifier : { required : true , type : 'string' , example : '9pnzNmrES3mQG66UQtd29cYTiX2+fZ4CYxDvh495720=' , description : 'An anonymous identifier telling us which Fleet deployment this is.' , } ,
2021-07-06 20:03:40 +00:00
fleetVersion : { required : true , type : 'string' , example : 'x.x.x' } ,
2021-12-06 20:39:00 +00:00
licenseTier : { type : 'string' , isIn : [ 'free' , 'premium' , 'unknown' ] , defaultsTo : 'unknown' } ,
2021-07-06 20:03:40 +00:00
numHostsEnrolled : { required : true , type : 'number' , min : 0 , custom : ( num ) => Math . floor ( num ) === num } ,
2021-12-06 20:39:00 +00:00
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 } ,
2021-07-06 20:03:40 +00:00
} ,
exits : {
success : { description : 'Analytics data was stored successfully.' } ,
} ,
2021-12-06 20:39:00 +00:00
fn : async function ( inputs ) {
2021-07-06 20:03:40 +00:00
2021-12-06 20:39:00 +00:00
await HistoricalUsageSnapshot . create ( inputs ) ;
2021-07-06 20:03:40 +00:00
}
} ;