83 lines
3.5 KiB
Markdown
83 lines
3.5 KiB
Markdown
# 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.
|