workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."{
webFrontend=container"NODC Web Front-end""Provides all functionality for browsing and viewing metadata records to open data consumers.""TypeScript""Web Front-End"
server=container"NODC Server""Implements all business functionality for browsing and viewing metadata records and provides it via API.""Node.js"{
group"Infrastructure"{
listAPI=component"Record List API""Provides API for getting a list of metadata records according to specified search parameters via API.""""Infrastructure"
detailAPI=component"Record Detail API""Provides API for getting a detail of a given metadata record via API.""""Infrastructure"
recordIndexGateway=component"Metadata Index Gateway""Provides access to a metadata records index.""""Infrastructure"
recordDetailGateway=component"Metadata Detail Gateway""Provides access to a metadata records store.""""Infrastructure"
codeListAccess=component"Code List Gateway""Provides access to code lists and their items via HTTPS dereferencing Web IRIs.""""Infrastructure"
}
group"Business Logic"{
searchController=component"Records Search Controller""Implements and provides business functionality related to searching for metadata records.""""Logic"
detailController=component"Record Detail Controller""Implements and provides business functionality related to viewing details of metadata records.""""Logic"
}
group"Domain Model"{
datasetModel=component"Dataset""Internal domain model of dataset metadata.""""Model"
distributionModel=component"Distribution Model""Internal domain model of distribution metadata.""""Model"
}
}
recordIndex=container"Metadata Index""Index for fast searching in metadata records.""Apache SOLR configuration and schema"
recordStorage=container"Metadata Storage""Storage of metadata records.""Apache CouchDB database"
harvestor=container"Metadata Harvestor""Harvests metadata records from local open data catalogs.""LinkedPipes ETL pipeline"
!docs docs
}
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
lodcRegistry=softwareSystem"Registry of local open data catalogs""SPARQL endpoint for reading locations of registered local open data catalogs which need to be harvested.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
nodcAdmin=person"NODC admin""A person who administers NODC""Admin"
lodcAdmin=person"LODC admin""A person who administers LODC""Admin"
consumer->nodc"Searches for metadata records in""HTTPS"
gov->nodc"Searches for metadata records in""HTTPS"
nodcAdmin->nodc"Administers"
lodcAdmin->lodc"Administers"
nodc->lodc"Harvests metada records from""DCAT-AP on HTTPS"
consumer->webFrontend"Searches for metadata records and views their details with""HTTPS"
gov->webFrontend"Searches for metadata records and views their details with""HTTPS"
deliveryToFrontend=webFrontend->server"Uses to deliver functionality""HTTPS"
server->recordIndex"Uses for fast retrieval of metadata records lists""HTTPS"
server->recordStorage"Uses for fast retrieval of metadata records details""HTTPS"
harvestor->lodc"Harvests metadata records from""DCAT-AP on HTTPS"
harvestor->recordIndex"Uses to reset metadata records index. The whole index is always replaced""HTTPS"
harvestor->recordStorage"Uses to persists harvested metadata records. All records are always replaced""HTTPS"
harvestor->lodcRegistry"Uses to read locations of registered local open data catalogs""HTTPS"
harvestor->lodcRegistry"Uses to log suspicious LODC content security event occurence""HTTPS"
harvestor->nodcAdmin"Notifies about suspicious LODC content""e-mail"
harvestor->lodcAdmin"Notifies about suspicious LODC content""e-mail"
webFrontend->listAPI"Makes API calls to""JSON/HTTPS"
webFrontend->detailAPI"Makes API calls to""JSON/HTTPS"
listAPI->searchController"Uses to access search business functionality"
detailAPI->detailController"Uses to access detail business functionality"
searchController->datasetModel"Uses to access metadata about datasets"
detailController->datasetModel"Uses to access metadata about datasets"
detailController->distributionModel"Uses to access metadata about distributions"
searchController->recordIndexGateway"Uses to retrieve list of metadata records with given values of selected properties"
detailController->recordDetailGateway"Uses to retrieve detailed metadata"
detailController->codeListAccess"Uses to retrieve code list items labels and descriptions"
deploymentEnvironment"Server Development"{
deploymentNode"Developer Laptop""""Microsoft Windows 11"{
deploymentNode"Web Browser""""Chrome, Firefox or Edge"{
containerInstancewebFrontend
}
deploymentNode"Node.js""""Node.js 14.*"{
containerInstanceserver
}
}
deploymentNode"NODC develop""""NODC development infrastructure"{
"name":"Czech National Open Data Catalog (NODC) workspace",
"description":"This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia.",