• Stable

    aronwk released this 2026-01-25 10:01:46 -06:00 | 26 commits to main since this release

    📅 Originally published on GitHub: Sun, 25 Jan 2026 16:01:48 GMT
    🏷️ Git tag created: Sun, 25 Jan 2026 16:01:46 GMT

    • #796 aaa05a8 Thanks @CorentinTh! - Renamed the internal distribution package from @papra/docker to @papra/app. New release tags will use the format @papra/app@26.0.0 instead of @papra/docker@26.0.0.

    • #784 2c078e2 Thanks @CorentinTh! - Tag list: order tags by creation date descending (newest on top)

    • #781 7c5e68f Thanks @CorentinTh! - When navigating to / and having only one organization, get redirected to that organization

    • #783 ad575bf Thanks @CorentinTh! - Fix tag automatic search link issue when tags have spaces, before tag:my tag would not work, now generate tag:"my tag" to fix it.

    • #795 3a41531 Thanks @CorentinTh! - Hide the "Don't have an account? Register" link on the login page when new account registration is disabled.

    • #785 45534a0 Thanks @CorentinTh! - Added the has:tags search filter to check for the presence or absence (-has:tags or NOT has:tags) of tags on documents.

    • #777 42e401c Thanks @CorentinTh! - Properly tree-shake all demo assets to reduce the size of production non-demo build. Reducing the bundle assets by ~70kB (~55kB on main chunk + removed demo chunk of ~15kB).

    • #794 0485701 Thanks @ktsourdinis! - Added Greek language support

    • #798 c27d85f Thanks @cergmin! - Added Russian language support

    Downloads
  • Stable

    aronwk released this 2026-01-20 06:54:04 -06:00 | 130 commits to main since this release

    📅 Originally published on GitHub: Tue, 20 Jan 2026 12:54:06 GMT
    🏷️ Git tag created: Tue, 20 Jan 2026 12:54:04 GMT

    • #758 a2a2061 Thanks @CorentinTh! - API Breaking Change:
      Document search endpoint now returns complete documents along with total count matching the search query, and no longer nests results under searchResults.

      Before:

      // GET /api/organizations/:organizationId/documents/search?searchQuery=foobar
      {
        searchResults: {
          documents: [
            { id: 'doc_1', name: 'Document 1.pdf' },
            { id: 'doc_2', name: 'Document 2.pdf' },
          ],
        },
      }
      

      After:

      // GET /api/organizations/:organizationId/documents/search?searchQuery=foobar
      {
        documents: [
          { id: 'doc_1', name: 'Document 1.pdf', mimeType: 'application/pdf' /* ...otherProps */ },
          { id: 'doc_2', name: 'Document 2.pdf', mimeType: 'application/pdf' /* ...otherProps */ },
        ],
        totalCount: 42,
      }
      
    • #761 2e46c08 Thanks @CorentinTh! - Added a "Show more results" option in quick search when there is more document not displayed

    • #733 848671b Thanks @CorentinTh! - Improved search speed by using document and organization ids in index
      The first restart after updating may take up to few minutes as the search index is rebuilt

    • #758 a2a2061 Thanks @CorentinTh! - The documents page can now be used with advanced search queries

    • #723 68d848e Thanks @CorentinTh! - Auto assign admin role to the first user registering

    • #726 e8f6217 Thanks @CorentinTh! - Added about page and modal with version informations

    • #707 a213f06 Thanks @CorentinTh! - Added a dedicated increased timeout for the document upload route

    • #712 b8c14d0 Thanks @CorentinTh! - Added a feedback message upon request timeout

    • #717 f3fb5ff Thanks @CorentinTh! - Added support for two factor authentication

    • #702 ec34cf1 Thanks @CorentinTh! - Organizations listing and details in the admin dashboard

    • #746 685f03c Thanks @CorentinTh! - Added advanced search syntax support

    • #715 7448a17 Thanks @kirarpit! - Properly cleanup orphan file when the same document exists in trash

    • #758 a2a2061 Thanks @CorentinTh! - Added query params sync for the search query in the documents search page for deep linking and browser state navigation

    • #758 a2a2061 Thanks @CorentinTh! - Removed the possibility to filter by tag in the /api/organizations/:organizationId/documents route, use the /api/organizations/:organizationId/documents/search route instead.

      # Before:
      GET /api/organizations/:organizationId/documents?tags=yourTagId
      
      # After:
      GET /api/organizations/:organizationId/documents/search?query=tag:yourTagNameOrId
      
    • #707 a213f06 Thanks @CorentinTh! - Changed config key config.server.routeTimeoutMs to config.server.defaultRouteTimeoutMs (env variable remains the same)

    • #718 8d70a7b Thanks @CorentinTh! - Added api endpoint to check current API key (GET /api/api-keys/current)

    Downloads
  • Stable

    aronwk released this 2025-12-21 12:06:48 -06:00 | 187 commits to main since this release

    📅 Originally published on GitHub: Sun, 21 Dec 2025 18:06:49 GMT
    🏷️ Git tag created: Sun, 21 Dec 2025 18:06:48 GMT

    Patch Changes

    Downloads
  • Stable

    aronwk released this 2025-12-21 12:06:48 -06:00 | 187 commits to main since this release

    📅 Originally published on GitHub: Sun, 21 Dec 2025 18:06:55 GMT
    🏷️ Git tag created: Sun, 21 Dec 2025 18:06:48 GMT

    Patch Changes

    • Updated dependencies [815f6f9]:
      • @papra/api-sdk@1.1.3
    Downloads
  • Stable

    aronwk released this 2025-12-21 12:06:48 -06:00 | 187 commits to main since this release

    📅 Originally published on GitHub: Sun, 21 Dec 2025 18:06:52 GMT
    🏷️ Git tag created: Sun, 21 Dec 2025 18:06:48 GMT

    Patch Changes

    Downloads
  • Stable

    aronwk released this 2025-12-21 11:52:34 -06:00 | 190 commits to main since this release

    📅 Originally published on GitHub: Sun, 21 Dec 2025 17:52:35 GMT
    🏷️ Git tag created: Sun, 21 Dec 2025 17:52:34 GMT

    • #685 cf91515 Thanks @CorentinTh! - Document search indexing and synchronization is now asynchronous, and no longer relies on database triggers.
      This significantly improves the responsiveness of the application when adding, updating, trashing, restoring, or deleting documents. It's even more noticeable when dealing with a large number of documents or on low-end hardware.

    • #686 95662d0 Thanks @CorentinTh! - Enforcing the auth secret to be at least 32 characters long for security reasons

    • #686 95662d0 Thanks @CorentinTh! - Now throw an error if AUTH_SECRET is not set in production mode

    • #689 d795798 Thanks @CorentinTh! - Added a platform administration dashboard

    • #675 17d6e9a Thanks @CorentinTh! - Added support for Simplified Chinese language

    • #679 6f38659 Thanks @CorentinTh! - Fixed an issue where the document icon didn't load for unknown file types

    Downloads
  • Stable

    aronwk released this 2025-12-21 11:52:34 -06:00 | 190 commits to main since this release

    📅 Originally published on GitHub: Sun, 21 Dec 2025 17:52:38 GMT
    🏷️ Git tag created: Sun, 21 Dec 2025 17:52:34 GMT

    Patch Changes

    Downloads
  • Stable

    aronwk released this 2025-11-29 16:29:02 -06:00 | 216 commits to main since this release

    📅 Originally published on GitHub: Sat, 29 Nov 2025 22:29:12 GMT
    🏷️ Git tag created: Sat, 29 Nov 2025 22:29:02 GMT

    Minor Changes

    Patch Changes

    Downloads
  • Stable

    aronwk released this 2025-11-29 16:29:02 -06:00 | 216 commits to main since this release

    📅 Originally published on GitHub: Sat, 29 Nov 2025 22:29:09 GMT
    🏷️ Git tag created: Sat, 29 Nov 2025 22:29:02 GMT

    • #638 ae3abe9 Thanks @CorentinTh! - Added the possibility to filter out some email domain names for new registration

    • #633 d267605 Thanks @CorentinTh! - Lazy load some demo-mode specific code to reduce production client bundle

    • #618 868281b Thanks @CorentinTh! - Added translations for document table headers

    • #653 ca80806 Thanks @CorentinTh! - Added some logging context when an intake email is received

    • #650 dc6ee5b Thanks @CorentinTh! - Api breaking change: the document search endpoint return format changed, impacting any custom clients consuming it.

      Before

      // Get /api/organizations/:organizationId/documents/search
      {
        documents: {
          id: string;
          name: string;
          mimeType: string;
          // ... other document fields
        }
        [];
      }
      

      After

      // Get /api/organizations/:organizationId/documents/search
      {
        searchResults: {
          documents: {
            id: string;
            name: string;
          }
          [];
        }
      }
      
    • #619 5b5ce85 Thanks @CorentinTh! - Limit concurrent browser upload to avoid network crashes

    • #609 cb1f1b5 Thanks @dbarenholz! - Made the tags clickable in the tag list

    • #655 08f4a1c Thanks @CorentinTh! - Intake email edge case: use original destination addresses when available for intake emails when forwarded

    • #660 9b43baf Thanks @bkwi! - Removed the possibility for unauthorized upload to another organization you're not member of

    • #616 1922f24 Thanks @CorentinTh! - Upgraded to node v24

    • #607 abc463f Thanks @dbarenholz! - Added Dutch translation

    • #625 ee9eff4 Thanks @CorentinTh! - Improved server authentication logging

    • #623 b087764 Thanks @CorentinTh! - Improved unique constraints error when dealing with hosted libsql db

    • #637 479a603 Thanks @CorentinTh! - Fix tags table overflow for long tag descriptions: added some text wrapping for the description

    • #657 96403c0 Thanks @CorentinTh! - Fix environment variable DOCUMENT_STORAGE_S3_FORCE_PATH_STYLE validation schema to account for boolean string

    Downloads
  • Stable

    aronwk released this 2025-11-29 16:29:02 -06:00 | 216 commits to main since this release

    📅 Originally published on GitHub: Sat, 29 Nov 2025 22:29:03 GMT
    🏷️ Git tag created: Sat, 29 Nov 2025 22:29:02 GMT

    Minor Changes

    Patch Changes

    • Updated dependencies [432a192]:
      • @papra/api-sdk@1.1.2
    Downloads