Tags: LogicLabs-OU/OpenArchiver
Tags
V0.4 fix 2 (#210) * formatting code * Remove uninstalled packages * fix(imap): Improve IMAP connection stability and error handling This commit refactors the IMAP connector to enhance connection management, error handling, and overall stability during email ingestion. The `isConnected` flag has been removed in favor of relying directly on the `client.usable` property from the `imapflow` library. This simplifies the connection logic and avoids state synchronization issues. The `connect` method now re-creates the client instance if it's not usable, ensuring a fresh connection after errors or disconnects. The retry mechanism (`withRetry`) has been updated to no longer manually reset the connection state, as the `connect` method now handles this automatically on the next attempt. Additionally, a minor bug in the `sync-cycle-finished` processor has been fixed. The logic for merging sync states from successful jobs has been simplified and correctly typed, preventing potential runtime errors when no successful jobs are present. --------- Co-authored-by: Wayne <5291640+ringoinca@users.noreply.github.com>
feat: Add Mbox ingestion (#117) This commit introduces two major features: 1. **Mbox File Ingestion:** Users can now ingest emails from Mbox files (`.mbox`). A new Mbox connector has been implemented on the backend, and the user interface has been updated to support creating Mbox ingestion sources. Documentation for this new provider has also been added. Additionally, this commit includes new documentation for upgrading and migrating Open Archiver. Co-authored-by: Wayne <5291640+ringoinca@users.noreply.github.com>
Display versions: Add new version notification in footer (#101) * feat: Add new version notification in footer This commit implements a system to check for new application versions and notify the user. On page load, the server-side code now fetches the latest release from the GitHub repository API. It uses `semver` to compare the current application version with the latest release tag. If a newer version is available, an alert is displayed in the footer with a link to the release page. The current application version is also now displayed in the footer. The version check is cached for one hour to minimize API requests. * Modify version notification * current version 0.3.1 * Resolve conflicts * Code formatting --------- Co-authored-by: Wayne <5291640+ringoinca@users.noreply.github.com>
User api key: Disable API operation in demo mode (#85) * feat(auth): Implement API key authentication This commit enables API access with an API key system. This change provides a better experience for programmatic access and third-party integrations. Key changes include: - **API Key Management:** Users can now generate, manage, and revoke persistent API keys through a new "API Keys" section in the settings UI. - **Authentication Middleware:** API requests are now authenticated via an `X-API-KEY` header instead of the previous `Authorization: Bearer` token. - **Backend Implementation:** Adds a new `api_keys` database table, along with corresponding services, controllers, and routes to manage the key lifecycle securely. - **Rate Limiting:** The API rate limiter now uses the API key to identify and track requests. - **Documentation:** The API authentication documentation has been updated to reflect the new method. * Add configurable API rate limiting Two new variables are added to `.env.example`: - `RATE_LIMIT_WINDOW_MS`: The time window in milliseconds for which requests are checked (defaults to 15 minutes). - `RATE_LIMIT_MAX_REQUESTS`: The maximum number of requests allowed from an IP within the window (defaults to 100). The installation documentation has been updated to reflect these new configuration options. * Disable API operation in demo mode --------- Co-authored-by: Wayne <5291640+ringoinca@users.noreply.github.com>
v0.3.0 release (#76) * Remove extra ports in Docker Compose file * Allow self-assigned cert * Adding allow insecure cert option * fix(IMAP): Share connections between each fetch email action * Update docs: troubleshooting CORS error --------- Co-authored-by: Wayne <5291640+ringoinca@users.noreply.github.com>
feat: optimize Dockerfile (#47) * define base image arg * create base stage with common content * chmod executable entrypoint file this avoids re-copying the same file as is being modified in the docker layer * cache npm downloaded packages avoids re-downloading deps if cache content is available
PreviousNext