De OpenWoo Service versterkt de toegankelijkheid van overheidspublicaties volgens de Wet open overheid (Woo) door organisatiebronnen naadloos te synchroniseren met Open Index. Deze kernservice ondersteunt efficiënte zoekacties binnen Woo-categorieën en bevordert data-uitwisseling via het Common Ground OpenServices framework. Het faciliteert integratie met lokale en landelijke publicatieplatformen, inclusief koppelingen met het Kennis- en Exploitatiecentrum Officiële Publicaties (KOOP). OpenWoo.app is ontworpen voor zowel open source als proprietary platforms, waardoor het een centrale oplossing biedt voor het beheer en de zoekbaarheid van overheidsinformatie..
git clone https://github.com/OpenWoo/OpenWooService.gitcomposer install.env bestanden aan met uw specifieke configuraties voor de database en andere diensten.docker-compose up -dEr is ook een docker-compose.yml beschikbaar voor de OpenWoo service om bovenstaande snel op te bouwen. Deze file is beschikbaar in de root folder van deze repository. Om deze te draaien is docker benodigd en zet u de volgende stappen:
docker compose up
Op de admin omgeving kan worden ingelogd met de default credentials username: no-reply@test.com, password: !ChangeMe!. Daarmee kan dan de configuratie van de omgeving worden beïnvloed.
Wijzigingen die in de code van deze repository (de map src) worden gedaan worden lokaal direct overgenomen. Changes in de configuratiebestanden in deze repository (Installation-folder) worden eveneens overgenomen, maar moeten om actief te worden in de lokale omgeving nog worden ingeladen met het commando docker compose exec php bin/console commongateway:initialize
Na de installatie kunt u de OpenWoo Service configureren om te beginnen met de automatische synchronisatie van uw organisatiebronnen naar Open Index.
De synchronisaties werken aan de hand van een action in combinatie met een source. Hieronder wordt uitgelegd hoe deze ingevuld moeten worden, er zijn ook genoeg voorbeelden in de /Installation/Action en /Installation/Source folders.
Er kan vanuit de volgende brontypen gesynchroniseerd worden:
Voor elk brontypen verschilt de configuratie voor de source en action die ingevuld moet worden.
Een source heeft standaard een reference en een name nodig. De reference moet uniek zijn als bijvoorbeeld https://commongateway.woo.nl/source/example.zaaksysteem.source.json.
Voor een source voor een zaaksysteem moeten de location ingevoerd worden. Dat is de volledige url van het zaaksysteem url, dus inclusief https:// aan het begin en /api aan het eind.
Ook moeten er headers geset worden met auth gegevens om te kunnen autoriseren voor het ophalen van documenten, hier een voorbeeld:
"headers": { "Accept": "*/*", "API-Interface-ID": "{apiInterfaceId}", "API-KEY": "{apiKey}", "Content-Type": "application/json" }
Als je al de velden van je source goed ingevuld heb kan je hem aanzetten door isEnabled op true te zetten.
De volledige POST van een goed ingevulde source voor het zaaksysteem ziet er als volgt uit:
{ "reference": "https://commongateway.woo.nl/source/example.zaaksysteem.source.json" "name": "Jouw zaaksysteem", "location": "https://{zaaksysteemUrl}/api", "isEnabled": true, "headers": { "Accept": "*/*", "API-Interface-ID": "{apiInterfaceId}", "API-KEY": "{apiKey}", "Content-Type": "application/json" } }
Voor een source voor OpenWoo of OpenConvenant hoeft alleen de location geset te worden, inclusief https:// aan het begin en /wp-json aan het eind (bijv: https://{openWooUrl}/wp-json).
Als je wilt dat je source en dus synchronisatie aanstaat moet isEnabled op true staan.
De volledige POST van een goed ingevulde source voor het OpenWoo of OpenConvenant ziet er als volgt uit:
{ "reference": "https://commongateway.woo.nl/source/example.openwoo.source.json" "name": "Jouw OpenWoo", "location": "https://{openWooUrl}/wp-json", "isEnabled": true }
Voor een voorbeeld van een action voor het zaaksysteem kan je kijken naar SyncEpeAction en als voor OpenWoo naar SyncBurenOpenWooAction. Voor OpenConvenant kan er gekeken worden naar SyncBurenOpenConvenantAction.
Een action heeft standaard een reference en een name nodig. De reference moet uniek zijn als bijvoorbeeld https://commongateway.nl/woo.SyncExampleAction.action.json.
Een action heeft ook een listens veld. Deze is in deze context meestal gelijk aan de throws van de algemene cronjob: woo.default.listens. Dit zorgt ervoor dat de action (synchronisatie) elke x minuten afgaat als in de cronjob ingesteld staat (standaard 10 minuten).
Het conditions veld. Dit zijn extra regels waneer een action af mag gaan. In dit geval gaan de actions standaard op de throws van de cronjob af, ingesteld via het listens van de action, dus mag hier de conditions standaard op {"==": [1,1]}. Deze json logic betekend dat hij altijd afgaat (op het listens event).
Het class veld. Dit geeft aan welke code uitgevoerd gaat worden voor deze action. Voor verschillende bronnen kan dit anders zijn:
CommonGateway\\WOOBundle\\ActionHandler\\SyncXxllncCasesHandler.CommonGateway\\WOOBundle\\ActionHandler\\SyncOpenWooHandler.De action heeft in de configuratie array een aantal velden wat geconfigureerd moet worden, sommige velden zijn verplicht en andere niet. Het verschilt ook vanuit wat voor type source (zaaksysteem, OpenWoo of OpenConvenant) gesynchroniseerd wordt:
?organsiatie.oin=value.https://commongateway.woo.nl/source/example.zaaksysteem.source.json). https://commongateway.nl/woo.publicatie.schema.jsonhttps://commongateway.nl/mapping/woo.xxllncCaseToWoo.mapping.json en voor OpenWoo is dit https://commongateway.nl/mapping/woo.openWooToWoo.mapping.json, voor OpenConvenant is het https://commongateway.nl/mapping/woo.openConvenantToWoo.mapping.json.https://commongateway.nl/woo.ViewFile.endpoint.json invoeren.Check altijd ook of de action aan staat met het isEnabled veld. Deze moet op true staan als er gesynchroniseerd moet worden.
De POST van een action voor het zaaksysteem ziet er als volgt uit:
{ "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 }
De POST van een action voor het OpenWoo of OpenConvenant ziet er als volgt uit:
{ "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 }
Als de action en source aangemaakt/ingeregeld zijn en isEnabled staat op true. Zou de cronjob elke x minuten deze action afvuren en de synchrosatie aftrappen. Check de logs of om te kijken of deze de 1e keer goed gaat.
Wij verwelkomen bijdragen aan de OpenWoo Service, of het nu gaat om bugrapporten, feature suggesties, of codebijdragen. Zie onze CONTRIBUTING.md voor meer informatie over hoe u kunt bijdragen.
De OpenWoo Service is uitgegeven onder de EUPL 1.2 licentie. Voor meer details, zie het LICENSE.md bestand in onze GitHub repository.
Voor meer informatie over de OpenWoo Service en hoe deze in uw organisatie geïmplementeerd kan worden, kunt u contact met ons opnemen via info@openwoo.nl.
How can I help you explore Laravel packages today?