Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
c82d7591e4 | ||
|
|
b163cda6fa | ||
|
|
2efdf333d0 | ||
|
|
78c3882c10 | ||
|
|
7567343001 | ||
|
|
fa46345c57 | ||
|
|
f27d122665 | ||
|
|
4289225cf7 | ||
|
|
ecb1736fcf | ||
|
|
973b791e00 | ||
|
|
7374c861fb | ||
|
|
2eea02673b | ||
|
|
3d7d56d9da |
@@ -1 +0,0 @@
|
|||||||
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
|
|
||||||
61
CHANGELOG.md
61
CHANGELOG.md
@@ -1,4 +1,65 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
## 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]
|
||||||
|
- Delete local involvements for worship services [OP-3693]
|
||||||
|
|
||||||
|
### Deploy notes
|
||||||
|
```
|
||||||
|
drc restart migrations
|
||||||
|
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
|
||||||
|
```
|
||||||
|
|
||||||
## 1.37.2 (2025-11-13)
|
## 1.37.2 (2025-11-13)
|
||||||
- Bump frontend to v1.36.0
|
- Bump frontend to v1.36.0
|
||||||
### Deploy notes
|
### Deploy notes
|
||||||
|
|||||||
61
README.md
61
README.md
@@ -2,14 +2,40 @@
|
|||||||
|
|
||||||
Backend for the organization portal application, based on the mu.semte.ch microservices stack.
|
Backend for the organization portal application, based on the mu.semte.ch microservices stack.
|
||||||
|
|
||||||
## How to
|
|
||||||
|
|
||||||
### Boot up the system in DEV environment
|
### Boot up the system in DEV environment
|
||||||
|
|
||||||
cd /path/to/mu-project
|
cd /path/to/app-organization-portal
|
||||||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
|
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
|
#### Setup consumers
|
||||||
|
|
||||||
@@ -151,6 +177,31 @@ drc up -d
|
|||||||
sh scripts/reset-elastic.sh
|
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
|
### 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
|
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"
|
"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
|
defp access_by_role(group_string) do
|
||||||
%AccessByQuery{
|
%AccessByQuery{
|
||||||
# vars: ["session_group","session_role"], todo we might have to create multiple graph depending on role
|
# 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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type
|
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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type ++ @error_type
|
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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type ++ @error_type
|
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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type ++ @worship_type
|
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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
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{
|
constraint: %ResourceConstraint{
|
||||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
resource_types: @org_type ++ @error_type ++ @worship_type
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
%GraphSpec{
|
||||||
|
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||||
|
constraint: %ResourceConstraint{
|
||||||
|
resource_types: @vendor_type
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -540,7 +540,8 @@
|
|||||||
],
|
],
|
||||||
"properties": [
|
"properties": [
|
||||||
"http://mu.semte.ch/vocabularies/core/uuid",
|
"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"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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> .
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
http://mu.semte.ch/graphs/public
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
@prefix cleanup: <http://mu.semte.ch/vocabularies/ext/cleanup/> .
|
||||||
|
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
|
||||||
|
@prefix dcterms: <http://purl.org/dc/terms/> .
|
||||||
|
|
||||||
|
<http://data.lblod.info/id/cleanup-job/48ffd9f11-db25-430d-a66a-31fc8b393d5f> a cleanup:Job ;
|
||||||
|
mu:uuid "8ffd9f11-db25-430d-a66a-31fc8b393d5f" ;
|
||||||
|
dcterms:title "Cleaning duplicated data of municipalities and provinces" ;
|
||||||
|
cleanup:randomQuery """
|
||||||
|
|
||||||
|
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||||
|
|
||||||
|
DELETE {
|
||||||
|
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||||
|
?s ?p ?o .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WHERE {
|
||||||
|
VALUES (?g1 ?g2) {
|
||||||
|
(<http://mu.semte.ch/graphs/shared> <http://mu.semte.ch/graphs/administrative-unit>)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
GRAPH ?g1 {
|
||||||
|
?s a besluit:Bestuurseenheid ;
|
||||||
|
?p ?o .
|
||||||
|
FILTER(?p != rdf:type)
|
||||||
|
}
|
||||||
|
GRAPH ?g2 {
|
||||||
|
?s a besluit:Bestuurseenheid ;
|
||||||
|
?p ?o .
|
||||||
|
FILTER(?p != rdf:type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UNION
|
||||||
|
{
|
||||||
|
GRAPH ?g1 {
|
||||||
|
?s ?p ?o .
|
||||||
|
?o a besluit:Bestuurseenheid .
|
||||||
|
FILTER(?p != rdf:type)
|
||||||
|
}
|
||||||
|
GRAPH ?g2 {
|
||||||
|
?s ?p ?o .
|
||||||
|
?o a besluit:Bestuurseenheid .
|
||||||
|
FILTER(?p != rdf:type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/150c7b74277a2602994ce1aaa9553c8a> ?p ?o.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/bestuurseenheden/69e815e62d4698903b7db1df39f372317439cb28a8c4ca62aa6bfd1acaa62266> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/150c7b74277a2602994ce1aaa9553c8a>.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INSERT {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WHERE {
|
||||||
|
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
VALUES ?localInvolvementKapellen {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/4a08c9a735bb0ef402a7bbed0a39afd0>
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/ce6a7228a87e079fbb7b0e7a018af176> ?p ?o.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/bestuurseenheden/7d457bc3985fbb70ba748c121043c89d498a3926e8c59ffdf9438c2896791248> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/ce6a7228a87e079fbb7b0e7a018af176>.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKalmthout <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INSERT {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKalmthout <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WHERE {
|
||||||
|
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKalmthout <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
VALUES ?localInvolvementKalmthout {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/3cec37859c0504f26edf0cbc505a1b1d>
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/41c41a1aca62f09bdb57dc93cc83af49> ?p ?o.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE WHERE {
|
||||||
|
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||||
|
<http://data.lblod.info/id/bestuurseenheden/25fc615f81f2032ee7126108474e842b418c890c3755f9e1efc58ac6dc59d1fc> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/41c41a1aca62f09bdb57dc93cc83af49>.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
DELETE {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INSERT {
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WHERE {
|
||||||
|
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
|
||||||
|
GRAPH ?g {
|
||||||
|
?localInvolvementKapellen <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||||
|
}
|
||||||
|
VALUES ?localInvolvementKapellen {
|
||||||
|
<http://data.lblod.info/id/betrokkenLokaleBesturen/f7450dc34b53dd33b17e0b231470e64c>
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,7 +30,8 @@
|
|||||||
"ext": "http://mu.semte.ch/vocabularies/ext/",
|
"ext": "http://mu.semte.ch/vocabularies/ext/",
|
||||||
"geo": "http://www.opengis.net/ont/geosparql#",
|
"geo": "http://www.opengis.net/ont/geosparql#",
|
||||||
"nacebel": "http://data.gift/vocabularies/nace-bel/",
|
"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": {
|
"resources": {
|
||||||
"agents": {
|
"agents": {
|
||||||
@@ -252,6 +253,12 @@
|
|||||||
"mandates": {
|
"mandates": {
|
||||||
"class": "mandaat:Mandaat",
|
"class": "mandaat:Mandaat",
|
||||||
"super": ["posts"],
|
"super": ["posts"],
|
||||||
|
"attributes": {
|
||||||
|
"aantal-houders": {
|
||||||
|
"type": "number",
|
||||||
|
"predicate": "mandaat:aantalHouders"
|
||||||
|
}
|
||||||
|
},
|
||||||
"relationships": {
|
"relationships": {
|
||||||
"role-board": {
|
"role-board": {
|
||||||
"predicate": "org:role",
|
"predicate": "org:role",
|
||||||
@@ -467,7 +474,13 @@
|
|||||||
"target": "kbo-organizations",
|
"target": "kbo-organizations",
|
||||||
"cardinality": "one",
|
"cardinality": "one",
|
||||||
"inverse": true
|
"inverse": true
|
||||||
}
|
},
|
||||||
|
"vendors": {
|
||||||
|
"predicate": "muAccount:canActOnBehalfOf",
|
||||||
|
"target": "vendors",
|
||||||
|
"cardinality": "many",
|
||||||
|
"inverse": true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"features": ["include-uri"],
|
"features": ["include-uri"],
|
||||||
"new-resource-base": "http://data.lblod.info/id/organisaties/"
|
"new-resource-base": "http://data.lblod.info/id/organisaties/"
|
||||||
@@ -553,6 +566,23 @@
|
|||||||
},
|
},
|
||||||
"new-resource-base": "http://data.lblod.info/id/eredienstBestuurseenheden/"
|
"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": {
|
"worship-services": {
|
||||||
"class": "ere:BestuurVanDeEredienst",
|
"class": "ere:BestuurVanDeEredienst",
|
||||||
"super": ["worship-administrative-units"],
|
"super": ["worship-administrative-units"],
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
frontend:
|
frontend:
|
||||||
image: lblod/frontend-organization-portal:1.36.0
|
image: lblod/frontend-organization-portal:1.36.2
|
||||||
volumes:
|
volumes:
|
||||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||||
environment:
|
environment:
|
||||||
@@ -540,6 +540,27 @@ services:
|
|||||||
- triplestore:virtuoso
|
- triplestore:virtuoso
|
||||||
logging: *default-logging
|
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
|
# DELTA CONSUMERS: END
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
Reference in New Issue
Block a user