mirror of
https://github.com/LogicLabs-OU/OpenArchiver.git
synced 2026-04-06 00:31:57 +02:00
* OpenAPI root url fix
* Journaling OSS setup
* feat: add preserve-original-file mode for email ingestion for GoBD compliance
- Add `preserveOriginalFile` option to ingestion sources and connectors
- Stream original EML/MBOX/PST emails to temp files instead of holding
full buffers in memory, reducing memory allocation during ingestion
- Skip attachment binary extraction and EML re-serialization when
preserve mode is enabled; use raw file on disk as source of truth
- Update `EmailObject` to use `tempFilePath` instead of in-memory `eml`
buffer across all connectors (EML, MBOX, PST)
- Add new database migration (0032) for `preserve_original_file` column
- Add frontend UI toggle with tooltip (tippy.js) for the new option
- Replace console.warn calls with structured pino logger in connectors
* add isjournaled property to archived_email
* feat(ingestion): add unmerge ingestion source functionality
Introduces the ability to detach a child ingestion source from its
merge group, making it a standalone root source. Changes include:
- Add `unmerge` controller method with auth and error handling
- Add POST `/v1/ingestion-sources/{id}/unmerge` route with OpenAPI docs
- Implement `IngestionService.unmerge` backend logic
- Add unmerge UI action and handler in the frontend ingestion view
- Fix bulk delete to also remove children of deleted root sources
- Update docs with new API operation and merging sources user guide
* code formatting
* Database migration file for enum `partially_active`
* Error handling improvement
78 lines
3.1 KiB
JSON
78 lines
3.1 KiB
JSON
{
|
|
"auth": {
|
|
"setup": {
|
|
"allFieldsRequired": "E-mail, wachtwoord en naam zijn verplicht",
|
|
"alreadyCompleted": "De installatie is al voltooid."
|
|
},
|
|
"login": {
|
|
"emailAndPasswordRequired": "E-mail en wachtwoord zijn verplicht",
|
|
"invalidCredentials": "Ongeldige inloggegevens"
|
|
}
|
|
},
|
|
"errors": {
|
|
"internalServerError": "Er is een interne serverfout opgetreden",
|
|
"demoMode": "Deze bewerking is niet toegestaan in de demomodus.",
|
|
"unauthorized": "Ongeautoriseerd",
|
|
"unknown": "Er is een onbekende fout opgetreden",
|
|
"noPermissionToAction": "U heeft geen toestemming om de huidige actie uit te voeren.",
|
|
"deletion_disabled": "Verwijderen is uitgeschakeld voor deze instantie."
|
|
},
|
|
"user": {
|
|
"notFound": "Gebruiker niet gevonden",
|
|
"cannotDeleteOnlyUser": "U probeert de enige gebruiker in de database te verwijderen, dit is niet toegestaan.",
|
|
"requiresSuperAdminRole": "De rol van Super Admin is vereist om gebruikers te beheren."
|
|
},
|
|
"iam": {
|
|
"failedToGetRoles": "Kan rollen niet ophalen.",
|
|
"roleNotFound": "Rol niet gevonden.",
|
|
"failedToGetRole": "Kan rol niet ophalen.",
|
|
"missingRoleFields": "Ontbrekende verplichte velden: naam en beleid.",
|
|
"invalidPolicy": "Ongeldige beleidsverklaring:",
|
|
"failedToCreateRole": "Kan rol niet aanmaken.",
|
|
"failedToDeleteRole": "Kan rol niet verwijderen.",
|
|
"missingUpdateFields": "Ontbrekende velden om bij te werken: naam of beleid.",
|
|
"failedToUpdateRole": "Kan rol niet bijwerken.",
|
|
"requiresSuperAdminRole": "De rol van Super Admin is vereist om rollen te beheren."
|
|
},
|
|
"settings": {
|
|
"failedToRetrieve": "Kan instellingen niet ophalen",
|
|
"failedToUpdate": "Kan instellingen niet bijwerken",
|
|
"noPermissionToUpdate": "U heeft geen toestemming om de systeeminstellingen bij te werken."
|
|
},
|
|
"dashboard": {
|
|
"permissionRequired": "U heeft de leesrechten voor het dashboard nodig om dashboardgegevens te bekijken."
|
|
},
|
|
"ingestion": {
|
|
"failedToCreate": "Kan de opnamebron niet aanmaken vanwege een verbindingsfout.",
|
|
"notFound": "Opnamebron niet gevonden",
|
|
"initialImportTriggered": "Initiële import succesvol geactiveerd.",
|
|
"forceSyncTriggered": "Geforceerde synchronisatie succesvol geactiveerd."
|
|
},
|
|
"archivedEmail": {
|
|
"notFound": "Gearchiveerde e-mail niet gevonden"
|
|
},
|
|
"search": {
|
|
"keywordsRequired": "Trefwoorden zijn verplicht"
|
|
},
|
|
"storage": {
|
|
"filePathRequired": "Bestandspad is verplicht",
|
|
"invalidFilePath": "Ongeldig bestandspad",
|
|
"fileNotFound": "Bestand niet gevonden",
|
|
"downloadError": "Fout bij het downloaden van het bestand"
|
|
},
|
|
"apiKeys": {
|
|
"generateSuccess": "API-sleutel succesvol gegenereerd.",
|
|
"deleteSuccess": "API-sleutel succesvol verwijderd."
|
|
},
|
|
"api": {
|
|
"requestBodyInvalid": "Ongeldige inhoud van het verzoek."
|
|
},
|
|
"upload": {
|
|
"invalid_request": "Het uploadverzoek is ongeldig of onjuist geformatteerd.",
|
|
"stream_error": "Er is een fout opgetreden bij het ontvangen van het bestand. Probeer het opnieuw.",
|
|
"parse_error": "De gegevens van het geüploade bestand konden niet worden verwerkt.",
|
|
"storage_error": "Het geüploade bestand kon niet worden opgeslagen. Probeer het opnieuw.",
|
|
"connection_error": "De verbinding is verbroken tijdens het uploaden."
|
|
}
|
|
}
|