<!-- Release notes -->
<!-- canonical: https://yres.eu/nl/wiki/referentie/release-notes -->
# Release notes

Versiehistorie van Yres DWH. Oudere versies kunnen niet meer ondersteund zijn; ze blijven hier staan voor
naslag. Per versie staan de nieuwe features, verbeteringen en eventuele breaking changes.

:::note Datums uit de productdocumentatie
De datums van v1.55 en ouder komen uit _Yres Documentation 1.55_ (release-notes-sectie). Yres-versies
ordenen als decimale breuken — **1.9 staat dus na 1.55, en 1.56 ervoor** — niet als semver.
:::

## v1.56 — augustus 2026

De grootste release tot nu toe: naast de webapp is ook het complete dataplatform (database + ADF)
onder handen genomen. Hieronder de hoofdlijnen per thema; de gelinkte wiki-pagina's beschrijven de
details van elk onderwerp.

### Upgrade & breaking changes

- **Upgraden kan alleen vanaf v1.50.** Oudere omgevingen upgraden eerst naar 1.50.
- **IRIS → Yres, ook in de database en ADF.** De upgrade hernoemt het maatwerkschema `CustomIris` naar
  `CustomYres` (eigen objecten verhuizen mee), kolommen `Iris*` naar `Yres*` (zoals `YresLastUpdated`),
  de databaserol naar `Yres_MANAGED_USERS` en de versiesetting naar `YRES_VERSION`. In ADF heten alle
  pipelines voortaan `… YRES` in plaats van `… IRIS`, de linked service `IrisDwh` werd `YresDwh` en het
  data lake gebruikt de container `datalake-yres`. **Eigen rapporten, SQL of scripts die de oude namen
  gebruiken moeten worden aangepast.**
- **Surrogate keys worden bij de upgrade opnieuw opgebouwd** volgens een nieuw, botsingsvrij sleutelmodel
  (`intKey` als doorlopende teller per tabel; `jsonKey` blijft beschikbaar voor eigen uitbreidingen).
  → [Historie & SCD2](https://yres.eu/nl/wiki/concepten/historie-scd2)
- **Deployvolgorde:** de database-upgrade hoort altijd vóór de ADF-publish — de nieuwe pipelines
  gebruiken procedures die oudere databases nog niet hebben.
- **De Data Lake bevat voortaan mutaties in plaats van momentopnames.** Wie data uit de lake leest,
  moet mee: de bestanden staan op een nieuw pad, bevatten alleen de gewijzigde rijen van die run en
  dragen een `I`/`U`/`D`-markering. Bestaande bestanden blijven staan, maar er komt niets meer bij op
  het oude pad. → [Lake feed](https://yres.eu/nl/wiki/concepten/lake-feed)
- **Eerder gewijzigde doelnamen worden alsnog doorgevoerd.** Tot nu toe veranderde het aanpassen van
  een doelnaam of doelschema (de *Overwrite*-velden) niets aan de database: de tabel bleef onder zijn
  oorspronkelijke naam staan. Vanaf 1.56 hernoemt Yres de fysieke tabellen wél — ook voor wijzigingen
  die je in het verleden maakte en die nooit effect hadden. Loop daarom vóór de upgrade je gewijzigde
  tabellen na en zet een naam terug als je de oude wilt houden.
  → [Doelnamen wijzigen](https://yres.eu/nl/wiki/setup/databron-koppelen#doelnamen-wijzigen-na-aanmaken)
- **SharePoint-bronnen hebben nieuwe rechten nodig.** Microsoft heeft de app-only-flow via Azure ACS
  uitgezet, waardoor SharePoint-loads faalden. Yres gebruikt nu Microsoft Graph; geef de geregistreerde
  app daarom **application permissions** op Microsoft Graph (minimaal `Sites.Read.All`) met admin
  consent. De oude machtiging via `appinv.aspx` volstaat niet meer.
  → [SharePoint](https://yres.eu/nl/wiki/integraties/bronnen/sharepoint)
- **De actief-instelling van een kolom of tabel werkt nu door in de loads.** Zet je een kolom of
  tabel op inactief, dan wordt die vanaf 1.56 ook daadwerkelijk overgeslagen bij het laden.
  Controleer daarom vóór de upgrade wat er bij jou op inactief staat, zodat je selectie klopt met wat
  je geladen wilt hebben.
  → [Acties per bron](https://yres.eu/nl/wiki/frontend/data-sources#acties-per-bron-afhankelijk-van-brontype)
- **Een kolom verwijderen ruimt hem nu ook fysiek op.** Haal je een kolom uit de dictionary — de rij
  weghalen, niet alleen op inactief zetten — dan verwijdert Yres hem voortaan ook uit de HIS-tabel,
  **inclusief de historische waarden die erin staan**. Voorheen bleef de kolom in de database staan.
  Deze actie is niet terug te draaien; wil je de historie bewaren, zet de kolom dan op **inactief** in
  plaats van hem te verwijderen.
- **Uniciteit op de kolomadministratie.** De tabellen achter de dictionary krijgen bij de upgrade een
  uniciteitsregel op hun logische sleutel, zodat dezelfde kolom er maar één keer in kan staan. Komen
  er in jouw omgeving dubbele rijen voor, dan ruimt de upgrade die op en houdt de meest recent
  bijgewerkte aan.
- **Instelling hernoemd.** De instelling `AllowUpdatesInIrisSchemas` heet voortaan
  **`AllowUpdatesInYresSchemas`** — de laatste "Iris"-naam in de instellingen. De upgrade hernoemt haar
  automatisch met behoud van de ingestelde waarde; alleen eigen scripts die de oude naam gebruiken,
  moeten mee. → [Admin → Instellingen](https://yres.eu/nl/wiki/frontend/admin)
- **Verouderde procedure verwijderd.** De oude, niet-ondersteunde procedure
  `Config.spCreateExternalTablesFromDictionary` is uit de database verwijderd. Voor external tables over
  de Data Lake is er nu een volwaardig, automatisch onderhouden alternatief: het `DL`-schema van de
  lake feed. → [Lake feed](https://yres.eu/nl/wiki/concepten/lake-feed#dl-schema)

### Webapp

- **Branding:** IRIS heet voortaan **Yres** in de hele webapp (e-mails, UI, vertalingen); bij de update naar 1.56 worden oude triggers met de legacy-merknaam opgeruimd.
- **Projects & changes:** herontworpen changes-tabel met environment-entries per change; gerelateerde changes zichtbaar vanuit de object viewer. → [Wijzigingsproces](https://yres.eu/nl/wiki/concepten/wijzigingsproces), [Projecten & changes](https://yres.eu/nl/wiki/frontend/projecten-changes)
- **Multi-tenancy:** subdomein per organisatie, Azure SSO-redirect naar de juiste organisatie, en het aantal omgevingen gekoppeld aan het abonnement. → [Admin](https://yres.eu/nl/wiki/frontend/admin)
- **Oracle & MySQL vernieuwd:** de linked services zijn bijgewerkt naar de nieuwste connectorversies — property-gebaseerd in plaats van een connection string, MySQL met SSL. → [Oracle](https://yres.eu/nl/wiki/integraties/bronnen/oracle), [MySQL](https://yres.eu/nl/wiki/integraties/bronnen/mysql)
- **Bronnen & connectiviteit:** nieuwe REST-service-presets, verfijnde REST-paginering, en **Test connectivity** vanuit de webapp. → [Integraties](https://yres.eu/nl/wiki/integraties/overzicht)
- **Monitoring & health:** nieuwe health bar met DWH-statistieken; pipeline-runs met filters. → [Monitoring & logging](https://yres.eu/nl/wiki/referentie/monitoring-logging)
- **Data engineering & object viewer:** git-diff en syntax highlighting, uitgebreidere mapping van scripted objects, en wizard-verbeteringen. → [Data engineering](https://yres.eu/nl/wiki/frontend/data-engineering)
- **Triggers met meerdere dagen én tijdstippen:** één trigger kan nu bijvoorbeeld elke maandag én zaterdag om 01:00, 05:00 en 09:00 draaien. Uren, minuten, weekdagen en maanddagen kies je als meervoudige selectie, aangevuld met terugkerende voorkomens als "laatste vrijdag van de maand"; een samenvatting toont vooraf alle uitvoermomenten. Voorheen was elk dag/tijd-paar een aparte trigger. → [Triggers](https://yres.eu/nl/wiki/frontend/load-management#meerdere-dagen-en-tijdstippen-in-één-trigger)
- **Archiveringspipeline uit de doos:** bij het bijwerken van een omgeving naar 1.56 wordt de `Dynamic Archiving Workflow YRES` automatisch aangemaakt, inclusief de bijbehorende archiefopslag. Je kunt hem daarna gewoon vanuit **Run pipelines** starten en met een trigger inplannen. Elke pipeline met Source/Schema/Table-parameters krijgt bovendien die drie als kolommen én filters in de runhistorie — dus ook de archiveringsworkflow. → [Load management](https://yres.eu/nl/wiki/frontend/load-management)
- **Beheer & beveiliging:** admin secrets-view, credential-vervalnotificaties, encryptie van credentials en jobs, Azure Redis-cache, en robuustere Azure DevOps-integratie.
- **Opgeloste fouten:** het handmatig starten van een pipeline en het aanmaken van een trigger gebruikten soms een verouderde merknaam, waardoor de actie op een niet-bestaande pipelinenaam stukliep; het rechtermuisknop-menu in **Changes** en **Used tables** opende op de verkeerde plek zodra de pagina gescrold was; en het bijwerken van een grote organisatie kon voortijdig afbreken en daardoor dubbel draaien.

### Dataplatform — nieuw

- **Lake feed: de Data Lake als change feed.** De Data-Lake-uitvoer is herbouwd. In plaats van elke run
  de volledige stagingtabel te dumpen, schrijft Yres nu per run één Parquet-bestand met **alleen de
  mutaties**, elk gemarkeerd als insert, update of delete — inclusief expliciete tombstones voor
  verwijderde rijen, die voorheen onzichtbaar waren. Daarmee is uit de lake zowel de actuele stand als de
  volledige historie af te leiden, en is de feed direct bruikbaar als invoer voor een Delta-tabel. Runs
  zonder wijzigingen schrijven niets, een herstart overschrijft zijn eigen bestand, en de lake-stap loopt
  parallel aan het laden van het datawarehouse. Aanzetten doe je per tabel met `DataPlatform = DL`.
  → [Lake feed](https://yres.eu/nl/wiki/concepten/lake-feed)
- **DL-only-tabellen: de lake als cold storage, bevraagbaar vanuit SQL.** Een tabel die alléén op `DL`
  staat, krijgt geen history-tabel meer in de database — de data leeft volledig in de Data Lake. Toch
  bevraag je haar gewoon vanuit SQL: Yres genereert en onderhoudt automatisch external tables en views
  in het `DL`-schema, inclusief een HIS-vormige view die de vertrouwde SCD2-kolommen
  (`ETL_Date`/`ETL_EndDate`/`isCurrent`) uit de feed afleidt. Schemawijzigingen volgen vanzelf via
  schemageneraties, en nieuwe health checks bewaken de hele keten — van configuratie tot
  compatibiliteitsniveau. → [Lake feed → het DL-schema](https://yres.eu/nl/wiki/concepten/lake-feed#dl-schema)
- **De testsuite wordt meegeleverd.** De regressietestsuite die elk databaseobject doorlicht —
  inmiddels **±1655 controles over 195 objecten** (en groeiend per release) — zit in de DACPAC en komt dus met elke versie mee.
  Na een deploy of bij twijfel draai je hem zelf met `EXEC Test.spRunAll` — hij is veilig op
  productie, ruimt bewijsbaar op en draait nooit uit zichzelf. → [Testsuite](https://yres.eu/nl/wiki/referentie/testsuite)
- **Bijna 1700 gedragscontroles op het dataplatform.** De meegeleverde testsuite is uitgebreid van
  objectdekking naar **gedragsdekking**: naast het happy path toetst elk objecttype nu ook lege
  invoer, `NULL`, grensgevallen, ontbrekende afhankelijkheden en meerdere rijen tegelijk. De suite
  groeide van circa 600 naar de ±1655 controles hierboven, verdeeld over 195 objecten, en draait
  voortaan mee met elke release. Wat daarbij naar boven kwam is meegenomen in deze versie; de
  randgevallen die daardoor steviger zijn geworden:

  - **Delta-loads rond de zomertijdovergang** verwerken de twee overgangsnachten nu correct.
  - **Het promotiemechanisme** neemt bij een tabeltype de volledige definitie mee naar de volgende
    omgeving, inclusief kolombreedtes en standaardwaarden.
  - **Gedeeltelijke wijzigingen** in de webapp laten de velden die je niet aanraakt ongemoeid.
  - **Een onverwerkbaar item** stopt de rest van een verwerking niet meer; die loopt door en het
    probleemgeval wordt gelogd.
  - **Het auditspoor van databasewijzigingen** blijft ook na een onderbroken opruimactie actief.

  → [Testsuite](https://yres.eu/nl/wiki/referentie/testsuite)
- **Workload-administratie:** workflows plannen hun volledige werklast vooraf in
  (`LoadManagement.LoadLog`) en werken die per load bij. De monitor toont daardoor ook **geplande en
  overgeslagen loads**, statussen komen uit de administratie zelf en looptijden kloppen. Een nieuwe
  `ADFLoadMonitor`-pipeline en een herbouwde garbage collection spiegelen de ADF-runstatussen terug naar
  de database, zodat een weggevallen run niet blijvend op "RUNNING" staat.
  → [Monitoring & logging](https://yres.eu/nl/wiki/referentie/monitoring-logging)
- **Retentiebeleid voor de logtabellen:** instelbaar per tabel via `Monitoring.RetentionPolicy`
  (standaard 90–365 dagen); de wekelijkse ADF-pipeline `Maintenance Retention YRES` schoont gebatcht op
  met vaste integriteitsgaranties (de laatste run per load en lopende loads blijven altijd staan) en een
  dry-run-modus; de trigger staat na installatie bewust uit. Voorheen groeiden de logtabellen onbegrensd.
  → [Retentie van de logtabellen](https://yres.eu/nl/wiki/referentie/monitoring-logging#retentie-van-de-logtabellen)
- **Metadata verversen is atomair:** alle GetMetaData-pipelines stagen de metadata en wisselen die in
  één transactie in — bij bronnen met meerdere services per onderdeel. Een mislukte of gelijktijdige
  refresh kan de kolomadministratie niet meer half leeg achterlaten.
  → [Metadata verversen](https://yres.eu/nl/wiki/frontend/data-sources#metadata-verversen-refresh-metadata), [Stored procedures](https://yres.eu/nl/wiki/referentie/sql/stored-procedures)
- **Delta-loads uitgebreid:** twee deltakolommen werken nu op alle SQL-/databasebronnen én op
  Salesforce, SAP SAC en AFAS; Exact Online kreeg datumdelta's, het loadtype ADDITIONAL delta-append,
  AFAS datatype-bewuste filters en **Oracle** volwaardige delta-ondersteuning.
  → [Load-types](https://yres.eu/nl/wiki/concepten/load-types), [Meerdere deltakolommen](https://yres.eu/nl/wiki/concepten/load-types#meerdere-deltakolommen)
- **REST-bronnen:** de request-URL wordt voortaan in de pipeline opgebouwd uit de basis-URL in Key Vault
  plus het endpoint (inclusief querystring-merge). → [REST-service](https://yres.eu/nl/wiki/integraties/bronnen/restservice)
- **Snowflake:** staging herschreven naar één Parquet-bestand met een instelbare stagingcontainer.
  → [Snowflake](https://yres.eu/nl/wiki/integraties/bronnen/snowflake)
- **Doelnamen wijzigen werkt nu echt.** Pas je bij een geregistreerde tabel de doelnaam of het
  doelschema aan, dan hernoemt Yres voortaan de fysieke tabellen: STAGE, HIS en — bij
  `DataPlatform = DL` — de lake-boekhoudtabel verhuizen mee, net als de surrogate keys van die tabel.
  Voorheen bleef de database op de oude naam staan terwijl de configuratie de nieuwe toonde. De
  hernoeming gebeurt bij de eerstvolgende *Update tables from dictionary* en is atomair: mislukt hij,
  dan staat alles nog op de oude naam. Wijst de nieuwe naam al naar een bestaand object, dan weigert
  Yres en logt dat. Bij bestands-, REST-, SharePoint-, Microsoft 365- en TrustIT-bronnen draait die
  stap automatisch mee in elke load; bij de overige bronnen alleen als je hem zelf start.
  → [Doelnamen wijzigen](https://yres.eu/nl/wiki/setup/databron-koppelen#doelnamen-wijzigen-na-aanmaken)
- **Health checks:** de checkview is opgesplitst in modulaire groepen en uitgebreid met ~24 nieuwe
  configuratie-integriteitschecks. → [Admin → Health checks](https://yres.eu/nl/wiki/frontend/admin)
- **Wijzigingsproces gehard:** veertien fouten in release/import/install opgelost, plus een leesbare
  release-historie per change (`Change.vwLogs`). → [Wijzigingsproces](https://yres.eu/nl/wiki/concepten/wijzigingsproces)
- **DB-tier-scaling:** naast de "Default"-tier is nu ook een "High"-tier configureerbaar waarnaar
  workflows tijdens zware loads kunnen opschalen. De monitorpipeline heroverweegt de tier bovendien
  tussentijds: een afschaling die tijdens drukte werd uitgesteld, wordt alsnog uitgevoerd zodra de
  actieve workloads klaar zijn — je betaalt de hogere tier dus niet langer dan nodig.
- **Archivering:** per tabel kiezen tussen `CLOSED` (afgesloten SCD2-versies) en `BUSINESS` (data ouder dan X jaar op een datumkolom); de workflow kopieert naar een eigen `archive/`-pad in de Data Lake, verifieert de rowcount en schoont pas daarna op (gegate door de instelling `ArchivingPurgeEnabled`, standaard copy-only); gearchiveerde data wordt bij het laden geblokkeerd zodat ze niet terugkeert; per tabel een automatische `_IncArchive`-unionview (live + archief); nieuwe health checks bewaken de configuratie. De archiveringsworkflow wordt bij de update automatisch aangemaakt en is vanuit de webapp te starten en in te plannen; welke tabellen archiveren stel je in deze versie nog in de database in, niet in de webapp. → [Archivering](https://yres.eu/nl/wiki/concepten/archivering)
- **Archivering onthoudt zijn opschoningen.** Elke geverifieerde purge wordt vastgelegd in een
  purge-geheugen (`ArchiveLog`), zodat opgeschoonde rijen ook na een configuratiewijziging — een andere
  bewaartermijn, een andere kolom, of archivering die weer uitgaat — consistent buiten het datawarehouse
  blijven. Bewust terughalen kan altijd. De archiveringsconfiguratie wordt bovendien direct bij het
  opslaan gevalideerd (een onvolledige instelling geeft meteen een duidelijke melding), en twee nieuwe
  health checks maken het purge-geheugen inzichtelijk.
  → [Archivering → purge-geheugen](https://yres.eu/nl/wiki/concepten/archivering#purge-geheugen)

### Dataplatform — stabiliteit & performance

- **Stabiliteitsfixes:** een brede reeks fixes in het laadmechanisme (typemappings, delta-filters,
  paginering, monitoring-statussen en foutafhandeling) en in de CI/CD-mechanismes (wijzigingsproces,
  release/import/install en deployment). → [Monitoring & logging](https://yres.eu/nl/wiki/referentie/monitoring-logging),
  [Wijzigingsproces](https://yres.eu/nl/wiki/concepten/wijzigingsproces)
- **Performance-verbeteringen:** de SCD2-merge is op zijn hotspots herschreven en de workflow-planning
  schaalt niet meer mee met de monitoringhistorie of het aantal tabellen — vooral merkbaar op grote
  omgevingen. Daarnaast blokkeren de **logstappen het echte werk niet meer**: ze draaien voortaan naast
  de laadactiviteiten in plaats van ervoor, wat per tabel wachttijd scheelt. Er verdwijnt geen logregel;
  wel kunnen regels binnen dezelfde load in een iets andere volgorde in de monitoring verschijnen.
- **Monitor-reconciliatie robuuster:** de technische pipelines die pipeline-runs uit de Azure
  Management-API teruglezen om achtergebleven RUNNING-statussen te reconciliëren, landen de
  API-antwoorden nu met een vaste kolomset (`@StrictColumns` in `spJsonToTable`). Nieuwe of
  incidentele velden in het API-antwoord kunnen het schema van de monitortabel daardoor niet meer
  ongemerkt wijzigen of de reconciliatie laten falen. → [Monitoring & logging](https://yres.eu/nl/wiki/referentie/monitoring-logging)
- **Deltawatermerk beschermd bij gefaalde loads:** faalde een deel van een DELTA-load, dan kon het
  watermerk (`UsedTables.LatestRecord`) toch doorschuiven, waardoor de niet-geladen rijen bij volgende
  delta-runs stilzwijgend buiten beeld bleven; herstel vergde een eenmalige FULL load. Het watermerk
  schuift nu alleen door wanneer de load volledig is gelukt — na een gefaalde load blijft het staan
  (zichtbaar in de monitoring als *Delta watermark not advanced*) en pakt de eerstvolgende geslaagde
  run het verschil automatisch opnieuw op.
  → [Laadtypes](https://yres.eu/nl/wiki/concepten/load-types#delta--alleen-wijzigingen-met-watermark)
- **Columnstore-tabellen laden via het bulk-load-pad:** bij doeltabellen die als columnstore zijn
  aangemaakt schrijft de merge zijn `HIS`-inserts nu met één tabellock (`TABLOCK`) in plaats van
  rij- en pagina-locks — merkbaar minder lock-overhead op grote loads. Rowstore-tabellen veranderen
  niet, en omdat loads per tabel al na elkaar draaien blokkeert dit niets extra.
- **Live voortgang in de monitoring, ook tijdens grote loads:** de SCD2-merge schrijft zijn logregels
  voortaan in korte, per-pagina afgesloten transacties. Je ziet de voortgang van een lopende load dus
  meteen in de monitoringschermen, in plaats van pas na afloop — en de monitoringviews lezen zonder een
  lopende load te hinderen.
- **Fouten in ondersteunende stappen zijn direct zichtbaar:** waar een probleem in een ondersteunende
  stap (zoals view-onderhoud of lake-leesobjecten) voorheen alleen als logregel te vinden was, meldt hij
  zich nu als een zichtbare `FAILED`-status met de foutdetails erbij. Bewuste overslagen (bijvoorbeeld
  een feature die uitstaat) blijven gewoon informatieve meldingen — je ziet dus sneller wat aandacht
  vraagt, zonder ruis. → [Monitoring & logging](https://yres.eu/nl/wiki/referentie/monitoring-logging)
- **Installeerbaar op elke servicetier:** de database-upgrade (inclusief meegeleverde testsuite) werkt
  nu ook op de kleinere DTU-tiers; columnstore-functionaliteit activeert zichzelf alleen waar de tier
  die ondersteunt.
- **Data Lake-toegang via managed identity:** de koppeling tussen de ADF-factory en de Data Lake
  gebruikt voortaan de managed identity van de factory in plaats van accountsleutels — geen sleutels
  meer om te beheren of te roteren.
- **Verdere verfijningen in het laadmechanisme:** een reeks kleinere verbeteringen die het gedrag
  voorspelbaarder maken. Een greep: een haperende token-refresh kan een werkend OAuth-token niet meer
  overschrijven; een licentie is de volledige einddag geldig; de keuze uit dubbele typemapping-regels is
  nu deterministisch; een tabel die dubbel geregistreerd staat, wordt nog maar één keer geladen; het
  omzetten van een tabel naar columnstore en het herbouwen van de leesrol gebeuren atomair; het
  deregistreren van een tabel ruimt de volledige administratie op; en de monitor toont geen synthetische
  plaatsvervangende regels meer.
- **SharePoint werkt weer:** de bestandsophaal is overgezet op Microsoft Graph nu Microsoft de oude
  app-only-authenticatie heeft uitgezet. Yres zoekt het bestand nu via site → documentbibliotheek →
  bestand en haalt het op via een tijdelijke kopie in de Blob Storage van de omgeving. Let op de
  gewijzigde rechten en de betekenis van de bestandslocatie.
  → [SharePoint](https://yres.eu/nl/wiki/integraties/bronnen/sharepoint)
- **Bestandsbronnen — deltavenster gecorrigeerd:** meervoudsvormen als `DAYS` en `HOURS` werden niet
  herkend en vielen stil terug op seconden, en `YEAR` rekende met 365 uur in plaats van 365 dagen.
  Beide zijn opgelost; een tabel met zo'n instelling pakt na de update een breder en correct venster op.
  → [Deltavenster bij bestandsbronnen](https://yres.eu/nl/wiki/concepten/load-types#deltavenster-bij-bestandsbronnen)
- **Datatype-mappings opgeschoond:** een brede correctieronde op de standaard type-mapping. Kolommen die
  als `rowversion` in het datawarehouse belandden (SQL Server, DB2, MySQL, OneStream) worden nu correct
  als binaire waarde of datum aangemaakt, mappings naar typen die SQL Server niet kent (`blob`, `bool`,
  `byte`) zijn vervangen, Salesforce-adreskolommen worden niet meer op één teken afgekapt, Snowflake
  `VARIANT` mag weer lange waarden bevatten, en dubbele mappingregels — die willekeurig gedrag gaven —
  zijn verwijderd. Ontbrekende regels worden bij de deploy hersteld.
- **Automatisch remodelleren robuuster:** een bronwijziging die meerdere tabellen tegelijk raakte, liep
  na de eerste tabel vast, en een `rowversion`-kolom kon helemaal niet geremodelleerd worden. Beide
  zijn opgelost. → [Wijzigingsproces](https://yres.eu/nl/wiki/concepten/wijzigingsproces)
- **DB2-metadata:** het ophalen van de kolomstructuur van een DB2-bron leverde een onvolledige
  administratie op, waardoor tabel- en kolomlijsten in de webapp leeg of incompleet bleven. Opgelost.
- **Minder valse meldingen in de health checks:** de check op verweesde metadata markeerde de hele nog
  niet gebruikte broncatalogus als dode metadata. Hij slaat nu alleen nog aan op metadata van bronnen
  die niet meer bestaan of inactief zijn. → [Admin → Health checks](https://yres.eu/nl/wiki/frontend/admin)
- **Bestandsbronnen — compressie:** de compressievorm van een bronbestand blijft nu behouden wanneer de
  tabelconfiguratie wordt bijgewerkt; voorheen ging die instelling bij elke wijziging verloren.

## v1.55 — september 2025

- **Data & loading:** kolommen kiezen die meetellen bij het vergelijken van rijen om gewijzigde records
  (changed records) te bepalen.
- **Bronnen & connectiviteit:** Yres beheert Integration Runtimes nu vanuit de frontend (beter bij rebuild
  en upgrade naar een nieuwere versie); bestaande IR's zijn te "importeren" in de nieuwe opzet.
- **UI:** actieknoppen in de datasource-menu's verplaatst naar een ⫶-menu om ruimte te besparen;
  REST-bronnen kiezen voortaan default-waarden voor centraal beheerde settings (zoals `KeepStage` en
  row-/columnstore); REST-bronnen worden benoemd naar hun target in plaats van het bron-endpoint;
  File- en REST-bronnen vereisen voortaan Project + change aan het begin van de wizard.
- **Lifecycle management:** **environment comparison** — SQL-definities vergelijken tussen omgevingen, met
  volledige diff-view (tussen versies of tussen omgevingen); nieuwe setting op organisatieniveau om
  specifieke ADF-objecten uit te sluiten bij het publiceren van changes naar ADF.
- **Automation & pipelines:** main pipelines kunnen worden gekopieerd naar een nieuwe versie.
- **Security:** backend-URL's op basis van UUID's (geen voorspelbare endpoints); nieuwe installaties
  vereisen een extra property ter voorbereiding op subdomeinen per organisatie; client & secrets waarmee
  Yres bij de Azure-tenant van de organisatie komt, zijn beheerbaar door admins.

## v1.54 — juli 2025 

- **Data & loading:** tabellen deactiveren zodat ze tijdelijk buiten loads blijven; loads starten direct
  vanuit het datasource-menu; persist view direct vanuit het Persist View-menu.
- **Bronnen & connectiviteit:** refresh metadata voor 80+ bronnen; ondersteuning voor PAT-tokens in
  OneStream.
- **Monitoring & UI:** filteroptie in de pipeline-monitor; extra tijdselecties (1/4/8 uur); paging in de
  gemonitorde jobs; materialized views toegevoegd aan de monitor.
- **Projects & changes:** nieuw iteratief proces voor complexe dependencies; **naming overwrites** tussen
  dev, test en prod (voor bronnen die per omgeving andere objectnamen hebben, bijv.
  `ERP_DEV.Customers` / `ERP_TST.Customers` / `ERP.Customers`).
- **Automation & pipelines:** persist view vanuit de main pipeline; custom bronnen selecteerbaar bij het
  starten van loads; parallelisme instelbaar voor loads; alternative load volledig beschikbaar.
- **Communicatie:** announcements nu beschikbaar voor organisatie-admins.

## v1.53 — mei 2025 

- **Data & loading:** **Delta Image** load mode (selectief specifieke periodes herladen, bijv. het vorige
  jaar, met verwijdering van verouderde records én behoud van historie); uitgebreide paging in REST-bronnen
  (RFC 5988, offset-based, looped page traversal, body-result-URL); schaalbare verwerking via paging
  (100M+ records); PowerBI Models verversen binnen loads.
- **Nieuwe bronnen:** **OneStream**, **SAP Business Data Cloud** (`SAP_BDC`) en **Simplicate**;
  OpenAPI-support voor REST (`openapi.json` / `swagger.json`, endpoints visueel selecteerbaar); **custom**
\*\*  database deployment\*\* (deployen op een eigen bestaande Azure-database in plaats van de standaard embedded
  database).

  :::info SAP Business Data Cloud ≠ SAP Datasphere
  De bron die in deze release is toegevoegd is **SAP Business Data Cloud** (backend-brontype `SAP_BDC`).
  Dit is een ander SAP-product dan **SAP Datasphere**; in de ADF-templates zijn het gescheiden connectoren.
  Behandel beide als gerelateerd maar afzonderlijk.
  :::

- **Monitoring & UI:** actieve omgeving (Development/Test/Production) prominent linksboven; nieuw
  monitoring-dashboard met historie, tabelgroottes in MB en rowcounts; verbeterde upgrade- &
  rebuild-monitoring; resizable sidebar; refresh-knop in de webapp; deep links werken (een gedeelde link
  opent voortaan de juiste pagina).
- **Tabel- & schemabeheer:** vernieuwde table-creation flow (datatypes per veld instelbaar bij aanmaken);
  tags toevoegen aan bronnen boven de tabellen; column-usage-analyse (ongebruikte kolommen opsporen en hun
  gebruik traceren).
- **Projects & changes:** bestaande database-objecten uit de object-tree opnemen in changes; dependencies
  en/of content meenemen in changes; metadata van Dev standaard meenemen naar Prod; scripted objects
  zichtbaar in de change-content-overview.
- **Automation & pipelines:** **Master Pipeline**-feature (acties sequentieel/conditioneel uitvoeren op
  succes of falen van voorgaande stappen, inclusief conditionele Power BI-refresh); alternative load
  ("Run full, Image, Overwrite of Reload once" — bijv. door de week delta's en in het weekend een volledige
  reload); garbage-collection-pipeline in ADF; custom ADF-pipelines triggeren vanuit de frontend.
- **Communicatie:** admin-messaging naar alle applicatiegebruikers.
- **Installatie & configuratie:** vereenvoudigde installatie via een e-maillink; Azure-variabelen (ADF-naam,
  resource group, subscription) opgeslagen in `config.settings`.
- **Verbeteringen:** alle timestamps in **UTC** (weergave in eigen tijdzone); duidelijkere foutmeldingen;
  fix voor IMAGE-loads die in de staging-stap konden falen en alle target-records sloten.

## v1.52 — januari 2025 

:::warning Breaking change (herinnering)
De view `[Monitoring].[LoadMonitor]` is in release **1.51** vervangen door `[Monitoring].[Monitor]`. Beide
views blijven co-existeren tot versie **1.53**, waarna `[Monitoring].[LoadMonitor]` wordt verwijderd.

> Let op: dit betreft de webapp-gerichte monitoring-view. In de huidige `IRIS_DWH`-database loopt
> load-monitoring via de views `vwLoads` (pipeline-timeline) en `vwMonitor` (breder). Zie
> [SQL-interactie](https://yres.eu/nl/wiki/referentie/sql-interaction).
> :::

- **Security & gebruikers:** SSO verplicht per gebruiker (admins kunnen SSO afdwingen, in het Users & Roles-menu).
- **Database object viewer:** alle database-objecten tonen (ook objecten die níét door of met Yres zijn
  aangemaakt); definities in SQL bekijken, definities over tijd vergelijken en dependencies inzien.
- **Licensing:** een licentie wordt nu aan de database toegevoegd zodat Yres het gebruik kan begrenzen waar
  van toepassing; bestaande klanten kregen automatisch een volledige licentie.
- **oData / SAP:** ondersteuning voor JSON-objecten in oData-resultaten en gZip-compressie in oData-metadata
  (specifiek nodig voor SAP-loads).
- **Database scaling:** DB-scaling beter beheerd over meerdere workstreams (voorkomt dat de ene workstream
  de server terugschaalt terwijl een andere nog draait).
- **Nieuwe datatypes in table keys:** `XML`, `TEXT`, `NTEXT`, `IMAGE`, `GEOGRAPHY`, `GEOMETRY`, `HIERARCHYID`.
- **Verder:** nieuwe health checks; herontworpen Update Tables; nieuw Feedback-formulier (Bug report /
  Feature request / Feedback); "Panel" hernoemd naar Users & Roles; upgrade van LinkedServices in ADF
  (MySQL, PostgreSQL, Snowflake, custom dispatcher); bronnen zonder key beter ondersteund.

## v1.51 — september 2024 

:::warning Breaking change
De view `[Monitoring].[LoadMonitor]` is vervangen door `[Monitoring].[Monitor]`. Beide views co-existeren
tot versie **1.52**, waarna `[Monitoring].[LoadMonitor]` wordt verwijderd. _(De v1.52-herinnering hierboven_
_noemt 1.53 als verwijderversie — de productdocumentatie is op dit punt niet helemaal consistent.)_
:::

- **UI:** nieuwe homepage met monitors voor jobs, errors en loads; nieuwe datasource-picker; resizable en
  verbeterde modal windows.
- **Nieuwe bronnen:** meerdere **Azure Blob**-bronnen tegelijk; **generieke REST API's** (elke API die JSON
  teruggeeft; headers per service; auth: anonymous, header, basic, oAuth; query-parameters ondersteund;
  alleen GET-endpoints); **Salesforce**; **SAP Analytics Cloud** (SAC).
- **oData:** oAuth-support (client credential + authorization code); verplichte `OrderBy` verwijderd
  (voor services die geen OrderBy ondersteunen).
- **Security:** standaard-publicatie van de rol `[Yres_dbreader]` (lezen uit het ingestelde HIS-schema,
  STAGE- en systeemtabellen verborgen); Key Vault API-versie 7.4.
- **Loading:** ondersteuning voor **twee delta-kolommen** voor alle SQL-gebaseerde bronnen **behalve MySQL**
  (handmatig instelbaar via het `deltaColumn`-veld in `Loadmanagement.UsedTables`, komma-gescheiden, beide
  kolommen hetzelfde datatype; het systeem neemt de hoogste waarde).

## v1.50 — augustus 2024 

- Standaard support voor **surrogate keys** (systeembreed én per tabel).
- Table settings in de web-frontend: columnstore, inMemory, loadfilters, delta-offsets, page limits en
  package sizes (voorheen alleen via het SQL-endpoint).
- **Single environment** (alleen prod) mogelijk.
- Volledige logging in **UTC**, weergave in elke tijdzone.
- Nieuw data-engineering-menu; lijsten alfabetisch gesorteerd.

## v1.49 — juni 2024 

- Nieuw topmenu; beter inzicht in actieve jobs.
- Push-berichten voor afgeronde jobs, waar je je ook in de applicatie bevindt.
- Strikt databasebeheer: geen ongevraagde wijzigingen in settings, logs of objecten.

## v1.48 — april 2024 

- Nieuw topmenu en notificaties voor afgeronde jobs.
- Firewall specifiek voor de web-frontend.
- Directe links naar bestaande Azure-resources; nieuw rolbeheer.
- Actieve monitoring op bronwijzigingen die het dataplatform raken.

## v1.47 — januari 2024

- Nieuw audit-log voor webapp-gebruik.
- PowerBI-dashboard integreerbaar in Yres (voor uitgebreide load-monitoring).
- Gebruikers kunnen lid zijn van meerdere organisaties.
