Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Mage ai Mage ai Monday Streams

From Leeroopedia


Knowledge Sources
Domains Data_Integration, Monday, Stream, GraphQL
Last Updated 2026-02-09 00:00 GMT

Overview

Stream class definitions for the Mage Monday.com source connector, implementing GraphQL-based data extraction for workspaces, boards, board views, groups, and columns.

Description

This module defines stream classes that use Monday.com's GraphQL API. The BaseStream provides common data loading logic via POST requests containing GraphQL queries. Each concrete stream defines its own GraphQL query property and parse_response method to extract records from the nested GraphQL response structure. Pagination is handled via get_next_page_token, with the BoardsStream implementing page-number-based pagination. Parent-child relationships are supported: BoardViewsStream, GroupsStream, and ColumnsStream all depend on BoardsStream as their parent stream, using board_id from context. Post-processing hooks convert string IDs to integers and inject parent context.

Usage

Stream classes are instantiated with a client, config, stream catalog entry, and logger. The load_data method yields batches of records.

Code Reference

Source Location

  • Repository: mage-ai
  • File: mage_integrations/mage_integrations/sources/monday/streams.py
  • Lines: 1-261

Signature

class BaseStream:
    def __init__(self, client, config, stream, logger):

Import

from mage_integrations.sources.monday.streams import (
    STREAMS, WorkspacesStream, BoardsStream, BoardViewsStream,
    GroupsStream, ColumnsStream,
)

Stream Classes

Stream Class name Primary Keys Parent GraphQL Root
WorkspacesStream workspaces id None boards.workspace
BoardsStream boards id None boards
BoardViewsStream board_views id BoardsStream boards[0].views
GroupsStream groups id BoardsStream boards[0].groups
ColumnsStream columns id BoardsStream boards[*].columns

Key Methods

Method Class Description
load_data(bookmarks) BaseStream Generator that posts GraphQL queries, parses responses, handles pagination, and yields record batches.
get_next_page_token(response, previous_token) BaseStream Returns None by default; overridden by BoardsStream for page-number pagination.
get_url_params(context, next_page_token) Various Returns GraphQL variables dict. Child streams pass board_id from context.
parse_response(response) Various Extracts records from the nested GraphQL response structure.
post_process(row, context) Various Transforms records (e.g., converting string IDs to int, injecting board_id).
query (property) Various Returns the GraphQL query string specific to each stream.

Usage Examples

from mage_integrations.sources.monday.streams import STREAMS

stream_cls = STREAMS['boards']
stream = stream_cls(client=monday_client, config=config, stream=catalog_entry, logger=logger)
for batch in stream.load_data():
    for record in batch:
        process(record)

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment