Files
itworx-knowledge-hub-Public/docs/guides/bijlagen-en-leafwiki-import.md
T

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

  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.