def delete_datasource(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True, ["datasourceId"], ["completeDelete"]) if req_error: return req_error domain_controller.delete_datasource(req_session.get_auth_token(), req_session.get_req_param("datasourceId"), req_session.get_req_param("completeDelete")) return req_session.generate_response(200)
def execute_slack_actions(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True) if req_error: return req_error body = req_session.get_body() response = slack_action_facade.execute_slack_actions(req_session.get_auth_token(), body) log_status = action_constants.ActionStatus.SUCCESS.value status_code = 200 status_message = "Action completed successfully" if response['action_status'] == constants.ResponseType.ERROR.value: status_code = 404 log_status = action_constants.ActionStatus.FAILED.value status_message = "Action failed" log_id = body['log_id'] db_session = db_connection().get_session() current_log = db_session.query(AuditLog).filter( and_(AuditLog.log_id == log_id, AuditLog.status != action_constants.ActionStatus.FAILED.value)).first() if current_log: current_log.status = log_status current_log.message = status_message db_connection().commit() return req_session.generate_response(status_code, response)
def delete_policy(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True, ['policyId']) if req_error: return req_error policy_controller.delete_policy(req_session.get_req_param('policyId')) return req_session.generate_response(200)
def get_alert_count(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request() if req_error: return req_error alerts_count = alert_controller.fetch_alerts_count( req_session.get_auth_token()) return req_session.generate_response(200, alerts_count)
def get_accesslogs_handler(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, mandatory_params=['datasource_id'], optional_params=['page_num']) if req_error: return req_error response = get_accesslogs(req_session.get_req_param('datasource_id'), req_session.get_req_param('page_num')) return req_session.generate_response(response)
def receive_github_notifications(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True) if req_error: return response = notifications_receiver.receive_notification( req_session.get_auth_token(), req_session.get_body()) return req_session.generate_response(response.get_response_code(), response.get_response_body())
def gdrive_periodic_changes_poll(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( False, optional_params=['datasource_id']) if req_error: return req_error incremental_scan.gdrive_periodic_changes_poll( req_session.get_req_param('datasource_id')) return req_session.generate_response(200)
def update_scan(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True, ['dataSourceId']) if req_error: return req_error scanner_facade.update_scan(req_session.get_auth_token(), req_session.get_req_param('dataSourceId')) return req_session.generate_response(202)
def handle_channel_expiration(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( False, optional_params=['page_num']) if req_error: return req_error response = incremental_scan.handle_channel_expiration( req_session.get_req_param('page_num')) return req_session.generate_response(202)
def process_scanner_data(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, ['domainId', 'dataSourceId', 'scannerId'], ['userId', 'userEmail', 'nextPageNumber', 'change_type']) if req_error: return req_error scanner_facade.process_scanner_data(req_session.get_auth_token(), req_session.get_all_req_param(), req_session.get_body()) return req_session.generate_response(200)
def request_scanner_data(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, ['dataSourceId', 'domainId', 'scannerId'], ['repo_name', 'org_name', 'repo_id']) if req_error: return req_error scanner_facade.request_scanner_data(req_session.get_auth_token(), req_session.get_all_req_param()) return req_session.generate_response(202)
def validate_policy(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, ['dataSourceId', 'policy_trigger']) if req_error: return req_error policy_validator_facade.validate_policy( req_session.get_auth_token(), req_session.get_req_param('dataSourceId'), req_session.get_req_param('policy_trigger'), req_session.get_body()) return req_session.generate_response(200)
def delete_scheduled_report(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request(True, ['reportId']) if req_error: return req_error deleted_report = reports_controller.delete_report( req_session.get_auth_token(), req_session.get_req_param('reportId')) function_name = aws_utils.get_lambda_name('get', urls.EXECUTE_SCHEDULED_REPORT) aws_utils.delete_cloudwatch_event(deleted_report.report_id, function_name) return req_session.generate_response(200)
def start_scan(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, ['dataSourceId', 'domainId', 'userEmail']) if req_error: return req_error scanner_facade.start_scan(req_session.get_auth_token(), req_session.get_req_param('dataSourceId'), req_session.get_req_param('domainId'), req_session.get_req_param('userEmail')) return req_session.generate_response(200)
def subscribe_gdrive_notifications(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( True, ["domainId", "dataSourceId"], ["pageNum"]) if req_error: return req_error incremental_scan.subscribe(req_session.get_auth_token(), req_session.get_req_param('domainId'), req_session.get_req_param('dataSourceId'), req_session.get_req_param('pageNum')) return req_session.generate_response(202)
def export_to_csv(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request() if req_error: return req_error response = directory_controller.export_to_csv(req_session.get_auth_token(), req_session.get_body()) if response: return req_session.generate_sqlalchemy_response( response.response_code, response.get_response_body()) else: return req_session.generate_response(202)
def process_drive_change_notifications(event, context): req_session = RequestSession(event) req_error = req_session.validate_authorized_request( False, mandatory_params=[], optional_params=[], headers=[ 'X-Goog-Channel-Token', 'X-Goog-Channel-ID', 'X-Goog-Resource-State' ]) if req_error: return req_error datasource_id = req_session.get_req_header('X-Goog-Channel-Token') channel_id = req_session.get_req_header('X-Goog-Channel-ID') notification_type = req_session.get_req_header('X-Goog-Resource-State') drive_change_notification.process_notifications(notification_type, datasource_id, channel_id) return req_session.generate_response(202)
def execute_cron_report(event, context): Logger().info("execute_cron_report : event " + str(event)) req_session = RequestSession(event) req_error = req_session.validate_authorized_request(False, ["report_id"]) if req_error: return req_error if req_error: return req_error Logger().info("call generate_csv_report function ") Logger().info("report id " + str(req_session.get_req_param('report_id'))) response = reports_controller.generate_csv_report( req_session.get_req_param('report_id')) if len(response['csv_records']) > 0: Logger().info("call send_email_with_attachment function ") report_desc = '[Adya] ' + response['report_desc'] aws_utils.send_email_with_attachment(response['email_list'], response['csv_records'], report_desc, response['report_name']) return req_session.generate_response(200)