Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenvdlinde committed Aug 10, 2024
2 parents beddb85 + b70a363 commit 989d206
Show file tree
Hide file tree
Showing 99 changed files with 2,200 additions and 901 deletions.
2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
"opencatalogi",
"organisation",
"Organisation",
"organisations",
"Organisations",
"pinia",
"Toegangs"
],
Expand Down
3 changes: 2 additions & 1 deletion appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
['name' => 'directory#page', 'url' => '/directory', 'verb' => 'GET'],
['name' => 'directory#add', 'url' => '/api/directory/add', 'verb' => 'POST'],
['name' => 'configuration#index', 'url' => '/configuration', 'verb' => 'GET'],
['name' => 'configuration#create', 'url' => '/configuration', 'verb' => 'POST']
['name' => 'configuration#create', 'url' => '/configuration', 'verb' => 'POST'],
['name' => 'search#preflighted_cors', 'url' => '/api/{path}', 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']]
],
];
1 change: 1 addition & 0 deletions css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,4 @@
.errorMessage {
color: var(--color-error);
}

7 changes: 6 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ volumes:
config:

services:
frontend:
image: acatonl/woo-ui-develop
ports:
- "8081:80"

db:
image: mariadb:10.6
restart: always
Expand Down Expand Up @@ -47,4 +52,4 @@ services:
- TZ=Europe/Amsterdam
depends_on:
init-ubuntu:
condition: service_completed_successfully
condition: service_completed_successfully
4 changes: 2 additions & 2 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
* [Installatie/productie](installatie/README.md)
* [Installatie-instructies Nextcloud](installatie/instructies.md)
* [Audit en logging](installatie/logging.md)
* [Rollen en Rechten](installatie/rollen-en-rechten.md)
* [SaaS](installatie/saas.md)
* [Rollen en Rechten](installatie/rollen-en-rechten.md.md)
* [SAAS en Dashboarding](installatie/saas.md)
* [On-Prem server](installatie/on-prem-server.md)
* [Systeemeisen voor Nextcloud](installatie/systeemeisen-voor-nextcloud.md)
* [Veel gestelde vragen](veel-gestelde-vragen.md)
6 changes: 4 additions & 2 deletions docs/beheerders/catalogi.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Catalogi
# Catalogus

Een catalogus is een verzameling van publicaties. Publicaties behoren dus altijd tot één catalogus en iedere catalogus tot één organisatie. Het is echter wel mogelijk om in één catalogus meerdere metadatatypen te ondersteunen. Binnen de softwarecatalogus worden bijvoorbeeld publiccodes (componenten, code, etc.) als diensten beschikbaar gesteld en binnen de Woo meerdere KOOP/TOOI-typen.
Een catalogus is een verzameling van [publicaties](../gebruikers/publicaties.md). Ze vormen doorgaans een logische versameling rondom een onderwer (bijvoorbeeld WOO) maar kunnen ook worden gebruikt om onderscheid te maken in toegans rechten.

Publicaties behoren dus altijd tot één catalogus en iedere catalogus tot één organisatie. Het is echter wel mogelijk om in één catalogus meerdere [publicatie typen](../beheerders/metadata.md) te ondersteunen. Binnen de softwarecatalogus worden bijvoorbeeld publiccodes (componenten, code, etc.) als diensten beschikbaar gesteld en binnen de WOO meerdere KOOP/TOOI-typen.

> Catalogi zijn onderdeel van de [OpenCatalogi-Standaard](https://github.com/OpenCatalogi/.github/blob/main/docs/Standaard.md) en gebaseerd op het [catalogue object](https://conduction.stoplight.io/docs/open-catalogi/pk8bsjw0539dv-catalogue).
Expand Down
21 changes: 19 additions & 2 deletions docs/beheerders/directory.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
# Directory

De directory vormt het overzicht van alle andere (externe) catalogi die bij jouw installatie bekend zijn. Een Catalogus die bij jouw installatie bekend is noemen een listing (als in is gelist op jouw directory).
De directory vormt het overzicht van alle andere (externe) catalogi die bij jouw installatie bekend zijn. Een Catalogus die bij jouw installatie bekend is noemen een listing (als in is gelist op jouw directory). Dat maakt directories dus een lijst van catalogi die wlders staan.

![alt text](directory.png)

## Opzetten federatief netwerk

Directories worden tussen installaties onderling uitgewisseld en geupdate. Je hoeft dus nooit handmatig catalogi van andere toe te voegen aan jouw catalogus.
Directories worden tussen installaties onderling uitgewisseld en geupdate. Je hoeft dus nooit handmatig catalogi van andere toe te voegen aan jouw catalogus. Deze worden automatisch ontdekt. Wil je het automatisch ontdeken van catalogi uitzetten? Dan kan dit via instellingen -> Configuratie -> Federatief stelsel

![alt text](directory_configuratie.png)

Het is ook mogenlijk om handmatig externe directories (dus de direcotry van een andere installatie) toe te voegen, dit kan via directory inlezen.

![alt text](directory_inlezen.png)

## Listing

Bij een listing kan je de volgende zaken aanpassen.

* Of de directory beschickbaar is voor zoek opdrachten
* Of de directory standaard moet mee worden genomen in zoek resultaten, dit is met name handig als er spraken is van een samenwerkings verband waarover je woo plichtig bent als overheid

![alt text](directory_configuratie.png)

Daarnaast is het mogenlijk om metadata definities van andere catalogi over te nemen en beschickbaar te maken voor je eigen catalogus

![alt text](directory_metadata.png)
Binary file added docs/beheerders/directory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/beheerders/directory_configuratie.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/beheerders/directory_inlezen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/beheerders/directory_metadata.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions docs/beheerders/organisaties.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# Organisaties

In organisatie representeerd een volledige organistie of organisatorische eenheid. Hoewel de meeste organisaties één organisaite (namenlijk hun eigen) zullen beheren per open catalogi isntallatie zijn er senario's denkbaar waarin er meerdere organisaties in een installatie zitten. Meest voor de hand liggende zijn

* SAAS: Een leverancier bied de software aan als SAAS oplossing en keist vier een hosting voor al haar klanten
* Samenwerkings Verband: meerdere orgnaisaties hebben een gemeenschapenlijk ict ondersteuner, en deze odnersteuner kiest voor éém installatie
* Grote organsisaties: De organisatie is dusdanig groot dat het zinnig wordt om hem ook in de installatie op te splitsen in orgniasatorische eenheden
6 changes: 6 additions & 0 deletions docs/beheerders/themas.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# Thema's

Een theme is een overkoepelende verbinding tussen [publicaties](../gebruikers/publicaties.md), in tegenstelling tot [catalogi](../beheerders/catalogi.md) kan een publicatie tot meerdere thema's behoren. Theme's zijn daarmee catalogi overstijgend maar in tegenstelling tot catalogi ook organisatie specifiek.

Daar waar een catalogus vaak een uistpraak doet over het soort of type van publicaties in de catalogus (doorgaan geordend in wetenlijke kaders zo als de WOO of WHO) doen theme's uispraken over onderwerpen die worden aangeraakt door publicaties.

Themea's kunnen door de organisatie zelf worden bepaald, en zullen vaak te maken hebben met actualiteit. Bijvoorbeeld de bouw van een nieuwe woonwijk in de gemeente. Gegevens uit verchillende catalogi en publicaite typen (bijvoorbeeld WOO verzoeken, onderzoeks verslagen, raadssstuken en gegevens sets) kunnen dan bij elkaar worden gebracht om voor de bezoekers inzichtenlijk te maken wat een organisatie allemaal heeft gedaan rondom dit thema.
20 changes: 10 additions & 10 deletions docs/dcat_example.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"type": "application/json",
"published": "29-12-2020",
"modified": "30 december 2020, 17:09 (UTC+01:00)",
"accessURL": "https://services.arcgis.com/zP1tGdLpGvt2qNJ6/arcgis/rest/services/Voorlopige_Energielabels_BAG/FeatureServer",
"downloadURL": "https://services.arcgis.com/zP1tGdLpGvt2qNJ6/arcgis/rest/services/Voorlopige_Energielabels_BAG/FeatureServer"
"accessUrl": "https://services.arcgis.com/zP1tGdLpGvt2qNJ6/arcgis/rest/services/Voorlopige_Energielabels_BAG/FeatureServer",
"downloadUrl": "https://services.arcgis.com/zP1tGdLpGvt2qNJ6/arcgis/rest/services/Voorlopige_Energielabels_BAG/FeatureServer"
},
{
"title": "voorlopige energielabels met BAG-kenmerken ",
Expand All @@ -34,8 +34,8 @@
"type": "application/geopackage+sqlite3",
"published": "29-12-2020",
"modified": "30 december 2020, 17:10 (UTC+01:00)",
"accessURL": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GPKG/Voorlopige-labels-december-2019.gpkg",
"downloadURL": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\GPKG\\Voorlopige-labels-december-2019.gpkg"
"accessUrl": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GPKG/Voorlopige-labels-december-2019.gpkg",
"downloadUrl": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\GPKG\\Voorlopige-labels-december-2019.gpkg"
},
{
"title": "voorlopige energielabels met BAG-kenmerken ",
Expand All @@ -44,8 +44,8 @@
"type": "application/vnd.esri.filegdb",
"published": "29-12-2020",
"modified": "30 december 2020, 17:11 (UTC+01:00)",
"accessURL": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GDB/Voorlopige-labels-december-2019.gdb",
"downloadURL": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\GDB\\Voorlopige-labels-december-2019.gdb"
"accessUrl": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GDB/Voorlopige-labels-december-2019.gdb",
"downloadUrl": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\GDB\\Voorlopige-labels-december-2019.gdb"
},
{
"title": "voorlopige energielabels met BAG-kenmerken ",
Expand All @@ -54,8 +54,8 @@
"type": "application/x-shapefile",
"published": "29-12-2020",
"modified": "30 december 2020, 17:11 (UTC+01:00)",
"accessURL": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GDB/Voorlopige-labels-december-2019.gdb",
"downloadURL": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\SHP\\*.shp"
"accessUrl": "file:///P:/Geo_Data/SO/SODA/Data/Energielabels/Data/VoorlopigeLabels/GDB/Voorlopige-labels-december-2019.gdb",
"downloadUrl": "P:\\Geo_Data\\SO\\SODA\\Data\\Energielabels\\Data\\VoorlopigeLabels\\SHP\\*.shp"
},
{
"title": "productbeschrijving: voorlopige energielabels met BAG kenmerken",
Expand All @@ -64,8 +64,8 @@
"type": "text/html",
"published": "7-4-2020",
"modified": "30 december 2020, 17:12 (UTC+01:00)",
"accessURL": "https://rio.rotterdam.nl/Project/SODAStadsOntwikkelingData/Pages/ThoZIFnen0KbY6eBjPvh-A",
"downloadURL": "https://rio.rotterdam.nl/Project/SODAStadsOntwikkelingData/Pages/ThoZIFnen0KbY6eBjPvh-A"
"accessUrl": "https://rio.rotterdam.nl/Project/SODAStadsOntwikkelingData/Pages/ThoZIFnen0KbY6eBjPvh-A",
"downloadUrl": "https://rio.rotterdam.nl/Project/SODAStadsOntwikkelingData/Pages/ThoZIFnen0KbY6eBjPvh-A"
}
],
"attachment_count": 5,
Expand Down
55 changes: 54 additions & 1 deletion docs/developers/aan-de-slag-met-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,63 @@ De Ontwikkelpartijen van [Core](https://documentatie.opencatalogi.nl/Docs/Projec

![alt text](feature_flow.png)

## Known issues

Iedere applicatie heeft technical debt, hier open en eerlijk over zijn helpt developers die willen bijdragen. Op dit moment hebben wij de volgende aandachtspunten waar we aan werken

* Test coverage frontend is te laag (is 70% zou 80%) moeten zijn
* Test coverage backend is te laag (is 60% zou 80%) moeten zijn
* Op de frontend bevaten de stores nog busnes logica die naar apparte services moet worden verplaats

## Application development

Omdat de applicatie is ontwikkeld met Nextcloud, is er uitgebreide informatie te vinden in de [Nextcloud-documentatie](https://docs.nextcloud.com/server/latest/developer_manual/index.html) zelf. Dit geldt zowel voor de lay-out van de app als voor de vele componenten die eraan toegevoegd kunnen worden. Tijdens de ontwikkeling van de OpenCatalogi-app is het *documentation-first* principe gehanteerd, waarbij de ontwikkelaars eerst de [Nextcloud-documentatie](https://docs.nextcloud.com/server/latest/developer_manual/index.html) hebben geraadpleegd.

### Gebruikersdocumentatie

We gebruiken Gitbook voor de gebruikersdocumentatie. Features binnen de app zouden zo veel mogelijk direct moeten doorverwijzen naar deze documentatie.

Ook voor de documentatie wordt een linter gebruikt namelijk [remarklint](https://github.com/remarkjs/remark-lint).

De commando's om deze linter in de CLI te gebruiken zijn [hier te vinden](https://github.com/remarkjs/remark-lint?tab=readme-ov-file#what-is-this) voor een uitgebreide output in de terminal.

### Performance

Voor een goede gebruikers ervaring voor zowel bezoekers als medewerkers is het belangrijk dat dat de applicatie snel reageerd, we streven daarbij naar een performance van rond de 100 miliseconde (1/10) van een seconde. Maar overall zou de performance odner de 200 miliseconde moeten blijven. Acties die langer dan een seconde duren zijn reden om een purrl request te weigeren.

## API Development

De ontwikkeling van de API wordt bijgehouden met de documentatietool [Stoplight.io](https://stoplight.io/), die automatisch een [OpenAPI Specificatie (OAS)](https://www.noraonline.nl/wiki/FS:Openapi-specification#:~:text=Een%20OpenAPI%20Specification%20\(OAS\)%20beschrijft,er%20achter%20de%20API%20schuilgaat.) genereert uit de documentatie. De Stoplight voor OpenCatalogi is [hier](https://conduction.stoplight.io/docs/open-catalogi/6yuj08rgf7w44-open-catalogi-api) te vinden.

## Frontend Development

### Storage en Typing

Om gegevens deelbaar te maken tussen de verschillende Vue-componenten maken we gebruik van [statemanagement](https://vuejs.org/guide/scaling-up/state-management) waarbij we het Action, State, View patroon van Vue zelf volgen. Omdat de applicatie ingewikkeld begint te worden stappen we daarbij over van [simple state management](https://vuejs.org/guide/scaling-up/state-management#simple-state-management-with-reactivity-api) naar [Pinia](https://pinia.vuejs.org/), de door Vue zelf geadviseerde opvolger van [Vuex](https://vuejs.org/guide/scaling-up/state-management#pinia).

Daarnaast gebruiken we Typescript voor het definiëren van entities.

### Modals

* Er mag altijd slechts één modal actief zijn.
* Modals moeten abstract en overal bereikbaar zijn.
* Modals moeten geplaatst worden in de map src/modals.
* Modals moeten getriggerd worden via de state (zodat knoppen die modal openen overal plaatsbaar zijn).
* Modals moeten geïmporteerd worden via `/src/modals/Modals.vue`.

### Views

* Views moeten dezelfde bestandsnaam hebben als de geëxporteerde naam en een correlatie hebben met de map waarin het bestand zich bevindt.
* Bijvoorbeeld, als het bestand een detailpagina is en het zich in de map `publications` bevindt, moet het bestand de naam `PublicationDetail.vue` hebben.

## Documentatie van next cloud

Het is goed om bij development kennnis te nemen/hebben van de volgende gebruikte Nextcloud onderdelen:

* [Icons](https://pictogrammers.com/library/mdi/)
* [Layout](https://docs.nextcloud.com/server/latest/developer_manual/design/layout.html)-
* [Componenten](https://nextcloud-vue-components.netlify.app/)

## Kwaliteit, Stabiliteit en Veiligheid

Als onderdeel van de CI/CD-straat voeren we een aantal tests uit, hiermee handhaven we zowel de code kwaliteiteisen van Nextcloud als die van onszelf. Deze testen worden geborgd in een workflow zodat je de resultaten zelf op iedere commit ziet. Let op! het falen van deze tests betekent dat de code niet naar master/main kan worden gemerged en dus niet in productie kan worden genomen.
Expand Down Expand Up @@ -103,7 +156,7 @@ composer audit

![alt text](composer_audit.png)

Voor beide geldt dat het aantal acceptabele critical vulnerabilities 0 is.
Voor beide geldt dat het aantal acceptabele critical vulnerabilities in *production packadges* 0 is.

### Gebruikersdocumentatie

Expand Down
Binary file modified docs/developers/npm_lint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/developers/npm_test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/gebruikers/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Op het dashboard van OpenCatalogi vindt u handige informatie die je meteen verde
1. **Zoekverkeer** Het aantal zoekvragen dat er afgelopen maand aan jouw index (geheel van catalogi) is gesteld.
2. **Metadata** De verdeling over metadata-types van jouw publicaties
3. **Status** De verdeling over statustypes van jouw publicaties
4. **Catalogi** De verdeling over catalogi van jouw publicaties

![app menu](../assets/oc_dashboard.png)

Expand Down
Binary file added docs/gebruikers/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/gebruikers/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/gebruikers/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/gebruikers/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 27 additions & 1 deletion docs/gebruikers/publicaties.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

Publicaties zijn onderdeel van de [Open Catalogi Standaard](https://github.com/OpenCatalogi/.github/blob/main/docs/Standaard.md) en gebaseerd op het [publication object](https://conduction.stoplight.io/docs/open-catalogi/9bebd6bf4fe35-publication). Publicaties kennen eigenschappen zoals gedefinieerd in een publicatietype en kunnen worden gekoppeld aan bijlagen

Een publicatie representeerd iets wat je wilt publiceren, het beschrijft de handeling van publiceren en de spelregels waaronder iets gepubliceerd wordt.het is een soort "verpakking" of "omhulsel" dat zowel de kerngegevens (data) als aanvullende informatie over die gegevens (metadata) bevat.

Stel je voor dat je een foto hebt. De foto zelf is de data, terwijl de informatie zoals wanneer de foto is genomen, de resolutie van de foto, de camera-instellingen, en de locatie waar de foto is genomen, de metadata vormen. Een publicatie zou in dit geval zowel de foto als al deze aanvullende informatie samen in één pakketje verpakken, zodat je deze als een geheel kunt behandelen en doorzoeken.

Met andere woorden, een publiatie maakt het mogelijk om zowel de data als de bijbehorende metadata op een gestandaardiseerde manier te bewaren en te verwerken, zonder dat je deze informatie telkens apart hoeft te beheren. Dit is handig omdat je zo alle relevante informatie bij elkaar hebt, wat zorgt voor meer context en daarmee een betere interpretatie van de data.

Publicaties zijn altijd onderdeel van een collectie in de vorm van een [catalogus](../beheerders/catalogi.md) en behoren tot een [publicatie type](../beheerders/metadata.md) dit laatste zorgt ervoor dat ze voorspelbaar zijn. e.g. fotos hebben altijd een waarde resulutie.

## Publicaties toevoegen

Publicaties kunnen worden toegevoegd via:
Expand Down Expand Up @@ -34,12 +42,30 @@ Na het opslaan van de publicatie, is deze zichtbaar onder de catalogi "Woo". Om

Onder is een voorbeeld van een publicatie en de Actie-mogelijkheden.

<figure><img src="../.assets/oc_publicatie_acties.png" alt="" width="375"><figcaption></figcaption></figure>

![alt text](image-1.png)

## Acties

![alt text](image.png)

## Bijlagen

In het merendeel van de gevallen wordt een publicatie opgemaakt om bestanden te delen (bijvoorbeeld vanuit een woo verzoek). Deze bestanden vormen de informatie in de publicaite en worden aan een publicatie gekoppels als bijlagen. Een bijlage kan zowel onderdeel zijn van de publicatie (er in worden geupload) als elders staan (er wordt naar verwezen).

Naast een bestand kan een bijlage (per verwijzing) bijvoorbeeld ook een website of artikel op een website zijn.

![alt text](image-3.png)

## Eigenschappen

@todo
Een tweede manier om informatie op te nemen in een publicaite is via eigenschappen. Eigenschappen zijn voor gedefineerde opties (via [publicatie type](../beheerders/metadata.md)) waar een waarde aan kan worden toegekend.

## Bijlagen

![alt text](image-2.png)

Publicaties hebben vaak bijlagen, zoals een verslag of een besluit. Deze zijn eenvoudig toe te voegen door op de Actie-knop te klikken bij een geselecteerde publicatie, of de drie bolletjes naast een publicatie. Dit opent de Bijlage toevoegen modal.

<div>
Expand Down
Loading

0 comments on commit 989d206

Please sign in to comment.