Files
app-organization-portal/docker-compose.yml
mirdono 7c2a54264a feat: add scope-of-operation-service to stack
This service provides functionality to manage an organisation's scope of
operation. To this end it facilitates that each organisation can be linked with
exactly one location resources as scope of operation, internally creating and
linking the appropriate resources.
2025-07-11 15:07:57 +02:00

609 lines
21 KiB
YAML

x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
identifier:
image: semtech/mu-identifier:1.10.3
environment:
DEFAULT_MU_AUTH_ALLOWED_GROUPS_HEADER: '[{"variables":[],"name":"public"}]'
SESSION_COOKIE_SECURE: "on"
labels:
- "logging=true"
restart: always
logging: *default-logging
dispatcher:
image: semtech/mu-dispatcher:2.1.0-beta.2
volumes:
- ./config/dispatcher:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
triplestore:
image: redpencil/virtuoso:1.3.0-rc.1
environment:
SPARQL_UPDATE: "true"
DEFAULT_GRAPH: "http://mu.semte.ch/application"
volumes:
- ./data/db:/data
- ./config/db/virtuoso.ini:/data/virtuoso.ini
restart: always
logging: *default-logging
db:
image: semtech/mu-authorization:feature-service-roam-r1.1
environment:
MU_SPARQL_ENDPOINT: "http://triplestore:8890/sparql"
LOG_OUTGOING_SPARQL_QUERIES: "true"
LOG_INCOMING_SPARQL_QUERIES: "true"
LOG_ACCESS_RIGHTS: "true"
LOG_OUTGOING_SPARQL_QUERY_ROUNDTRIP: "true"
ERROR_ON_UNWRITTEN_DATA: "true"
QUERY_MAX_PROCESSING_TIME: "300000"
QUERY_MAX_EXECUTION_TIME: "300000"
volumes:
- ./config/authorization:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
db-cleanup:
image: lblod/db-cleanup-service:0.5.1
environment:
MU_SPARQL_ENDPOINT: "http://db:8890/sparql"
CRON_PATTERN: "23 */6 * * *"
labels:
- "logging=true"
restart: always
logging: *default-logging
migrations:
image: semtech/mu-migrations-service:0.9.0
links:
- triplestore:database
volumes:
- ./config/migrations:/data/migrations
labels:
- "logging=true"
restart: always
logging: *default-logging
migrations-triggering-indexing:
image: semtech/mu-migrations-service:0.9.0
links:
- db:database
volumes:
- ./config/migrations-triggering-indexing:/data/migrations
labels:
- "logging=true"
restart: always
logging: *default-logging
resource:
image: semtech/mu-cl-resources:1.24.0
environment:
CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys"
links:
- db:database
volumes:
- ./config/resources:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
cache:
image: semtech/mu-cache:2.0.2
links:
- resource:backend
labels:
- "logging=true"
restart: always
logging: *default-logging
kalliope-api:
image: lblod/jsonld-delta-service:2.0.0
environment:
LOG_SPARQL_ALL: "false"
SECURITY_CONFIG_PATH: "/config/security.json"
DUMP_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump"
volumes:
- ./config/kalliope:/config
- ./data/files:/share
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
deltanotifier:
image: semtech/mu-delta-notifier:0.4.0
volumes:
- ./config/delta:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
sink:
image: nginx:1.15.2
volumes:
- ./config/sink/sink.conf:/etc/nginx/conf.d/default.conf
labels:
- "logging=true"
restart: always
logging: *default-logging
login:
image: lblod/acmidm-login-service:0.9.2
environment:
MU_APPLICATION_AUTH_USERID_CLAIM: "vo_id"
MU_APPLICATION_GRAPH: "http://mu.semte.ch/graphs/contacthub/accounts"
MU_APPLICATION_AUTH_ROLE_CLAIM: "abb_organisatieportaal_rol_3d"
MU_APPLICATION_AUTH_DISCOVERY_URL: "https://authenticatie-ti.vlaanderen.be/op"
MU_APPLICATION_AUTH_CLIENT_ID: "677af572-2e2f-4e61-ad38-036723bb314c"
MU_APPLICATION_AUTH_REDIRECT_URI: "https://organisaties.abb.lblod.info/authorization/callback"
MU_APPLICATION_AUTH_CLIENT_SECRET: "secret"
labels:
- "logging=true"
restart: always
logging: *default-logging
links:
- db:database
dashboard-login:
image: semtech/mu-login-service:3.0.0
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
accountdetail:
image: lblod/account-detail-service:0.1.0
labels:
- "logging=true"
environment:
MU_APPLICATION_GRAPH: "http://mu.semte.ch/graphs/contacthub/accounts"
links:
- db:database
restart: always
logging: *default-logging
privacy-worship:
image: lblod/privacy-centric-service:0.6.1
labels:
- "logging=true"
environment:
DEFAULT_GRAPH: "http://mu.semte.ch/graphs/worship-privacy-centric-graph"
SESSION_GRAPH: "http://mu.semte.ch/graphs/sessions"
APP_GRAPH: "http://mu.semte.ch/graphs/public"
restart: always
logging: *default-logging
links:
- db:database
privacy-unit:
image: lblod/privacy-centric-service:0.6.1
labels:
- "logging=true"
environment:
DEFAULT_GRAPH: "http://mu.semte.ch/graphs/administrative-unit-privacy-centric-graph"
SESSION_GRAPH: "http://mu.semte.ch/graphs/sessions"
APP_GRAPH: "http://mu.semte.ch/graphs/public"
restart: always
logging: *default-logging
links:
- db:database
adressenregister:
image: lblod/adressenregister-fuzzy-search-service:0.8.0
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.33.0
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE: "true"
EMBER_OAUTH_API_REDIRECT_URL: "https://organisaties.abb.lblod.info/authorization/callback"
EMBER_OAUTH_API_KEY: "677af572-2e2f-4e61-ad38-036723bb314c"
EMBER_OAUTH_API_BASE_URL: "https://authenticatie-ti.vlaanderen.be/op/v1/auth"
EMBER_OAUTH_API_LOGOUT_URL: "https://authenticatie-ti.vlaanderen.be/op/v1/logout"
EMBER_OAUTH_API_SCOPE: "openid vo profile abb_organisatieportaal"
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend-dashboard:
image: lblod/frontend-dashboard:1.7.0
labels:
- "logging=true"
restart: always
logging: *default-logging
uri-info:
image: redpencil/mu-uri-info-service:0.2.1
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
file:
image: semtech/mu-file-service:3.4.0
volumes:
- ./data/files:/share
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
jobs-controller:
image: lblod/job-controller-service:0.7.0
links:
- db:database
volumes:
- ./config/jobs-controller/:/config/
labels:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint-jobs-initiator:
image: lblod/delta-producer-background-jobs-initiator:0.4.3
environment:
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
INITIAL_PUBLICATION_GRAPH_SYNC_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/initialSyncing"
HEALING_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/healing"
CRON_PATTERN_HEALING_JOB: "0 0 4 * * *" # everyday at 4 AM
START_INITIAL_SYNC: "false" # prefer to disable it now. We want to have feeling with how the DB acts.
ENABLE_DUMP_FILE_CREATION: "false"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint:
image: lblod/op-sync-with-sharepoint-service:0.1.2
environment:
INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true"
USERNAME: 'username-to-override'
PASSWORD: 'password-to-override'
SITE: 'site-to-override'
LIST: 'list-to-override'
links:
- db:database
volumes:
- ./config/sharepoint/sync/organizations/:/config/
labels:
- "logging=true"
restart: always
logging: *default-logging
construct-organization-relationships:
image: lblod/construct-organization-relationships-service:1.0.3
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
scope-of-operation:
image: lblod/scope-of-operation-service:0.0.1
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
report-generation:
image: lblod/loket-report-generation-service:0.8.3
environment:
DEFAULT_GRAPH: "http://mu.semte.ch/graphs/shared"
ONLY_KEEP_LATEST_REPORT: "true"
links:
- db:database
volumes:
- ./data/files:/share
- ./config/reports:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
download-exports:
image: lblod/download-exports-service:0.1.0
links:
- db:database
volumes:
- ./data/files:/share
labels:
- "logging=true"
restart: always
logging: *default-logging
kbo-data-sync:
image: lblod/sync-wegwijs-organization-service:2.0.3
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
################################################################################
# DELTA GENERAL
################################################################################
publication-triplestore:
image: redpencil/virtuoso:1.3.0-rc.1
environment:
SPARQL_UPDATE: "true"
DEFAULT_GRAPH: "http://mu.semte.ch/application"
volumes:
- ./data/publication-triplestore:/data
- ./config/publication-triplestore/virtuoso.ini:/data/virtuoso.ini
labels:
- "logging=true"
restart: always
logging: *default-logging
delta-producer-dump-file-publisher:
image: lblod/delta-producer-dump-file-publisher:0.10.3
volumes:
- ./config/delta-producer/dump-file-publisher:/config
- ./data/files:/share
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
delta-producer-background-jobs-initiator:
image: lblod/delta-producer-background-jobs-initiator:1.0.1
volumes:
- ./config/delta-producer/background-job-initiator:/config
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
delta-producer-publication-graph-maintainer:
image: lblod/delta-producer-publication-graph-maintainer:1.2.2
environment:
MAX_BODY_SIZE: "50mb"
PRETTY_PRINT_DIFF_JSON: "true"
PUBLICATION_VIRTUOSO_ENDPOINT: "http://publication-triplestore:8890/sparql"
PUBLICATION_MU_AUTH_ENDPOINT: "http://publication-triplestore:8890/sparql"
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
CONFIG_SERVICES_JSON_PATH: '/config/publication-graph-maintainer/config.json'
volumes:
- ./config/delta-producer:/config
- ./data/files/:/share
links:
- db:database
- triplestore:virtuoso
labels:
- "logging=true"
restart: always
logging: *default-logging
################################################################################
# DELTA CONSUMERS
################################################################################
################################################################################
# LOKET MANDATARISSEN CONSUMERS
################################################################################
mandatarissen-consumer:
image: lblod/delta-consumer:0.1.1
environment:
DCR_SERVICE_NAME: "mandatarissen-consumer"
DCR_SYNC_BASE_URL: "https://loket.lblod.info" # replace with link to Loket API
DCR_SYNC_FILES_PATH: "/sync/mandatarissen/files"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/MandatarissenCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/initialSync/mandatarissen"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/deltaSync/mandatarissen"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/mandatarissen-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
DCR_KEEP_DELTA_FILES: "true"
DCR_DELTA_JOBS_RETENTION_PERIOD: "30"
DCR_ENABLE_TRIPLE_REMAPPING: "true"
DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/mandatarissen"
DCR_REMAPPING_GRAPH: "http://mu.semte.ch/graphs/administrative-unit"
DCR_BATCH_SIZE: 1000
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
SUDO_QUERY_RETRY: "true"
volumes:
- ./config/delta-consumers/mandatarissen/mapping:/config/mapping
- ./data/files/consumer-files/mandatarissen:/consumer-files/
restart: always
labels:
- "logging=true"
links:
- db:database
- triplestore:virtuoso
logging: *default-logging
################################################################################
# LOKET LEIDINGGEVENDEN CONSUMERS
################################################################################
leidinggevenden-consumer:
image: lblod/delta-consumer:0.1.1
environment:
DCR_SERVICE_NAME: "leidinggevenden-consumer"
DCR_SYNC_BASE_URL: "https://loket.lblod.info" # replace with link to Loket API
DCR_SYNC_FILES_PATH: "/sync/leidinggevenden/files"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/LeidinggevendenCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/initialSync/leidinggevenden"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/deltaSync/leidinggevenden"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/leidinggevenden-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
DCR_KEEP_DELTA_FILES: "true"
DCR_DELTA_JOBS_RETENTION_PERIOD: "30"
DCR_ENABLE_TRIPLE_REMAPPING: "true"
DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/leidinggevenden"
DCR_REMAPPING_GRAPH: "http://mu.semte.ch/graphs/administrative-unit"
DCR_BATCH_SIZE: 1000
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
SUDO_QUERY_RETRY: "true"
volumes:
- ./config/delta-consumers/leidinggevenden/mapping:/config/mapping
- ./data/files/consumer-files/leidinggevenden:/consumer-files/
restart: always
labels:
- "logging=true"
links:
- db:database
- triplestore:virtuoso
logging: *default-logging
################################################################################
# LOKET WORSHIP SENSITIVE CONSUMERS
################################################################################
worship-services-main-info-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/worship-services-sensitive/login"
DCR_SECRET_KEY: "<override with secret key>"
DCR_SERVICE_NAME: "worship-services-main-info-consumer"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/WorshipServicesSensitiveCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitive/main"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitiveDeltaFileSyncing/main"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/worship-services-main-info-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES: "true"
DCR_SYNC_FILES_PATH: "/sync/worship-services-sensitive/files"
SLEEP_BETWEEN_BATCHES: 10
DCR_KEEP_DELTA_FILES: "true"
DCR_LANDING_ZONE_DATABASE: "triplestore"
DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/worship-services-main-info"
DCR_REMAPPING_GRAPH: "http://mu.semte.ch/graphs/worship-service"
DCR_DELTA_JOBS_RETENTION_PERIOD: "30"
DCR_ENABLE_TRIPLE_REMAPPING: "true"
DCR_BATCH_SIZE: 1000
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
SUDO_QUERY_RETRY: "true"
volumes:
- ./config/delta-consumers/worship-services-main-info/mapping:/config/mapping
- ./data/files/consumer-files/worship-services-main-info:/consumer-files/
restart: always
labels:
- "logging=true"
links:
- db:database
- triplestore:virtuoso
logging: *default-logging
worship-services-private-info-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/worship-services-sensitive/login"
DCR_SECRET_KEY: "<override with secret key>"
DCR_SERVICE_NAME: "worship-services-private-info-consumer"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/WorshipServicesSensitiveCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitive/private"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitiveDeltaFileSyncing/private"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/worship-services-private-info-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES: "true"
DCR_SYNC_FILES_PATH: "/sync/worship-services-sensitive/files"
SLEEP_BETWEEN_BATCHES: 10
DCR_KEEP_DELTA_FILES: "true"
DCR_LANDING_ZONE_DATABASE: "triplestore"
DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/worship-services-private-info"
DCR_REMAPPING_GRAPH: "http://mu.semte.ch/graphs/worship-privacy-centric-graph"
DCR_DELTA_JOBS_RETENTION_PERIOD: "30"
DCR_ENABLE_TRIPLE_REMAPPING: "true"
DCR_BATCH_SIZE: 1000
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
SUDO_QUERY_RETRY: "true"
volumes:
- ./config/delta-consumers/worship-services-private-info/mapping:/config/mapping
- ./data/files/consumer-files/worship-services-private-info:/consumer-files/
restart: always
labels:
- "logging=true"
links:
- db:database
- triplestore:virtuoso
logging: *default-logging
################################################################################
# DELTA CONSUMERS: END
################################################################################
################################################################################
# LDES PRODUCERS
################################################################################
ldes-delta-pusher:
image: redpencil/ldes-delta-pusher:latest
profiles: ["dev"] # Disable ldes feed by default until ready for qa/prod
environment:
LDES_ENDPOINT: 'http://ldes-backend/organizations'
volumes:
- ./config/ldes-delta-pusher/:/config/
links:
- db:database
restart: always
logging: *default-logging
ldes-backend:
image: redpencil/fragmentation-producer:0.4.0
profiles: ["dev"] # Disable ldes feed by default until ready for qa/prod
environment:
FOLDER_DEPTH: 1
PAGE_RESOURCES_COUNT: 50
LDES_STREAM_PREFIX: 'http://data.lblod.info/streams/op/'
TIME_TREE_RELATION_PATH: 'http://www.w3.org/ns/prov#generatedAtTime'
CACHE_SIZE: 10
DATA_FOLDER: '/data'
ENABLE_AUTH: 'false'
restart: always
logging: *default-logging
volumes:
- './data/ldes-feed/:/data/'
################################################################################
# MU SEARCH
################################################################################
search:
image: semtech/mu-search:0.10.0
links:
- db:database
restart: always
volumes:
- ./config/search:/config
logging: *default-logging
elasticsearch:
image: semtech/mu-search-elastic-backend:1.0.1
volumes:
- ./data/elasticsearch/:/usr/share/elasticsearch/data
environment:
- discovery.type=single-node
restart: always
logging: *default-logging
error-report-service:
image: lblod/error-report-service:0.1.0
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
roles:
image: lblod/select-role-service:0.1.0
labels:
- "logging=true"
links:
- db:database
restart: always
logging: *default-logging
###################################################################################
# MU SCRIPTS
# #################################################################################
project-scripts:
image: semtech/mu-scripts:1.0.0
volumes:
- ./scripts/project:/app/scripts/
restart: "no"