import { produce } from 'immer' ; import { SavedObjectsType } from '../../../../../../src/core/server' ; import { savedQuerySavedObjectType , packSavedObjectType } from '../../../common/types' ; export const savedQuerySavedObjectMappings = { properties : { description : { type : 'text' , } , id : { type : 'keyword' , } , query : { type : 'text' , } , created_at : { type : 'date' , } , created_by : { type : 'text' , } , platform : { type : 'keyword' , } , version : { type : 'keyword' , } , updated_at : { type : 'date' , } , updated_by : { type : 'text' , } , interval : { type : 'keyword' , } , ecs_mapping : { type : 'object' , enabled : false , } , } , } ; export const savedQueryType = { name : savedQuerySavedObjectType , hidden : false , namespaceType : 'multiple-isolated' , mappings : savedQuerySavedObjectMappings , management : { importableAndExportable : true , getTitle : ( savedObject ) => savedObject . attributes . id , getEditUrl : ( savedObject ) => `/saved_queries/${ savedObject . id }/edit` , getInAppUrl : ( savedObject ) => ( { path : `/app/osquery/saved_queries/${ savedObject . id }` , uiCapabilitiesPath : 'osquery.read' , } ) , } , } ; export const packSavedObjectMappings = { properties : { description : { type : 'text' , } , name : { type : 'text' , } , created_at : { type : 'date' , } , created_by : { type : 'keyword' , } , updated_at : { type : 'date' , } , updated_by : { type : 'keyword' , } , enabled : { type : 'boolean' , } , queries : { properties : { id : { type : 'keyword' , } , query : { type : 'text' , } , interval : { type : 'text' , } , platform : { type : 'keyword' , } , version : { type : 'keyword' , } , ecs_mapping : { type : 'object' , enabled : false , } , } , } , } , } ; export const packType = { name : packSavedObjectType , hidden : false , namespaceType : 'multiple-isolated' , mappings : packSavedObjectMappings , management : { defaultSearchField : 'name' , importableAndExportable : true , getTitle : ( savedObject ) => `Pack: ${ savedObject . attributes . name }` , getEditUrl : ( savedObject ) => `/packs/${ savedObject . id }/edit` , getInAppUrl : ( savedObject ) => ( { path : `/app/osquery/packs/${ savedObject . id }` , uiCapabilitiesPath : 'osquery.read' , } ) , onExport : ( context , objects ) => produce ( objects , ( draft ) => { draft . forEach ( ( packSO ) => { packSO . references = [ ] ; } ) ; return draft ; } ) , } , } ;