Unfortunately I've not come across @paulgessinger's post when I started working on yet another native iOS app for paperless-ngx. If I had found Paul's app a few months ago, I'd probably not even have started working on another one, because his app is really great! But now that I have invested a significant amount of time already, I'm going to continue and I'd like to show how far I've come:
Less Paper - Client for Paperless-ngx
The app is available for free on the App Store, it supports iPhone, iPad and macOS.
If you have any feedback or if you're missing some features that you'd like to see in the app, don't hesitate and tell me! I've recently implemented bulk edit of tags and importing documents. Next on my list is bulk edit for document type, correspondent and storage paths.
Even though the app is available for iOS and macOS, my main focus is and will be on iOS. The macOS version might be a little behind in the feature set, but also usability wise not yet very optimised for macOS.
iPhone
iPad
Thanks for your time and work on this, I will definitely install it and try it out alongside Paul's app.
0 replies
I've already tried it out a bit and it works really well!
Is the code public, or are you planning to make it public?
2 replies
12 replies
@plu any chance you can give me some guidance on the details of the expected server side flow when using header auth?
I had been leaving the user/pass fields blank, because auth is supposed to be handled by authelia
I'm still not sure I fully understand your setup. Let's talk about the web version of Paperless for a bit: If you delete all your cookies, and you access your Paperless instance in your web browser, you get redirected to Authelia's login form. After you filled your Authelia credentials, you get redirected back to Paperless. Do you have to log in there again? My gut feeling says that you don't, and that you must be using some feature of Paperless to trust the Authelia headers and somehow log the user in magically with these. Is that correct? In my setup I have to log in to Paperless again, after I logged in to Authelia. I'd need to create a similar setup to yours to figure out how to make this work with the app.
Your guesses are right on the money, and now I understand why what I was trying wasn't working. For me, I configure my apps so that header auth replaces the built-in auth. So, requests that get forwarded through my Authelia instance have a header attached that says, "bypass built-in login, and log in as this user unchallenged". Of course, there has to be no unprotected route to the service for this to work, or anyone could account hijack just by passing a header with every request.
It would be cool if the app supported this mode of access (no password set on the user, and none needed due to the api authentication via a header on every request, rather than a request to /api/token), but honestly it's pretty rare because it's a pretty different flow.
At any rate, I no longer feel like I'm taking crazy pills, and I'm just using the web ui for now. I'll follow your app to see if this usage mode ever gets implemented, but I understand if it's too niche.
I believe I managed to reproduce your setup. Please check out the latest update (1.0.29), and let me know if that works for you. You can leave username and password empty in the app when adding the server.
Thx for your effort. I am not able to login however. The paperless server is not behind a reverse proxy just using local ip address.
If I login I get an error: CSRF failed: CSRF token missing. If I search for this error I see reverse proxy setup missing URL in the config.
If I use a webbrowser on my iPhone I can login to the server
11 replies
I've set the following variables:
PAPERLESS_URL: https://paperless.domain.tldPAPERLESS_CSRF_TRUSTED_ORIGINS: https://*.domain.tld
I've tried it with and without the CSRF_TRUSTED_ORIGINS variable.
my paperless-ngx is v 1.17.4., running in docker.
Sorry, I meant @bagfatnick. I could finally reproduce the CSRF failed issue, see also: #5090
Hey @plu, I'm not using PAPERLESS_AUTO_LOGIN_USERNAME: .....
I've set PAPERLESS_ENABLE_HTTP_REMOTE_USER: true and PAPERLESS_HTTP_REMOTE_USER_HEADER_NAME: HTTP_X_AUTHENTIK_USERNAME.
But I can see from the linked issue that a fixed was recently merged, so I'll give the new release a shot and report back if it helps.
Hey @plu, I can confirm after installing the v2.2.0 update on Paperless-ngx has resolved the CSRF issue! Many thanks for spotting the bug.
Really cool app! Thanks for creating this.
Are there any plans for offline document storage on the device itself?
0 replies
Hi! I was having trouble logging in: received 403 Forbidden on the /api/token with the following detail "CSRF Failed: CSRF token missing."
After some investigation, the header x-csrftoken was not being sent and modifying the login request to include it managed to log me in.
I'm not sure why this error is happening to me and no one else is reporting it, but just thought I'd give an heads up. (This happens in any app I tried). In case it could help, I'm using Traefik + Authelia with Paperless-ngx (with PAPERLESS_ENABLE_HTTP_REMOTE_USER_API="true"). If you need I can send a short docker-compose for testing purposes.
From this workaround I noticed something that could be a point of improvement also: after logging in, I can't change the server details (or I can't figure it out at least). I needed to remove the "accept all SSL certificates" setting that I used during the proxy setup, but I no longer it enabled and it's a possible security risk.
0 replies
Hi, i love the scan functionality of this app since i don't need to have another an on my phone anymore.
Today i discovered the 24 pages limitation. What's the reason behind it?
0 replies
Thanks for the great App.
Do you mind to share the url scheme. It would be great to have links to documents directly in the App 🙂
2 replies
So far the app is great. The only problem is that i needed to disable 2FA to work, there's no box that i can insert my code for verification. Its annoying, but the app is great!
1 reply
This discussion has been automatically closed due to inactivity. Please see our contributing guidelines for more details.
0 replies
This discussion has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion for related concerns. See our contributing guidelines for more details.
0 replies

