# ============================================================================= # Nextcloud Server Configuratie # ============================================================================= nextcloud_url: "https://seedmv.researchdrivede.src.surf-hosted.nl" nextcloud_admin_user: "admin" nextcloud_admin_password: "secureadminpass" nextcloud_db_name: "nextcloud" nextcloud_data_dir: "/var/www/nextcloud/data" groupfolders_dir: "{{ nextcloud_data_dir }}/__groupfolders" # ============================================================================= # Groep die toegang krijgt tot de teamfolders # ============================================================================= loadtest_group: "loadtest-group" create_group: true # ============================================================================= # Team Folders Configuratie # ============================================================================= num_teamfolders: 50 teamfolder_prefix: "LoadTest-TF" teamfolder_permissions: 31 # ============================================================================= # Mappenstructuur per teamfolder # ============================================================================= # 10 hoofdmappen x 3 submappen = 30 leaf folders per teamfolder folder_structure: Financieel: ["Facturen", "Contracten", "Begrotingen"] HR: ["Personeelsdossiers", "Sollicitaties", "Verlof"] IT: ["Projecten", "Infrastructuur", "Security"] Juridisch: ["Contracten", "Compliance", "Dossiers"] Marketing: ["Campagnes", "Materiaal", "Analyses"] Operations: ["Logistiek", "Inkoop", "Planning"] Management: ["Notulen", "Strategie", "Rapportages"] Onderzoek: ["Publicaties", "Data", "Experimenten"] Communicatie: ["Intern", "Extern", "Persberichten"] Archief: ["2023", "2024", "2025"] # ============================================================================= # MetaVox Metadata Velden Configuratie # ============================================================================= # 10 Teamfolder-velden (metadata die op teamfolder-niveau wordt ingesteld) teamfolder_metadata_fields: - { name: "tf_department", type: "text", description: "Afdeling" } - { name: "tf_project_code", type: "text", description: "Projectcode" } - { name: "tf_classification", type: "dropdown", description: "Classificatie", options: "Openbaar,Intern,Vertrouwelijk,Geheim" } - { name: "tf_owner", type: "text", description: "Eigenaar" } - { name: "tf_status", type: "dropdown", description: "Status", options: "Actief,Archief,Concept,Afgesloten" } - { name: "tf_start_date", type: "date", description: "Startdatum" } - { name: "tf_end_date", type: "date", description: "Einddatum" } - { name: "tf_budget_code", type: "text", description: "Budgetcode" } - { name: "tf_is_confidential", type: "checkbox", description: "Vertrouwelijk" } - { name: "tf_location", type: "text", description: "Locatie" } # 90 File-metadata-velden (metadata die per bestand wordt ingesteld) file_metadata_fields: # Text velden (30 stuks) - { name: "doc_title", type: "text", description: "Documenttitel" } - { name: "doc_author", type: "text", description: "Auteur" } - { name: "doc_subject", type: "text", description: "Onderwerp" } - { name: "doc_keywords", type: "text", description: "Trefwoorden" } - { name: "doc_source", type: "text", description: "Bron" } - { name: "doc_language", type: "text", description: "Taal" } - { name: "doc_version", type: "text", description: "Versie" } - { name: "doc_reference", type: "text", description: "Referentie" } - { name: "doc_creator", type: "text", description: "Maker" } - { name: "doc_contributor", type: "text", description: "Bijdrager" } - { name: "doc_publisher", type: "text", description: "Uitgever" } - { name: "doc_rights", type: "text", description: "Rechten" } - { name: "doc_identifier", type: "text", description: "Identifier" } - { name: "doc_relation", type: "text", description: "Relatie" } - { name: "doc_coverage", type: "text", description: "Dekking" } - { name: "doc_abstract", type: "text", description: "Samenvatting" } - { name: "doc_notes", type: "text", description: "Notities" } - { name: "doc_contact", type: "text", description: "Contactpersoon" } - { name: "doc_email", type: "text", description: "E-mailadres" } - { name: "doc_phone", type: "text", description: "Telefoonnummer" } - { name: "doc_address", type: "text", description: "Adres" } - { name: "doc_city", type: "text", description: "Stad" } - { name: "doc_country", type: "text", description: "Land" } - { name: "doc_postal_code", type: "text", description: "Postcode" } - { name: "doc_organization", type: "text", description: "Organisatie" } - { name: "doc_unit", type: "text", description: "Afdeling" } - { name: "doc_role", type: "text", description: "Rol" } - { name: "doc_case_number", type: "text", description: "Zaaknummer" } - { name: "doc_invoice_number", type: "text", description: "Factuurnummer" } - { name: "doc_contract_number", type: "text", description: "Contractnummer" } # Dropdown velden (20 stuks) - { name: "doc_type", type: "dropdown", description: "Documenttype", options: "Brief,Rapport,Notitie,Factuur,Contract,Offerte,Notulen,Beleidsstuk,Memo,Overig" } - { name: "doc_status", type: "dropdown", description: "Documentstatus", options: "Concept,Review,Goedgekeurd,Definitief,Verlopen,Ingetrokken" } - { name: "doc_priority", type: "dropdown", description: "Prioriteit", options: "Laag,Normaal,Hoog,Urgent,Kritiek" } - { name: "doc_category", type: "dropdown", description: "Categorie", options: "Financieel,Juridisch,HR,IT,Marketing,Operations,R&D,Strategie,Compliance" } - { name: "doc_sensitivity", type: "dropdown", description: "Gevoeligheid", options: "Openbaar,Intern,Vertrouwelijk,Strikt vertrouwelijk" } - { name: "doc_retention", type: "dropdown", description: "Bewaartermijn", options: "1 jaar,3 jaar,5 jaar,7 jaar,10 jaar,Permanent" } - { name: "doc_format", type: "dropdown", description: "Formaat", options: "PDF,Word,Excel,PowerPoint,Afbeelding,E-mail,Overig" } - { name: "doc_review_status", type: "dropdown", description: "Reviewstatus", options: "Niet gereviewed,In review,Goedgekeurd,Afgekeurd" } - { name: "doc_approval_level", type: "dropdown", description: "Goedkeuringsniveau", options: "Team,Management,Directie,Bestuur" } - { name: "doc_lifecycle", type: "dropdown", description: "Levenscyclus", options: "Creatie,Gebruik,Archivering,Vernietiging" } - { name: "doc_audience", type: "dropdown", description: "Doelgroep", options: "Intern,Extern,Bestuur,Partners,Klanten,Leveranciers" } - { name: "doc_region", type: "dropdown", description: "Regio", options: "Noord,Oost,Zuid,West,Centraal,Internationaal" } - { name: "doc_quarter", type: "dropdown", description: "Kwartaal", options: "Q1,Q2,Q3,Q4" } - { name: "doc_fiscal_year", type: "dropdown", description: "Boekjaar", options: "2023,2024,2025,2026,2027" } - { name: "doc_department", type: "dropdown", description: "Afdeling", options: "Finance,HR,IT,Legal,Marketing,Operations,R&D,Sales,Support" } - { name: "doc_workflow_state", type: "dropdown", description: "Workflowstatus", options: "Nieuw,In behandeling,Wachtend,Afgerond,Geannuleerd" } - { name: "doc_archive_reason", type: "dropdown", description: "Archiveringsreden", options: "Bewaartermijn,Afgesloten project,Wettelijke verplichting,Verzoek" } - { name: "doc_access_level", type: "dropdown", description: "Toegangsniveau", options: "Iedereen,Team,Management,Beperkt" } - { name: "doc_origin", type: "dropdown", description: "Herkomst", options: "Intern,Extern,Partner,Overheid,Klant" } - { name: "doc_media_type", type: "dropdown", description: "Mediatype", options: "Tekst,Afbeelding,Audio,Video,Mixed" } # Date velden (20 stuks) - { name: "doc_created_date", type: "date", description: "Aanmaakdatum" } - { name: "doc_modified_date", type: "date", description: "Wijzigingsdatum" } - { name: "doc_published_date", type: "date", description: "Publicatiedatum" } - { name: "doc_expiry_date", type: "date", description: "Verloopdatum" } - { name: "doc_review_date", type: "date", description: "Reviewdatum" } - { name: "doc_approval_date", type: "date", description: "Goedkeuringsdatum" } - { name: "doc_archive_date", type: "date", description: "Archiveringsdatum" } - { name: "doc_effective_date", type: "date", description: "Ingangsdatum" } - { name: "doc_received_date", type: "date", description: "Ontvangstdatum" } - { name: "doc_sent_date", type: "date", description: "Verzenddatum" } - { name: "doc_signed_date", type: "date", description: "Tekendatum" } - { name: "doc_deadline", type: "date", description: "Deadline" } - { name: "doc_meeting_date", type: "date", description: "Vergaderdatum" } - { name: "doc_start_date", type: "date", description: "Startdatum" } - { name: "doc_end_date", type: "date", description: "Einddatum" } - { name: "doc_invoice_date", type: "date", description: "Factuurdatum" } - { name: "doc_payment_date", type: "date", description: "Betaaldatum" } - { name: "doc_due_date", type: "date", description: "Vervaldatum" } - { name: "doc_birth_date", type: "date", description: "Geboortedatum" } - { name: "doc_registration_date", type: "date", description: "Registratiedatum" } # Checkbox velden (20 stuks) - { name: "doc_is_template", type: "checkbox", description: "Is template" } - { name: "doc_is_signed", type: "checkbox", description: "Is getekend" } - { name: "doc_is_approved", type: "checkbox", description: "Is goedgekeurd" } - { name: "doc_is_archived", type: "checkbox", description: "Is gearchiveerd" } - { name: "doc_is_public", type: "checkbox", description: "Is openbaar" } - { name: "doc_is_confidential", type: "checkbox", description: "Is vertrouwelijk" } - { name: "doc_is_final", type: "checkbox", description: "Is definitief" } - { name: "doc_is_draft", type: "checkbox", description: "Is concept" } - { name: "doc_needs_review", type: "checkbox", description: "Review nodig" } - { name: "doc_needs_approval", type: "checkbox", description: "Goedkeuring nodig" } - { name: "doc_has_attachments", type: "checkbox", description: "Heeft bijlagen" } - { name: "doc_is_scanned", type: "checkbox", description: "Is gescand" } - { name: "doc_is_ocr", type: "checkbox", description: "OCR verwerkt" } - { name: "doc_is_encrypted", type: "checkbox", description: "Is versleuteld" } - { name: "doc_is_compressed", type: "checkbox", description: "Is gecomprimeerd" } - { name: "doc_is_original", type: "checkbox", description: "Is origineel" } - { name: "doc_is_copy", type: "checkbox", description: "Is kopie" } - { name: "doc_requires_action", type: "checkbox", description: "Actie vereist" } - { name: "doc_is_billable", type: "checkbox", description: "Is factureerbaar" } - { name: "doc_is_completed", type: "checkbox", description: "Is afgerond" } # ============================================================================= # Dummy Bestanden Configuratie # ============================================================================= files_per_teamfolder: 10000 dummy_file_content: "Dit is een dummy bestand voor MetaVox load testing. Aangemaakt door Ansible." dummy_file_extension: "txt" dummy_file_prefix: "loadtest-doc" # ============================================================================= # Performance Configuratie # ============================================================================= sql_batch_size: 2000 http_timeout: 300 max_retries: 3 # ============================================================================= # Database Index Optimalisatie # ============================================================================= # Bij grote hoeveelheden metadata records moeten overbodige indexes # op oc_metavox_file_gf_meta gedropt worden voor performance en diskruimte. # # BEHOUDEN (4 indexes): # - PRIMARY # - mf_file_gf_meta_unique (file_id, groupfolder_id, field_name) # - idx_file_gf_gf_lookup (groupfolder_id, field_name, field_value) # - idx_gf_file_meta_filter (field_name, field_value, groupfolder_id) # # DROPPEN (7 redundante indexes): drop_indexes: - "idx_file_gf_composite" - "mf_file_gf_meta_file" - "mf_file_gf_meta_gf" - "mf_file_gf_meta_field" - "idx_gf_file_meta_file_id" - "idx_gf_file_meta_timestamps" - "idx_file_gf_updated"