diff --git a/README.md b/README.md index 3afd554..d4741e2 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,37 @@ Backend for the Contact Hub application based on the mu.semte.ch microservices You can shut down using `docker-compose stop` and remove everything using `docker-compose rm`. +### 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 + +#### producers administrative-units + +1. make sure the app is up and running, the migrations have run +2. in docker-compose.override.yml, make sure the following configuration is provided: +``` + delta-producer-pub-graph-maintainer-administrative-units: + environment: + START_INITIAL_SYNC: 'true' +``` +3. `drc up -d delta-producer-pub-graph-maintainer-administrative-units` +4. You can follow the status of the job, ideally through the dashboard, but this hasn't been setup yet. The following query should also give results: +``` + PREFIX task: + PREFIX adms: + PREFIX dct: + + SELECT DISTINCT ?job ?operation ?created ?modified ?status WHERE { + GRAPH ?g { + ?job a ; + task:operation ?operation; + adms:status ?status; + dct:created ?created; + dct:modified ?modified. + } + FILTER( ?operation IN ( + , + + ) + ) + } +``` diff --git a/config/authorization/config.ex b/config/authorization/config.ex index e4e380d..a94aaab 100644 --- a/config/authorization/config.ex +++ b/config/authorization/config.ex @@ -32,7 +32,7 @@ defmodule Acl.UserGroups.Config do "http://schema.org/ContactPoint", "http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie", "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst", - "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan", + "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan", "http://www.w3.org/ns/org#Role", "http://www.w3.org/ns/org#Post", "http://data.lblod.info/vocabularies/contacthub/AgentInPositie", @@ -107,17 +107,21 @@ defmodule Acl.UserGroups.Config do %GroupSpec{ name: "public", useage: [:read], - access: %AlwaysAccessible{}, + access: %AlwaysAccessible{}, graphs: [ %GraphSpec{ graph: "http://mu.semte.ch/graphs/public", # mock login only constraint: %ResourceConstraint{ resource_types: [ "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid", "http://xmlns.com/foaf/0.1/Person", - "http://xmlns.com/foaf/0.1/OnlineAccount" + "http://xmlns.com/foaf/0.1/OnlineAccount", + "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject", + "http://www.w3.org/ns/dcat#Dataset", + "http://www.w3.org/ns/dcat#Distribution", + "http://www.w3.org/ns/dcat#Catalog" ] } }]}, - + # // CLEANUP # %GraphCleanup{ diff --git a/config/delta-producer/administrative-units/export.json b/config/delta-producer/administrative-units/export.json new file mode 100644 index 0000000..f06ea4b --- /dev/null +++ b/config/delta-producer/administrative-units/export.json @@ -0,0 +1,65 @@ +{ + "export": [ + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#scopeNote" + ] + }, + { + "type": "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://data.vlaanderen.be/ns/besluit#werkingsgebied", + "http://www.w3.org/ns/org#classification" + ] + }, + { + "type": "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://data.vlaanderen.be/ns/besluit#bestuurt", + "http://www.w3.org/ns/org#classification", + "http://data.vlaanderen.be/ns/mandaat#bindingEinde", + "http://data.vlaanderen.be/ns/mandaat#bindingStart", + "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#scopeNote" + ] + }, + { + "type": "http://www.w3.org/ns/prov#Location", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/2000/01/rdf-schema#label", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau" + ] + } + ] +} diff --git a/config/delta-producer/dump-file-publisher/config.json b/config/delta-producer/dump-file-publisher/config.json new file mode 100644 index 0000000..8096db7 --- /dev/null +++ b/config/delta-producer/dump-file-publisher/config.json @@ -0,0 +1,22 @@ +{ + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/administrative-units" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/AdministrativeUnitsCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/administrative-units", + "fileBaseName": "dump-administrative-units" + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/administrative-units" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/AdministrativeUnitsCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/administrative-units", + "fileBaseName": "dump-administrative-units" + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations", + "fileBaseName": "dump-administrative-units" + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations", + "fileBaseName": "dump-administrative-units" + } +} diff --git a/config/delta-producer/organizations/export.json b/config/delta-producer/organizations/export.json new file mode 100644 index 0000000..460beee --- /dev/null +++ b/config/delta-producer/organizations/export.json @@ -0,0 +1,419 @@ +{ + "export": [ + { + "type": "http://www.w3.org/ns/person#Person", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://xmlns.com/foaf/0.1/givenName", + "http://xmlns.com/foaf/0.1/familyName", + "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam", + "http://data.vlaanderen.be/ns/mandaat#isAangesteldAls", + "http://www.w3.org/ns/org#heldBy" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/MandatarisStatusCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/EredienstMandataris", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://data.lblod.info/vocabularies/contacthub/startdatum", + "http://data.lblod.info/vocabularies/contacthub/eindedatum", + "http://www.w3.org/ns/org#holds", + "http://www.w3.org/ns/org#heldBy", + "http://schema.org/contactPoint", + "http://data.vlaanderen.be/ns/mandaat#start", + "http://data.vlaanderen.be/ns/mandaat#einde", + "http://data.vlaanderen.be/ns/mandaat#status", + "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", + "http://data.lblod.info/vocabularies/erediensten/geplandeEinddatumAanstelling", + "http://data.lblod.info/vocabularies/erediensten/redenVanStopzetting", + "http://data.lblod.info/vocabularies/erediensten/typeHelft" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/HelftVerkiezing", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://schema.org/ContactPoint", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://schema.org/email", + "http://schema.org/faxNumber", + "http://schema.org/telephone", + "http://www.w3.org/ns/locn#address" + ] + }, + { + "type": "http://data.vlaanderen.be/ns/mandaat#Mandaat", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/ns/org#role", + "http://www.w3.org/ns/org#postIn", + "http://www.w3.org/ns/org#role" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuursfunctieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://www.w3.org/ns/org#Role", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/TypeEredienst", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/regorg#orgStatus", + "http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#hasSite", + "http://www.w3.org/ns/org#changedBy", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#hasPost", + "http://www.w3.org/ns/org#linkedTo", + "http://www.w3.org/ns/org#hasSubOrganization", + "http://www.w3.org/ns/org#classification", + "http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau", + "http://data.lblod.info/vocabularies/erediensten/denominatie", + "http://data.lblod.info/vocabularies/erediensten/grensoverschrijdend", + "http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/regorg#orgStatus", + "http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#hasSite", + "http://www.w3.org/ns/org#changedBy", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#hasPost", + "http://www.w3.org/ns/org#linkedTo", + "http://www.w3.org/ns/org#hasSubOrganization", + "http://www.w3.org/ns/org#classification", + "http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/regorg#orgStatus", + "http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#hasSite", + "http://www.w3.org/ns/org#changedBy", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#hasPost", + "http://www.w3.org/ns/org#linkedTo", + "http://www.w3.org/ns/org#hasSubOrganization", + "http://data.lblod.info/vocabularies/erediensten/typeEredienst" + ] + }, + { + "type": "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://data.vlaanderen.be/ns/mandaat#bindingEinde", + "http://data.vlaanderen.be/ns/mandaat#bindingStart", + "http://data.vlaanderen.be/ns/besluit#bestuurt", + "http://www.w3.org/ns/org#classification", + "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", + "http://www.w3.org/ns/org#hasPost" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/BetrokkenLokaleBesturen", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://data.lblod.info/vocabularies/erediensten/financieringspercentage", + "http://data.lblod.info/vocabularies/erediensten/typebetrokkenheid", + "http://www.w3.org/ns/org#organization" + ] + }, + { + "type": "http://www.w3.org/ns/adms#Identifier", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#notation", + "https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator" + ] + }, + { + "type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "https://data.vlaanderen.be/ns/generiek#lokaleIdentificator" + ] + }, + { + "type": "http://www.w3.org/ns/locn#Address", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer", + "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer", + "http://www.w3.org/ns/locn#thoroughfare", + "http://www.w3.org/ns/locn#postCode", + "https://data.vlaanderen.be/ns/adres#gemeentenaam", + "http://www.w3.org/ns/locn#adminUnitL2", + "https://data.vlaanderen.be/ns/adres#land", + "http://www.w3.org/ns/locn#fullAddress", + "https://data.vlaanderen.be/ns/adres#verwijstNaar", + "http://purl.org/dc/terms/source" + ] + }, + { + "type": "http://www.w3.org/ns/org#Site", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/ns/org#siteAddress", + "https://data.vlaanderen.be/ns/organisatie#bestaatUit", + "http://data.lblod.info/vocabularies/erediensten/vestigingstype" + ] + }, + { + "type": "http://www.w3.org/ns/org#ChangeEvent", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://purl.org/dc/terms/date", + "http://purl.org/dc/terms/description", + "http://data.lblod.info/vocabularies/contacthub/typeWijziging", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#changedBy" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://www.w3.org/2004/02/skos/core#Concept", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://www.w3.org/ns/prov#Location", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2000/01/rdf-schema#label", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau", + "http://data.vlaanderen.be/ns/besluit#werkingsgebied" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/RolBedienaar", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://data.lblod.info/vocabularies/contacthub/startdatum", + "http://data.lblod.info/vocabularies/contacthub/eindedatum", + "http://www.w3.org/ns/org#holds", + "http://www.w3.org/ns/org#heldBy", + "http://schema.org/contactPoint", + "http://data.lblod.info/vocabularies/erediensten/financiering", + "http://data.lblod.info/vocabularies/erediensten/voldoetAan" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/VoorwaardenBedienaar", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://data.lblod.info/vocabularies/erediensten/voldaan", + "http://data.lblod.info/vocabularies/erediensten/criterium", + "http://data.lblod.info/vocabularies/erediensten/criteriumbewijsstuktype" + ] + },{ + "type": "http://publications.europa.eu/ontology/euvoc#Country", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2000/01/rdf-schema#label" + ] + },{ + "type": "http://data.lblod.info/vocabularies/erediensten/PositieBedienaar", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/ns/org#role", + "http://www.w3.org/ns/org#postIn", + "http://data.lblod.info/vocabularies/erediensten/functie", + "http://data.lblod.info/vocabularies/erediensten/behoort" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BedienaarFinanceringCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/VoorwaardenBedienaarCriterium", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BedienaarCriteriumBewijsstuk", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/TypeVestiging", + "graphsFilter": [ + "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + } + ] +} diff --git a/config/delta/rules.js b/config/delta/rules.js index b46db96..5476fc4 100644 --- a/config/delta/rules.js +++ b/config/delta/rules.js @@ -12,7 +12,118 @@ export default [ options: { resourceFormat: "v0.0.1", gracePeriod: 1000, - ignoreFromSelf: true + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] } + }, + { + match: { + predicate: { + type: 'uri', + value: 'http://www.w3.org/ns/adms#status' + } + }, + callback: { + method: 'POST', + url: 'http://jobs-controller/delta' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] } - ] \ No newline at end of file + }, + { + match: { + }, + callback: { + url: 'http://delta-producer-pub-graph-maintainer-administrative-units/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ + "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync", + "http://redpencil.data.gift/id/concept/muScope/deltas/publicationGraphMaintenance" + ] + } + }, + { + match: { + graph: { + type: 'uri', + value: 'http://redpencil.data.gift/id/deltas/producer/administrative-units' + } + }, + callback: { + url: 'http://delta-producer-json-diff-publisher-administrative-units/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] + } + }, + { + match: { + }, + callback: { + url: 'http://delta-producer-pub-graph-maintainer-organizations/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ + "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync", + "http://redpencil.data.gift/id/concept/muScope/deltas/publicationGraphMaintenance" + ] + } + },, + { + match: { + graph: { + type: 'uri', + value: 'http://redpencil.data.gift/id/deltas/producer/organizations' + } + }, + callback: { + url: 'http://delta-producer-json-diff-publisher-organizations/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] + } + }, + { + match: { + predicate: { + type: 'uri', + value: 'http://www.w3.org/ns/adms#status' + }, + object: { + type: 'uri', + value: 'http://redpencil.data.gift/id/concept/JobStatus/scheduled' + } + }, + callback: { + url: 'http://delta-producer-dump-file-publisher/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] + } + } +] diff --git a/config/dispatcher/dispatcher.ex b/config/dispatcher/dispatcher.ex index ea35dd2..cc7cce7 100644 --- a/config/dispatcher/dispatcher.ex +++ b/config/dispatcher/dispatcher.ex @@ -75,7 +75,7 @@ defmodule Dispatcher do match "/worship-administrative-units/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/worship-administrative-units/" end - + match "/worship-services/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/worship-services/" end @@ -126,11 +126,11 @@ defmodule Dispatcher do match "/change-event-types/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/change-event-types/" - end + end match "/organization-status-codes/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/organization-status-codes/" - end + end match "/locations/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/locations/" @@ -142,11 +142,15 @@ defmodule Dispatcher do match "/ministers/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/ministers/" - end + end match "/minister-conditions/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/minister-conditions/" - end + end + + match "/dates-of-birth/*path", %{ accept: [:json], layer: :api} do + Proxy.forward conn, path, "http://cache/dates-of-birth/" + end match "/nationalities/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/nationalities/" @@ -177,7 +181,7 @@ defmodule Dispatcher do match "/document-types-criterions/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/document-types-criterions/" - end + end match "/site-types/*path", %{ accept: [:json], layer: :api} do Proxy.forward conn, path, "http://cache/site-types/" @@ -187,6 +191,7 @@ defmodule Dispatcher do Proxy.forward conn, path, "http://cache/request-reasons/" end + ############### # LOGIN ############### @@ -208,7 +213,7 @@ defmodule Dispatcher do match "/sessions/*path", %{ accept: [:any], layer: :api} do Proxy.forward conn, path, "http://login/sessions/" end - + ############### # API SERVICES @@ -243,6 +248,47 @@ defmodule Dispatcher do end + ################################################################# + # FILES + ################################################################# + + get "/files/:id/download", %{ accept: [:any], } do + Proxy.forward conn, [], "http://file/files/" <> id <> "/download" + end + + get "/files/*path" , %{ layer: :api_services, accept: %{ json: true } } do + Proxy.forward conn, path, "http://cache/files/" + end + + ################################################################# + # DCAT + ################################################################# + + get "/datasets/*path", %{ layer: :api_services, accept: %{ json: true } } do + Proxy.forward conn, path, "http://cache/datasets/" + end + + get "/distributions/*path", %{ layer: :api_services, accept: %{ json: true } } do + Proxy.forward conn, path, "http://cache/distributions/" + end + + + ################################################################# + # DELTA: administrative-units + ################################################################# + + get "/sync/administrative-units/files/*path" do + Proxy.forward conn, path, "http://delta-producer-json-diff-file-publisher-administrative-units/files/" + end + + ################################################################# + # DELTA: organizations + ################################################################# + + get "/sync/organizations/files/*path" do + Proxy.forward conn, path, "http://delta-producer-json-diff-file-publisher-organizations/files/" + end + ############################################################### # frontend layer ############################################################### @@ -266,11 +312,11 @@ defmodule Dispatcher do match "/*_path", %{ layer: :frontend } do Proxy.forward conn, [], "http://frontend/index.html" end - + ############################################################### # sparql endpoint ############################################################### - + post "/sparql/*path", %{ layer: :api_services, accept: %{ sparql_json: true } } do forward conn, path, "http://db:8890/sparql/" end diff --git a/config/jobs-controller/config.json b/config/jobs-controller/config.json new file mode 100644 index 0000000..19432d7 --- /dev/null +++ b/config/jobs-controller/config.json @@ -0,0 +1,66 @@ +{ + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/administrative-units": { + "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/administrative-units": { + "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/administrative-units": { + "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/organizations": { + "tasksConfiguration": [ + { + "currentOperation": null, + "nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing", + "nextIndex": "0" + } + ] + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations": { + "tasksConfiguration": [ + { + "currentOperation": null, + "nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/healing/patchPublicationGraph", + "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/deltaDumpFileCreation/organizations": { + "tasksConfiguration": [ + { + "currentOperation": null, + "nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation", + "nextIndex": "0" + } + ] + } +} diff --git a/config/resources/dcat.json b/config/resources/dcat.json new file mode 100644 index 0000000..eba75ea --- /dev/null +++ b/config/resources/dcat.json @@ -0,0 +1,157 @@ +{ + "version": "0.1", + "prefixes": { + "dcat": "http://www.w3.org/ns/dcat#", + "dct": "http://purl.org/dc/terms/", + "prov": "http://www.w3.org/ns/prov#" + }, + "resources": { + "catalogs": { + "class": "dcat:Catalog", + "attributes": { + "title": { + "type": "string", + "predicate": "dct:title" + }, + "description": { + "type": "string", + "predicate": "dct:description" + }, + "publisher": { + "type": "url", + "predicate": "dct:publisher" + }, + "release-date": { + "type": "datetime", + "predicate": "dct:issued" + }, + "modified": { + "type": "datetime", + "predicate": "dct:modified" + } + }, + "relationships": { + "datasets": { + "target": "datasets", + "predicate": "dcat:dataset", + "cardinality": "many" + } + }, + "features": [ + "include-uri" + ], + "new-resource-base": "http://data.lblod.info/id/catalog/" + }, + "datasets": { + "class": "dcat:Dataset", + "attributes": { + "title": { + "type": "string", + "predicate": "dct:title" + }, + "description": { + "type": "string", + "predicate": "dct:description" + }, + "release-date": { + "type": "datetime", + "predicate": "dct:issued" + }, + "modified": { + "type": "datetime", + "predicate": "dct:modified" + }, + "type": { + "type": "url", + "predicate": "dct:type" + }, + "subject": { + "type": "url", + "predicate": "dct:subject" + } + }, + "relationships": { + "catalog": { + "target": "catalogs", + "predicate": "dcat:dataset", + "cardinality": "one", + "inverse": true + }, + "distributions": { + "target": "distributions", + "predicate": "dcat:distribution", + "cardinality": "many" + }, + "previous-version": { + "target": "datasets", + "predicate": "prov:wasRevisionOf", + "cardinality": "one" + }, + "next-version": { + "target": "datasets", + "predicate": "prov:wasRevisionOf", + "cardinality": "one", + "inverse": true + } + }, + "features": [ + "include-uri" + ], + "new-resource-base": "http://data.lblod.info/id/dataset/" + }, + "distributions": { + "class": "dcat:Distribution", + "attributes": { + "title": { + "type": "string", + "predicate": "dct:title" + }, + "description": { + "type": "string", + "predicate": "dct:description" + }, + "release-date": { + "type": "datetime", + "predicate": "dct:issued" + }, + "modified": { + "type": "datetime", + "predicate": "dct:modified" + }, + "type": { + "type": "url", + "predicate": "dct:type" + }, + "download-url": { + "type": "url", + "predicate": "dcat:downloadURL" + }, + "format": { + "type": "string", + "predicate": "dct:format" + }, + "byte-size": { + "type": "number", + "predicate": "dcat:byteSize" + } + }, + "relationships": { + "dataset": { + "target": "datasets", + "predicate": "dcat:distribution", + "cardinality": "one", + "inverse": true + }, + "subject": { + "target": "file", + "predicate": "dct:subject", + "cardinality": "one" + } + }, + "features": [ + "include-uri" + ], + "new-resource-base": "http://data.lblod.info/id/distribution/" + } + } +} diff --git a/config/resources/domain.json b/config/resources/domain.json index a6eb352..0786afe 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -600,7 +600,7 @@ }, "relationships": { "source": { - "predicate": "dct:source", + "predicate": "dc_terms:source", "target": "concepts", "cardinality": "one" } diff --git a/config/resources/domain.lisp b/config/resources/domain.lisp index ac4d7d6..964c273 100644 --- a/config/resources/domain.lisp +++ b/config/resources/domain.lisp @@ -1,4 +1,3 @@ - (in-package :mu-cl-resources) (defparameter *include-count-in-paginated-responses* t) @@ -13,4 +12,6 @@ (read-domain-file "domain.json") (read-domain-file "auth.json") -(read-domain-file "privacy-centric-service.json") \ No newline at end of file +(read-domain-file "files-domain.lisp") +(read-domain-file "dcat.json") +(read-domain-file "privacy-centric-service.json") diff --git a/config/resources/files-domain.lisp b/config/resources/files-domain.lisp new file mode 100644 index 0000000..b9dfdcf --- /dev/null +++ b/config/resources/files-domain.lisp @@ -0,0 +1,13 @@ +(define-resource file () + :class (s-prefix "nfo:FileDataObject") + :properties `((:filename :string ,(s-prefix "nfo:fileName")) + (:format :string ,(s-prefix "dct:format")) + (:size :number ,(s-prefix "nfo:fileSize")) + (:extension :string ,(s-prefix "dbpedia:fileExtension")) + (:created :datetime ,(s-prefix "nfo:fileCreated"))) + :has-one `((file :via ,(s-prefix "nie:dataSource") + :inverse t + :as "download")) + :resource-base (s-url "http://data.lblod.info/files/") + :features `(no-pagination-defaults include-uri) + :on-path "files") diff --git a/docker-compose.yml b/docker-compose.yml index 1a376bd..c528e2f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,7 +36,7 @@ services: restart: always logging: *default-logging db: - image: semtech/mu-authorization:0.6.0-beta.7 + image: cecemel/mu-authorization:0.6.0-beta.8 environment: MU_SPARQL_ENDPOINT: "http://triplestore:8890/sparql" LOG_OUTGOING_SPARQL_QUERIES: "true" @@ -79,20 +79,23 @@ services: restart: always logging: *default-logging kalliope-api: - image: lblod/jsonld-delta-service:0.3.2 + image: lblod/jsonld-delta-service:0.4.0 volumes: - ./config/kalliope:/config - ./data/files:/share + links: + - db:database environment: SERVER_PORT: "80" LOGGING_LEVEL: "INFO" SPARQL_ENDPOINT: "http://db:8890/sparql" + LIMIT_SIZE: "10000" labels: - "logging=true" restart: always logging: *default-logging deltanotifier: - image: semtech/mu-delta-notifier:0.1.0 + image: cecemel/delta-notifier:0.2.0-beta.2 volumes: - ./config/delta:/config labels: @@ -177,3 +180,156 @@ services: - "logging=true" restart: always logging: *default-logging + file: + image: semtech/mu-file-service:3.2.0 + volumes: + - ./data/files:/share + labels: + - "logging=true" + links: + - db:database + restart: always + logging: *default-logging + jobs-controller: + image: lblod/job-controller-service:0.7.0 + links: + - db:database + volumes: + - ./config/jobs-controller/:/config/ +################################################################################ +# DELTA GENERAL +################################################################################ + delta-producer-dump-file-publisher: + image: lblod/delta-producer-dump-file-publisher:0.4.0 + volumes: + - ./config/delta-producer/dump-file-publisher:/config + - ./data/files:/share + environment: + FILES_GRAPH: 'http://mu.semte.ch/graphs/public' # Note: this will be extracted in a config per job one day + DCAT_DATASET_GRAPH: 'http://mu.semte.ch/graphs/public' + links: + - db:database + restart: always + logging: *default-logging +################################################################################ +# DELTA ADMINISTRATIVE-UNITS: START +################################################################################ + delta-producer-bg-jobs-initiator-administrative-units: + image: lblod/delta-producer-background-jobs-initiator:0.3.1 + environment: + JOBS_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + DUMP_FILE_CREATION_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/administrative-units' + INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/administrative-units' + HEALING_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/administrative-units' + CRON_PATTERN_DUMP_JOB: '0 0 4 * * 6' # weekly on saturday + 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. + labels: + - "logging=true" + links: + - db:database + restart: always + logging: *default-logging + delta-producer-pub-graph-maintainer-administrative-units: + image: lblod/delta-producer-publication-graph-maintainer:0.7.0 + environment: + MAX_BODY_SIZE: "50mb" + JOBS_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + RELATIVE_FILE_PATH: "deltas/administrative-units" + PUBLICATION_GRAPH: 'http://redpencil.data.gift/id/deltas/producer/administrative-units' + HEALING_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/administrative-units' + INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/administrative-units' + QUEUE_POLL_INTERVAL: 3000 + USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true" # some queries are just too expensive + SKIP_MU_AUTH_INITIAL_SYNC: 'true' + HEALING_PATCH_GRAPH_BATCH_SIZE: 500 + volumes: + - ./config/delta-producer/administrative-units:/config + - ./data/files/:/share + links: + - db:database + - triplestore:virtuoso + restart: always + logging: *default-logging + delta-producer-json-diff-publisher-administrative-units: + image: lblod/delta-producer-json-diff-file-publisher:0.2.3 + environment: + MAX_BODY_SIZE: "50mb" + ERROR_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + RELATIVE_FILE_PATH: "deltas/administrative-units" + PUBLISHER_URI: "http://data.lblod.info/services/delta-production-json-diff-file-manager/administrative-units" + PUBLICATION_GRAPH: 'http://redpencil.data.gift/id/deltas/producer/administrative-units' + DELTA_INTERVAL_MS: 10000 + PRETTY_PRINT_DIFF_JSON: "true" + volumes: + - ./data/files:/share + labels: + - "logging=true" + links: + - db:database + restart: always + logging: *default-logging +################################################################################ +# DELTA ADMINISTRATIVE-UNITS: END +################################################################################ +################################################################################ +# DELTA ORGANIZATIONS: START +################################################################################ + delta-producer-bg-jobs-initiator-organizations: + image: lblod/delta-producer-background-jobs-initiator:0.3.1 + environment: + JOBS_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + DUMP_FILE_CREATION_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations' + INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations' + HEALING_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations' + CRON_PATTERN_DUMP_JOB: '0 0 4 * * 6' # weekly on saturday + 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. + labels: + - "logging=true" + links: + - db:database + restart: always + logging: *default-logging + delta-producer-pub-graph-maintainer-organizations: + image: lblod/delta-producer-publication-graph-maintainer:0.7.0 + environment: + MAX_BODY_SIZE: "50mb" + JOBS_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + RELATIVE_FILE_PATH: "deltas/organizations" + PUBLICATION_GRAPH: 'http://redpencil.data.gift/id/deltas/producer/organizations' + HEALING_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations' + INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: 'http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations' + QUEUE_POLL_INTERVAL: 3000 + USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true" # some queries are just too expensive + SKIP_MU_AUTH_INITIAL_SYNC: 'true' + HEALING_PATCH_GRAPH_BATCH_SIZE: 500 + volumes: + - ./config/delta-producer/organizations:/config + - ./data/files/:/share + links: + - db:database + - triplestore:virtuoso + restart: always + logging: *default-logging + delta-producer-json-diff-publisher-organizations: + image: lblod/delta-producer-json-diff-file-publisher:0.2.3 + environment: + MAX_BODY_SIZE: "50mb" + ERROR_GRAPH: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin" + RELATIVE_FILE_PATH: "deltas/organizations" + PUBLISHER_URI: "http://data.lblod.info/services/delta-production-json-diff-file-manager/organizations" + PUBLICATION_GRAPH: 'http://redpencil.data.gift/id/deltas/producer/organizations' + DELTA_INTERVAL_MS: 10000 + PRETTY_PRINT_DIFF_JSON: "true" + volumes: + - ./data/files:/share + labels: + - "logging=true" + links: + - db:database + restart: always + logging: *default-logging +################################################################################ +# DELTA ORGANIZATIONS: END +################################################################################