docs: Add Dovecot Lua auth guide + required package#3579
docs: Add Dovecot Lua auth guide + required package#3579polarathene merged 11 commits intodocker-mailserver:masterfrom
Conversation
4f3bd0f to
4a60f63
Compare
|
I am informed that this makes the ARM64 build fail. I'll look into it. |
polarathene
left a comment
There was a problem hiding this comment.
First review pass.
That was a much larger docs contribution than I expected! I appreciate it though 😁
I'll provide some more revision after the current feedback is addressed. Great work so far!
And I probably should have checked the test suite before diving into a review 😰 (I think it took me roughly 2 hours) Here's the ARM64 failure:
This is one of those maintenance concerns I raised initially. The Debian package The other test failure with Fail2Ban is unrelated, that's been acting up lately for unknown reasons. I'm a bit surprised though, as for some reason our AMD64 build was successful. It should not have used a cache due to This |
|
Not going into all of your extensive review points of the documentation at the moment. They are good points, and I will update the documentation. 😄
If building on ARM64, the Debian repositories are used since Dovecot's community repository is unable to provide ARM64 packages. Debian repositories use package name I will change
Thanks for the notification. I'll ignore these test failures if they pop up for me. |
Ah thanks for that clarification. ResolvedI'm not fond of the community repo myself since that's been causing various issues, especially with preventing upgrading to Debian 12.
The only reason we use the community repo for Dovecot AFAIK, was due to needing a version newer than Debian 11 provided. While another maintainer is reluctant to use the Debian 12 Dovecot release as the version is behind the community repo, but Debian 12 won't be supported by the community repo until Dovecot 2.4/3.0 is released AFAIK. Bit of a predicament 😅 @casperklein @georglauterbach how do you want to resolve this?
I have a bad habit of replying too eagerly and didn't read this far 😑 Well that's sorted then 👍 |
I read this as that there is a Dovecot version difference between DMS on x86_64 and ARM64. After some testing, it turns out this is true. x86_64: Dovecot 2.3.21 (from the community repo) I do agree that this is quite a conundrum if stability is preferred and you wish to avoid community repos. Still, if you consider the rspamd community repository for Fedora, they do provide ARM64 packages in their rpm repositores, unlike Dovecot (rspamd's documentation seems to be lagging behind on this). That would at least take care of the software version discrepancy between architectures, and any headaches that might cause.
All is forgiven. Please provide the same courtesy if I do that at some point (which I try to avoid, but no guarantees!). 😄 I'll keep working on this PR in the coming few days. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
I do not have the time to read through the whole thread, so here are my two cents: The version discrepancy of Dovecot between amd64 and arm64 is similar to Rspamd, and not an issue if you ask me. It is not perfect, and I try to keep the differences for Rspamd at a minimum. We should not care about this at the moment if you ask me. About the newly added package: this may sound harsh, but I really don't see why this could not be done with |
This was explained in their response prior to two maintainer approvals: #3575 (comment)
Previously they had been using In my docs review I have pointed out that they may need to rely on But the package concern AFAIK is valid to warrant inclusion into the image instead of
As per the issue link with maintainer approvals and my docs review feedback above, maintainers have been very clear that @Zepmann is responsible for resolving any related maintenance issues that arise with the inclusion of this package. If it causes us any problems that are not resolved to maintainer satisfaction in a timely manner, the package will be dropped in a future release. This is the stance for any community contributed packages / features that are deemed niche like To further take that stance, I've also suggested like the debug group in |
|
I have updated the documentation based on comments from @polarathene. Furthermore, I changed Everything works with the current development version of DMS. As discussed, there will be changes to DMS in the future that will break the example in the documentation. I think it is best to start with a new PR when that time comes. This is a community effort, and as such it is no issue if it lags behind official development and breaks sometimes. The documentation also notes this as a warning for any users who want to use Lua-based authentication. |
polarathene
left a comment
There was a problem hiding this comment.
Great work! Thanks for taking the time to address and respond to feedback 😁
Two changes remaining:
- Add title to admonition example.
- Address feedback for
packages.sh.
The two large review comments are responses to prior discussion and can be ignored. One debates the relevance of mkdir and docker cp (vs clearly documenting an explicit userdb config override for the versioned release at time of writing), but I won't block on either of these.
Should the lua auth docs be part of the config docs, or would they be better suited in the examples section? (tutorials / use-cases)
Seems like it may be better suited there given the focus as a community guide? Up to you :)
|
This PR is not forgotten. I'll pick it up later this week. |
|
I've marked this for v13.1.0. The next release is v13.0.0, so this PR will not block on v13.0.0 |
…ackages for officially supported features and for community supported features.
|
Finally had some time to work on this! I think most of the comments have been solved adequately. If not, please let me know. Also, the Lua documentation was simplified somewhat. By configuring Nextcloud (as the server) better, it is not necessary to test in Lua (as the client) if the provided password is a Nextcloud application password. The relevant Nextcloud configuration parameters are also included now in the documentation. Finally, I am considering adding this documentation to the examples section instead of as a main page in the advanced configuration section, but I do not know if this would make the review process harder. Therefore, please review this first, but do not merge the PR if you think it is acceptable. Instead, let me know your comments and I'll make another change to move the documentation to the proper section. I am considering adding the documentation to the 'Use Cases' subsection of Examples. This will take the page out of the more important parts of the documentation, making it less critical if it lags behind a bit with the current state of DMS. Most critical for this PR remains the added Lua support for Dovecot. This support is now explicitly marked as coming from the community, to make it stand out from the 'core' development of DMS. I expect that it will not be difficult to keep this support, since it is not hard to enable Lua support with any method used to build/install Dovecot. However, this depends on future versions of Dovecot keep playing nice. Please notify me if Dovecot Lua support is ever considered problematic or a feature to be removed. This way, I can add my $ 0.02 and maybe help by solving the problem or by thinking of alternatives. |
Yes, this sounds like a good choice 👍 Thanks for waiting for review before making the change, I had been thinking of relocating it from my initial review but I didn't want to deal with any added review friction :) Great work, thanks for the contribution to DMS! ❤️
Will do 👍 |
polarathene
left a comment
There was a problem hiding this comment.
LGTM 👍
Waiting on one last change before merge, relocation of docs to examples section.
|
Thanks for the extensive feedback and an open mind, @polarathene. I'm looking forward to working together again in the future. Currently I'm busy with some other stuff. I'll move the documentation page later today (as in 'within 12 hours from now', but I'll do it ASAP within that timeframe). For expectation management, is this PR to be included in release v13.0.0 or v13.1.0, considering the timeline and the v13.1.0 milestone? |
If this is to be merged in the next few days, it's going to be in v13.0.0. When @polarathene merges this PR, they can just adjust the milestone. |
|
Moved the documentation. I have nothing more to add for this PR unless something new pops up. In that case, let me know! 😃 |
polarathene
left a comment
There was a problem hiding this comment.
LGTM 👍
Thanks for your patience and the great contribution! 😁
|
Documentation preview for this PR is ready! 🎉 Built with commit: 1f703a8 |
…r#3579) * Dovecot: add deb package dovecot-lua to support Lua scripting * Adding documentation for Lua authentication * Updated documentation and made a better distinction between Dovecot packages for officially supported features and for community supported features. --------- Co-authored-by: Brennan Kinney <[email protected]>
Description
This PR adds Lua support for Dovecot and documentation with an example usage for authentication. Lua authentication can be used to make Dovecot (and Postfix through Dovecot) authenticate against a web server or against anything else that can be used in Lua.
As discussed in #3575, a new
xapiansituation should be avoided. This PR relies on a standard Dovecot deb package that requires minimum change and maintenance as long as Dovecot deb packages are used. The documentation has a warning that there is minimal support for Lua, and that Lua support will be removed if it does not align with the development of DMS anymore for some reason.Another warning in the documentation tells users that Lua authentication is an advanced topic, and that they should not open issues for questions about Lua scripting or bother DMS contributors about it.
Fixes #3575.
Type of change
Checklist:
docs/)