Skip to content

Scope catalog

Scopes gate ctx.tools.call(...) access. Declare every scope your app needs in manifest.required_scopes; the tenant must grant them on install. The platform enforces scope at every call site — your code only runs against tenants where the grant exists.

ScopeToolsDescription
mail.reademail_search, email_get, email_listRead tenant emails
mail.sendemail_send, email_replySend mail as the tenant
mail.draftemail_create_draftCompose drafts without sending
ScopeToolsDescription
calendar.readcalendar_list_events, calendar_get_eventRead calendar
calendar.writecalendar_create_event, calendar_update_eventManage events
ScopeToolsDescription
files.readfile_get, file_search, attachment_getRead files + attachments
files.writefile_create, file_updateCreate/update files in tenant storage
ScopeToolsDescription
odoo.readodoo_search_read, odoo_readRead records
odoo.writeodoo_create, odoo_update, odoo_unlinkMutate records
ScopeToolsDescription
reports.generatereport_pdf_render, report_excel_renderBuild PDF + Excel artifacts
ScopeToolsDescription
whatsapp.sendwhatsapp_send_text, whatsapp_send_templateSend WhatsApp messages
ScopeToolsDescription
ai.imageai_image_generateGenerate images
ai.videokling_video_generateGenerate short video clips
ScopeToolsDescription
mail.triageemail_triage_classify, email_triage_digestLLM-backed inbox classification

A tenant might install your app without granting every scope. Code defensively:

import { ToolCallError } from '@linkworld/sdk'
try {
await ctx.tools.call('odoo_create', { model, values })
} catch (err) {
if (err instanceof ToolCallError && err.decision === 'scope_denied') {
// Optional path — tenant didn't grant odoo.write
console.log('[my-app] odoo.write not granted; skipping ERP write')
return
}
throw err
}
from linkworld_sdk import ToolCallError
try:
await ctx.tools.call("odoo_create", model=model, values=values)
except ToolCallError as exc:
if exc.decision == "scope_denied":
return
raise

Need a tool we haven’t surfaced? Open an issue at github.com/linkworld/linkworld or post in the dev community. Scopes ship with the platform; partners don’t define them.