コード例 #1
0
def github_oauth_request(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, ['authToken'])
    if req_error:
        return req_error
    url = oauth.oauth_request(req_session.get_req_param('authToken'))
    return req_session.generate_redirect_response(url)
コード例 #2
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)  
コード例 #3
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)
コード例 #4
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)
コード例 #5
0
def get_alert(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error
    alerts = alert_controller.get_alerts(req_session.get_auth_token())
    return req_session.generate_sqlalchemy_response(200, alerts)
コード例 #6
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)
コード例 #7
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)
コード例 #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)
コード例 #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)
コード例 #10
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)
コード例 #11
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)
コード例 #12
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)
コード例 #13
0
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)
コード例 #14
0
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())
コード例 #15
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)
コード例 #16
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)
コード例 #17
0
def execute_gsuite_actions(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True)
    if req_error:
        return req_error
    response = gsuite_action_facade.execute_action(
        req_session.get_auth_token(), req_session.get_body())
    return req_session.generate_sqlalchemy_response(
        response.get_response_code(), response.get_response_body())
コード例 #18
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)
コード例 #19
0
def slack_oauth_request(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        False, ['authtoken'], ['scope'])
    if req_error:
        return req_error

    url = oauth.request_oauth(req_session.get_req_param('scope'),
                              req_session.get_req_param('authtoken'))
    return req_session.generate_redirect_response(url)
コード例 #20
0
def post_policy(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request()
    if req_error:
        return req_error

    policy = policy_controller.create_policy(req_session.get_auth_token(),
                                             req_session.get_body())

    return req_session.generate_sqlalchemy_response(201, policy)
コード例 #21
0
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)
コード例 #22
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)
コード例 #23
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)
コード例 #24
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)
コード例 #25
0
def github_oauth_callback(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, [], ['code', 'state'])
    if req_error:
        return req_error
    url = oauth.oauth_callback(req_session.get_req_param('code'), req_session.get_req_param('state'))
    if not url:
        return req_session.generate_error_response(401, "Not Authenticated")
    else:
        return req_session.generate_redirect_response(url)
コード例 #26
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 {})
コード例 #27
0
def get_widget_data(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()
    data = reports_controller.get_widget_data(req_session.get_auth_token(),
                                              body.get('widget_id'), None,
                                              None, body.get('event_filters'))
    return req_session.generate_sqlalchemy_response(200, data)
コード例 #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)
コード例 #29
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)
コード例 #30
0
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)