import json import requests import os import pandas as pd import utils.pretty as ct def getDestAllowlistFromClientID(url, clientid): #This is dependant on their being an allowlist in the policy containing the name "localapproval" endpoint = url + '/v1/agent/find' payload = { "agentid" : f"{clientid}" } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["agents"]) allowlists = getPolicyAllowlists(url,data.loc[0, "groupid"]) app_id = allowlists.loc[allowlists['name'].str.contains('localapproval', case=False, na=False), 'applicationid'].values[0] return app_id def getPolicyFromClientID(url, clientid): endpoint = url + '/v1/agent/find' payload = { "agentid" : f"{clientid}" } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["agents"]) policy = getPolicyName(url,data.loc[0, "groupid"]) return policy def getPolicyAllowlists(url, groupid): endpoint = url + '/v1/group/policies' payload = { "groupid" : f"{groupid}" } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["applications"]) return data def getPolicyName(url, groupid): endpoint = url + '/v1/group/' payload = { } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["groups"]) name = data.loc[data['groupid'] == f"{groupid}", 'name'].values[0] return name