dev-update-data-model #13
							
								
								
									
										310
									
								
								inexDataModel.py
									
									
									
									
									
								
							
							
						
						
									
										310
									
								
								inexDataModel.py
									
									
									
									
									
								
							@@ -1,211 +1,125 @@
 | 
			
		||||
def dataTemplate(**kwargs):
 | 
			
		||||
    """Expects the following keyword arguments:
 | 
			
		||||
    status,status_detail,status_code,file_size,file_path,file_virtual_path,file_name,
 | 
			
		||||
    guid,ref_id,prd_instance_id,product_guid,product_name,product_version,node_name,
 | 
			
		||||
    src_endpoint_port,src_endpoint_ip,dst_endpoint_port,dst_endpoint_ip,dst_endpoint_type,
 | 
			
		||||
    session_uid,bytes_out,transfer_time,time,user_type,user_domain,user_name and utype.
 | 
			
		||||
    """
 | 
			
		||||
    template ={
 | 
			
		||||
    "status": kwargs.get('status'),
 | 
			
		||||
    "status_detail": kwargs.get('status_detail'),
 | 
			
		||||
	"status_code": kwargs.get('status_code'),
 | 
			
		||||
    "file": {
 | 
			
		||||
        "size": kwargs.get('file_size'),
 | 
			
		||||
        "path": kwargs.get('file_path'),
 | 
			
		||||
        "virtual_path": kwargs.get('file_virtual_path'),
 | 
			
		||||
        "name": kwargs.get('file_name')
 | 
			
		||||
    },
 | 
			
		||||
    "guid": kwargs.get('guid'),
 | 
			
		||||
    "ref_id": kwargs.get('ref_id'),
 | 
			
		||||
    "prd_instance_id": kwargs.get('prd_instance_id'),
 | 
			
		||||
    "product_guid": kwargs.get('product_guid'),
 | 
			
		||||
    "product_name": kwargs.get('product_name'),
 | 
			
		||||
    "product_version": kwargs.get('product_version'),
 | 
			
		||||
    "node_name":kwargs.get('node_name'),
 | 
			
		||||
    "src_endpoint": {
 | 
			
		||||
        "port": kwargs.get('src_endpoint_port'),
 | 
			
		||||
        "ip": kwargs.get('src_endpoint_ip')
 | 
			
		||||
    },
 | 
			
		||||
	"dst_endpoint": {
 | 
			
		||||
def dataTemplate(transactionType,**kwargs):
 | 
			
		||||
    general = {
 | 
			
		||||
        "bytes" : kwargs.get('bytes_out'),
 | 
			
		||||
        "dst_endpoint": { 
 | 
			
		||||
            "port": kwargs.get('dst_endpoint_port'),
 | 
			
		||||
            "ip": kwargs.get('dst_endpoint_ip'),
 | 
			
		||||
            "type": kwargs.get('dst_endpoint_type')
 | 
			
		||||
        },
 | 
			
		||||
        "duration": kwargs.get('duration'),
 | 
			
		||||
        "file": {
 | 
			
		||||
            "created_time": kwargs.get('time'),
 | 
			
		||||
            "size": kwargs.get('file_size'),
 | 
			
		||||
            "name": kwargs.get('file_name'),
 | 
			
		||||
            "path": kwargs.get('file_path')
 | 
			
		||||
        },
 | 
			
		||||
        "guid": kwargs.get('guid'),
 | 
			
		||||
        "node_name": kwargs.get('node_name'),
 | 
			
		||||
        "prd_ext_tenant_id": kwargs.get('tenant'),
 | 
			
		||||
        "product_name": "GlobalScape EFT",
 | 
			
		||||
        "prd_ext_tenant_name": "GlobalScape EFT",
 | 
			
		||||
        "classifications": [{
 | 
			
		||||
            "ref_id": f"globalscape:{kwargs.get('guid')}",
 | 
			
		||||
            "time": kwargs.get('time'),
 | 
			
		||||
        }],
 | 
			
		||||
        "session": {
 | 
			
		||||
           "created_time": kwargs.get('time'),
 | 
			
		||||
           "uid": kwargs.get('session_uid')
 | 
			
		||||
        },
 | 
			
		||||
        "src_endpoint": {
 | 
			
		||||
            "port": kwargs.get('src_endpoint_port'),
 | 
			
		||||
            "ip": kwargs.get('src_endpoint_ip'),
 | 
			
		||||
            "type": kwargs.get('src_endpoint_type')
 | 
			
		||||
        },
 | 
			
		||||
        "tenant": kwargs.get('tenant'),
 | 
			
		||||
        "tenant_name":"GlobalScape",
 | 
			
		||||
        "time": kwargs.get('time'),
 | 
			
		||||
        "status_code": kwargs.get('status_code'),
 | 
			
		||||
        "status_detail": kwargs.get('status_detail'),
 | 
			
		||||
        "user": {
 | 
			
		||||
            "home_directory": kwargs.get('user_home_directory'),
 | 
			
		||||
            "uuid": kwargs.get('guid'),
 | 
			
		||||
            "uid": kwargs.get('uid'),
 | 
			
		||||
            "type": kwargs.get('user_type'),
 | 
			
		||||
            "name": kwargs.get('user_name')
 | 
			
		||||
        },
 | 
			
		||||
        "utype": kwargs.get('utype')
 | 
			
		||||
    }
 | 
			
		||||
   
 | 
			
		||||
    fileDeleted = {
 | 
			
		||||
        "file": {
 | 
			
		||||
                "size": kwargs.get('file_size'),
 | 
			
		||||
                "name": kwargs.get('file_name'),
 | 
			
		||||
                "path": kwargs.get('file_path')
 | 
			
		||||
        },
 | 
			
		||||
        "guid": kwargs.get('guid'),
 | 
			
		||||
        "classifications": [{
 | 
			
		||||
            "ref_id": f"globalscape:{kwargs.get('guid')}",
 | 
			
		||||
            "time": kwargs.get('time'),
 | 
			
		||||
        }],
 | 
			
		||||
        "prd_ext_tenant_name": "Globalscape EFT",
 | 
			
		||||
        "prd_ext_tenant_id": kwargs.get('tenant'),
 | 
			
		||||
        "product_name": "Globalscape EFT",
 | 
			
		||||
        "session": {
 | 
			
		||||
            "created_time": kwargs.get('time'),
 | 
			
		||||
            "uid": kwargs.get('session_uid')
 | 
			
		||||
        },
 | 
			
		||||
        "src_endpoint": {
 | 
			
		||||
            "port": kwargs.get('src_endpoint_port'),
 | 
			
		||||
            "ip": kwargs.get('src_endpoint_ip'),
 | 
			
		||||
            "type": kwargs.get('src_endpoint_type')
 | 
			
		||||
        },
 | 
			
		||||
        "dst_endpoint": {
 | 
			
		||||
            "port": kwargs.get('dst_endpoint_port'),
 | 
			
		||||
            "ip": kwargs.get('dst_endpoint_ip'),
 | 
			
		||||
            "type": kwargs.get('dst_endpoint_type')
 | 
			
		||||
        },
 | 
			
		||||
        "time": kwargs.get('time'),
 | 
			
		||||
        "user": {
 | 
			
		||||
            "home_directory": kwargs.get('user_home_directory'),
 | 
			
		||||
            "uuid": kwargs.get('guid'),
 | 
			
		||||
            "uid": kwargs.get('uid'),
 | 
			
		||||
            "type": kwargs.get('user_type'),
 | 
			
		||||
            "name": kwargs.get('user_name')
 | 
			
		||||
        },
 | 
			
		||||
        "utype": kwargs.get('utype')
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    logon ={
 | 
			
		||||
    "classifications": [{
 | 
			
		||||
        "ref_id": f"globalscape:{kwargs.get('guid')}",
 | 
			
		||||
        "time": kwargs.get('time'),
 | 
			
		||||
    }],
 | 
			
		||||
    "dst_endpoint": {
 | 
			
		||||
        "port": kwargs.get('dst_endpoint_port'),
 | 
			
		||||
        "ip": kwargs.get('dst_endpoint_ip'),
 | 
			
		||||
        "type": kwargs.get('dst_endpoint_type')
 | 
			
		||||
    },
 | 
			
		||||
    "session": {
 | 
			
		||||
        "uid": kwargs.get('session_uid') 
 | 
			
		||||
    "guid": kwargs.get('guid'),
 | 
			
		||||
    "prd_ext_tenant_id": kwargs.get('tenant'),
 | 
			
		||||
    "product_name": "GlobalScape EFT",
 | 
			
		||||
    "prd_ext_tenant_name": "GlobalScape EFT",
 | 
			
		||||
    "src_endpoint": {
 | 
			
		||||
        "port": kwargs.get('src_endpoint_port'),
 | 
			
		||||
        "ip": kwargs.get('src_endpoint_ip'),
 | 
			
		||||
        "type": kwargs.get('src_endpoint_type')
 | 
			
		||||
    },
 | 
			
		||||
	"bytes_out" : kwargs.get('bytes_out'),
 | 
			
		||||
	"transfer_time" : kwargs.get('transfer_time'),
 | 
			
		||||
    "time": kwargs.get('time'),
 | 
			
		||||
    "user": {
 | 
			
		||||
        "home_directory": kwargs.get('user_home_directory'),
 | 
			
		||||
        "uuid": kwargs.get('guid'),
 | 
			
		||||
        "uid": kwargs.get('uid'),
 | 
			
		||||
        "type": kwargs.get('user_type'),
 | 
			
		||||
        "domain": kwargs.get('user_domain'),
 | 
			
		||||
        "name": kwargs.get('user_name')
 | 
			
		||||
    },
 | 
			
		||||
    "utype": kwargs.get('utype')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if transactionType == "FileUploaded":
 | 
			
		||||
        template = general
 | 
			
		||||
    if transactionType == "FileDownloaded":
 | 
			
		||||
        template = general
 | 
			
		||||
    if transactionType == "FileDeleted":
 | 
			
		||||
        template = fileDeleted
 | 
			
		||||
    if transactionType == "Logon":
 | 
			
		||||
        template = logon
 | 
			
		||||
    return template
 | 
			
		||||
 | 
			
		||||
FileUploaded = {
 | 
			
		||||
    "bytes" : 2490,
 | 
			
		||||
    "dst_endpoint": { 
 | 
			
		||||
        "port": 22,
 | 
			
		||||
        "ip": "10.91.160.77",
 | 
			
		||||
        "type": "SFTP"
 | 
			
		||||
    },
 | 
			
		||||
    "duration": 200,
 | 
			
		||||
    "file": {
 | 
			
		||||
        "created_time": 1722485724000,
 | 
			
		||||
        "size": 2490,
 | 
			
		||||
        "name": "Case9.vbs",
 | 
			
		||||
        "path": "\\\\10.255.255.9\\shared\\HASite\\InetPub\\EFTRoot\\MySite\\Usr\\Ivan //<PhysicalFolderName>"
 | 
			
		||||
    },
 | 
			
		||||
    "guid": "48D9C7A3-2DC6-11EF-AA59-00155D641204",
 | 
			
		||||
    "node_name":"PERF01-S2019-77",
 | 
			
		||||
    "prd_ext_tenant_id": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
    "product_name": "GlobalScape EFT",
 | 
			
		||||
    "prd_ext_tenant_name": "GlobalScape EFT",
 | 
			
		||||
    "classifications": [{
 | 
			
		||||
        "ref_id": "globalscape:48D9C7A3-2DC6-11EF-AA59-00155D641204",
 | 
			
		||||
        "time":1722485724000,
 | 
			
		||||
    }],
 | 
			
		||||
    "session": {
 | 
			
		||||
       "created_time":1722485724000,
 | 
			
		||||
       "uid": "3615136"
 | 
			
		||||
    },
 | 
			
		||||
    "src_endpoint": {
 | 
			
		||||
        "port": 58868,
 | 
			
		||||
        "ip": "10.91.160.45",
 | 
			
		||||
        "type":"SFTP"
 | 
			
		||||
    },
 | 
			
		||||
    "tenant": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
    "tenant_name":"GlobalScape",
 | 
			
		||||
    "time":1722485724000,
 | 
			
		||||
    "status_code":226,
 | 
			
		||||
    "status_detail":"Upload Successful",
 | 
			
		||||
    "user": {
 | 
			
		||||
        "home_directory": "/Usr/Ivan/",
 | 
			
		||||
        "uuid":"48D9C7A3-2DC6-11EF-AA59-00155D641204",
 | 
			
		||||
        "uid": "3978403",
 | 
			
		||||
        "type": "User",
 | 
			
		||||
        "name": "Ivan"
 | 
			
		||||
    },
 | 
			
		||||
    "utype": "file_uploaded"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FileDownloaded = {
 | 
			
		||||
"bytes" : 4891,
 | 
			
		||||
"dst_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.77",
 | 
			
		||||
    "type": "HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"duration": 200,
 | 
			
		||||
"file": {
 | 
			
		||||
    "created_time": 1722518124000,
 | 
			
		||||
    "size": 4891,
 | 
			
		||||
    "name": "FileDownload1.exe",
 | 
			
		||||
    "path": "\\\\10.255.255.9\\shared\\HASite\\InetPub\\EFTRoot\\MySite\\Usr\\Ivan //<PhysicalFolderName>"
 | 
			
		||||
},
 | 
			
		||||
"guid": "48D9C7A3-2DC6-11EF-AA59-00155D641205",
 | 
			
		||||
"node_name":"PERF01-S2019-77",
 | 
			
		||||
"prd_ext_tenant_id": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
"product_name": "GlobalScape EFT",
 | 
			
		||||
"prd_ext_tenant_name": "GlobalScape EFT",
 | 
			
		||||
"classifications": [{
 | 
			
		||||
    "ref_id": "globalscape:48D9C7A3-2DC6-11EF-AA59-00155D641205",
 | 
			
		||||
    "time":1722518124000,
 | 
			
		||||
}],
 | 
			
		||||
"session": {
 | 
			
		||||
   "created_time":1722518124000,
 | 
			
		||||
   "uid": "3615137"
 | 
			
		||||
},
 | 
			
		||||
"src_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.45",
 | 
			
		||||
    "type":"HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"tenant": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
"tenant_name":"GlobalScape",
 | 
			
		||||
"time":1722518124000,
 | 
			
		||||
"status_code":226,
 | 
			
		||||
"status_detail":"Download Successful",
 | 
			
		||||
"user": {
 | 
			
		||||
    "home_directory": "/Usr/Ivan/",
 | 
			
		||||
    "uuid":"48D9C7A3-2DC6-11EF-AA59-00155D641205",
 | 
			
		||||
    "uid": "3978404",
 | 
			
		||||
    "type": "User",
 | 
			
		||||
    "name": "Ivan" 
 | 
			
		||||
},
 | 
			
		||||
"utype": "file_downloaded"}
 | 
			
		||||
 | 
			
		||||
FileDeleted = {
 | 
			
		||||
        "file": {
 | 
			
		||||
        "size": 304673,
 | 
			
		||||
        "path": "\\\\10.255.255.9\\shared\\HASite\\InetPub\\EFTRoot\\MySite\\Usr\\Ivan",
 | 
			
		||||
"name": "DeleteME.txt"
 | 
			
		||||
},
 | 
			
		||||
"guid": "48D9C7A3-2DC6-11EF-AA59-00155D641207",
 | 
			
		||||
"classifications": [{
 | 
			
		||||
    "ref_id": "globalscape:48D9C7A3-2DC6-11EF-AA59-00155D641207",
 | 
			
		||||
    "time":1722515664000,
 | 
			
		||||
}],
 | 
			
		||||
"prd_ext_tenant_name": "Globalscape EFT",
 | 
			
		||||
"prd_ext_tenant_id": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
"product_name": "Globalscape EFT",
 | 
			
		||||
"session": {
 | 
			
		||||
   "created_time":1722515664000,
 | 
			
		||||
   "uid": "3615138"
 | 
			
		||||
},
 | 
			
		||||
"src_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.45",
 | 
			
		||||
    "type":"HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"dst_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.77",
 | 
			
		||||
    "type": "HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"time": 1722515664000,
 | 
			
		||||
"user": {
 | 
			
		||||
    "home_directory": "/Usr/Ivan/",
 | 
			
		||||
    "uuid":"48D9C7A3-2DC6-11EF-AA59-00155D641207",
 | 
			
		||||
    "uid": "3978406",
 | 
			
		||||
    "type": "User",
 | 
			
		||||
    "name": "Ivan"
 | 
			
		||||
},
 | 
			
		||||
"utype": "file_deleted"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Logon ={
 | 
			
		||||
"classifications": [{
 | 
			
		||||
    "ref_id": "globalscape:48D9C7A3-2DC6-11EF-AA59-00155D641206",
 | 
			
		||||
    "time": 1722510924000,
 | 
			
		||||
    
 | 
			
		||||
}],
 | 
			
		||||
"dst_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.77",
 | 
			
		||||
    "type": "HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"guid": "48D9C7A3-2DC6-11EF-AA59-00155D641206",
 | 
			
		||||
"prd_ext_tenant_id": "e71851c2-593f-4f49-9c07-91727b1be94b",
 | 
			
		||||
"product_name": "GlobalScape EFT",
 | 
			
		||||
"prd_ext_tenant_name": "GlobalScape EFT",
 | 
			
		||||
"src_endpoint": {
 | 
			
		||||
    "port": 443,
 | 
			
		||||
    "ip": "10.91.160.45",
 | 
			
		||||
    "type":"HTTPS"
 | 
			
		||||
},
 | 
			
		||||
"time": 1722510924000,
 | 
			
		||||
"user": {
 | 
			
		||||
    "home_directory": "/Usr/Ivan/",
 | 
			
		||||
    "uuid":"48D9C7A3-2DC6-11EF-AA59-00155D641206",
 | 
			
		||||
    "uid": "3978405",
 | 
			
		||||
    "type": "User",
 | 
			
		||||
    "name": "Ivan"
 | 
			
		||||
},
 | 
			
		||||
"utype": "user_logged_on"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
def processData(data, template, **kwargs):
 | 
			
		||||
    processedData = []
 | 
			
		||||
    for row in data:
 | 
			
		||||
        # print(f'Row: {row}')
 | 
			
		||||
        processedData.append(template(status=row.get(''),\
 | 
			
		||||
        print(f'Row: {row}')
 | 
			
		||||
        if row.get('Command') == None:
 | 
			
		||||
            continue
 | 
			
		||||
        processedData.append(template(identifyUtype(row.get('Command')),\
 | 
			
		||||
                            status_detail=row.get(''),\
 | 
			
		||||
                            status_code=row.get('ResultID'),\
 | 
			
		||||
                            file_size=row.get('FileSize'),\
 | 
			
		||||
@@ -28,7 +30,7 @@ def processData(data, template, **kwargs):
 | 
			
		||||
                            user_type=identifyUserType(row.get('user_type')),\
 | 
			
		||||
                            user_domain=row.get('SiteName'),\
 | 
			
		||||
                            user_name=row.get('Actor'),\
 | 
			
		||||
                            utype=identifyUtype(row.get('TransactionObject'))))
 | 
			
		||||
                            utype=identifyUtype(row.get('Command'))))
 | 
			
		||||
    return processedData
 | 
			
		||||
 | 
			
		||||
def identifyUserType(obj):
 | 
			
		||||
@@ -41,9 +43,9 @@ def identifyUserType(obj):
 | 
			
		||||
        return None
 | 
			
		||||
def identifyUtype(obj):
 | 
			
		||||
    user_logged_on = []
 | 
			
		||||
    file_deleted = []
 | 
			
		||||
    file_uploaded = []
 | 
			
		||||
    file_downloaded = []
 | 
			
		||||
    file_deleted = ["dele"]
 | 
			
		||||
    file_uploaded = ["created"]
 | 
			
		||||
    file_downloaded = ["sent"]
 | 
			
		||||
 | 
			
		||||
    if obj in user_logged_on:
 | 
			
		||||
        return "user_logged_on"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								test.py
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								test.py
									
									
									
									
									
								
							@@ -9,4 +9,10 @@ def connectDatabase(driver, server, database, user, password):
 | 
			
		||||
def converttimestamp(t):
 | 
			
		||||
    print(int(t.timestamp()* 1000))
 | 
			
		||||
 | 
			
		||||
a = converttimestamp(datetime.datetime(2024, 7, 23, 14, 26, 38, 214000))
 | 
			
		||||
def builddict(keys,*args,**kwargs):
 | 
			
		||||
    dict = {}
 | 
			
		||||
    for key in keys:
 | 
			
		||||
        dict[key] = kwargs.get(key)
 | 
			
		||||
    print(dict)
 | 
			
		||||
 | 
			
		||||
a = builddict(["bytes","duration","dst_endpoint"],bytes=2490,duration=200,dst_enpoint={"port": 1,"ip": 1,"type":1})
 | 
			
		||||
		Reference in New Issue
	
	Block a user