DEV Community

Cover image for ONLYOFFICE Docs 10.0 for Developers: Configurable AI, PDF Editing in Builder, and Safer Defaults
Kseniya Fedoruk for ONLYOFFICE

Posted on

ONLYOFFICE Docs 10.0 for Developers: Configurable AI, PDF Editing in Builder, and Safer Defaults

ONLYOFFICE Docs 10.0 is out, and it brings a lot for anyone who builds on top of the editors. Here are the highlights:

  • Configurable AI Tools you can control per editor instance or across the whole server
  • PDF editing in Document Builder
  • New multipart endpoints that accept files directly, with no temporary URLs
  • A modernized Plugin API with Promise-based methods
  • Security protections switched on by default

This post covers the changes that matter most for your integrations. It also flags a few behavior changes to check before you upgrade, so your production rollout goes smoothly.

🤖 AI Tools you can configure and control

AI Tools now ship in every editor. They do much more than generate text. They understand document structure, recognize elements, connect content across sections, and create clickable references for easier navigation.

You aren't locked into one provider. You can:

  • Connect any AI model, including local models for privacy-sensitive use cases
  • Assign different models to different tasks, such as one model for summarizing and another for drafting

Server-side AI management

In commercial editions, administrators configure AI providers once in the Admin Panel. Editor users then get ready-to-use AI tools without entering their own API keys. Admins can also:

  • Assign specific models to specific tasks
  • Connect MCP servers for external tool access
  • Control whether web search is available

Once a server-side configuration is saved, users are limited to the approved providers and models. They can no longer add their own keys or switch models. For organizations with strict governance rules, this means one approved setup across every user.

Turn AI on or off at two levels

You decide whether AI tools appear in your product.

Per editor instance. Use editorConfig.customization.ai with the disabled parameter:

const config = {
  editorConfig: {
    customization: {
      ai: {
        disabled: true
      }
    }
  }
};
Enter fullscreen mode Exit fullscreen mode

Server-wide. Use the aiSettings.enable server setting to turn off AI features and exclude AI Tools from /plugins.json.

This is handy when you serve different customer tiers, or when some deployments must stay AI-free for compliance reasons.

🧩 Modular apps

Docs 10.0 introduces modular apps, a new way to extend the editors without changing their core. Apps such as AI agents, Forms, Rooms, and Files plug into ONLYOFFICE Docs and add functionality on top.

For developers, this means you can:

  • Enable only the capabilities your users actually need
  • Keep your integration lean
  • Expand step by step as your product grows

🔐 Security improvements: safer by default

Version 10.0 moves several protections to "on by default," so new integrations start from a safer baseline. Some of these changes affect existing behavior, so read this section closely.

  • JWT enabled by default. JWT is now on in default.json.
  • Stricter token handling. If a secret is empty or unset, including tenant secrets, the server now rejects the token instead of verifying or signing it.
  • Scoped tokens for service APIs. /converter, /docbuilder, and /command no longer accept a token from the editor configuration. A new operation field in the token is optional for these requests and required for /converter/from-file and /docbuilder/from-file.
  • Integrity verification for downloaded files. When your integration sends integrity headers, the server checks downloaded files against them. Supported headers include Content-Digest, Repr-Digest, x-amz-checksum-*, and WOPI SHA256. This is controlled by services.CoAuthoring.requestDefaults.checksumVerification, which is true by default.
  • Explicit WOPI hosts. WOPI hosts must now be allowed by an IP filter rule. The wildcard allow: * rule is no longer enough, so list each host explicitly.
  • API access controls. Use services.CoAuthoring.server.convertServiceEnable and services.CoAuthoring.server.docbuilderEnable to turn off the public conversion and Document Builder APIs. Both are true by default.
  • Tighter runtime config. Only the log4js logging level can now be changed via runtime.json.

📄 PDF editing in Document Builder

Document Builder can now edit PDFs, which opens up many new automation scenarios.

  • OpenFile handles PDFs smartly. PDF forms created in ONLYOFFICE open in the document editor. Other PDFs open in the PDF editor with full access to the PDF API.
  • Password-protected PDFs. The new m_sPassword parameter in OpenFile lets you open protected files.
  • PDF form creation. Call CreateFile with the pdf type to create PDF forms.

On the server side, forms saved as a regular PDF are now signed when users submit them. That adds an extra layer of trust to your form workflows.

Alexander Trofimov, Head of the Editor Development Team at ONLYOFFICE, puts it this way:

With ONLYOFFICE Docs 10.0, we've made the editors even more secure for your integrations. On top of that, this release brings full-fledged PDF support to Document Builder, so developers and end users alike can create, edit, and manage PDFs directly from Builder without relying on workarounds or third-party tools.

📤 New multipart endpoints for direct file upload

Until now, the conversion and Document Builder services downloaded source files from a URL. You had to host the file somewhere the server could reach. Version 10.0 removes that step with two new endpoints:

  • POST /converter/from-file
  • POST /docbuilder/from-file

Both accept multipart/form-data. You send the file or script directly in the request, so you never need to expose it through a temporary URL.

Here's how to convert a TXT file to DOCX:

curl -f -X POST "https://documentserver/converter/from-file" \
  -F 'params={"filetype":"txt","outputtype":"docx","title":"Example Document Title.txt"}' \
  -F 'file=@example.txt' \
  -o "Example Document Title.docx"
Enter fullscreen mode Exit fullscreen mode

This makes many workflows cleaner. For example, a backend service can convert user uploads on the fly, or run a Document Builder script without staging files first. It also means fewer temporary files sitting on publicly reachable storage.

💡 Remember: requests to these endpoints need the operation field in the token.

⚡ Plugin API modernization

The Plugins and Macros API got its biggest refresh in a while.

A new global Editor object

Methods are now regular functions that return a Promise. Instead of routing every call through window.Asc.plugin.executeMethod, you can write clean async code:

const text = await Editor.GetSelectedText();
Enter fullscreen mode Exit fullscreen mode

The result is shorter, more readable code that fits naturally into modern JavaScript projects.

New methods and events

Version 10.0 also adds tools for building richer plugins:

  • Methods: Editor.RunMacro, GetRestrictions, SetButtonDisabled, GetOFormRole
  • Events: onFloatActionButtonClick, onSelectionEnd, onSelectionCancel

For example, the selection events let your plugin react the moment a user finishes or cancels a selection. That's perfect for context-aware toolbars or inline suggestions.

🗂️ New file format support

Two format updates help you handle more documents with less custom work:

  • OFD viewing and conversion. You can open and convert ofd files. Like xps, they open in view-only mode.
  • Conversion to XLS. You can convert any spreadsheet format to the classic xls format. This helps when your users or partners still rely on legacy systems.

🛠️ Deployment and admin updates

Running ONLYOFFICE Docs in production also got easier:

  • Admin Panel starts with the server. In commercial editions, the Admin Panel launches automatically by default. It also shows the JWT secret and includes buttons for opening and starting or stopping the test example.
  • CLI admin creation. You now create the first administrator through the documentserver-admin host CLI, using create-admin and reset-admin-password. This replaces the old web page that relied on bootstrap logs.
  • Automatic recovery of unsaved changes. If the server shuts down, unsaved changes are recovered into "forgotten files" automatically. The separate changes2forgotten script has been removed.
  • New default port. DEB and RPM installations now use port 8083 by default. Update your proxy and firewall rules if needed.
  • Better monitoring. The new coauth.connections metric includes mode (edit, liveview, view) and replica tags, which makes it easier to track load across replicas.
  • Desktop update flag. On Windows, the --prefer-alternate-url flag lets Desktop Editors download updates from an alternate source.
  • Refreshed welcome page. The server welcome page has a new design.

✅ Your upgrade checklist

Here's a quick plan to get the most out of 10.0:

  1. Review the behavior changes. Check token usage, secrets, WOPI IP filter rules, and the new default port.
  2. Update your plugins. Switch to the global Editor object and replace any renamed or removed methods.
  3. Try the new endpoints. Test /converter/from-file and /docbuilder/from-file in your conversion workflows.
  4. Decide on AI. Configure editorConfig.customization.ai or aiSettings.enable to match your product and compliance needs.

🚀 Start building

Version 10.0 gives you cleaner APIs, more automation power, and safer defaults out of the box. Download the developer builds and start testing it in your integration today.

Building with the cloud version instead? Try Docs Connect for an easier way to connect the editors with external platforms and services. Unlike the self-hosted version, which you deploy and maintain on your own servers, Docs Connect handles hosting, maintenance, and regular updates for you.

We'd love to hear what you build. Drop your questions or feedback in the comments! 👇

Top comments (0)