3.5 KiB
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
- Open een pagina en klap Bijlagen open, onderaan de pagina.
- Kies een bestand via Bijlage toevoegen.
- Zodra het uploaden gelukt is, verschijnt het bestand in de lijst met de bestandsgrootte.
- 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 (
.exeen 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.
-
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). -
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.
-
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.
-
Terugdraaien indien nodig.
POST /api/v1/admin/imports/{jobId}/rollbackVerwijdert 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.