Arte SheetsLearn. Try. Understand.

Collaborative Workflows & AI Governance

Audit Connected-App OAuth Scopes, Base Revisions, and Pending-Review Edits

Validate external MCP write prerequisites (cloud workbook, active Pro, editor/owner role, 16-80 char operation_id, <= 100 cells, and matching base revision vs pendingReview) in Arte Sheets.

Separate Connected-App OAuth tool governance from metered in-app Pro AI credits

Arte Sheets separates external OAuth connector access (managed and revocable anytime under Profile -> Connected apps; note that Arte Sheets ChatGPT plugin 0.1.0 is currently In review / Not published, so never assume public store availability or ChatGPT credit transfer) from the metered in-app Pro AI Assistant (which consumes monthly Arte AI credits when sending a text, <= 3 min WebRTC voice, or <= 2 MB attachment prompt). Ordinary MCP connector calls are rate-limited (120 calls/min per account) and do NOT consume Arte AI credits, though write/share mutations require an active Pro subscription on a cloud collaboration workbook (local browser-only files are unavailable to external connectors).

Before calling apply_changes (sheets:write, <= 100 cells), an integration first calls read_range (sheets:read, <= 200 cells), which returns sheet IDs, raw values/formulas, whole-cell comment anchors, and current workbook revision — WITHOUT recalculating formula results! To prevent silent overwrites during live multi-user editing, apply_changes requires an active Pro plan, owner or editor (contributor) workbook role, a 16-to-80-character idempotent operation_id, and the base revision read earlier: if a teammate concurrently advances live_revision past base_revision, the server protects live cells and routes the conflict to pendingReview instead of overwriting!

Connector Gate / LimitExact Server RuleOutcome When Violated
Storage & OAuth ScopeCloud workbook + Profile -> Connected apps grantLocal-only workbooks unavailable
read_range Payload Cap<= 200 cells; returns raw formulas + revisionDoes not recalculate cell outputs
apply_changes PrerequisitesActive Pro + owner/editor + <= 100 cells + 16-80 char operation_idRejected before Yjs mutation
Concurrent Revision Checkbase_revision = live_revision vs < live_revisionClean commit vs pendingReview

apply_changes Pre-Flight Gate & Revision-Conflict Status Formula

Model the exact server-side pre-flight and optimistic-concurrency status on an integration QA checklist: verify cloud mode (B2="cloud"), active Pro (B3="active"), role in {"owner","editor"} (B4), cell count 1..100 (B5), operation_id length 16..80 via LEN(B6), and compare base_revision (B7) against live_revision (B8).

=LET(st_md, B2, pro_st, B3, usr_rl, B4, n_cel, B5, op_len, LEN(B6), rev_bs, B7, rev_lv, B8, IF(st_md <> "cloud", "Blocked: Cloud Workbook Required", IF(pro_st <> "active", "Blocked: Active Pro Required", IF(NOT(OR(usr_rl = "owner", usr_rl = "editor")), "Blocked: Owner or Editor Role Required", IF(OR(n_cel < 1, n_cel > 100), "Blocked: Exceeds 100-Cell Write Cap", IF(OR(op_len < 16, op_len > 80), "Blocked: operation_id Must Be 16-80 Chars", IF(rev_bs > rev_lv, "Invalid Future Base Revision", IF(rev_bs < rev_lv, "Conflict: Routed to pendingReview", "Commit Ready (Matches Live Revision)"))))))))

Chunked read_range Pass Count Formula (<= 200 Cells per Read)

When auditing a 450-cell schedule via read_range (capped at 200 cells per call), compute required read passes via ROUNDUP(total_cells / 200, 0) = 3 passes (well inside the 120 calls/min account limiter), then inspect live formula outputs directly inside the browser workbook.

=IF(B9 <= 0, 0, ROUNDUP(B9 / 200, 0))

Try the example

Use the original values or change them to test your understanding.

Further reading