Esempio n. 1
0
def get_user_stats(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True)
    if req_error:
        return req_error
    stats = directory_controller.get_user_stats(req_session.get_auth_token())
    return req_session.generate_sqlalchemy_response(200, stats)
Esempio n. 2
0
def google_oauth_request(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, [], ['scope'])
    if req_error:
        return req_error

    url = oauth.oauth_request(req_session.get_req_param('scope'))
    return req_session.generate_redirect_response(url)
Esempio n. 3
0
def get_all_activities(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    activities = get_activites_for_domain(req_session.get_body())
    return req_session.generate_sqlalchemy_response(200, activities)
Esempio n. 4
0
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_audit_log(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True)
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()
    audit_log_list = auditlog_controller.get_audit_log(auth_token)
    return req_session.generate_sqlalchemy_response(200, audit_log_list)
Esempio n. 6
0
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)
Esempio n. 7
0
def post_alert(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error
    alerts = alert_controller.create_alerts(req_session.auth_token,
                                            req_session.get_body())
    return req_session.generate_sqlalchemy_response(201, alerts)
Esempio n. 8
0
def get_trusted_entities(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ["domainId"])
    if req_error:
        return req_error

    trusted_entities = domain_controller.get_all_trusted_entities(req_session.get_req_param("domainId"))
    return req_session.generate_sqlalchemy_response(200, trusted_entities)
Esempio n. 9
0
def post_trusted_entities(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    trusted_entities = domain_controller.create_trusted_entities_for_a_domain(req_session.get_auth_token(), req_session.get_body())
    return req_session.generate_sqlalchemy_response(200, trusted_entities)
Esempio n. 10
0
def get_scheduled_reports(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    reports = reports_controller.get_reports(req_session.get_auth_token())
    return req_session.generate_sqlalchemy_response(200, reports)
Esempio n. 11
0
def get_policies(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    policies = policy_controller.get_policies(req_session.get_auth_token())

    return req_session.generate_sqlalchemy_response(200, policies)
Esempio n. 12
0
def get_datasource(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    datasources = domain_controller.get_datasource(
        req_session.get_auth_token(), None)
    return req_session.generate_sqlalchemy_response(200, datasources)
Esempio n. 13
0
def execute_github_actions(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True)
    if req_error:
        return req_error

    #Navigate to actions_facade
    response = github_action_facade.execute_github_actions(req_session.get_auth_token(), req_session.get_body())
    return req_session.generate_sqlalchemy_response(response.get_response_code(), response.get_response_body())     
    
Esempio n. 14
0
def get_all_actions(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    auth_token = req_session.get_auth_token()

    actions = actions_controller.get_actions()
    return req_session.generate_sqlalchemy_response(200, actions)
Esempio n. 15
0
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)
Esempio n. 16
0
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)
Esempio n. 17
0
def receive_slack_notifications(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False,
                                                        mandatory_params=[],
                                                        optional_params=[])
    if req_error:
        return req_error

    response = notifications_receiver.receive_notifications(
        req_session.get_body())
    return req_session.generate_sqlalchemy_response(202, response or {})
Esempio n. 18
0
def google_oauth_callback(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        False, [], ['scope', 'code', 'state', 'error'])
    if req_error:
        return req_error

    url = oauth.oauth_callback(req_session.get_req_param('code'),
                               req_session.get_req_param('scope'),
                               req_session.get_req_param('state'),
                               req_session.get_req_param('error'))
    if not url:
        req_session.generate_error_response(401, "Not authenticated")
    else:
        return req_session.generate_redirect_response(url)
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)
Esempio n. 20
0
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)
Esempio n. 21
0
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)
Esempio n. 22
0
def get_resources(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        optional_params=["prefix", "pageNumber", "pageSize"])
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()
    page_number = req_session.get_req_param("pageNumber")
    page_size = req_session.get_req_param("pageSize")
    resource_list = resource_controller.get_resources(
        auth_token, page_number, page_size, None, "", "",
        req_session.get_req_param("prefix"))
    return req_session.generate_sqlalchemy_response(200, resource_list)
Esempio n. 23
0
def post_user_app(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error
    apps = directory_controller.insert_apps(req_session.get_auth_token(), req_session.get_body())
    return req_session.generate_sqlalchemy_response(201, apps)  
Esempio n. 24
0
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)
Esempio n. 25
0
def get_resource_tree_data(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        optional_params=["pageNumber", "pageSize", "datasourceId"])
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()

    payload = req_session.get_body()
    accessible_by = payload.get("accessibleBy")
    exposure_type = payload.get("exposureType")
    resource_type = payload.get("resourceType")
    page_number = payload.get("pageNumber")
    page_size = payload.get("pageSize")
    owner_email_id = payload.get("ownerEmailId")
    parent_folder = payload.get("parentFolder")
    selected_date = payload.get("selectedDate")
    search_prefix = payload.get("prefix")
    sort_column_name = payload.get("sortColumn")
    sort_type = payload.get("sortType")
    datasource_id = payload.get("datasourceId")
    source_type = payload.get("sourceType")
    resource_list = resource_controller.get_resources(
        auth_token, page_number, page_size, accessible_by, exposure_type,
        resource_type, search_prefix, owner_email_id, parent_folder,
        selected_date, sort_column_name, sort_type, datasource_id, source_type)
    return req_session.generate_sqlalchemy_response(200, resource_list)
Esempio n. 26
0
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)
Esempio n. 27
0
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)
Esempio n. 28
0
def update_policy(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ['policyId'])
    if req_error:
        return req_error

    policy = policy_controller.update_policy(
        req_session.get_auth_token(), req_session.get_req_param('policyId'),
        req_session.get_body())

    return req_session.generate_sqlalchemy_response(201, policy)
Esempio n. 29
0
def process_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.process_scanner_data(req_session.get_auth_token(),
                                        req_session.get_all_req_param(),
                                        req_session.get_body())
    return req_session.generate_response(202)
Esempio n. 30
0
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)