-
Notifications
You must be signed in to change notification settings - Fork 159
Groupware #1994
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pbleser-oc
wants to merge
184
commits into
main
Choose a base branch
from
groupware
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Groupware #1994
Changes from all commits
Commits
Show all changes
184 commits
Select commit
Hold shift + click to select a range
c10f04b
Add Stalwart container to the opencloud_full deployment, using the Op…
pbleser-oc abd01d2
WIP: initial implementation of the groupware service
pbleser-oc fd327ad
add missing routing for /groupware (currently unprotected for testing)
pbleser-oc ef888ea
rename Stalwart fallback admin username from 'admin' to 'mailadmin' s…
pbleser-oc 1b45acf
add an OIDC Directory to Stalwart, requires exposing Keycloak port 80…
pbleser-oc 2b55edc
WIP: restructure the Jmap client, and implement the /me/messages Grap…
pbleser-oc d59d498
move services/groupware/pkg/jmap to pkg/jmap
pbleser-oc 8ef4d0a
add an auth-api service to make an exemplary implementation of an ext…
pbleser-oc 1e5dd90
Introduce a the auth-api service
pbleser-oc 89d07b0
minor corrections to the Stalwart configuration
pbleser-oc 6f35e9c
upgrade Stalwart to 0.12
pbleser-oc e09014a
groupware and jmap improvements and refactoring
pbleser-oc 0945ae1
auth-api: fix: was missing newly introduced metrics
pbleser-oc 16168b1
jwkset: remove debugging printlns
pbleser-oc 8be4f67
groupware: removed debugging logs
pbleser-oc 8df0f5e
upgrade Stalwart to 0.12.4
pbleser-oc d00fe96
Use password policy overlay in LDAP and configure Stalwart to use it
pbleser-oc cd9d05c
fix Stalwart LDAP configuration
pbleser-oc efa757e
Groupware improvements: refactoring, k6 tests
pbleser-oc 0478eb9
opencloud_full: upgrade Stalwart to 0.12.5, and use the ghcr.io conta…
pbleser-oc bd7e2f7
groupware: remove unneeded messages.go that was a remainder from an e…
pbleser-oc 8bb4ad0
Groupware and jmap: cleanup and API documentation
pbleser-oc 0247c28
Refactor groupware service after ADR decision on the Groupware API
pbleser-oc 80b31a8
groupware: implement JSON:API's error response format, with a revampe…
pbleser-oc 182897c
groupware: refactoring the API mechanisms
pbleser-oc 6f593d1
refactored the Session object, refactored the services/groupware dire…
pbleser-oc 2573bf4
upgrade Stalwart to 0.13.2
pbleser-oc 4dcbb5d
groupware: further implementation and improvements
pbleser-oc 5d14c96
groupware: more JMAP operations implementation
pbleser-oc 5c561df
groupware: blob streaming (upload and download)
pbleser-oc 67803b4
groupware: implement message search with snippets
pbleser-oc 73e2efb
Groupware: refactor jmap package, implement Email/set, EmailSubmission
pbleser-oc 58ece45
groupware: fix email search, add variant that includes the full emails
pbleser-oc e0f1552
groupware: fix email search, add variant that includes the full emails
pbleser-oc 4522ac8
groupware: add identities of all accounts to the index resource
pbleser-oc f308b61
groupware: minor email searching response improvements + started impl…
pbleser-oc 7a1ee6e
Groupware improvements
pbleser-oc 146558e
groupware: swagger API documentation improvements
pbleser-oc 5904922
groupware: add /bootstrap
pbleser-oc eab949b
groupware: initial related emails implementation with SSE
pbleser-oc d5f75ad
groupware: Etag handling
pbleser-oc 306e5a0
groupware: implement metrics
pbleser-oc 6af523c
groupware: jmap: add metrics
pbleser-oc 15c50b3
groupware: improve metrics
pbleser-oc 0c1fd1e
jmap: minor logging improvements
pbleser-oc 837dd3a
refactor(groupware): logging and metrics improvements
pbleser-oc f2be11d
docs(groupware): add Groupware related ADRs
pbleser-oc 6c7cfac
groupware: fix debug server, was missing a lot of configuration optio…
pbleser-oc 668db65
groupware: session handling improvements
pbleser-oc 058c299
add a .gitignore entry for debug binaries built by VSCode when runnin…
pbleser-oc 16c9b7e
groupware: add DNS auto-discovery (currently disabled, needs testing)
pbleser-oc 1762048
refactor(groupware): session cache and DNS autodiscovery
pbleser-oc 9680008
test(groupware): add testcontainers based jmap test
pbleser-oc 0cce8f5
docs(groupware): OpenAPI improvements
pbleser-oc c336b4c
feat(groupware): add fetching all mailboxes for all accounts
pbleser-oc 80ec0c9
chore(groupware): add launcher for OC + containers for services
pbleser-oc a756353
groupware: minor typo fixes
pbleser-oc b0768ae
refactor(groupware): add max requests check
pbleser-oc cb2de14
docs(groupware): add services/groupware/DEVELOPER.md
pbleser-oc 8b0f585
refactor(groupware): use a function for multi-account method call IDs
pbleser-oc 9c517a8
refactor(groupware): rename "Messages" to "Email" everywhere
pbleser-oc 299a356
fix(groupware): fix JMAP error handling
pbleser-oc 2ea415b
docs(groupware): add configuration instructions to DEVELOPER.md
pbleser-oc 45c6181
more updates to the Groupware DEVELOPER.md
pbleser-oc b77bd0b
docs(groupware): more developer instructions
pbleser-oc 1efa53c
fix(groupware): update DEVELOPER.md imap-filler usage since it was up…
pbleser-oc c7c5dca
jmap: modify GetBlob -> GetBlobMetadata
pbleser-oc 0789431
groupware: improved attachment APIs
pbleser-oc 738bef1
refactor(groupware): just use a function for the attachment picker
pbleser-oc 63fad66
feat(groupware): add WebsocketEndpoint to the JMAP Session
pbleser-oc 6db8dd3
start websocket implementation, add endpoint for email summaries
pbleser-oc 917fb38
Docker Compose Groupware improvements
pbleser-oc e754b5a
Implement JSContact (RFC9553) Model
pbleser-oc 944abd8
JSContact: refactored after full test coverage, stronger typing for e…
pbleser-oc 3720851
services/groupware/DEVELOPER.md: adapt to new path for the opencloud_…
pbleser-oc e71508b
implement JSCalendar (RFC 8984)
pbleser-oc 20980a6
opencloud_full: also keep the 'Trace-Id' HTTP header
pbleser-oc d9878b3
groupware: add mock endpoints for addressbooks and contacts
pbleser-oc 5df0ec0
groupware: more mock data, added missing JMAP types
pbleser-oc 55d521d
groupware: implement JMAP Task specification
pbleser-oc d6e269a
groupware: add mock endpoints for tasklists and tasks
pbleser-oc 0b334fc
/auth: add SkipXAccessToken:true
pbleser-oc 5dc89de
groupware: add JMAP capability checking (in part: for contacts, calen…
pbleser-oc 9febfab
groupware: add flag to currently ignore session capability checks for…
pbleser-oc 36cf2c3
groupware: minor improvements to the DEVELOPER.md
pbleser-oc deee610
groupware: add quota API + add support for Accept-Language and Conten…
pbleser-oc b11ac4b
groupware: update @redocly/cli: 2.2.2 -> 2.3.0
pbleser-oc fb466a4
groupware: improve instructions in DEVELOPER.md
pbleser-oc 940cd81
groupware: add /quota for all accounts
pbleser-oc d23d8cd
groupware: add bootstrapping on / with quotas for all accounts
pbleser-oc 3b5a565
groupware: upgrade Stalwart in devtools from 0.13.2 to 0.13.4
pbleser-oc e250ff6
groupware: rewrite JMAP integration test to be more reusable, and upg…
pbleser-oc 3582a10
groupware: improve jmap integration tests
pbleser-oc 337dbda
fixed connection reset issue. adapted make file to generate swagger d…
ScharfViktor 44b479c
docs(groupware): fix basepath in OpenAPI, /groupware instead of /grou…
pbleser-oc 1af143d
groupware: update @redocly/cli from 2.3.0 to 2.3.1
pbleser-oc 6ab30db
groupware: devtools: Stalwart: add internal LDAP configuration
pbleser-oc 3f978d7
groupware: make everything also work with the built-in LDAP and IDP
pbleser-oc 421995b
groupware: for /accounts/all/emails/latest/summary, rename the ?unrea…
pbleser-oc aebefe7
groupware: further updates to make everything work with the builtin L…
pbleser-oc b74058d
jmap: fix Email/set
pbleser-oc 4c4094e
docs(groupware): upgrade @redocly/cli 2.3.1 -> 2.4.0
pbleser-oc 2b71e11
groupware: implement email updating and email keyword updating endpoints
pbleser-oc e1c5730
groupware: add Mermaid diagrams to describe the two setup options
pbleser-oc 097d4e9
jmap: add GetInboxNameForMultipleAccounts
pbleser-oc 5101e76
groupware: try an alternative way to configure Stalwart dynamically i…
pbleser-oc 2258a57
groupware: jmap: don't collpase threads when searching for emails, an…
pbleser-oc 680e5f6
groupware: DEVELOPER.md: explain how to set a quota on a user using t…
pbleser-oc bcd1359
groupware: accept both '_' and '*' as the 'default account' placeholder
pbleser-oc 59a52e1
groupware: DEVELOPER.md: add note explaining LDAPTLS_REQCERT
pbleser-oc 065127f
groupware: fix devtools LDAP passwords, as it was breaking regular op…
pbleser-oc 035797c
groupware: fix NPE when one of the accounts is a group account
pbleser-oc c219f1a
groupware: add instructions for using stalwart-admin
pbleser-oc 90e8470
groupware:
pbleser-oc 3c386df
groupware: add identity deletion
pbleser-oc 9d4ec05
groupware: add email HTML sanitization
pbleser-oc f1d8d0f
groupware: add searching emails by their Message-Id + retrieving an e…
pbleser-oc 518bdfd
groupware: add the Retry-After header in responses when the session c…
pbleser-oc 1f550c3
groupware: add markAsSeen=true to mark an email as $seen before it is
pbleser-oc f8e4d8c
groupware: add headers Unmatched-Path and Unsupported-Method to make
pbleser-oc 2541bb5
groupware: improve email sanitization by using the mime package to pa…
pbleser-oc c230888
groupware: add threadSize property in the email summary endpoint
pbleser-oc 438e35a
groupware: fix keyword patching syntax for markAsSeen=true
pbleser-oc 1b618e5
groupware: fix keyword patching syntax for adding and removing email …
pbleser-oc 6d434e2
groupware: introduce constants for Email property names, see EmailSum…
pbleser-oc 5ae69ed
groupware: add threadSize in email-by-id response
pbleser-oc 5b98fee
upgrade to Stalwart 0.14.0
pbleser-oc 463c947
groupware: add recipe for using ldapsearch in an Alpine container to …
pbleser-oc 81cec70
groupware: add ContactCard operations
pbleser-oc 5d1709f
groupware: add threadCount to /groupware/accounts/{accountId}/mailbox…
pbleser-oc 440e66b
groupware: add missing total,limit,offset attributes in the QueryEmai…
pbleser-oc f6d869b
groupware: fix compilation in tests after recent changes
pbleser-oc 127540b
groupware: actually add total and limit to the email summary endpoint
pbleser-oc 492f9b8
groupware: fix creating contacts
pbleser-oc 64c2ee9
groupware: change /accounts endpoint to return an array with the acco…
pbleser-oc c54ce3f
groupware: minor: reorganize the route nesting
pbleser-oc 93603b5
groupware: jmap: fix id -> blobId attribute when uploading a blob
pbleser-oc b065725
groupware: also change accounts to an array instead of a map in the r…
pbleser-oc 1d998ec
groupware: add Mailbox sorting
pbleser-oc f442050
groupware: add ical blob parsing endpoint
pbleser-oc 16a3168
groupware: implement Mailbox modification endpoints + refactor ETag/s…
pbleser-oc a3033e4
groupware: implement/fix email submission
pbleser-oc 9a7b66e
groupware: add real calendars and events
pbleser-oc 159306b
groupware: move POST+DELETE of contacts and events as a top-level rou…
pbleser-oc 3fa95be
groupware: return identities with accounts in the /accounts endpoint
pbleser-oc 814bc0e
groupware: some fixes accordingly to the latest JMAP and jscalendarbi…
pbleser-oc 4f596ba
groupware: remove mock calendars and contacts
pbleser-oc c0415ff
groupware: fix deserialization of Event Alert Trigger types using map…
pbleser-oc 476b82d
groupware: improved integration test for email, fixed two bugs
pbleser-oc c1de965
groupware: add getting a contact by ID + add integration tests for co…
pbleser-oc 6de0c7b
groupware: fix blob uploading metadata and add 'POST /blobs' route
pbleser-oc e75c64b
groupware: fix recently introduced error with UploadedBlob with and w…
pbleser-oc f3572f7
groupware: stalwart: add the magic sharing.allow-directory-query conf…
pbleser-oc 9270c68
groupware: improve JMAP integration tests for ContactCards
pbleser-oc c24c187
groupware: improve JMAP ContactCard integration tests
pbleser-oc d788cee
groupware: refactor the JMAP integration tests
pbleser-oc deee89d
groupware: finalize JMAP events integration test, with multiple chang…
pbleser-oc db5c2a1
groupware: feature test improvements and upgrade to Stalwart 0.14.1
pbleser-oc 865da8b
groupware: add Object-Type and Account-Id response headers
pbleser-oc f346b98
groupware: response payload /groupware/accounts/{id}/emails should be…
pbleser-oc 6cf7ed8
groupware: fix email summaries and allow negative offsets
pbleser-oc 349bd20
groupware: JMAP WS push notifications support
pbleser-oc b5d3819
groupware: WS push improvements, add getting email changes to WS inte…
pbleser-oc b4cce7d
groupware: upgrade the Stalwart image in devtools from 0.14.0 to 0.14.1
pbleser-oc 746738a
groupware, auth-api: remove tracing and tracing configuration
pbleser-oc 3c5fa0f
groupware: fix missing casting to jmap.State after changes in pkg/jmap
pbleser-oc 5bee8ce
groupware: minor: remove network declaration in stalwart.yml
pbleser-oc f487376
groupware: refactor response objects to take a list of accountIds
pbleser-oc 0b2bfb8
groupware: add retrieving and adding mailboxIds for drafts and sent i…
pbleser-oc 1e6c97c
groupware: improve email submission and testing
pbleser-oc 0c299ad
groupware: add description and version annotations for env configurat…
pbleser-oc 4d0c8e9
groupware: fix failing pkg/jscalendar unit tests
pbleser-oc 4f10e18
groupware: fix failing pkg/jscontact unit tests
pbleser-oc b9ce1fe
groupware: shift some attributes of the Groupware object around, in d…
pbleser-oc 073eec1
groupware: update to Stalwart 0.15.0
pbleser-oc 5d5dd03
API documentation changes for groupware-apidocs
pbleser-oc 0fce463
fix go.mod by tidying after a significant rebase
pbleser-oc e9a49f7
groupware: update pnpm 10.28.0 -> 10.28.1
pbleser-oc 502d084
groupware: migrate to cobra instead of urfave
pbleser-oc 8457109
update redocly 2.14.5 -> 2.14.6
pbleser-oc 1b2e55f
groupware: change Makefile to use groupware-apidocs instead of go-swa…
pbleser-oc 1408c3d
groupware: more API examples
pbleser-oc 4778cd5
groupware: update README to new API documentation generation process,…
pbleser-oc e6b59c8
groupware: also update DEVELOPER.md with new OpenAPI documentation ge…
pbleser-oc File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
devtools/deployments/opencloud_full/config/keycloak/clients/groupware.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| { | ||
| "clientId": "groupware", | ||
| "name": "OpenCloud Groupware", | ||
| "description": "Used for authenticating automated HTTP clients of the OpenCloud Groupware API", | ||
| "rootUrl": "", | ||
| "adminUrl": "", | ||
| "baseUrl": "", | ||
| "surrogateAuthRequired": false, | ||
| "enabled": true, | ||
| "alwaysDisplayInConsole": false, | ||
| "clientAuthenticatorType": "client-secret", | ||
| "redirectUris": [ | ||
| "/*" | ||
| ], | ||
| "webOrigins": [ | ||
| "/*" | ||
| ], | ||
| "notBefore": 0, | ||
| "bearerOnly": false, | ||
| "consentRequired": false, | ||
| "standardFlowEnabled": true, | ||
| "implicitFlowEnabled": false, | ||
| "directAccessGrantsEnabled": true, | ||
| "serviceAccountsEnabled": false, | ||
| "publicClient": true, | ||
| "frontchannelLogout": true, | ||
| "protocol": "openid-connect", | ||
| "attributes": { | ||
| "oidc.ciba.grant.enabled": "false", | ||
| "backchannel.logout.session.required": "true", | ||
| "oauth2.device.authorization.grant.enabled": "false", | ||
| "backchannel.logout.revoke.offline.tokens": "false" | ||
| }, | ||
| "authenticationFlowBindingOverrides": {}, | ||
| "fullScopeAllowed": true, | ||
| "nodeReRegistrationTimeout": -1, | ||
| "defaultClientScopes": [ | ||
| "web-origins", | ||
| "acr", | ||
| "profile", | ||
| "roles", | ||
| "groups", | ||
| "OpenCloudUnique_ID", | ||
| "basic", | ||
| "email" | ||
| ], | ||
| "optionalClientScopes": [ | ||
| "address", | ||
| "phone", | ||
| "offline_access", | ||
| "microprofile-jwt" | ||
| ], | ||
| "access": { | ||
| "view": true, | ||
| "configure": true, | ||
| "manage": true | ||
| } | ||
| } |
26 changes: 26 additions & 0 deletions
26
devtools/deployments/opencloud_full/config/ldap/ldif/11_ppolicy.ldif
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| dn: ou=policies,dc=opencloud,dc=eu | ||
| objectClass: organizationalUnit | ||
| objectClass: top | ||
| ou: policies | ||
|
|
||
| dn: cn=default,ou=policies,dc=opencloud,dc=eu | ||
| cn: default | ||
| objectClass: pwdPolicy | ||
| objectClass: person | ||
| objectClass: top | ||
| pwdAllowUserChange: TRUE | ||
| pwdAttribute: userPassword | ||
| pwdCheckQuality: 0 | ||
| pwdExpireWarning: 600 | ||
| pwdFailureCountInterval: 30 | ||
| pwdGraceAuthNLimit: 5 | ||
| pwdInHistory: 5 | ||
| pwdLockout: FALSE | ||
| pwdLockoutDuration: 0 | ||
| pwdMaxAge: 0 | ||
| pwdMaxFailure: 5 | ||
| pwdMinAge: 0 | ||
| pwdMinLength: 1 | ||
| pwdMustChange: FALSE | ||
| pwdSafeModify: FALSE | ||
| sn: default |
21 changes: 21 additions & 0 deletions
21
devtools/deployments/opencloud_full/config/stalwart/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| # Stalwart Configuration | ||
|
|
||
| The mechanics are currently to mount a different configuration file depending on the environment, as we support two scenarios that are described in [`services/groupware/DEVELOPER.md`](../../../../../services/groupware/DEVELOPER.md): | ||
|
|
||
| * «production» setup, with OpenLDAP and Keycloak containers | ||
| * «homelab» setup, with the built-in IDM (LDAP) and IDP that run as part of the `opencloud` container | ||
|
|
||
| The Docker Compose setup (in [`stalwart.yml`](../../stalwart.yml)) mounts either [`idmldap.toml`](./idmldap.toml) or [`ldap.toml`](./ldap.toml) depending on how the variable `STALWART_AUTH_DIRECTORY` is set, which is either `idmldap` for the homelab setup, or `ldap` for the production setup. | ||
|
|
||
| This is thus all done automatically, but whenever changes are performed to Stalwart configuration files, they must be reflected across those two files, to keep them in sync, as the only entry that should differ is this one: | ||
|
|
||
| ```ruby | ||
| storage.directory = "ldap" | ||
| ``` | ||
|
|
||
| or this: | ||
|
|
||
| ```ruby | ||
| storage.directory = "idmldap" | ||
| ``` | ||
|
|
110 changes: 110 additions & 0 deletions
110
devtools/deployments/opencloud_full/config/stalwart/config.toml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,110 @@ | ||
| authentication.fallback-admin.secret = "$6$4qPYDVhaUHkKcY7s$bB6qhcukb9oFNYRIvaDZgbwxrMa2RvF5dumCjkBFdX19lSNqrgKltf3aPrFMuQQKkZpK2YNuQ83hB1B3NiWzj." | ||
| authentication.fallback-admin.user = "mailadmin" | ||
| authentication.master.secret = "$6$4qPYDVhaUHkKcY7s$bB6qhcukb9oFNYRIvaDZgbwxrMa2RvF5dumCjkBFdX19lSNqrgKltf3aPrFMuQQKkZpK2YNuQ83hB1B3NiWzj." | ||
| authentication.master.user = "master" | ||
| directory.idmldap.attributes.class = "objectClass" | ||
| directory.idmldap.attributes.description = "displayName" | ||
| directory.idmldap.attributes.email = "mail" | ||
| directory.idmldap.attributes.groups = "memberOf" | ||
| directory.idmldap.attributes.name = "uid" | ||
| directory.idmldap.attributes.secret = "userPassword" | ||
| directory.idmldap.base-dn = "o=libregraph-idm" | ||
| directory.idmldap.bind.auth.method = "default" | ||
| directory.idmldap.bind.dn = "uid=reva,ou=sysusers,o=libregraph-idm" | ||
| directory.idmldap.bind.secret = "admin" | ||
| directory.idmldap.cache.size = 1048576 | ||
| directory.idmldap.cache.ttl.negative = "10m" | ||
| directory.idmldap.cache.ttl.positive = "1h" | ||
| directory.idmldap.filter.email = "(&(|(objectClass=person)(objectClass=groupOfNames))(mail=?))" | ||
| directory.idmldap.filter.name = "(&(|(objectClass=person)(objectClass=groupOfNames))(uid=?))" | ||
| directory.idmldap.timeout = "15s" | ||
| directory.idmldap.tls.allow-invalid-certs = true | ||
| directory.idmldap.tls.enable = true | ||
| directory.idmldap.type = "ldap" | ||
| directory.idmldap.url = "ldaps://opencloud:9235" | ||
| directory.keycloak.auth.method = "user-token" | ||
| directory.keycloak.cache.size = 1048576 | ||
| directory.keycloak.cache.ttl.negative = "10m" | ||
| directory.keycloak.cache.ttl.positive = "1h" | ||
| directory.keycloak.endpoint.method = "introspect" | ||
| directory.keycloak.endpoint.url = "http://keycloak:8080/realms/openCloud/protocol/openid-connect/userinfo" | ||
| directory.keycloak.fields.email = "email" | ||
| directory.keycloak.fields.full-name = "name" | ||
| directory.keycloak.fields.username = "preferred_username" | ||
| directory.keycloak.timeout = "15s" | ||
| directory.keycloak.type = "oidc" | ||
| directory.ldap.attributes.class = "objectClass" | ||
| directory.ldap.attributes.description = "displayName" | ||
| directory.ldap.attributes.email = "mail" | ||
| directory.ldap.attributes.email-alias = "mailAlias" | ||
| directory.ldap.attributes.groups = "memberOf" | ||
| directory.ldap.attributes.name = "uid" | ||
| directory.ldap.attributes.secret = "userPassword" | ||
| directory.ldap.attributes.secret-changed = "pwdChangedTime" | ||
| directory.ldap.base-dn = "dc=opencloud,dc=eu" | ||
| directory.ldap.bind.auth.dn = "cn=?,ou=users,dc=opencloud,dc=eu" | ||
| directory.ldap.bind.auth.enable = true | ||
| directory.ldap.bind.auth.search = true | ||
| directory.ldap.bind.dn = "cn=admin,dc=opencloud,dc=eu" | ||
| directory.ldap.bind.secret = "admin" | ||
| directory.ldap.cache.ttl.negative = "10m" | ||
| directory.ldap.cache.ttl.positive = "1h" | ||
| directory.ldap.filter.email = "(&(|(objectClass=person)(objectClass=groupOfNames))(|(uid=?)(mail=?)(mailAlias=?)(cn=?)))" | ||
| directory.ldap.filter.name = "(&(|(objectClass=person)(objectClass=groupOfNames))(|(uid=?)(cn=?)))" | ||
| directory.ldap.timeout = "5s" | ||
| directory.ldap.tls.allow-invalid-certs = true | ||
| directory.ldap.tls.enable = true | ||
| directory.ldap.type = "ldap" | ||
| directory.ldap.url = "ldap://ldap-server:1389" | ||
| http.allowed-endpoint = 200 | ||
| http.hsts = true | ||
| http.permissive-cors = false | ||
| http.url = "'https://' + config_get('server.hostname')" | ||
| http.use-x-forwarded = true | ||
| metrics.prometheus.auth.secret = "secret" | ||
| metrics.prometheus.auth.username = "metrics" | ||
| metrics.prometheus.enable = true | ||
| server.listener.http.bind = "0.0.0.0:8080" | ||
| server.listener.http.protocol = "http" | ||
| server.listener.https.bind = "0.0.0.0:443" | ||
| server.listener.https.protocol = "http" | ||
| server.listener.https.tls.implicit = true | ||
| server.listener.imap.bind = "0.0.0.0:143" | ||
| server.listener.imap.protocol = "imap" | ||
| server.listener.imaptls.bind = "0.0.0.0:993" | ||
| server.listener.imaptls.protocol = "imap" | ||
| server.listener.imaptls.tls.implicit = true | ||
| server.listener.pop3.bind = "0.0.0.0:110" | ||
| server.listener.pop3.protocol = "pop3" | ||
| server.listener.pop3s.bind = "0.0.0.0:995" | ||
| server.listener.pop3s.protocol = "pop3" | ||
| server.listener.pop3s.tls.implicit = true | ||
| server.listener.sieve.bind = "0.0.0.0:4190" | ||
| server.listener.sieve.protocol = "managesieve" | ||
| server.listener.smtp.bind = "0.0.0.0:25" | ||
| server.listener.smtp.protocol = "smtp" | ||
| server.listener.submission.bind = "0.0.0.0:587" | ||
| server.listener.submission.protocol = "smtp" | ||
| server.listener.submissions.bind = "0.0.0.0:465" | ||
| server.listener.submissions.protocol = "smtp" | ||
| server.listener.submissions.tls.implicit = true | ||
| server.max-connections = 8192 | ||
| server.socket.backlog = 1024 | ||
| server.socket.nodelay = true | ||
| server.socket.reuse-addr = true | ||
| server.socket.reuse-port = true | ||
| storage.blob = "rocksdb" | ||
| storage.data = "rocksdb" | ||
| storage.directory = "%{env:STALWART_AUTH_DIRECTORY}%" | ||
| storage.fts = "rocksdb" | ||
| storage.lookup = "rocksdb" | ||
| store.rocksdb.compression = "lz4" | ||
| store.rocksdb.path = "/opt/stalwart/data" | ||
| store.rocksdb.type = "rocksdb" | ||
| tracer.console.ansi = true | ||
| tracer.console.buffered = true | ||
| tracer.console.enable = true | ||
| tracer.console.level = "trace" | ||
| tracer.console.lossy = false | ||
| tracer.console.multiline = false | ||
| tracer.console.type = "stdout" |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.