Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7adbe9fd4f | ||
|
|
863d7182f9 | ||
|
|
38b7297a3a | ||
|
|
8976b9f5d5 | ||
|
|
9483da5572 | ||
|
|
0a655ddcae | ||
|
|
1b053e26b6 | ||
|
|
7735ee88aa | ||
|
|
6987375abe | ||
|
|
d4d5ceed31 | ||
|
|
d95b331c99 | ||
|
|
bec67cf7eb | ||
|
|
38291891f6 | ||
|
|
a79d080eb4 | ||
|
|
6f53b2e8af | ||
|
|
3d7c704f76 | ||
|
|
5b2a1b1ac6 |
17
CHANGELOG.md
17
CHANGELOG.md
@@ -1,4 +1,21 @@
|
||||
# Changelog
|
||||
## Unreleased
|
||||
|
||||
## v1.40.0
|
||||
- Query to check missing address URI's [OP-3784]
|
||||
- Create new query 'organisations shown in OP frontend' in Dashboard [OP-3774]
|
||||
- Moved AGB BRUGGE to correct graph [OP-3790]
|
||||
- Bump acm-login service [DL-7346]
|
||||
- Frontend [v1.37.0](https://github.com/lblod/frontend-organization-portal/blob/99e0ca22617d17cbc8a23dfa2f6d31691fed90b9/CHANGELOG.md#v1370-2026-05-27)
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
drc restart report-generation
|
||||
drc restart migrations
|
||||
scripts/reset-elastic.sh
|
||||
drc up -d login login-dashboard frontend
|
||||
```
|
||||
|
||||
## 1.39.1 (2026-04-24)
|
||||
- OP-3771: Adds labels for: EredienstBeroepen and TypeBetrokkenheid
|
||||
- Bump to kbo-data-sync [OP-3765]
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX dcterms: <http://purl.org/dc/terms/>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/application> {
|
||||
?s ?p ?o
|
||||
}
|
||||
} INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?s ?p ?o
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/application> {
|
||||
VALUES ?s {
|
||||
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a>
|
||||
<http://data.lblod.info/id/identificatoren/2aa74846-a99d-423b-8c9e-b2a344b39f2a>
|
||||
<http://data.lblod.info/id/gestructureerdeIdentificatoren/0edd4e8e-44b6-4e86-8717-cda144f91ebb>
|
||||
<http://data.lblod.info/id/vestigingen/29faec77-652a-4d8e-afbb-635b141b13f0>
|
||||
<http://data.lblod.info/id/contact-punten/bc66afca-f8cf-4e4d-b038-500906e9ffa9>
|
||||
<http://data.lblod.info/id/contact-punten/1d1da2b5-8f38-41b6-a81d-5bfa72e7d7db>
|
||||
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f>
|
||||
}
|
||||
?s ?p ?o.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT DATA {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a> a dcterms:Agent ;
|
||||
regorg:legalName "AGB BRUGGE" ;
|
||||
besluit:werkingsgebied <http://data.lblod.info/id/werkingsgebieden/e1a7aa197d1fa117ad5fdc30dee57cf95974c149ed0f319237bb8fb1355d911e> .
|
||||
|
||||
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f> adres:adresIsGelegenIn <http://data.lblod.info/id/werkingsgebieden/9c503a712d448bc8b89c1f8802c207e30bd192bc8da3bf22509a547949a45301> .
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import OrganizationsDetailReport from './organizations-detail-report'
|
||||
import OrganizationsPlatformReport from './organizations-platform-report'
|
||||
import AdministrativeUnitsReport from "./administrative-units-report";
|
||||
import ChangeEventsReport from "./change-events-report";
|
||||
import OrganizationsNoAddressReport from "./organizations-no-address-report";
|
||||
import OrganizationsInFrontendReport from "./organizations-in-frontend-report";
|
||||
|
||||
export default [
|
||||
OrganizationsReport,
|
||||
@@ -14,4 +16,6 @@ export default [
|
||||
OrganizationsPlatformReport,
|
||||
AdministrativeUnitsReport,
|
||||
ChangeEventsReport,
|
||||
OrganizationsNoAddressReport,
|
||||
OrganizationsInFrontendReport,
|
||||
];
|
||||
|
||||
102
config/reports/organizations-in-frontend-report.js
Normal file
102
config/reports/organizations-in-frontend-report.js
Normal file
@@ -0,0 +1,102 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 23 * * *",
|
||||
name: "organizationsInFrontend",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "organisations in frontend",
|
||||
description: "List of the Organisations shown in the frontend",
|
||||
filePrefix: "exports/organizations-in-frontend",
|
||||
};
|
||||
|
||||
console.log("Generating organizations in frontend report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>
|
||||
PREFIX dct: <http://purl.org/dc/terms/>
|
||||
SELECT DISTINCT
|
||||
?bestuur
|
||||
?label
|
||||
?classification
|
||||
?typeEredienst
|
||||
?provincie
|
||||
?status
|
||||
WHERE {
|
||||
?bestuur a org:Organization .
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site.
|
||||
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address.
|
||||
?address <http://www.w3.org/ns/locn#adminUnitL2> ?provincie.
|
||||
}
|
||||
OPTIONAL {?bestuur <http://data.lblod.info/vocabularies/erediensten/typeEredienst> ?typeEredienst.}
|
||||
OPTIONAL {?bestuur skos:prefLabel ?label}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
|
||||
?org_classification skos:prefLabel ?classification.
|
||||
}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status.
|
||||
?org_status skos:prefLabel ?status.
|
||||
}
|
||||
|
||||
FILTER(
|
||||
NOT EXISTS {
|
||||
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001>.
|
||||
}
|
||||
||
|
||||
EXISTS {
|
||||
?bestuur besluit:werkingsgebied ?werkingsgebied .
|
||||
?werkingsgebied geosparql:sfWithin ?parent .
|
||||
}
|
||||
)
|
||||
|
||||
FILTER(
|
||||
NOT EXISTS {
|
||||
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/52cc9d8d-1c9a-4d92-9936-da9d4a622ec4>.
|
||||
}
|
||||
|
||||
)
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
label: getSafeValue(row, "label"),
|
||||
classification: getSafeValue(row, "classification"),
|
||||
typeEredienst: getSafeValue(row, "typeEredienst"),
|
||||
provincie: getSafeValue(row, "provincie"),
|
||||
status: getSafeValue(row, "status"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"bestuur",
|
||||
"label",
|
||||
"classification",
|
||||
"typeEredienst",
|
||||
"provincie",
|
||||
"status",
|
||||
],
|
||||
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}\"`;
|
||||
}
|
||||
98
config/reports/organizations-no-address-report.js
Normal file
98
config/reports/organizations-no-address-report.js
Normal file
@@ -0,0 +1,98 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 23 * * *",
|
||||
name: "organizationsNoAddressregister",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "missing address URI's",
|
||||
description: "List of Organizations with addresses that have no address URI",
|
||||
filePrefix: "exports/organizations-no-addressregister",
|
||||
};
|
||||
|
||||
console.log("Generating organizations no addressregister report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
SELECT DISTINCT
|
||||
?bestuur
|
||||
?label
|
||||
?classification
|
||||
?status
|
||||
?street
|
||||
?number
|
||||
?bus
|
||||
?postal
|
||||
?location
|
||||
WHERE {
|
||||
?bestuur a org:Organization .
|
||||
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site .
|
||||
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address .
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#verwijstNaar> ?adressenregister .}
|
||||
OPTIONAL{?address <http://www.w3.org/ns/locn#thoroughfare> ?street . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer> ?number . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer> ?bus . }
|
||||
OPTIONAL{?address <http://www.w3.org/ns/locn#postCode> ?postal . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#gemeentenaam> ?location . }
|
||||
}
|
||||
|
||||
OPTIONAL {?bestuur skos:prefLabel ?label}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
|
||||
?org_classification skos:prefLabel ?classification .
|
||||
}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status .
|
||||
?org_status skos:prefLabel ?status .
|
||||
}
|
||||
FILTER(!BOUND(?adressenregister))
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
label: getSafeValue(row, "label"),
|
||||
classification: getSafeValue(row, "classification"),
|
||||
status: getSafeValue(row, "status"),
|
||||
street: getSafeValue(row, "street"),
|
||||
number: getSafeValue(row, "number"),
|
||||
bus: getSafeValue(row, "bus"),
|
||||
postal: getSafeValue(row, "postal"),
|
||||
location: getSafeValue(row, "location"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"bestuur",
|
||||
"label",
|
||||
"classification",
|
||||
"status",
|
||||
"street",
|
||||
"number",
|
||||
"bus",
|
||||
"postal",
|
||||
"location",
|
||||
],
|
||||
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}\"`;
|
||||
}
|
||||
@@ -143,7 +143,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
login:
|
||||
image: lblod/acmidm-login-service:0.12.0
|
||||
image: lblod/acmidm-login-service:0.12.1.rc-2
|
||||
environment:
|
||||
MU_APPLICATION_AUTH_USERID_CLAIM: "vo_id"
|
||||
MU_APPLICATION_GRAPH: "http://mu.semte.ch/graphs/contacthub/accounts"
|
||||
@@ -159,7 +159,7 @@ services:
|
||||
links:
|
||||
- db:database
|
||||
login-dashboard:
|
||||
image: lblod/acmidm-login-service:0.12.0
|
||||
image: lblod/acmidm-login-service:0.12.1.rc-2
|
||||
environment:
|
||||
LOG_SINK_URL: "http://sink"
|
||||
MU_APPLICATION_AUTH_ROLE_CLAIM: "abb_organisatieportaal_rol_2d"
|
||||
@@ -215,7 +215,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
frontend:
|
||||
image: lblod/frontend-organization-portal:1.36.5
|
||||
image: lblod/frontend-organization-portal:1.37.0
|
||||
volumes:
|
||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||
environment:
|
||||
|
||||
Reference in New Issue
Block a user