π§ Release blocker for the next release (v1.2.0 β see #121).
Context
Bitrix24 shipped a new family of REST v3 mail.* methods (mailbox, message, recipient):
π https://apidocs.bitrix24.com/api-reference/rest-v3/mail/mailbox/index.html
The SDK does not surface any of them yet. The v3 method whitelist in
packages/jssdk/src/core/version-manager.ts:21-44
(#supportMethods) currently only contains /batch, /scopes, /rest.scope.list, the /documentation
endpoints, /main.eventlog.* and /tasks.task.*. Because routing is gated by this list
(isSupport() β #v3Support()), calling a mail.* method through b24.actions.v3.*.make() today throws
SdkError with code JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3, and automaticallyObtainApiVersion() silently
falls back to v2.
Good news: the list plumbing already exists β b24.actions.v3.callList
(actions/v3/call-list.ts) and b24.actions.v3.fetchList
(actions/v3/fetch-list.ts) implement cursor-based
pagination over { method, idKey, customKeyForResult }. So enabling mail lists is mostly a matter of
whitelisting the methods and confirming the response-grouping key per method.
New v3 mail.* surface to cover
Mailbox
mail.mailbox.list β list (current user's mailboxes)
mail.mailbox.get
mail.mailbox.field.list β list (available mailbox fields)
mail.mailbox.field.get
mail.mailbox.senders
Message
mail.message.list β list (filter by mailbox, date, attachments, β¦)
mail.message.get
mail.message.field.get
mail.message.thread
mail.message.forward
mail.message.movetofolder
mail.message.createchat
mail.message.createtask
Recipient
mail.recipient.listcontacts β list-style (address-book search)
mailservice.* (mailservice.list/get/update/delete/fields) showed up in the search too, but appears to be
the older surface β verify the API version before touching it; this issue targets the rest-v3 mail.*
family only.
Scope / acceptance criteria
1. Core β whitelist + list methods
2. Tests
3. Monitoring of new methods
The v3 whitelist is hand-maintained and silently drifts whenever Bitrix24 ships new v3 methods (this mail family
is exactly that drift). The header comment in version-manager.ts already points at the source of truth
(https://{portal}/rest/api/{user_id}/{webhook}/documentation and the
rest-v3 OpenAPI).
Out of scope
- Documentation pages under
docs/content/docs/ and the skills/ recipes β track separately once the core
surface lands (skills must be updated in the same PR per AGENTS.md, but full doc pages can follow).
mailservice.* (pending API-version confirmation).
Related
Context
Bitrix24 shipped a new family of REST v3
mail.*methods (mailbox, message, recipient):π https://apidocs.bitrix24.com/api-reference/rest-v3/mail/mailbox/index.html
The SDK does not surface any of them yet. The v3 method whitelist in
packages/jssdk/src/core/version-manager.ts:21-44(
#supportMethods) currently only contains/batch,/scopes,/rest.scope.list, the/documentationendpoints,
/main.eventlog.*and/tasks.task.*. Because routing is gated by this list(
isSupport()β#v3Support()), calling amail.*method throughb24.actions.v3.*.make()today throwsSdkErrorwith codeJSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3, andautomaticallyObtainApiVersion()silentlyfalls back to v2.
Good news: the list plumbing already exists β
b24.actions.v3.callList(
actions/v3/call-list.ts) andb24.actions.v3.fetchList(
actions/v3/fetch-list.ts) implement cursor-basedpagination over
{ method, idKey, customKeyForResult }. So enabling mail lists is mostly a matter ofwhitelisting the methods and confirming the response-grouping key per method.
New v3
mail.*surface to coverMailbox
mail.mailbox.listβ list (current user's mailboxes)mail.mailbox.getmail.mailbox.field.listβ list (available mailbox fields)mail.mailbox.field.getmail.mailbox.sendersMessage
mail.message.listβ list (filter by mailbox, date, attachments, β¦)mail.message.getmail.message.field.getmail.message.threadmail.message.forwardmail.message.movetofoldermail.message.createchatmail.message.createtaskRecipient
mail.recipient.listcontactsβ list-style (address-book search)Scope / acceptance criteria
1. Core β whitelist + list methods
mail.*methods to#supportMethodsinversion-manager.ts:21-44(keep the inline// doneannotation convention; only markdoneonce verified against a live portal).mail.mailbox.list,mail.message.list,mail.mailbox.field.list,mail.recipient.listcontacts), confirm the correctidKeyandcustomKeyForResult(the response-groupingkey) against the live portal / OpenAPI β do not assume
items/id. Document the values so callers canuse
actions.v3.callList.make/fetchList.make.automaticallyObtainApiVersion()andautomaticallyObtainApiVersionForBatch()now resolve thesemethods to
ApiVersion.v3, and that mixing mail + non-whitelisted methods in a batch still degrades to v2 asexpected.
packages/jssdk/src/index.ts(public contract).2. Tests
test/integration/(real portal, no mocks per.github/contributing/testing.md): at minimummail.mailbox.list/mail.message.listviaactions.v3.callList+fetchList, plus a representativegetand a batch path.mail) in AGENTS.md β Webhook scopes, alongsidethe existing
crm/tasks/user/im/mainnote.mail.message.listpaging if message volumes are large.3. Monitoring of new methods
The v3 whitelist is hand-maintained and silently drifts whenever Bitrix24 ships new v3 methods (this mail family
is exactly that drift). The header comment in
version-manager.tsalready points at the source of truth(
https://{portal}/rest/api/{user_id}/{webhook}/documentationand therest-v3 OpenAPI).
scripts/docs-*.mjs) that diffs the live v3 OpenAPI/documentation against#supportMethodsand reports newly-available methods not yet in the whitelist.links:pointing at non-existent files in the repoΒ #117) so new v3 methods surface as a flag instead ofgoing unnoticed.
.github/contributing/maintenance.md)with a "new v3 methods" triage step.
Out of scope
docs/content/docs/and theskills/recipes β track separately once the coresurface lands (skills must be updated in the same PR per AGENTS.md, but full doc pages can follow).
mailservice.*(pending API-version confirmation).Related
packages/jssdk/src/core/version-manager.ts:21-44actions/v3/call-list.ts,actions/v3/fetch-list.tsskills/b24jssdk-rest/SKILL.mdv1.2.0milestone and triage open issues against itΒ #121 β v1.2.0 milestone / triage (this is a blocker for it)