common-gateway/woo-bundle

用于存储OpenWoo对象并从OpenWoo & xxllnc zaaksysteem同步这些对象的包。

安装: 618

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 4

分支: 2

公开问题: 6

类型:symfony-bundle

0.0.160 2024-09-28 19:16 UTC

This package is auto-updated.

Last update: 2024-09-28 19:20:23 UTC


README

OpenWoo服务通过将组织资源与Open Index无缝同步,增强了《开放政府法》(Woo)下政府发布的可访问性。该核心服务支持在Woo类别内进行有效的搜索操作,并通过Common Ground OpenServices框架促进数据交换。它简化了与地方和国家级发布平台的集成,包括与知识-利用中心官方出版物(KOOP)的连接。OpenWoo.app专为开源和专有平台设计,为政府信息的管理和可搜索性提供了一种集中解决方案。

核心功能

  • 自动同步:通过Open Index无缝集成以自动更新和同步政府出版物。
  • 高效搜索:通过Open Index的数据交换在Woo类别内进行高级搜索。
  • 多方面支持:适用于地方和国家级发布平台,包括与知识-利用中心官方出版物(KOOP)的连接。
  • 联邦搜索:通过koophulpje.nl支持联邦搜索,确保政府出版物有更广泛的覆盖和可访问性。
  • OpenServices框架:与Common Ground OpenServices框架集成,以实现标准化的数据交换和互操作性。

安装

要求

  • PHP 7.4或更高版本
  • Symfony 5或更高版本
  • Docker(用于容器化和本地开发)

在Common Gateway中的分步安装指南

  1. 克隆OpenWoo存储库: git clone https://github.com/OpenWoo/OpenWooService.git
  2. 使用Composer安装依赖项: composer install
  3. 根据数据库和其他服务的特定配置修改.env文件。
  4. 使用Docker启动OpenWoo服务: docker-compose up -d

Docker容器

还有一份docker-compose.yml文件可用于快速构建OpenWoo服务。此文件位于此存储库的根目录中。要运行它,需要Docker,并执行以下步骤

  1. 打开一个运行Docker的终端窗口
  2. 导航到您克隆存储库的目录
  3. 运行命令 docker compose up
    1. 如果图像尚未在Docker中可用,则将基于最新版本的common gateway images重新构建图像。
    2. 然后启动容器(如果图像已可用,将直接启动)
  4. 管理环境可在https://:8000上访问,前端在https://:8080

可以使用默认凭证 username: no-reply@test.com, password: !ChangeMe! 登录管理环境。然后可以影响环境配置。

在存储库的代码(src文件夹)中进行的更改将被本地直接接受。此存储库中的配置文件(安装文件夹)中的更改也将被接受,但必须使用命令 docker compose exec php bin/console commongateway:initialize 加载才能在本地环境中生效

使用

安装后,您可以配置OpenWoo服务以开始将组织资源自动同步到Open Index。

同步操作通过结合一个动作和一个源来执行。以下将解释如何填写这些内容,并在/Installation/Action/Installation/Source文件夹中提供了足够的示例。

可以从以下源类型进行同步

  • 案件系统
  • OpenWoo(和OpenConvenant)

对于每种源类型,源和动作的配置方式都不同。

源代码

源通常需要一个引用和一个名称。引用必须唯一,例如https://commongateway.woo.nl/source/example.zaaksysteem.source.json

案件系统

对于案件系统的源,需要输入location。这是案件系统的完整URL,包括开始处的https://和结束处的/api

还需要设置包含认证数据的headers以授权获取文档,以下是一个示例: "headers": { "Accept": "*/*", "API-Interface-ID": "{apiInterfaceId}", "API-KEY": "{apiKey}", "Content-Type": "application/json" }

如果你已经正确填写了源的字段,可以通过将isEnabled设置为true来启用它。

正确填写后的案件系统源的完整POST请求如下: { "reference": "https://commongateway.woo.nl/source/example.zaaksysteem.source.json" "name": "你的案件系统", "location": "https://{zaaksysteemUrl}/api", "isEnabled": true, "headers": { "Accept": "*/*", "API-Interface-ID": "{apiInterfaceId}", "API-KEY": "{apiKey}", "Content-Type": "application/json" } }

OpenWoo和OpenConvenant

对于OpenWoo或OpenConvenant的源,只需要设置location,包括开始处的https://和结束处的/wp-json(例如:https://{openWooUrl}/wp-json)。

如果你想让源和同步启动,必须将isEnabled设置为true。

正确填写后的OpenWoo或OpenConvenant源的完整POST请求如下: { "reference": "https://commongateway.woo.nl/source/example.openwoo.source.json" "name": "你的OpenWoo", "location": "https://{openWooUrl}/wp-json", "isEnabled": true }

动作

案件系统的动作示例可以查看SyncEpeAction,而OpenWoo可以查看SyncBurenOpenWooAction。对于OpenConvenant,可以查看SyncBurenOpenConvenantAction。

动作通常需要一个引用和一个名称。引用必须唯一,例如https://commongateway.nl/woo.SyncExampleAction.action.json

动作还有一个listens字段。在这个上下文中,这通常等于通用cronjob的throwswoo.default.listens。这确保动作(同步)每x分钟运行一次,就像在cronjob中设置的那样(默认10分钟)。

conditions字段。这是动作可以运行的额外规则。在这种情况下,动作默认在cronjob的throws上运行,通过动作的listens设置,因此这里的conditions可以默认设置为{"==": [1,1]}。这种json逻辑意味着它总是运行(在listens事件上)。

class字段。这指定了将为该动作执行哪种代码。对于不同的源,这可能不同

  • 案件系统:CommonGateway\\WOOBundle\\ActionHandler\\SyncXxllncCasesHandler
  • OpenWoo和OpenConvenant:CommonGateway\\WOOBundle\\ActionHandler\\SyncOpenWooHandler

动作在configuratie数组中有一系列需要配置的字段,有些字段是必需的,有些不是。这取决于同步的源类型(案件系统、OpenWoo或OpenConvenant)

  • oin(必需):来自Logius的oin注册的oin。这个值用于以后进行过滤?organsiatie.oin=value
  • portalUrl(必需):用于生成前端链接。
  • 来源(必需):来源的引用,你在创建来源时提供的(例如:https://commongateway.woo.nl/source/example.zaaksysteem.source.json)。
  • 模式(必需):通常是发布模式的引用,对于几乎所有Woo同步,你希望将它们映射到发布模式:https://commongateway.nl/woo.publicatie.schema.json
  • 映射(必需):用于将源对象映射到发布对象的映射。对于案件系统,这是 https://commongateway.nl/mapping/woo.xxllncCaseToWoo.mapping.json,对于OpenWoo,这是 https://commongateway.nl/mapping/woo.openWooToWoo.mapping.json,对于OpenConvenant,这是 https://commongateway.nl/mapping/woo.openConvenantToWoo.mapping.json
  • 组织(必需):组织的文本表示,发布来源的组织,通常是在市的情况下市的名称。
  • zaaksysteemSearchEndpoint(如果案件系统必需):用于从案件系统中检索发布内容的端点。
  • sourceEndpoint(如果OpenWoo或OpenConvenant必需):提取发布内容的端点。
  • fileEndpointReference(如果案件系统必需):指向同步文档视图端点的引用。确保检索到的文档有一个端点可以查看。默认:https://commongateway.nl/woo.ViewFile.endpoint.json输入。
  • sourceType(如果OpenWoo、OpenConvenant或Notubiz必需):如果案件系统不是必需的,默认为案件系统。否则,对于OpenWoo输入'openWoo',对于Notubiz输入'notubiz'。
  • autoPublish:不是必需的,默认为true。如果希望同步的发布内容不立即检索,则此字段应设置为false。
  • allowPDFOnly:不是必需的。如果希望仅同步pdf文档而不同步其他文件类型,则将其设置为true。

始终检查是否通过isEnabled字段启用了操作。如果需要同步,则此字段必须为true。

案件系统的action POST如下所示:{ "reference": "https://commongateway.nl/woo.SyncExampleAction.action.json", "name": "SyncExampleCasesAction", "listens": [ "woo.default.listens" ], "conditions": { "==": [ 1, 1 ] }, "class": "CommonGateway\\WOOBundle\\ActionHandler\\SyncXxllncCasesHandler", "configuration": { "oin": "{oinNummer}", "portalUrl": "https://conductionnl.github.io/woo-website-example", "source": "https://commongateway.woo.nl/source/example.zaaksysteem.source.json", "schema": "https://commongateway.nl/woo.publicatie.schema.json", "mapping": "https://commongateway.nl/mapping/woo.xxllncCaseToWoo.mapping.json", "organisatie": "Example", "zaaksysteemSearchEndpoint": "{zaaksysteemZoekEndpoint}", "fileEndpointReference": "https://commongateway.nl/woo.ViewFile.endpoint.json" }, "isEnabled": true }

OpenWoo或OpenConvenant的action POST如下所示:{ "reference": "https://commongateway.nl/woo.SyncExampleOpenConvenantAction.action.json", "name": "SyncExampleOpenConvenantAction", "listens": [ "woo.default.listens" ], "conditions": { "==": [ 1, 1 ] }, "class": "CommonGateway\\WOOBundle\\ActionHandler\\SyncOpenWooHandler", "configuration": { "oin": "{oinNummer}", "portalUrl": "https://conductionnl.github.io/woo-website-example", "source": "https://commongateway.woo.nl/source/example.openwoo.source.json", "schema": "https://commongateway.nl/woo.publicatie.schema.json", "mapping": "https://commongateway.nl/mapping/woo.openConvenantToWoo.mapping.json", "sourceType": "openWoo", "organisatie": "Exanoke", "sourceEndpoint": "{sourceEndpoint}" }, "isEnabled": true }

如果action和source已创建/注册并且isEnabled设置为true。cronjob将每隔x分钟触发此action并启动同步。

贡献

我们欢迎对OpenWoo服务的贡献,无论是错误报告、功能建议还是代码贡献。有关如何贡献的更多信息,请参阅我们的CONTRIBUTING.md

许可证

OpenWoo服务是根据EUPL 1.2许可证发布的。有关更多详细信息,请参阅我们的GitHub存储库中的LICENSE.md文件。

联系

有关OpenWoo服务的更多信息以及如何在您的组织中实施,请联系我们,邮箱为info@openwoo.nl