Initial curated itworx-knowledge-hub source from 3b1751d0d9dee551aa6994eee0093704dc334817

This commit is contained in:
Public Source Publisher committed 2026-10-01 01:37:37 +02:00
commit ad8ad252a9
825 files changed
+124216

No files matched your search

@@ -0,0 +1,82 @@
# Bijlagen en LeafWiki-import
Deze gids beschrijft de M4-functionaliteit: bestanden (bijlagen) toevoegen aan
pagina's, en het overzetten van bestaande LeafWiki-inhoud. Geschreven voor
redacteuren (bijlagen) en de beheerder die een import uitvoert.
## Bijlagen toevoegen aan een pagina
1. Open een pagina en klap **Bijlagen** open, onderaan de pagina.
2. Kies een bestand via **Bijlage toevoegen**.
3. Zodra het uploaden gelukt is, verschijnt het bestand in de lijst met de
bestandsgrootte.
4. Klik op **Kopieer Markdown-verwijzing** en plak die tekst op de gewenste plaats in
de inhoud van de pagina om de bijlage zichtbaar te maken (als afbeelding bij een
afbeeldingsbestand, of als downloadlink voor andere bestanden).
### Wat wordt geweigerd
Om veiligheidsredenen worden sommige bestandstypes nooit geaccepteerd, ongeacht de
bestandsnaam:
- uitvoerbare bestanden (`.exe` en gelijkaardige programma's);
- HTML- en SVG-bestanden (deze kunnen actieve inhoud bevatten).
De toepassing herkent het echte bestandstype aan de inhoud zelf, niet aan de
bestandsextensie — een bestand met een misleidende naam (bijvoorbeeld
`factuur.pdf.exe`) wordt dus wel degelijk herkend en geweigerd.
### Standaardlimiet
Een bijlage mag standaard maximaal 100 MiB groot zijn (instelbaar door de beheerder).
## LeafWiki-import (alleen beheerder, alleen via API)
Er is nog geen importwizard in de webinterface — deze functionaliteit is voor deze
milestone alleen via de API beschikbaar, net zoals gebruikersbeheer dat aanvankelijk
was. De echte import van de eigenaar's LeafWiki-omgeving (M9) volgt de volledige
procedure in `docs/17-leafwiki-migration.md`; dit is de technische samenvatting voor
de synthetische/oefen-import die nu al mogelijk is.
1. **Plaats de bron.** Kopieer de LeafWiki-bronmap (nooit de originele, live map) naar
het gemonteerde volume op het pad ingesteld via `KnowledgeHub:Paths:Imports`
(standaard `/var/lib/knowledge-hub/imports`).
2. **Preflight (verkenning, geen wijzigingen).**
```
POST /api/v1/admin/imports/preflight
{ "sourceRelativePath": "<pad relatief aan de imports-map>", "idempotencyKey": "<unieke sleutel>" }
```
Dit levert een plan op: welke pagina's herkend worden, de voorgestelde
hiërarchie, en eventuele conflicten — zonder dat er iets in de kennisbank
verandert.
3. **Uitvoeren.**
```
POST /api/v1/admin/imports/{jobId}/execute?sourceRelativePath=<zelfde pad>
```
Bestaande pagina's worden nooit overschreven. Een eerder geïmporteerde pagina met
ongewijzigde inhoud wordt bij een herhaalde uitvoering overgeslagen, niet opnieuw
aangemaakt.
4. **Terugdraaien indien nodig.**
```
POST /api/v1/admin/imports/{jobId}/rollback
```
Verwijdert alleen de pagina's die deze import zelf aanmaakte én die nadien niet
door een gebruiker bewerkt zijn. Een pagina die na de import werd bewerkt, blijft
bestaan — bewerkte inhoud gaat nooit verloren door een rollback.
### Wat de import ondersteunt in deze milestone
- Een map met Markdown-bestanden (inclusief geneste submappen, `[[interne links]]`
en bijlagen die door de Markdown-bestanden verwezen worden).
- Een SQLite-database met het specifieke, in deze toepassing gedocumenteerde
synthetische testschema (`synthetic-sqlite-v1`) — bedoeld om de
schema-validatiemechaniek te bewijzen, niet als ondersteuning voor een echte,
onbekende LeafWiki-databaseversie. Een database met een onherkend schema levert
altijd een duidelijke blokkering op in de preflight-stap, nooit een gegokte
interpretatie van de gegevens.