Configuratie¶
Overzicht¶
De configuratiemodule vormt het controlecentrum voor gemeentelijke aanpassingen en systeembeheer in Wasstraat Archeologische Data. Dit onderdeel stelt beheerders in staat hun eigen gegevensbronnen in te stellen, mappings te definiëren en lokale specifieke instellingen in te voeren zonder de kernarchitectuur te beschadigen.
Kernfunctionaliteiten¶
1. Databronnen Configuratie¶
Gestructureerde definities voor externe databronnen:
{
"databron": {
"id": "amsterdam_gemeente_2024",
"naam": "Amsterdam Gemeente Vondsten",
"type": "excel",
"locatie": "/data/imports/amsterdam_2024.xlsx",
"schema": {
"sheet_naam": "Vondsten",
"rijen_skip": 2,
"koppen_rij": 1
},
"frequentie_import": "maandelijks",
"volgende_import": "2024-04-09T02:00:00Z",
"validatie_profiel": "amsterdam_standaard",
"contactpersoon": "j.de.vries@amsterdam.nl"
}
}
Ondersteunde Brontypen¶
┌──────────────────────────────────┐
│ Ondersteunde Brontypen │
├──────────────────────────────────┤
│ • Excel (.xls, .xlsx) │
│ • CSV (diverse scheidingstekens) │
│ • Access Database (.mdb) │
│ • Word Document (.docx) │
│ • XML │
│ • JSON │
│ • Custom API │
│ • Gescande documenten (OCR) │
└──────────────────────────────────┘
2. Kolom-Mappings¶
Mapping van bronkolommen naar standaard Wasstraat schema:
{
"mapping": {
"bron_id": "amsterdam_gemeente_2024",
"kolom_mappings": {
"VONDST_NR": {
"target": "object_id",
"type": "string",
"verplicht": true
},
"DATUM_VONDST": {
"target": "discovery_date",
"type": "date",
"format": "DD-MM-YYYY",
"transformatie": "iso8601"
},
"PLAATS": {
"target": "location_name",
"type": "string",
"normalisatie": "plaats_standaardisering"
},
"X_COORD": {
"target": "longitude",
"type": "float",
"bron_crs": "EPSG:28992",
"target_crs": "EPSG:4326"
},
"Y_COORD": {
"target": "latitude",
"type": "float",
"bron_crs": "EPSG:28992",
"target_crs": "EPSG:4326"
},
"BESCHRIJVING": {
"target": "description",
"type": "text",
"max_length": 2000
}
}
}
}
3. Alternatieve Kolomnamen¶
Ondersteuning voor variatiebewuste kolommappings:
{
"kolom_aliassen": {
"object_id": [
"VONDST_NR",
"object_number",
"FIND_ID",
"artefact_nummer"
],
"discovery_date": [
"DATUM_VONDST",
"vondstdatum",
"DISCOVERY_DATE",
"datum_vondst"
],
"location_name": [
"PLAATS",
"plaats",
"LOCATION",
"LOCATIE"
]
}
}
Dit vermindert handmatige configuratie door automatische herkenning van veelgebruikte naamgevingspatronen.
4. Categorieën en Woordenlijsten¶
Lokale categorietisering en thesaurus-extensies:
{
"categorieen": {
"artefact_type": {
"standaard": ["aardewerk", "werktuig", "sieraad", "structuur"],
"amsterdam_specifiek": [
"houtwerk_amsterdam",
"tegel_delft",
"speelgoed_19e_eeuw"
]
},
"materiaal": {
"standaard": ["aarde", "steen", "hout", "metaal"],
"amsterdam_extensies": [
"bakstenen",
"tegelwerk",
"touwwerk"
]
},
"periode": {
"standaard_abr": [
"Paleolithicum",
"Mesolithicum",
"Neolithicum",
"Bronstijd"
],
"amsterdam_lokaal": [
"Vroeg Middeleeuwen Amsterdam",
"Bloktijd (1000-1500)",
"Amsterdamse Goudse Eeuw (1600-1700)"
]
}
}
}
5. Lokale Specifieke Uitbreidingen¶
Ondersteuning voor gemeentelijke unieke behoeften zonder kernmodel-breuk:
{
"lokale_extensies": {
"amsterdam": {
"extra_velden": {
"grachtbouw_fase": {
"type": "enum",
"opties": ["fase_I", "fase_II", "fase_III", "fase_IV"],
"beschrijving": "Specifiek voor Amsterdam Grachtenonderzoeken"
},
"pakhuis_relatie": {
"type": "string",
"beschrijving": "Verwijzing naar historisch pakhuis"
}
},
"validatieregels_extra": [
{
"regel": "grachtbouw_fase_chronologie",
"beschrijving": "Fase moet chronologisch consistent zijn"
}
]
},
"rotterdam": {
"extra_velden": {
"havenbouw_periode": {
"type": "enum",
"opties": ["oud_havengebied", "nieuwe_haven", "container_terminal"]
},
"bouwwerk_referentie": {
"type": "string"
}
}
}
}
}
Configuratie-Interface¶
Web Dashboard¶
Beheerders kunnen configuraties beheren via een intuïtief dashboard:
┌──────────────────────────────────────────────┐
│ Wasstraat Configuratie Dashboard │
├──────────────────────────────────────────────┤
│ │
│ Databronnen │
│ ├─ Amsterdam Gemeente (actief) │
│ ├─ Universiteit Amsterdam (actief) │
│ └─ + Nieuwe Databron Toevoegen │
│ │
│ Kolom-Mappings │
│ ├─ Amsterdam Mapping (bewerken) │
│ ├─ Universiteit Mapping (bewerken) │
│ └─ + Nieuwe Mapping Toevoegen │
│ │
│ Categorieën & Woordenlijsten │
│ ├─ Artefacttypes (bewerken) │
│ ├─ Materialen (bewerken) │
│ ├─ Periodes (bewerken) │
│ └─ + Nieuwe Categorie Toevoegen │
│ │
│ Validatieregels │
│ ├─ Basis Validatieregels (alleen-lezen) │
│ ├─ Amsterdam Regels (bewerken) │
│ └─ + Nieuwe Regel Toevoegen │
│ │
│ Gebruikersbeheer │
│ ├─ Rollen en Toestemmingen │
│ ├─ API-sleutels │
│ └─ Logboek │
│ │
└──────────────────────────────────────────────┘
Gegevensuitwisselingsbeheer¶
Import/Export Configuraties¶
Overzicht van gegevensstromingen:
{
"gegevensuitwisselingen": [
{
"id": "exchange_amsterdam_gemeente",
"type": "import",
"bron": "amsterdam_gemeente_2024",
"frequentie": "maandelijks",
"volgende_uitvoering": "2024-04-09",
"status": "actief",
"statistieken": {
"invoervermeldingen": 1247,
"succesvol": 1243,
"fouten": 4,
"waarschuwingen": 12
}
},
{
"id": "export_abr_integratie",
"type": "export",
"bestemming": "ABR Centrale Dienst",
"frequentie": "driemaandelijks",
"volgende_uitvoering": "2024-04-15",
"status": "actief",
"statistieken": {
"geëxporteerde_records": 3847
}
}
]
}
Logging en Auditing¶
Gedetailleerde verslaglegging van alle configuratie- en datautilischanges:
{
"logboekvermelding": {
"timestamp": "2024-03-09T10:30:00Z",
"gebruiker": "beheerder@amsterdam.nl",
"actie": "KOLOMAPPING_WIJZIGING",
"bron": "amsterdam_gemeente_2024",
"wijzigingen": [
{
"veld": "PLAATS",
"oud_doel": "location_name",
"nieuw_doel": "location_name_norm"
}
],
"status": "GOEDGEKEURD",
"goedkeuring_door": "systeembeheerder@amsterdam.nl"
}
}
Architectuur¶
┌────────────────────────────────────────────┐
│ Configuratie Module │
├────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────┐ │
│ │ Webinterface / API │ │
│ │ (Beheerders & Operators) │ │
│ └────────────┬────────────────────────┘ │
│ │ │
│ ┌────────────▼────────────────────────┐ │
│ │ Configuratie Storage │ │
│ │ (MongoDB: config_db) │ │
│ ├─────────────────────────────────────┤ │
│ │ • Databronnen │ │
│ │ • Kolom-mappings │ │
│ │ • Validatieregels │ │
│ │ • Categorieën │ │
│ │ • Lokale Extensies │ │
│ └────────────┬────────────────────────┘ │
│ │ │
│ ┌────────────▼────────────────────────┐ │
│ │ Configuratie Services │ │
│ │ ├─ Validator │ │
│ │ ├─ Applier │ │
│ │ └─ Auditlog │ │
│ └────────────┬────────────────────────┘ │
│ │ │
│ ┌────────────▼────────────────────────┐ │
│ │ Systeemcomponenten │ │
│ │ (Extractie, Transformatie, etc.) │ │
│ └─────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────┘
Best Practices¶
Configuratievalidatie
Alle configuratieveranderingen moeten worden gevalideerd voordat deze van kracht worden. Ongeldig instellingen kunnen systeemverstoring veroorzaken.
- Test configuraties op een testomgeving eerst
- Documenteer alle aangepaste instellingen
- Zorg voor regelmatige backups van configuraties
- Voer configuratiewijzigingen stap voor stap door
Versiebeheer
Configuraties kunnen als code worden behandeld. Gebruik versiebeheer (Git) voor: - Sporen van wijzigingen - Rollback-mogelijkheid - Samenwerkingsoptimalisatie
Integratie met andere Lagen¶
De configuratiemodule ondersteunt:
- Extractie: Definiëert databronnen en import-schema's
- Transformatie: Specificeert transformatieregels per gemeent
- Validatie: Biedt aangepaste validatieregels
- Crossviews: Kan ML-trainingsparameters configureren
- Zoeken: Configureert indexerings-strategieën
Rollen & Toestemmingen¶
{
"rollen": [
{
"rol": "systeembeheerder",
"rechten": [
"alle_configuraties_lezen",
"alle_configuraties_wijzigen",
"gebruikersbeheer",
"auditlog_lezen"
]
},
{
"rol": "gemeente_beheerder",
"rechten": [
"eigen_databronnen_configureren",
"eigen_mappings_wijzigen",
"lokale_categorieën_beheren",
"eigen_logs_lezen"
]
},
{
"rol": "operator",
"rechten": [
"import_activeren",
"export_activeren",
"logs_lezen"
]
}
]
}