Перейти к содержимому
FastOffice

От концепции к пилоту

Минимальный архитектурный пилот и путь к промышленной поставке, включая план поставки Embedding API.

Вопрос Варианты Результат решения
Где выполняется Rust? WASM у пользователя / native desktop / server worker. Deployment topology.
Кто владеет файлом? DMS storage / local file / object storage. Open/save protocol и versioning.
Какие объекты доступны? Cells, formulas, tables, charts, shapes, imports и др. Capability matrix пилота.
Какой интерфейс? Готовый Web Shell / ограниченный white label / собственный UI. Public SDK и scope UI customization.
Как передаются права? Read-only/edit, protection, tenant, source permissions. Session/auth contract.
Как живёт сессия? Одна вкладка, desktop process, server job, mobile resume. Timeout, cancellation, recovery.
Кто эксплуатирует? Партнёр / совместно / managed delivery. SLA, monitoring, updates, support.
  • Один реальный обезличенный XLSX и один бизнес-маршрут.

  • Одна выбранная topology: Browser/WASM либо Desktop/native; server/mobile не смешивать в первый spike.

  • Host создаёт IntegrationSession, передаёт bytes и права; F1 возвращает SavedArtifact и события.

  • Проверяются повторное открытие, конкурентная revision, отказ без частичной записи, память и время ответа.

  • По результату фиксируются public API v1, capability matrix, deployment package, SLA и план productization.

Объектное понимание в одной строке DMS создаёт IntegrationSession → Rust создаёт WorkbookSession → Web показывает Viewport → пользователь отправляет Operation → Rust меняет Revision/History → Save создаёт SavedArtifact → DMS создаёт новую версию. Иными словами, F1 — это Web-поверхность вокруг единого Rust-процессора между пользовательской сессией партнёра и его хранилищем.
Текст для отправки Да, F1 имеет внутренний программный доступ к структуре рабочей книги: листам, диапазонам, ячейкам, таблицам и графическим объектам. Ядро на Rust возвращает типизированные проекции и выполняет изменения через единый compute contract. Web-часть уже обрабатывает выбор, click, double-click, context menu и выбор объектов. Для внешней интеграции мы предоставляем это не как доступ к внутреннему DOM, а как стабильный Embedding SDK: Read API, Semantic Event API, Command API и Context Menu Contributions. Конкретный состав SDK и поддерживаемые объекты фиксируются в capability matrix пилота.
Пакет Минимальный состав
@F1/embed create/open/close, mount, session state, backend selection.
@F1/document WorkbookInfo, Selection, CellDetails, RangeSnapshot, ObjectInventory.
@F1/events selectionChanged, activated, doubleClicked, objectSelected, contextMenuOpening, changed.
@F1/commands execute, undo/redo, revision guard, typed results/refusals.
@F1/ui-extensions context menu providers, command registry, bounded panels/actions.

Что нужно закончить до промышленной передачи

Заголовок раздела «Что нужно закончить до промышленной передачи»
  • Отделить публичные типы и имена от большого внутреннего compute contract.

  • Зафиксировать event ordering, cancelability, timeout и teardown semantics.

  • Создать ContextTarget taxonomy и permission/capability filters.

  • Добавить versioning, compatibility window, examples, test harness и migration guide.

  • Провести пилот на реальных cell/table/chart/shape сценариях внешнее приложение в выбранной среде.

Граница стабильности API Во внешнем API следует обещать саму модель API и согласованный v1 scope, но не стабильность текущих внутренних CustomEvent, data-* атрибутов и __f1 hooks. Они являются реализацией продукта, а не контрактом поставки.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.