32.0.X

Project

Skryv platform

Versienummer

32.0.X

LTS

Nee

NEXT

ja

LATEST

Ja

Laatste LTS

29.1.X

Laatste NEXT

31.0.X

Laatste LATEST

31.0.X

Eerste release

Ondersteuning tot

Notitie

Concept dossiers filter in backoffice

Type

Release note

Status

DRAFT

Focus

Focus 1: Draft dossierbeheer in de backoffice

backoffice

Backofficegebruikers kunnen voortaan draft- of conceptdossiers filteren in de zoekschermen. Standaard worden draft-dossiers niet getoond. Via het selectievakje Inclusief draft-dossiers kunnen ze opnieuw worden weergegeven.

Focus 2: Elasticsearch Searchable-vlag in docdef

backend

Om excessieve load op Elasticsearch te vermijden, introduceert deze versie een searchable-vlag op veldniveau in de docdef. Standaard worden alle velden nog steeds geïndexeerd, maar velden die je nooit opzoekt kunnen nu expliciet worden uitgesloten door "searchable": false toe te voegen.

Focus 3 (Studio): Volledige auditlogging in Studio

De auditlogging in online Studio is volledig uitgewerkt. Beheerders en auditeurs krijgen nu een gedetailleerd beeld van welke configurator op welk moment wijzigingen aanbracht aan welk artefact. Ook algemene acties zoals wijzigingen doorsturen naar de git repository met pull request worden expliciet gelogd.

Zie Studio updates onderaan deze pagina voor alle recent doorgevoerde wijzigingen in Studio.

Wijzigingen

Wijziging met vorige LATEST (31.0.X)

#

Labels

Titel

Topic detail

Migratie detail

1

backoffice

Draft dossier filter in zoekschermen

Topic info

Migratie info

2

backend

Searchable-vlag in docdef voor Elasticsearch-optimalisatie

Topic info

Migratie info

3

backend

Generieke REST-connector

Topic info

-

4

backend

Auditlogging (dossierraadplegingen delen met MAGDA in kader van GDPR-regelgeving)

Topic info

-

5

backend

OAuth2-integratie Camunda Cockpit

Topic info

-

6

backend

Reflists als volwaardige low-code artefacten

Topic info

Migratie info

7

backend , bugfix

Overzicht van bugfixes en kleine verbeteringen

Topic info

8

backoffice ,
frontoffice

GovFlanders upgrade

-

Migratie info

Wijziging met vorige NEXT

De vorige NEXT valt samen met de vorige LATEST. Zie overzicht hierboven.

Wijziging met vorige LTS

Deze versie is niet aangeduid als LTS.

Topics

Topic 1: Draft dossier filter in zoekschermen

Labels

backoffice

Functioneel

Backoffice-gebruikers zien standaard geen draft-dossiers meer in de zoekschermen. Via het selectievakje Inclusief draft-dossiers kunnen ze opnieuw zichtbaar gemaakt worden. De instelling wordt per view bewaard en wordt ook in rekening gebracht bij export.

Technisch

Aan het /api/search-endpoint (SearchController) is een nieuwe request-property draftDossier toegevoegd:

  • undefined: geen filtering op draft-status

  • true: enkel draft-dossiers

  • false: enkel niet-draft-dossiers (nieuw standaardgedrag)

{
  "query": {...},
  "columns": [...],
  "searchType": "DOSSIER",
  "page": 0,
  "size": 20,
  "draftDossier": false
}

Documentatie

Screenshot

5a04e8d1-d87d-4cc7-9ae0-54b66a29457c.png
Filter met selectievakje ‘Include draft dossiers’

Topic 2: Searchable eigenschap in docdef

Labels

backend

Functioneel

Velden die nooit als zoekcriterium worden gebruikt, kunnen uit de Elasticsearch-index worden gehouden. Dit verlaagt de indexeringsdruk en verbetert de algehele zoekprestaties op termijn.

Technisch

Voeg "searchable": false toe aan een veld in de docdef om het uit te sluiten van indexering. Het veld blijft zichtbaar in de gerelateerde formulierenkolom, maar backofficegebruikers kunnen er niet meer op zoeken.

{
  "label": "Mijn formulier",
  "name": "mijnFormulier",
  "sectionBasedValidation": false,
  "fields": [
    {
      "name": "naam",
      "label": "Naam",
      "type": "text"
    },
    {
      "name": "email",
      "label": "E-mail",
      "type": "email",
      "searchable": false
    }
  ]
}

Opmerking 1: wanneer de searchable-vlag op het root-niveau van de docdef staat, wordt de volledige documentdata niet opgeslagen in Elasticsearch. Het formulier blijft wel zichtbaar in de gerelateerde formulierenkolom.

Opmerking 2: het is ook mogelijk om de searchable-vlag op het niveau van structuurelementen te plaatsen (groepen, secties, lijsten).

Opmerking 3: volledige herindexering nodig (zie ook migratie topic 2).

Documentatie

Topic 3: generieke REST-connector

Labels

backend

Functioneel

Als configurator of developer kan ik via een generieke REST-connector een link leggen tussen mijn Skryv applicatie en de API van om het even welke externe applicatie. Opgelet: deze connector is enkel gericht op use cases met geringe gegevensoverdracht en beperkte toepassing (bijvoorbeeld het opzetten van een POC of het faciliteren van kleine interacties).

Technisch

Het is enkel mogelijk om een link te leggen naar ‘named environments’ die expliciet vastgelegd worden in de applicatie eigenschappen.

Hou er rekening mee dat de generieke REST connector geen business logica bevat omtrent de verkregen response. Het antwoord als ruw object moet door de configurator of developer zelf nog verwerkt worden via scripts in de workflow of volgens Java-best practices.

Alle outbound calls worden beschermd door Resilience4j.

Documentatie

Topic 4: Audit logging (dossierraadplegingen te delen met MAGDA)

Labels

backend

Functioneel

Beheerders en auditeurs willen een gedetailleerde, maar overzichtelijke kijk op alle uitgevoerde dossierraadplegingen binnen de Skryv applicatie. Deze logs zullen in de toekomst gedeeld worden met MAGDA zodat de Vlaamse overheid perfect weet welke gebruikers op welke manier toegang hebben gekregen tot welk dossier. Dit vervult een vereiste in het kader van bescherming van persoonlijke gegevens (GDPR-wetgeving).

Technisch

Nog verder uit te werken.

Documentatie

Nog verder uit te werken.

Topic 5: Camunda OAuth2 integratie

Labels

backend

Functioneel

Wie ingelogd is in de backoffice via de geconfigureerde identity provider (bijvoorbeeld ACM/IDM), kan rechtstreeks doorlinken naar Camunda Cockpit zonder daar te moeten inloggen (mits de applicatie zo geconfigureerd is en mits de gebruiker de juiste rol heeft).

Technisch

Toevoegen van twee applicatie eigenschappen.

Documentatie

Toegang tot de Camunda-webapps (Cockpit, Tasklist, Admin) verloopt nu via dezelfde OpenID-provider als de backoffice. Het gedeeld account is niet langer nodig. Configuratie via volgende applicatie eigenschappen.

# OAuth2-integratie inschakelen
skryv.camunda.oauth2.enabled=true

# Rollen die toegang krijgen tot de webapps
skryv.camunda.oauth2.accessRoles=<MijnRol>

Topic 6: reflists als volwaardige low-code artefacten

Labels

backend

Functioneel

  • Als developer is het mogelijk om referentielijsten on-the-fly toe te deployen zonder update van de applicatie als geheel.

  • In de nabije toekomst zullen ook configuratoren referentielijsten rechtstreeks kunnen aanmaken, beheren en pushen via Studio.

Technisch

Reflists werden toegevoegd aan de database en vormen aldus volwaardige low-code artefacten net als formulierdefinities, communicatietemplates, BPMN-workflows en DMN-beslissingstabellen.

Documentatie

Topic 7: Bugfixes & kleine verbeteringen

Backoffice openen van een read-only formulier

Bug fix: ongewenste waarschuwingen bij het openen van read-only formulieren in de backoffice. Dit issue is gefixt.

Backoffice notificaties

Bug fix: notificaties in de backoffice hadden een semi-transparante achtergrondkleur. Hierdoor bleef onderliggende tekst en content zichtbaar. Dit issue is gefixt.

Backoffice storybook

Bug fix: problemen met fonts.

Backoffice taken met hoge prio

Bug fix: sinds de restyling van de backoffice werkte de urgentiekolom (aanduiding hoge prio) niet meer correct. Bovendien bleef de hoge prio aanduiding staan bij afgesloten taken (historic tasks). Deze issues zijn gefixt.

Backoffice taken optioneel

Bug fix: taken aangeduid als optioneel (isOptional) werden automatisch toegewezen aan gebruikers in plaats van te wachten tot de gebruiker ze expliciet opende via het ‘Acties’ dropdown menu. Dit is gecorrigeerd en gebackported naar alle ondersteunde platform versies.

Camunda test infrastructuur als herbruikbare component

We hebben herbruikbare Camunda/JUnit 5-testinfrastructuur ondergebracht in een nieuwe camunda-test-support-module. Downstream apps (bv. WRP) kunnen nu ProcessEngineExtension, SkryvProcessEngineRule, TestDocmodContainer, enz. gebruiken zonder te copy-pasten uit platform-services. De nieuwe module bevat pure infrastructuurklassen zonder domeinimports.

Formulieren opslaan

Wanneer de gebruiker een formulier opslaat en dit mislukt, wordt de gebruiker hier nu van op de hoogte gebracht en wordt een retry-mogelijkheid aangeboden.

Formulieren meerkeuze (multichoice) veld placeholders

Bug fix: de placeholders van een meerkeuzeveld werden altijd in het Engels weergegeven, ongeacht de taalinstellingen. Dit is nu gecorrigeerd.

Formulieren Spotbooking labels

Meer betekenisvolle labels voor de Spotbooking integratie in een formulier.

Vóór

Periode van het evenement

Wanneer wordt het openbaar domein ingenomen?

Reden voor het evenement

Soort evenement

Extra beschrijving van de reden

Extra informatie

Frontoffice formulier veldtype bedrag

Bug fix: in de neutrale frontoffice-stijl werd een komma als decimaalteken niet aanvaard in bedragvelden. Dit is nu opgelost en gebackported naar alle ondersteunde versies.

Frontoffice taakdetails

Voorheen werden alle kandidaat-gebruikers (fullCandidateUsers en candidateUsers) voor een specifieke taak meegestuurd naar de frontoffice. Vanaf deze release is dit niet langer zo, en dat biedt twee voordelen: privacy (via de network response kon een frontoffice gebruiker in sommige gevallen bepaalde backofficegebruikersdetails achterhalen) & performantie (de gebruikersdetails worden nooit gebruikt; het opzoeken en doorsturen ervan creëren onnodig veel load).

Knopcomponent in React en AngularJS

Er was geen knopcomponent beschikbaar in React noch in AngularJS, en er was ook geen eenvoudige manier om een link (<a>) te stijlen als een knop. Het bestaande Button-component werd uitgebreid: zowel in React (<Button>) als AngularJS (<skr-button>) is het nu mogelijk om een link als knop te stijlen.

MySQL upgrade voorbereiding

Er is onderzoek gedaan naar een mogelijke upgrade van de shared database voor de preview omgevingen. Deze draait nu op een MySQL 8.0 community cluster. De support voor deze technologie is echter verlopen. Het plan is om te switchen naar de AWS-variant van MySQL 8.0 (AuroraDB), die ook al gebruikt wordt voor het overgrote deel van alle productieomgevingen. De switch vereist wat downtime. Er wordt gezocht naar een geschikt tijdsslot om dit uit te voeren.

Multi-file upload in frontoffice formulier

Er wordt gewerkt aan een aangepast gedrag en visualisatie voor het elementtype bestandenlijst. Op heden moeten gebruikers de bestanden één voor één uploaden en komen deze in een lijst terecht. De bedoeling is dat een gebruiker in de nabije toekomst meerdere bestanden tegelijk kan uploaden (en terug verwijderen), en dit zowel door selectie als door slepen naar een dropzone. Definitieve implementatie van deze functionaliteit volgt in een volgende release.

Security tool switching

Voorheen maakten we gebruik van Snyk; vanaf heden is dit Aikido.

Tiny MCE spell checker: implementatie ‘on hold’ gezet

Gevraagde feature om de communicatie template editor uit te rusten met een spell checker functionaliteit werd ‘on hold’ gezet uit GDPR-overwegingen. Blijkt dat bij het uitvoeren van de spell check de volledige tekst naar de servers van Tiny MCE gestuurd wordt.

Vertalingen in VO niet geladen

Enkele vertalingen in de VO-styling werden niet correct geladen. Dit is opgelost.

Migraties

Migratie vanuit vorige LATEST (31.0.X)

Migratie topic 1: draft-dossiers in de database

  • Actie vereist voor teams met eigen draft-dossier customisaties.

  • Bestaande zoekviews toonden voorheen ook draft-dossiers. Na de upgrade worden deze standaard gefilterd. Controleer bestaande views en exportinstellingen.

  • Herindexering vereist: na het uitvoeren van de migratie is een volledige herindexering van Elasticsearch nodig om de draft-filter correct te laten werken.

Met deze versie wordt het concept van draft-dossiers ook bijgehouden in het lees-model (Elasticsearch). Als je in een customisatie zelf draft-dossiers aanmaakt, moet je er zeker van zijn dat deze dossiers ook in de database als draft zijn gemarkeerd (kolom is_draft = TRUE in de tabel SKR_DOSSIERS). Anders herkent het platform ze niet als draft.

Gebruik het onderstaande SQL-script om bestaande customisatie-dossiers te migreren:

UPDATE SKR_DOSSIERS
SET is_draft = TRUE
WHERE business_key LIKE '%PLACEHOLDER%'
  AND (is_draft = FALSE OR is_draft IS NULL)
LIMIT 1000;

Vervang %PLACEHOLDER% door een regex die overeenkomt met je draft-dossiers. De LIMIT-clausule kan gebruikt worden om de updates in batches uit te voeren.

Bestaande zoekviews in de backoffice filterden vroeger geen draft-dossiers. Na de upgrade zullen ze dit standaard wel doen. Controleer je bestaande views en pas ze indien nodig aan.

Migratie topic 2: Searchable-vlag in docdef

Herindexering vereist.

Na het uitvoeren van de migratie en het aanpassen van de docdefs is een volledige herindexering van Elasticsearch nodig om deze functionaliteit correct te laten werken.

Migratie topic 3: reflists worden opgeslagen in de database

Breaking changes!

SKR_REFERENCE_LIST_DEFINITIONS table is dropped (unused)

ReferenceListGoogleDocProvider is verwijderd

ReferenceListJsonProvider en ReferenceListRepository zijn verwijderd net als gelijkaardige functionaliteit in ReferenceListDefinitionService en ReferenceListDefinition.

  • ReferenceListRepository.getReferenceListAsJSON hoeft in principe niet gebruikt te worden, maar als je het toch nodig hebt, het is vervangen door new String(ReferenceListDefinitionService.getByKey(key).getReferenceList(), StandardCharsets.UTF_8)

  • ReferenceListRepository.getReferenceList() is vervangen door ReferenceListDefinitionService.getByKey(key).getTypedReferenceList(new TypeReference<List<YourClassName>>() {}) of gebruik YourClassName someRefList = ReferenceListDefinitionService.getByKey(key).getTypedReferenceList(new TypeReference<>() {})

  • ReferenceListRepository.getReferenceList.createOrUpdateReferenceList is vervangen door ReferenceListDefinitionService.deploy(key, referenceList)

 ReferenceListController

  • Hernoemd naar ReferenceListDefinitionController

  • getReferenceList(@PathVariable String key) retourneert List<Map<String, Object>> in plaats van String (voorheen was het een JSON).

Opgelet!

DynamicReflistService en LVService maakten gebruik van de string-implementaties van reflists. Deze zijn nu verouderd en nieuwe functies die gebruik maken van typed lists werden ondertussen geïmplementeerd. Gebruik dus de nieuwe functies. De verouderde functies worden verwijderd in de volgende platform-release.

Migratie topic 4: upgrade GovFlanders afhankelijkheden

Controleer eigen customisaties op zichtbare impact van deze wijzigingen.

De govflanders-dependencies zijn bijgewerkt.

"@govflanders/vl-ui-design-system-style": ,
"@govflanders/vl-ui-design-system-vanilla": 

Twee kleine visuele wijzigingen.

  • vl-form__annotation heeft een lichtere grijstint gekregen.

  • De paginering (vl-pager) neemt minder ruimte in.

Migratie vanuit vorige NEXT

De vorige NEXT valt samen met de vorige LATEST. Zie migratie-info hierboven.

Migratie vanuit vorige LTS

Deze versie is niet aangeduid als LTS.

Studio updates

Onderstaand overzicht toont de Studio-functionaliteiten die zijn bijgewerkt in het kader van deze platformrelease.

Update

Beschrijving

Alle apps gemigreerd naar nieuwe content-database

De grootste en belangrijkste configuratie-items van alle staging- en productie-apps zijn nu overgezet naar de nieuwe content-database. Dit resulteert in kortere laadtijden in de online Studio.

Auditlogging voltooid en nu ook uitgebreid met acties

Naast wijzigingen aan artefacten worden nu ook acties gelogd (publiceren naar preview, pinnen, resetten, pull request indienen …).

FileWatcher voor lokale Studio

De lokale Studio volgt nu correct wijzigingen aan de app-configuratie via IDE en Git-branches.

Upgrade MongoDB

Studio is geüpgraded naar een recentere versie van MongoDB (DocumentDB), zowel de database zelf als de driver library. Dit zorgt voor hogere stabiliteit, betere veiligheid en een betere compatibiliteit met infrastructuur-updates in de toekomst.

Validatieregel adresveldgroep

Het issuesvenster toont nu een foutmelding wanneer een adresveldgroep verplichte velden mist, met een directe link naar het betrokken formulier.

Overzicht van de recent voorgestelde Studio updates. Klik hier voor meer uitgebreide info over alle Studio updates.

Patches

Onderstaand overzicht toont alle patches binnen deze versie.

Versie

Beschrijving

32.0.X