Интеграция с DokuWiki

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

Развернутые описания объектов удобно вести не в самой инвентаризации (форматирование ограничено Markdown), а во внешней wiki. Для подключения укажите в config/params-local.php:

return [
    'wikiUrl'=>'https://wiki.example.local/',
    'wikiUser'=>'inventory_doku_ro_user',
    'wikiPass'=>'inventory_doku_pass',
];

В самой DokuWiki в настройках в секции “Параметры аутентификации” необходимо

  • включить API в параметре “remote”
  • добавить добавленного выше пользователя в параметр “remoteuser”

Как это работает

  • Если в списке ссылок объекта есть ссылка, начинающаяся с wikiUrl, то содержимое этой wiki-страницы будет загружено и показано прямо в карточке объекта (либо прямо в странице, либо будет добавлена вкладка).
  • Страницы запрашиваются через JSON-RPC API DokuWiki (lib/exe/jsonrpc.php) под указанным пользователем - достаточно прав только на чтение.
  • Тот же механизм используется для рендера полей с wiki-разметкой средствами DokuWiki.

Кэширование и webhook

Загруженные из wiki страницы кэшируются на стороне инвентаризации. Чтобы кэш сбрасывался сразу при редактировании страницы в wiki, можно настроить на стороне DokuWiki (например, webhook-плагином) вызов URL:

https://inventory.example.local/web/wiki/invalidate-page?pageName=<идентификатор страницы>

Будет инвалидирована как сама страница, так и страницы, включающие ее через директиву {{page>...}}.

Confluence

Помимо DokuWiki поддерживается подключение Confluence (через REST API): по аналогии задаются параметры confluenceUrl, confluenceUser, confluencePass, после чего ссылки на страницы Confluence в списках ссылок объектов также открываются во вкладке карточки объекта.