common-gateway/pdd-bundle

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

安装: 9

依赖: 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 容器

还有一个用于 OpenWoo 服务的 docker-compose.yml 文件,可以快速构建上述内容。此文件位于此存储库的根目录中。要运行它,需要 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

还需要设置包含授权数据的header以授权获取文档,以下是一个示例: "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(必需):用于生成到前端链接。
  • source(必需):源的引用,在创建源时提供(例如: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 }

如果操作和源已创建/注册,并且 isEnabled 设置为true,则cronjob将每x分钟触发此操作并启动同步。检查日志以查看第一次是否成功。

贡献

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

许可

OpenWoo Service是在EUPL 1.2许可下发布的。有关更多详细信息,请参阅GitHub存储库中的 LICENSE.md 文件。

联系

有关OpenWoo Service的更多信息以及如何在您的组织中实施它,您可以联系info@openwoo.nl