Compare commits

...

31 Commits

Author SHA1 Message Date
kikef98
ba3e33f01b release v1.38.4 2026-02-26 17:06:51 +01:00
kikef98
e2e64c9b0d bump frontend 2026-02-26 17:03:42 +01:00
kikef98
c3b44447ae release v1.38.3 2026-02-26 16:57:11 +01:00
kikef98
ce61bf3619 bump frontend 2026-02-26 16:44:29 +01:00
Damon Kennes
2a668d2138 Merge pull request #587 from lblod/OP-3743-Related-organisations-Duplicate-relations-between-municipalities-and-OCMWs
OP-3743: added migration that removes double memberships
2026-02-20 13:11:54 +01:00
Damon
aac6e59d2a OP-3743: added migration that removes double memberships 2026-02-20 11:56:30 +01:00
Damon
de3bc6b0cd release v1.38.2 2026-02-20 10:03:39 +01:00
cecemel
dcb053b036 Merge pull request #586 from lblod/chore/add-related-organizations-report.js
Chore/add related organizations report.js
2026-02-19 16:31:27 +01:00
felix
d325d1b60d Update CHANGELOG.md 2026-02-19 16:30:54 +01:00
felix
d8ded9809a remove comments 2026-02-19 16:16:19 +01:00
felix
f9c5c74c00 added related organizations report 2026-02-19 16:12:11 +01:00
Damon
419c322e5e edit changelog 2026-02-11 09:29:32 +01:00
Damon
2c28259da4 bump frontend 2026-02-11 09:22:29 +01:00
Damon
4e145e67ff edit changelog 2026-02-11 09:21:47 +01:00
Damon
07d4dde49c edit changelog 2026-02-10 16:01:35 +01:00
Damon Kennes
8bf3549cce Merge pull request #585 from lblod/OP-3724-Aalter-can-be-selected-twice-in-editing-werkingsgebied-when-making-a-new-Politiezone
OP-3724: added (voor fusie) to the location labels for the old locati…
2026-02-06 13:35:59 +01:00
Damon
aa1272cf0d OP-3724: added (voor fusie) to the location labels for the old location for Deinze and Aalter 2026-02-06 09:59:15 +01:00
felix
fce61a1a2c Update CHANGELOG.md 2026-02-04 18:35:46 +01:00
felix
54067e925e bump addresseregister 2026-02-04 18:34:54 +01:00
Damon
d55ac1ae5a DL-7142: bump loket-error-alert-service 2026-02-04 09:43:52 +01:00
Boris De Vloed
bb1044f539 Merge pull request #576 from lblod/internal/remove-organizations-public-info-producer
Remove organizations public info producer - consumers have been removed in downstream applications
2026-02-03 09:58:46 +01:00
Boris De Vloed
f982e63a7e remove duplicate line form merge 2026-02-03 09:56:49 +01:00
Boris De Vloed
b41b7ee81e Merge branch 'development' into internal/remove-organizations-public-info-producer 2026-02-03 09:49:56 +01:00
Damon
38d1343338 release v1.38.1 2026-01-30 09:50:45 +01:00
Damon
c701dfa8a5 frontend bump 2026-01-27 09:43:48 +01:00
Damon
b3ff36e184 edit changelog + docker.compose.dev based on feedback 2026-01-23 13:28:10 +01:00
Damon Kennes
fc6239d256 Merge pull request #584 from lblod/OP-3720-Delta-background-job-having-errors-getting-stuck-send-an-email
OP-3720: added error-alert and deliver-email-service to send mails wh…
2026-01-23 10:51:46 +01:00
Damon
ada6e3c781 edit changelog 2026-01-22 16:21:20 +01:00
Damon
dfcbef269d OP-3720: added error-alert and deliver-email-service to send mails when errors occur in dump jobs 2026-01-22 15:46:21 +01:00
Claire Lovisa
bd62954cae Merge branch 'development' into internal/remove-organizations-public-info-producer 2025-10-24 15:43:48 +02:00
Claire Lovisa
11817eac09 Remove organizations-public-info producer 2025-10-24 15:41:18 +02:00
16 changed files with 409 additions and 93 deletions

View File

@@ -1,4 +1,80 @@
# Changelog
## 1.38.4 (2026-02-26)
### Backend
- Bump frontend [OP-3735]
### Deploy instructions
```
drc pull frontend && drc up -d frontend
```
## 1.38.3 (2026-02-26)
### Backend
- Related organisations: Duplicate relations between municipalities and OCMWs [OP-3743]
### Deploy instructions
```
drc restart migrations cache
```
## 1.38.2 (2026-02-20)
### Backend
- Remove deprecated organizations-public-info producer [OP-3581]
- bump loket-error-alert-service [DL-7142]
- bump adressenregister [OP-3721]
- Aalter can be selected twice in editing "werkingsgebied" when making a new Politiezone [OP-3724]
- bump frontend [OP-3726]
- Add related organizations report to report generation service [OP-3739]
### Deploy instructions
```
# removing producer
drc restart dispatcher delta-producer-dump-file-publisher delta-producer-background-jobs-initiator delta-producer-publication-graph-maintainer jobs-controller migrations cache
drc up -d publication-triplestore-migrations error-alert adressenregister frontend
rm -r data/files/deltas/organizations-public-info
rm -r data/files/delta-producer-dumps/dump-organizations-public-info
# new related organizations report
drc pull report-generation; drc up -d report-generation
```
### Deploy instructions
## 1.38.1 (2026-01-30)
### General
- Bump frontend to v1.36.3 [OP-3428]
- [OP-3720]: Delta background job having errors/getting stuck, send an email
### Deploy instructions
#### For error-alert and deliver-email-service
Per environment a specfic configuration for the email service similar to loket config.
Ask colleague for specfic credentials.
```
deliver-email-service:
environment:
EMAIL_PROTOCOL: "smtp"
#WELL_KNOWN_SERVICE: "smtp"
EMAIL_HOST: "Fill in Email host adress"
EMAIL_ADDRESS: "Fill in email"
EMAIL_PASSWORD: "Fill in email password"
EMAIL_PORT: "Fill in port"
SECURE_CONNECTION: "true"
EMAIL_CRON_PATTERN: "*/1 * * * *"
restart: "no"
error-alert:
environment:
EMAIL_FROM: "Fill in email adress of sender
EMAIL_TO: "Fill in email adress of receiver"
```
#### Deploy instructions
```
drc restart migrations deltanotifier
drc up -d error-alert deliver-email-service frontend
```
## 1.38.0 (2026-01-08)
### General
- [OP-3590]: OP is now master of "aantal houders" of mandates
@@ -56,6 +132,7 @@ drc pull frontend && drc up -d frontend
### Deploy notes
```
# cleanup job
drc restart migrations
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
```

View File

@@ -19,16 +19,6 @@
"cronPatternHealingJob": "0 0 4 * * *",
"startInitialSync": true
},
{
"name": "organizations-public-info",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
"dumpFileCreationJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info",
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
"cronPatternDumpJob": "27 */4 * * *",
"cronPatternHealingJob": "0 0 4 * * *",
"startInitialSync": true
},
{
"name": "worship-posts",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",

View File

@@ -17,24 +17,6 @@
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"fileBaseName": "dump-organizations-public-info",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"fileBaseName": "dump-organizations-public-info",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/public": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/public",

View File

@@ -44,29 +44,6 @@
"loginPath": "/public/login",
"logOutgoingDelta": true
},
"organizations-public-info": {
"deltaInterval": 10000,
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-organizations-public-info",
"exportConfigPath": "/config/organizations-public-info/export.json",
"filesPath": "/organizations-public-info/files",
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
"publicationGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"publisherUri": "http://data.lblod.info/services/delta-production-json-diff-file-manager/organizations-public-info",
"queuePollInterval": 3000,
"relativeFilePath": "/deltas/organizations-public-info",
"serveDeltaFiles": true,
"skipMuAuthInitialSync": true,
"skipMuAuthHealing": true,
"useFileDiff": true,
"healingInitialBatchSizeInsert": 1000,
"healingPatchPublicationGraphTaskOperation": 500,
"useVirtuosoForExpensiveSelects": true,
"errorGraph": "http://mu.semte.ch/graphs/jobs",
"loginPath": "/organizations-public-info/login",
"logOutgoingDelta": true
},
"worship-posts": {
"deltaInterval": 10000,
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-worship-posts",

View File

@@ -178,6 +178,27 @@ export default [
ignoreFromSelf: true,
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
}
},
{
match: {
predicate: {
type: 'uri',
value: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'
},
object: {
type: 'uri',
value:'http://open-services.net/ns/core#Error'
}
},
callback: {
url: 'http://error-alert/delta',
method:'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true
}
}
/*
Commenting ldes rules until ready to go to qa/prod. In the meantime, we override the configuration on dev.

View File

@@ -441,14 +441,6 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/organizations/files/"
end
#################################################################
# DELTA: organizations-public-info
#################################################################
get "/sync/organizations-public-info/files/*path" do
Proxy.forward(conn, path, "http://delta-producer-publication-graph-maintainer/organizations-public-info/files/")
end
#################################################################
# DELTA: public
#################################################################

View File

@@ -0,0 +1,8 @@
{
"creators": [
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/public",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations-public-info",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/worship-posts"
]
}

View File

@@ -63,38 +63,6 @@
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
"nextIndex": "0"
},
{
"currentOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
"nextIndex": "1"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/healing/patchPublicationGraph",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/public": {
"tasksConfiguration": [
{

View File

@@ -0,0 +1,44 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/system/email> {
<http://data.lblod.info/id/mailboxes/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox>;
<http://mu.semte.ch/vocabularies/core/uuid> "cf9cb7e4-9a00-4855-9ee0-e8e3bbeba9e9";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/1>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/2>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/3>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/4>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/5>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/6>.
<http://data.lblod.info/id/mail-folders/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "891c67e5-4719-47f8-aec2-d898ba2c09e8";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "inbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your incoming mail goes here.".
<http://data.lblod.info/id/mail-folders/2> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "786a8cb0-4452-40f5-b8d8-046dd2d63281";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "outbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your outgoing mail goes here.".
<http://data.lblod.info/id/mail-folders/3> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "a6fb03f9-11be-4401-9d8f-b4dc0e9df5ee";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sentbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your sent mail goes here.".
<http://data.lblod.info/id/mail-folders/4> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "a430a848-e595-49fa-bc11-f5579605877f";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sending";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your mail goes here while being sent.".
<http://data.lblod.info/id/mail-folders/5> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "0cb108a9-1c0d-4c0a-bf53-60e304116e47";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "drafts";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your draft goes here.".
<http://data.lblod.info/id/mail-folders/6> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "70c0baba-17a0-11eb-adc1-0242ac120002";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "failbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your email that failed while sending goes here.".
}
}

View File

@@ -0,0 +1,44 @@
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX prov: <http://www.w3.org/ns/prov#>
DELETE {
GRAPH ?g {
?aalter rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?aalter rdfs:label "Aalter (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?aalter a prov:Location ;
rdfs:label ?label .
VALUES ?aalter {
<http://data.lblod.info/id/werkingsgebieden/7a7daa48e9e6449358cf96be6c7b30466648d31236e56b8958fae7d53e2308b8>
}
}
}
;
DELETE {
GRAPH ?g {
?deinze rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?deinze rdfs:label "Deinze (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?deinze a prov:Location ;
rdfs:label ?label .
VALUES ?deinze {
<http://data.lblod.info/id/werkingsgebieden/a567b3fdb462a8513ffeeff0188317003c5bbb7debb8f1ea9245b83e1d43b437>
}
}
}

View File

@@ -0,0 +1,26 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?membership ?p ?o .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?membership ?p ?o .
}
FILTER(?membership IN (
<http://data.lblod.info/id/lidmaatschap/e30da404c9e798fbf6c3cb08c18aa2fb3467fbb17d0ee3bf7aeea2e33b506394>,
<http://data.lblod.info/id/lidmaatschap/57e299c1371ff49f9ab4a59c04f213adb95bbd412fca118ba7b97923e8911f1e>,
<http://data.lblod.info/id/lidmaatschap/b5ffde4275206674ce04aec50b96055790fe2bc899688cafab5f317aa351340c>,
<http://data.lblod.info/id/lidmaatschap/6b63778ff8a7805b1bb6eadf016e4eb16eb5bf41>,
<http://data.lblod.info/id/lidmaatschap/7983bd733dd478ee37e74077a9079d34d0d2f8e1>,
<http://data.lblod.info/id/lidmaatschap/b9024618552754cdcf0802109404f2bb5948fe03>,
<http://data.lblod.info/id/lidmaatschap/ef819edf7cce76075aa41d5b42a41ad95e54c73225e1eca066352ecda3780e2a>,
<http://data.lblod.info/id/lidmaatschap/ce7ae35e02378f6496d02ef27a826330b22a083b>,
<http://data.lblod.info/id/lidmaatschap/d275f7cb4cbe0dbf5311d9015c08830a982bb7d3dca565862206d6a840b30dbf>
))
}

View File

@@ -0,0 +1 @@
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>

View File

@@ -1,5 +1,7 @@
import OrganizationsReport from './organizations-report'
import RelatedOrganizationsReport from './related-organizations-report'
export default [
OrganizationsReport,
RelatedOrganizationsReport,
];

View File

@@ -0,0 +1,137 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 4 * * *",
name: "relatedOrganizations",
execute: async () => {
const reportData = {
title: "related organizations",
description: "List of related Organizations and their relationships",
filePrefix: "exports/related-organizations",
};
console.log("Generating related organizations report");
const queryString = `
${PREFIXES}
SELECT DISTINCT
?role_label_renamed
?organization
?organization_label
?organization_classification_label
?organization_status_label
?organization_kbo_number
?related_organization
?related_organization_label
?related_organization_classification_label
?related_organization_status_label
?related_organization_kbo_number
WHERE {
{
?membership org:member ?organization ;
org:role ?role ;
org:organization ?related_organization .
?role skos:prefLabel ?role_label .
BIND(
IF(?role_label = "participant", "Participeert in",
IF(?role_label = "stichtend lid", "Is oprichter van",
IF(?role_label = "gerelateerd", "Heeft een relatie met",
?role_label)))
AS ?role_label_renamed
)
}
UNION
{
?membership org:member ?related_organization ;
org:role ?role ;
org:organization ?organization .
?role skos:prefLabel ?role_label .
BIND(
IF(?role_label = "participant", "Heeft als participanten",
IF(?role_label = "stichtend lid", "Werd opgericht door",
IF(?role_label = "gerelateerd", "Heeft een relatie met",
?role_label)))
AS ?role_label_renamed
)
}
?organization a org:Organization ;
skos:prefLabel ?organization_label ;
regorg:orgStatus ?organization_status .
OPTIONAL { ?organization_status skos:prefLabel ?organization_status_label . }
?organization org:classification ?organization_classification .
?organization_classification skos:prefLabel ?organization_classification_label .
?related_organization skos:prefLabel ?related_organization_label ;
regorg:orgStatus ?related_organization_status .
OPTIONAL { ?related_organization_status skos:prefLabel ?related_organization_status_label . }
?related_organization org:classification ?related_organization_classification .
?related_organization_classification skos:prefLabel ?related_organization_classification_label .
OPTIONAL {
?organization adms:identifier ?identifier1 .
?identifier1 skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id1 .
?id1 generiek:lokaleIdentificator ?organization_kbo_number .
}
OPTIONAL {
?related_organization adms:identifier ?identifier2 .
?identifier2 skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id2 .
?id2 generiek:lokaleIdentificator ?related_organization_kbo_number .
}
}
ORDER BY ?organization
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
role_label_renamed: getSafeValue(row, "role_label_renamed"),
organization: getSafeValue(row, "organization"),
organization_label: getSafeValue(row, "organization_label"),
organization_classification_label: getSafeValue(row, "organization_classification_label"),
organization_status_label: getSafeValue(row, "organization_status_label"),
organization_kbo_number: getSafeValue(row, "organization_kbo_number"),
related_organization: getSafeValue(row, "related_organization"),
related_organization_label: getSafeValue(row, "related_organization_label"),
related_organization_classification_label: getSafeValue(row, "related_organization_classification_label"),
related_organization_status_label: getSafeValue(row, "related_organization_status_label"),
related_organization_kbo_number: getSafeValue(row, "related_organization_kbo_number"),
}));
await generateReportFromData(
data,
[
"role_label_renamed",
"organization",
"organization_label",
"organization_classification_label",
"organization_status_label",
"organization_kbo_number",
"related_organization",
"related_organization_label",
"related_organization_classification_label",
"related_organization_status_label",
"related_organization_kbo_number",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -19,6 +19,8 @@ services:
restart: "no"
migrations-triggering-indexing:
restart: "no"
publication-triplestore-migrations:
restart: "no"
resource:
restart: "no"
cache:
@@ -95,6 +97,17 @@ services:
BASE_URL: "http://localhost/ldes/"
kbo-data-sync:
restart: "no"
error-alert:
environment:
EMAIL_FROM: 'test@example.com'
EMAIL_TO: '123@example.com'
restart: "no"
deliver-email-service:
environment:
EMAIL_CRON_PATTERN: "*/5 * * * *"
WELL_KNOWN_SERVICE: "test"
FROM_NAME: "Your Name"
restart: "no"
# use this to test acmidm
# tlsproxy:
# image: caddy:2

View File

@@ -78,6 +78,16 @@ services:
- "logging=true"
restart: always
logging: *default-logging
publication-triplestore-migrations:
image: semtech/mu-migrations-service:0.9.0
links:
- publication-triplestore:database
volumes:
- ./config/publication-triplestore-migrations:/data/migrations
labels:
- "logging=true"
restart: always
logging: *default-logging
resource:
image: semtech/mu-cl-resources:1.24.0
environment:
@@ -196,13 +206,13 @@ services:
links:
- db:database
adressenregister:
image: lblod/adressenregister-fuzzy-search-service:0.8.0
image: lblod/adressenregister-fuzzy-search-service:0.8.2
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.36.2
image: lblod/frontend-organization-portal:1.36.5
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -626,6 +636,30 @@ services:
restart: always
logging: *default-logging
error-alert:
image: lblod/loket-error-alert-service:1.0.1
environment:
APP_NAME: 'OP'
volumes:
- ./config/error-alert:/config/
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
deliver-email-service:
image: redpencil/deliver-email-service:1.0.0
environment:
MAILBOX_URI: "http://data.lblod.info/id/mailboxes/1"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
roles:
image: lblod/select-role-service:0.1.0
labels: