Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba3e33f01b | ||
|
|
e2e64c9b0d | ||
|
|
c3b44447ae | ||
|
|
ce61bf3619 | ||
|
|
2a668d2138 | ||
|
|
aac6e59d2a | ||
|
|
de3bc6b0cd | ||
|
|
dcb053b036 | ||
|
|
d325d1b60d | ||
|
|
d8ded9809a | ||
|
|
f9c5c74c00 | ||
|
|
419c322e5e | ||
|
|
2c28259da4 | ||
|
|
4e145e67ff | ||
|
|
07d4dde49c | ||
|
|
8bf3549cce | ||
|
|
aa1272cf0d | ||
|
|
fce61a1a2c | ||
|
|
54067e925e | ||
|
|
d55ac1ae5a | ||
|
|
bb1044f539 | ||
|
|
f982e63a7e | ||
|
|
b41b7ee81e | ||
|
|
38d1343338 | ||
|
|
c701dfa8a5 | ||
|
|
b3ff36e184 | ||
|
|
fc6239d256 | ||
|
|
ada6e3c781 | ||
|
|
dfcbef269d | ||
|
|
f47847d5fd | ||
|
|
5f36c2880c | ||
|
|
0727ad4674 | ||
|
|
e598e9334c | ||
|
|
d77dcd7ad6 | ||
|
|
dd7f360268 | ||
|
|
cfa006d8e5 | ||
|
|
0c6f8fe115 | ||
|
|
a7d14d42af | ||
|
|
9a0e8bfa4b | ||
|
|
7b3d0d94d1 | ||
|
|
c5cebc7c08 | ||
|
|
a6802e4c9d | ||
|
|
cec0ccca77 | ||
|
|
c27870a274 | ||
|
|
380dd9afaf | ||
|
|
c74e32336c | ||
|
|
0c4df815e9 | ||
|
|
f2d66ba03b | ||
|
|
b1322d1884 | ||
|
|
7f60f302b0 | ||
|
|
0674a8a998 | ||
|
|
10b8b0dd0c | ||
|
|
3b0131f398 | ||
|
|
49ac622757 | ||
|
|
bacf26e75d | ||
|
|
bd62954cae | ||
|
|
11817eac09 |
@@ -1 +0,0 @@
|
||||
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
|
||||
126
CHANGELOG.md
126
CHANGELOG.md
@@ -1,5 +1,130 @@
|
||||
# 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
|
||||
- [OP-3699]: Update aantal houders for some mandates Hasselt and Antwerp
|
||||
- [OP-3680]: Indicate whether a worship service is a customer of ReligioPoint or Loket voor Lokale Besturen
|
||||
- Bump frontend to v1.36.2 [OP-3623] [OP-3681] [OP-3703] [OP-2712]
|
||||
|
||||
### Deploy instructions
|
||||
#### For the vendor-management-consumer
|
||||
Per environment a slightly different configuration is needed. Update the `docker-compose.override.yml` accordingly.
|
||||
##### development
|
||||
```
|
||||
vendor-management-consumer:
|
||||
environment:
|
||||
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/"
|
||||
DCR_SYNC_LOGIN_ENDPOINT: "https://dev.loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
|
||||
DCR_DISABLE_INITIAL_SYNC: "false"
|
||||
DCR_DISABLE_DELTA_INGEST: "false"
|
||||
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
|
||||
```
|
||||
##### qa
|
||||
```
|
||||
vendor-management-consumer:
|
||||
environment:
|
||||
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
|
||||
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
|
||||
DCR_DISABLE_INITIAL_SYNC: "false"
|
||||
DCR_DISABLE_DELTA_INGEST: "false"
|
||||
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
|
||||
```
|
||||
##### production
|
||||
```
|
||||
vendor-management-consumer:
|
||||
environment:
|
||||
DCR_SYNC_BASE_URL: "https://loket.lokaalbestuur.vlaanderen.be/"
|
||||
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lokaalbestuur.vlaanderen.be/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
|
||||
DCR_DISABLE_INITIAL_SYNC: "false"
|
||||
DCR_DISABLE_DELTA_INGEST: "false"
|
||||
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
|
||||
```
|
||||
|
||||
#### Deploy instructions
|
||||
```
|
||||
drc restart migrations
|
||||
drc restart delta-producer-publication-graph-maintainer resource
|
||||
drc pull vendor-management-consumer; drc up -d vendor-management-consumer
|
||||
drc restart db resource
|
||||
drc pull frontend && drc up -d frontend
|
||||
```
|
||||
|
||||
## 1.37.3 (2025-11-14)
|
||||
### Backend
|
||||
- Added cleanup job to clean duplicated data of municipalities and provinces [OP-3676]
|
||||
@@ -7,6 +132,7 @@
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
# cleanup job
|
||||
drc restart migrations
|
||||
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
|
||||
```
|
||||
|
||||
61
README.md
61
README.md
@@ -2,14 +2,40 @@
|
||||
|
||||
Backend for the organization portal application, based on the mu.semte.ch microservices stack.
|
||||
|
||||
## How to
|
||||
|
||||
### Boot up the system in DEV environment
|
||||
|
||||
cd /path/to/mu-project
|
||||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
|
||||
cd /path/to/app-organization-portal
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
|
||||
|
||||
You can shut down using `docker-compose stop` and remove everything using `docker-compose rm`.
|
||||
You can shut down using `docker compose stop` and remove everything using `docker compose rm`.
|
||||
|
||||
You need to wait until the migrations are ready.
|
||||
|
||||
After that, you need to trigger the ES index manually.
|
||||
|
||||
You can do it by:
|
||||
```
|
||||
# Assumes you are in root of app-organization-portal
|
||||
/bin/bash scripts/reset-elastic.sh
|
||||
```
|
||||
And follow the steps. It takes a bit, from an install from scratch, about 10 mins. (Mileage may vary)
|
||||
|
||||
|
||||
#### Tricks to make it a bit easier.
|
||||
If you think typing the full command takes too long every time, run this in your shell:
|
||||
|
||||
```
|
||||
# Assumes you are in root of app-organization-portal
|
||||
echo "COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml:docker-compose.override.yml" > .env
|
||||
touch docker-compose.override.yml
|
||||
```
|
||||
Now you can just run `docker compose up` and it will take the config files into account.
|
||||
If you want to go a step further, and still think (like most of us) that `docker compose` is too long to type, you can alias it:
|
||||
```
|
||||
echo "alias drc='docker compose'" >> ~/.bashrc
|
||||
echo "alias drcl='docker compose logs -ft --tail=100'" >> ~/.bashrc
|
||||
```
|
||||
Now everywhere `drc up -d` will work as shorthand for `docker compose up -d`.
|
||||
|
||||
#### Setup consumers
|
||||
|
||||
@@ -151,6 +177,31 @@ drc up -d
|
||||
sh scripts/reset-elastic.sh
|
||||
```
|
||||
|
||||
#### Setup vendors sync
|
||||
Note: this is assuming you have never ran this before.
|
||||
```
|
||||
drc down;
|
||||
```
|
||||
Update `docker-compose.override.yml` to:
|
||||
```
|
||||
vendor-management-consumer:
|
||||
environment:
|
||||
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/" # or another endpoint
|
||||
DCR_DISABLE_INITIAL_SYNC: "true"
|
||||
BATCH_SIZE: "500"
|
||||
DCR_SECRET_KEY: "<key>>" # fill in key for selected endpoint
|
||||
DCR_SYNC_LOGIN_ENDPOINT: "https://dev.loket.lblod.info/sync/vendor-management/login" # login for selected endpoint
|
||||
```
|
||||
Then:
|
||||
```
|
||||
drc up -d migrations
|
||||
drc up -d db vendor-management-consumer
|
||||
```
|
||||
Finally, put the stack back up.
|
||||
```
|
||||
drc up -d
|
||||
```
|
||||
|
||||
### Setting up the delta-producers related services
|
||||
To make sure the app can share data, producers need to be set up. There is an intial sync, that is potentially very expensive, and must be started manually
|
||||
|
||||
|
||||
@@ -89,6 +89,11 @@ defmodule Acl.UserGroups.Config do
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
|
||||
]
|
||||
|
||||
@vendor_type [
|
||||
"http://mu.semte.ch/vocabularies/ext/Vendor"
|
||||
]
|
||||
|
||||
|
||||
defp access_by_role(group_string) do
|
||||
%AccessByQuery{
|
||||
# vars: ["session_group","session_role"], todo we might have to create multiple graph depending on role
|
||||
@@ -130,6 +135,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -143,6 +154,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -156,6 +173,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -169,6 +192,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -182,6 +211,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -195,6 +230,12 @@ defmodule Acl.UserGroups.Config do
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -540,7 +540,8 @@
|
||||
],
|
||||
"properties": [
|
||||
"http://mu.semte.ch/vocabularies/core/uuid",
|
||||
"http://www.w3.org/ns/org#role"
|
||||
"http://www.w3.org/ns/org#role",
|
||||
"http://data.vlaanderen.be/ns/mandaat#aantalHouders"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?s a <http://www.w3.org/ns/org#Organization>.
|
||||
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH ?g {
|
||||
?s <http://www.w3.org/ns/regorg#orgStatus> <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6>.
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH ?g {
|
||||
?s a <http://www.w3.org/ns/org#Organization>.
|
||||
|
||||
OPTIONAL {
|
||||
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
INSERT DATA {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
|
||||
|
||||
|
||||
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://www.w3.org/2004/02/skos/core#prefLabel> "Organisatie status code" .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://mu.semte.ch/vocabularies/core/uuid> "b8dcb04f0d1feb86ff01cc0677363b20" .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://mu.semte.ch/vocabularies/core/uuid> "63cc561de9188d64ba5840a42ae8f0d6" .
|
||||
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2004/02/skos/core#ConceptScheme> .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#prefLabel> "In oprichting" .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#prefLabel> "Niet Actief" .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://mu.semte.ch/vocabularies/core/uuid> "abf4fee82019f88cf122f986830621ab" .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#prefLabel> "Actief" .
|
||||
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
|
||||
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://mu.semte.ch/vocabularies/core/uuid> "d02c4e12bf88d2fdf5123b07f29c9311" .
|
||||
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
#################################################################
|
||||
|
||||
8
config/error-alert/config.json
Normal file
8
config/error-alert/config.json
Normal 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"
|
||||
]
|
||||
}
|
||||
@@ -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": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/administrative-unit
|
||||
6481
config/migrations/2025/20251118155546-ingest-aantal-houders-lmb.ttl
Normal file
6481
config/migrations/2025/20251118155546-ingest-aantal-houders-lmb.ttl
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?mandaat mandaat:aantalHouders ?oldValue .
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?mandaat mandaat:aantalHouders "9"^^xsd:integer .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
VALUES ?mandaat {
|
||||
<http://data.lblod.info/id/mandaten/1d6bf704b39472c5aa987779b7c0162183736d7990ddbd54835c0a6f98e52116>
|
||||
<http://data.lblod.info/id/mandaten/273adda009e28c3512472f2e1e5bda0ee49272fca353eebde0f045e461c174d9>
|
||||
<http://data.lblod.info/id/mandaten/23d2744cdb69fbdbbd4aa63f22752e19dc20b9a71bebbf260fa7812c20db483a>
|
||||
<http://data.lblod.info/id/mandaten/1ba0b2b260793ace3bf8425b22fd22622e2fcc0f805c14db10ac8194b227a988>
|
||||
}
|
||||
OPTIONAL { ?mandaat mandaat:aantalHouders ?oldValue . }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?mandaat mandaat:aantalHouders ?oldValue .
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?mandaat mandaat:aantalHouders ?newValue .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
VALUES ?mandaat {
|
||||
<http://data.lblod.info/id/mandaten/1d6bf704b39472c5aa987779b7c0162183736d7990ddbd54835c0a6f98e52116>
|
||||
<http://data.lblod.info/id/mandaten/23d2744cdb69fbdbbd4aa63f22752e19dc20b9a71bebbf260fa7812c20db483a>
|
||||
<http://data.lblod.info/id/mandaten/68021f6bbdb0835e116b252030c420fc15de36732dc50a50bb76e119bd273ec8>
|
||||
}
|
||||
?mandaat mandaat:aantalHouders ?oldValue .
|
||||
BIND(?oldValue + 1 AS ?newValue)
|
||||
}
|
||||
}
|
||||
@@ -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.".
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
))
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>
|
||||
@@ -1,5 +1,7 @@
|
||||
import OrganizationsReport from './organizations-report'
|
||||
import RelatedOrganizationsReport from './related-organizations-report'
|
||||
|
||||
export default [
|
||||
OrganizationsReport,
|
||||
RelatedOrganizationsReport,
|
||||
];
|
||||
|
||||
137
config/reports/related-organizations-report.js
Normal file
137
config/reports/related-organizations-report.js
Normal 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}\"`;
|
||||
}
|
||||
@@ -30,7 +30,8 @@
|
||||
"ext": "http://mu.semte.ch/vocabularies/ext/",
|
||||
"geo": "http://www.opengis.net/ont/geosparql#",
|
||||
"nacebel": "http://data.gift/vocabularies/nace-bel/",
|
||||
"time": "http://www.w3.org/2006/time#"
|
||||
"time": "http://www.w3.org/2006/time#",
|
||||
"muAccount": "http://mu.semte.ch/vocabularies/account/"
|
||||
},
|
||||
"resources": {
|
||||
"agents": {
|
||||
@@ -252,6 +253,12 @@
|
||||
"mandates": {
|
||||
"class": "mandaat:Mandaat",
|
||||
"super": ["posts"],
|
||||
"attributes": {
|
||||
"aantal-houders": {
|
||||
"type": "number",
|
||||
"predicate": "mandaat:aantalHouders"
|
||||
}
|
||||
},
|
||||
"relationships": {
|
||||
"role-board": {
|
||||
"predicate": "org:role",
|
||||
@@ -467,7 +474,13 @@
|
||||
"target": "kbo-organizations",
|
||||
"cardinality": "one",
|
||||
"inverse": true
|
||||
}
|
||||
},
|
||||
"vendors": {
|
||||
"predicate": "muAccount:canActOnBehalfOf",
|
||||
"target": "vendors",
|
||||
"cardinality": "many",
|
||||
"inverse": true
|
||||
}
|
||||
},
|
||||
"features": ["include-uri"],
|
||||
"new-resource-base": "http://data.lblod.info/id/organisaties/"
|
||||
@@ -553,6 +566,23 @@
|
||||
},
|
||||
"new-resource-base": "http://data.lblod.info/id/eredienstBestuurseenheden/"
|
||||
},
|
||||
"vendors": {
|
||||
"class": "ext:Vendor",
|
||||
"attributes": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"predicate": "foaf:name"
|
||||
}
|
||||
},
|
||||
"relationships": {
|
||||
"organizations": {
|
||||
"predicate": "muAccount:canActOnBehalfOf",
|
||||
"target": "organizations",
|
||||
"cardinality": "many"
|
||||
}
|
||||
},
|
||||
"new-resource-base": "http://data.lblod.info/vendors/"
|
||||
},
|
||||
"worship-services": {
|
||||
"class": "ere:BestuurVanDeEredienst",
|
||||
"super": ["worship-administrative-units"],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.0
|
||||
image: lblod/frontend-organization-portal:1.36.5
|
||||
volumes:
|
||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||
environment:
|
||||
@@ -540,6 +550,27 @@ services:
|
||||
- triplestore:virtuoso
|
||||
logging: *default-logging
|
||||
|
||||
vendor-management-consumer:
|
||||
image: lblod/delta-consumer:0.1.1
|
||||
environment:
|
||||
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
|
||||
DCR_SYNC_LOGIN_ENDPOINT: 'https://loket.lblod.info/sync/vendor-management/login' # Add DCR_SECRET_KEY in docker-compose.override.yml
|
||||
DCR_SERVICE_NAME: "vendor-management-consumer"
|
||||
DCR_SYNC_FILES_PATH: "/sync/vendor-management/files"
|
||||
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/VendorManagementCacheGraphDump"
|
||||
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/initialSync/vendor-management"
|
||||
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/vendor-management-consumer"
|
||||
DCR_DISABLE_INITIAL_SYNC: "true"
|
||||
DCR_KEEP_DELTA_FILES: "true"
|
||||
DCR_DELTA_FILE_FOLDER: "/consumer-files"
|
||||
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/VendorManagementFileSyncing"
|
||||
INGEST_GRAPH: "http://mu.semte.ch/graphs/vendor-management-data"
|
||||
labels:
|
||||
- "logging=true"
|
||||
links:
|
||||
- db:database
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
################################################################################
|
||||
# DELTA CONSUMERS: END
|
||||
################################################################################
|
||||
@@ -605,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:
|
||||
|
||||
Reference in New Issue
Block a user