Внешний NocoBase

Введение

Внешний источник данных NocoBase подключает другое приложение NocoBase к текущему приложению и сохраняет метаданные удаленного приложения, включая коллекции, интерфейсы полей, заголовки и поля связей.

По сравнению с внешним источником данных базы данных обычно не требуется повторно настраивать интерфейсы полей или вручную создавать поля связей. Помимо просмотра, создания, редактирования и удаления записей, поддерживаются загрузка и предпросмотр файлов, импорт и экспорт, запросы в графиках, а также некоторые сценарии рабочих процессов.

Добавление Источника Данных

После активации плагина добавьте внешний источник данных NocoBase в менеджере источников данных и заполните параметры доступа к удаленному приложению.

ПараметрОписание
API URLПолный API URL удаленного приложения NocoBase, например https://example.com/api
OriginПубличный origin удаленного приложения NocoBase, например https://example.com. Он в основном используется для обработки URL предпросмотра локальных файлов в удаленном приложении
API keyУчетные данные, с помощью которых текущее приложение обращается к удаленному приложению NocoBase
Заголовки запросаДополнительные заголовки, отправляемые в удаленное приложение, например сведения о пространстве
Тайм-аутТайм-аут запросов к удаленному приложению

После включения источника данных система загружает коллекции из удаленного приложения.

Права Доступа

На внешний источник данных NocoBase влияют права доступа как текущего приложения, так и удаленного приложения.

  • В текущем приложении можно настраивать права доступа к разным коллекциям и полям так же, как для других внешних источников данных.
  • В удаленном приложении чтение и изменение данных выполняется в соответствии с правами настроенного API key.

Внешние источники данных NocoBase не возвращают метаданные прав доступа, используемые для точного управления видимостью кнопок на фронтенде. Поэтому некоторые кнопки могут не скрываться автоматически по правам так же, как для основного источника данных. Независимо от того, отображается кнопка или нет, отправленные операции все равно проходят серверную проверку прав в текущем приложении, а неавторизованные операции отклоняются.

Примечание

Создайте отдельный API key для внешнего источника данных NocoBase и предоставьте только необходимые права на коллекции и операции. Если у пользователя есть право в текущем приложении, но операция завершается ошибкой, проверьте права удаленного API key.

Использование Коллекций

После успешной загрузки коллекций выберите этот источник данных в настройках страниц, блоков, графиков или рабочих процессов, чтобы использовать коллекции из удаленного приложения.

Когда структура коллекций в удаленном приложении меняется, перезагрузите коллекции в текущем приложении.

Возможности

Внешние источники данных NocoBase в основном используются для работы с коллекциями и данными удаленного приложения в текущем приложении. Структура коллекций, настройки полей и фактические данные по-прежнему поддерживаются удаленным приложением.

Коллекции и Поля

Текущее приложение загружает метаданные из удаленного приложения, включая коллекции, интерфейсы полей, заголовки и поля связей. По сравнению с внешним источником данных базы данных обычно не нужно повторно настраивать интерфейсы полей или вручную создавать поля связей в текущем приложении.

Текущее приложение не поддерживает прямую настройку полей внешнего источника данных NocoBase. Чтобы добавить поля, изменить типы полей или настроить поля связей, внесите изменения в удаленном приложении, а затем перезагрузите коллекции в текущем приложении.

Записи и Связанные Данные

Внешние источники данных NocoBase поддерживают просмотр, создание, редактирование и удаление записей в блоках страниц, а также просмотр и поддержку связанных данных. Операции инициируются текущим приложением и отправляются в удаленное приложение через настроенный API key.

Файлы и Вложения

Файлы загружаются в хранилище, используемое удаленным приложением. Текущее приложение инициирует запросы загрузки, предпросмотра и скачивания, но сами файлы в текущем приложении не сохраняются.

Origin в основном используется для обработки URL предпросмотра файлов, которые удаленное приложение хранит локально. Если удаленное приложение возвращает относительный путь, текущее приложение использует Origin для формирования полного URL доступа к файлу. Origin должен быть публичным адресом доступа к удаленному приложению NocoBase, например:

https://example.com

Не указывайте API URL в качестве Origin.

Импорт и Экспорт

Операции импорта и экспорта читают или записывают источник данных через внешние файлы и проксируются в удаленное приложение для выполнения. Текущее приложение принимает действия пользователя, пересылает запросы и возвращает результаты скачивания. Фактическое чтение и запись данных выполняются удаленным приложением.

  • Импорт записей: текущее приложение принимает загруженный файл импорта и проксирует его в удаленное приложение для выполнения импорта.
  • Экспорт записей: текущее приложение проксирует запрос в удаленное приложение для экспорта записей. В синхронном режиме файл записей, возвращенный удаленным приложением, потоково передается в браузер для скачивания. В асинхронном режиме создается локальная асинхронная задача, экспорт записей запускается в удаленном приложении, прогресс синхронизируется с локальной задачей, а результирующий файл при скачивании потоково передается из удаленного приложения.
  • Экспорт вложений: текущее приложение проксирует запрос в удаленное приложение для экспорта вложений. В синхронном режиме архив вложений, возвращенный удаленным приложением, потоково передается в браузер для скачивания. В асинхронном режиме создается локальная асинхронная задача, экспорт вложений запускается в удаленном приложении, прогресс синхронизируется с локальной задачей, а архив вложений при скачивании потоково передается из удаленного приложения.

Печать по Шаблону

Печать по шаблону может использовать записи из внешнего источника данных NocoBase. Шаблоны печати и настройки действия печати хранятся в текущем приложении. При печати текущее приложение читает удаленные записи и связанные данные и формирует файл печати в текущем приложении.

Графики

Панель Запросов

Внешние источники данных NocoBase можно использовать в панели запросов графиков. Текущее приложение обрабатывает параметры запроса в соответствии с локально настроенными правами на график, источник данных, коллекцию и поля, а затем запрашивает результаты у удаленного приложения.

Удаленный API key также должен иметь доступ к соответствующим данным, иначе запрос завершится ошибкой.

Панель SQL

Панель SQL является режимом SQL-запросов в графиках и используется только для запросов. Текущее приложение сохраняет SQL-конфигурацию и инициирует вызов, а SQL проксируется в удаленное приложение для выполнения.

При использовании панели SQL локальный пользователь должен иметь права настройки UI в текущем приложении, а удаленный API key также должен иметь права настройки UI в удаленном приложении. SQL не разбирается по правам на коллекции и поля так, как это делает панель запросов. Предоставляйте права настройки UI локальным пользователям и соответствующему API key с осторожностью.

Рабочие Процессы

Внешние источники данных NocoBase могут затрагивать рабочие процессы как в текущем, так и в удаленном приложении. Текущее приложение реагирует на события в локальных страницах, кнопках и цепочках API-запросов. После получения проксированных запросов удаленное приложение обрабатывает их согласно собственной конфигурации рабочих процессов.

Текущее приложение не отслеживает события создания, обновления или удаления, происходящие внутри удаленных коллекций. События удаленных коллекций запускаются только в удаленном приложении.

Триггеры

В таблице ниже описано, как триггеры, затрагиваемые внешними источниками данных NocoBase, работают в текущем и удаленном приложении, если соответствующий рабочий процесс включен.

ТриггерТекущее приложениеУдаленное приложениеОписание
Событие перед действиемЗапускаетсяТолько в глобальном режимеВ текущем приложении запускается глобальный режим, а локальный режим следует привязкам кнопок текущего приложения. После получения проксированного запроса удаленным приложением запускается только глобальный режим
Событие после действияЗапускаетсяТолько в глобальном режимеВ текущем приложении запускается глобальный режим, а локальный режим следует привязкам кнопок текущего приложения. После получения проксированного запроса удаленным приложением запускается только глобальный режим
Событие пользовательского действияЗапускаетсяНе запускаетсяКнопка "Запустить workflow", привязанная в текущем приложении, запускает локальный workflow. Проксированные CRUD-запросы не запускают удаленные события пользовательских действий
Событие коллекцииНе запускаетсяЗапускаетсяФактические данные изменяются в удаленном приложении. Текущее приложение не запускает локальные события коллекций, а удаленное приложение запускает собственные события коллекций
Триггер расписания по полю датыНе запускаетсяЗапускаетсяТекущее приложение не запускается на основе полей удаленных коллекций. Удаленное приложение запускается согласно собственной настройке полей даты

Триггеры, не зависящие от источников данных, запускаются в текущем и удаленном приложении согласно их собственным настройкам.

Чтобы в текущем приложении организовать рабочие процессы, работающие с внешними данными NocoBase, используйте события перед действием, события после действия или события пользовательских действий. Существующие рабочие процессы в удаленном приложении выполняются независимо в удаленном приложении.

Узлы

В таблице ниже перечислены только узлы, связанные с источниками данных. Общие узлы, такие как условие, вычисление, цикл и обработка JSON, не зависят от типа источника данных и используются как обычно.

УзелДоступностьОписание
Запрос записейДоступенЗапрашивает записи в удаленном приложении
Создание записиДоступенСоздает записи в удаленном приложении
Обновление записиДоступенОбновляет записи в удаленном приложении
Удаление записиДоступенУдаляет записи в удаленном приложении
Узел SQLНедоступенSQL-узел workflow поддерживает только источники данных базы данных
Узел агрегацииНедоступенУзел агрегации поддерживает только источники данных базы данных

FAQ

Коллекции Не Отображаются

Проверьте, включен ли источник данных и правильно ли указаны API URL и API key. Удаленное приложение также должно разрешать этому API key доступ к соответствующим коллекциям.

Файлы Загружаются, Но Не Отображаются В Предпросмотре

Если текущее или удаленное приложение использует локальное файловое хранилище, проверьте, что Origin является публичным адресом доступа соответствующего приложения. Origin не должен быть API URL.

В Текущем Приложении Есть Права, Но Операция Завершается Ошибкой

Проверьте права API key в удаленном приложении. На внешние источники данных NocoBase влияют права как текущего приложения, так и удаленного приложения.

Коллекции Недоступны После Ошибки Удаленного Сервиса

Если удаленное приложение возвращает 502, перезапускается или временно недоступно, текущее приложение может временно не прочитать метаданные удаленных коллекций. После восстановления удаленного сервиса текущее приложение автоматически перезагружает метаданные при следующем доступе к коллекциям этого источника данных.

Почему Поля Нельзя Настроить В Текущем Приложении

Внешние источники данных NocoBase используют структуру коллекций и настройки полей удаленного приложения. Измените поля в удаленном приложении, затем перезагрузите коллекции в текущем приложении.