2022-01-18 22:50:32 +01:00
# Changelog
2011-09-27 07:54:26 +02:00
2025-06-13 07:10:33 +02:00
## 3.5.5.dev
* Improve: [auth] ldap: do not read server info by bind to avoid needless network traffic
2025-06-13 07:35:25 +02:00
* Fix: [storage] broken support of 'folder_umask'
2025-06-13 07:10:33 +02:00
2025-05-25 08:50:29 +02:00
## 3.5.4
2025-05-16 05:39:19 +02:00
* Improve: item filter enhanced for 3rd level supporting VALARM and honoring TRIGGER (offset or absolute)
2025-05-17 12:51:40 +02:00
* Enhancement: add Caddy config file example (see contrib directory)
2025-05-15 05:57:55 +02:00
2025-05-11 17:15:10 +02:00
## 3.5.3
2025-04-29 21:30:36 +02:00
* Add: [auth] htpasswd: support for Argon2 hashes
2025-05-11 17:14:28 +02:00
* Improve: catch error on calendar collection upload and display problematic item content on debug level
2025-05-07 19:47:50 +02:00
* Add: [auth] urldecode_username: optional decode provided username (e.g. encoded email address)
2025-04-29 21:30:36 +02:00
2025-04-23 20:38:22 +02:00
## 3.5.2
2025-04-21 22:20:04 +02:00
* Adjust: [auth] ldap: use ldap_user_attr either first element of list or directly
2025-04-21 22:20:46 +02:00
* Fix: use value of property for time range filter
2025-04-21 22:36:21 +02:00
* Add: [auth] ldap: option ldap_security (none, startls, tls) for additional support of STARTTLS, deprecate ldap_use_ssl
2025-04-22 21:33:02 +02:00
* Fix: return 204 instead of 201 in case PUT updates an item
2025-04-22 22:03:35 +02:00
* Extend: log PYTHONPATH on startup if found in environment
2025-04-21 19:27:22 +02:00
2025-04-05 08:16:12 +02:00
## 3.5.1
2025-03-19 06:17:34 +01:00
* Fix: auth/htpasswd related to detection and use of bcrypt
2025-03-25 07:11:36 +01:00
* Add: option [auth] ldap_ignore_attribute_create_modify_timestamp for support of Authentik LDAP server
2025-03-27 08:36:27 +01:00
* Extend: [storage] hook supports now placeholder for "cwd" and "path" (and catches unsupported placeholders)
2025-03-29 07:03:29 +01:00
* Fix: location of lock file for in case of dedicated cache folder is activated
2025-03-29 07:04:32 +01:00
* Extend: log and create base folders if not existing during startup
2025-04-21 22:20:04 +02:00
* Adjust: [auth] ldap: use ldap_user_attr as string
2025-03-19 06:17:34 +01:00
2025-03-16 06:54:54 +01:00
## 3.5.0
2025-02-02 09:08:57 +01:00
* Add: option [auth] type oauth2 by code migration from https://gitlab.mim-libre.fr/alphabet/radicale_oauth/-/blob/dev/oauth2/
2025-02-11 16:48:48 +01:00
* Fix: catch OS errors on PUT MKCOL MKCALENDAR MOVE PROPPATCH (insufficient storage, access denied, internal server error)
2025-02-18 06:13:11 +01:00
* Test: skip bcrypt related tests if module is missing
2025-02-21 07:41:54 +01:00
* Improve: relax mtime check on storage filesystem, change test file location to "collection-root" directory
2025-02-22 18:00:23 +01:00
* Add: option [auth] type pam by code migration from v1, add new option pam_serivce
2025-02-25 06:21:15 +01:00
* Cosmetics: extend list of used modules with their version on startup
2025-02-27 21:03:01 +01:00
* Improve: WebUI
2025-03-02 09:09:11 +01:00
* Add: option [server] script_name for reverse proxy base_prefix handling
2025-03-02 10:28:46 +01:00
* Fix: proper base_prefix stripping if running behind reverse proxy
2025-03-02 09:14:13 +01:00
* Review: Apache reverse proxy config example
2025-03-06 08:32:09 +01:00
* Add: on-the-fly link activation and default content adjustment in case of bundled InfCloud (tested with 0.13.1)
2025-03-07 07:40:39 +01:00
* Adjust: [auth] imap: use AUTHENTICATE PLAIN instead of LOGIN towards remote IMAP server
2025-03-08 17:00:01 +01:00
* Improve: log client IP on SSL error and SSL protocol+cipher if successful
2025-03-08 17:29:47 +01:00
* Improve: catch htpasswd hash verification errors
2025-03-09 08:53:49 +01:00
* Improve: add support for more bcrypt algos on autodetection, extend logging for autodetection fallback to PLAIN in case of hash length is not matching
2025-03-14 21:35:31 +01:00
* Add: warning in case of started standalone and not listen on loopback interface but trusting external authentication
2025-03-15 14:36:40 +01:00
* Adjust: Change default [auth] type from "none" to "denyall" for secure-by-default
2025-02-02 09:08:57 +01:00
2025-01-26 08:15:14 +01:00
## 3.4.1
2025-01-14 08:57:35 +01:00
* Add: option [auth] dovecot_connection_type / dovecot_host / dovecot_port
2025-01-16 05:59:52 +01:00
* Add: option [auth] type imap by code migration from https://github.com/Unrud/RadicaleIMAP/
2025-01-14 08:48:58 +01:00
2025-01-09 20:06:57 +01:00
## 3.4.0
2024-12-31 08:12:49 +01:00
* Add: option [auth] cache_logins/cache_successful_logins_expiry/cache_failed_logins for caching logins
2024-12-31 17:09:29 +01:00
* Improve: [auth] log used hash method and result on debug for htpasswd authentication
2025-01-01 17:36:33 +01:00
* Improve: [auth] htpasswd file now read and verified on start
* Add: option [auth] htpasswd_cache to automatic re-read triggered on change (mtime or size) instead reading on each request
2024-12-31 17:09:29 +01:00
* Improve: [auth] htpasswd: module 'bcrypt' is no longer mandatory in case digest method not used in file
2025-01-01 17:36:33 +01:00
* Improve: [auth] successful/failed login logs now type and whether result was taken from cache
2025-01-02 23:19:58 +01:00
* Improve: [auth] constant execution time for failed logins independent of external backend or by htpasswd used digest method
2025-01-03 00:42:08 +01:00
* Drop: support for Python 3.8
2025-01-03 09:16:22 +01:00
* Add: option [auth] ldap_user_attribute
2025-01-03 21:56:25 +01:00
* Add: option [auth] ldap_groups_attribute as a more flexible replacement of removed ldap_load_groups
2024-12-30 08:15:55 +01:00
2024-12-28 08:05:39 +01:00
## 3.3.3
2024-12-16 08:58:42 +01:00
* Add: display mtime_ns precision of storage folder with condition warning if too less
2024-12-16 20:34:38 +01:00
* Improve: disable fsync during storage verification
2024-12-18 20:51:33 +01:00
* Improve: suppress duplicate log lines on startup
2024-12-24 08:25:31 +01:00
* Contrib: logwatch config and script
2024-12-24 12:04:09 +01:00
* Improve: log precondition result on PUT request
2024-12-16 08:58:42 +01:00
2024-12-15 13:08:59 +01:00
## 3.3.2
2024-12-03 21:19:12 +01:00
* Fix: debug logging in rights/from_file
2024-12-10 08:23:00 +01:00
* Add: option [storage] use_cache_subfolder_for_item for storing 'item' cache outside collection-root
2024-12-05 07:54:03 +01:00
* Fix: ignore empty RRULESET in item
2024-12-10 08:23:00 +01:00
* Add: option [storage] filesystem_cache_folder for defining location of cache outside collection-root
* Add: option [storage] use_cache_subfolder_for_history for storing 'history' cache outside collection-root
* Add: option [storage] use_cache_subfolder_for_synctoken for storing 'sync-token' cache outside collection-root
* Add: option [storage] folder_umask for configuration of umask (overwrite system-default)
2024-12-10 08:26:32 +01:00
* Fix: also remove 'item' from cache on delete
2024-12-14 08:21:54 +01:00
* Improve: avoid automatically invalid cache on upgrade in case no change on cache structure
2024-12-14 08:22:22 +01:00
* Improve: log important module versions on startup
2024-12-14 09:04:15 +01:00
* Improve: auth.ldap config shown on startup, terminate in case no password is supplied for bind user
2024-12-14 09:25:36 +01:00
* Add: option [auth] uc_username for uppercase conversion (similar to existing lc_username)
2024-12-15 12:21:39 +01:00
* Add: option [logging] storage_cache_action_on_debug for conditional logging
2024-12-15 08:29:53 +01:00
* Fix: set PRODID on collection upload (instead of vobject is inserting default one)
2024-12-15 11:41:08 +01:00
* Add: option [storage] use_mtime_and_size_for_item_cache for changing cache lookup from SHA256 to mtime_ns + size
* Fix: buggy cache file content creation on collection upload
2024-12-03 21:19:12 +01:00
2024-11-24 19:02:54 +01:00
## 3.3.1
2024-11-01 21:17:40 +01:00
* Add: option [auth] type=dovecot
2024-10-29 07:19:54 +01:00
* Enhancement: log content in case of multiple main components error
2024-11-14 07:28:57 +01:00
* Fix: expand does not take timezones into account
* Fix: expand does not support overridden recurring events
* Fix: expand does not honor start and end times
2024-11-14 07:30:18 +01:00
* Add: option [server] protocol + ciphersuite for optional restrictions on SSL socket
2024-11-24 16:56:00 +01:00
* Enhancement: [storage] hook documentation, logging, error behavior (no longer throwing an exception)
2024-10-29 07:19:54 +01:00
2024-10-13 17:58:37 +02:00
## 3.3.0
2024-09-01 17:13:08 +02:00
2024-09-01 17:19:53 +02:00
* Adjustment: option [auth] htpasswd_encryption change default from "md5" to "autodetect"
2024-09-29 17:29:28 +02:00
* Add: option [auth] type=ldap with (group) rights management via LDAP/LDAPS
2024-09-30 21:21:33 +02:00
* Enhancement: permit_delete_collection can be now controlled also per collection by rights 'D' or 'd'
2024-09-30 21:45:43 +02:00
* Add: option [rights] permit_overwrite_collection (default=True) which can be also controlled per collection by rights 'O' or 'o'
2024-10-12 07:25:29 +02:00
* Fix: only expand VEVENT on REPORT request containing 'expand'
2024-10-12 19:59:56 +02:00
* Adjustment: switch from setup.py to pyproject.toml (but keep files for legacy packaging)
2024-10-12 07:40:05 +02:00
* Adjustment: 'rights' file is now read only during startup
* Cleanup: Python 3.7 leftovers
2024-09-01 17:19:53 +02:00
2024-08-30 06:17:00 +02:00
## 3.2.3
2024-08-27 21:44:57 +02:00
* Add: support for Python 3.13
2024-08-15 15:03:31 -06:00
* Fix: Using icalendar's tzinfo on created datetime to fix issue with icalendar
2024-08-27 21:44:57 +02:00
* Fix: typos in code
2024-08-15 15:03:31 -06:00
* Enhancement: Added free-busy report
* Enhancement: Added 'max_freebusy_occurrences` setting to avoid potential DOS on reports
2024-07-12 05:22:13 +02:00
* Enhancement: remove unexpected control codes from uploaded items
2024-08-27 21:44:57 +02:00
* Enhancement: add 'strip_domain' setting for username handling
2024-08-28 09:00:41 +02:00
* Enhancement: add option to toggle debug log of rights rule with doesn't match
2024-08-04 08:23:11 +02:00
* Drop: remove unused requirement "typeguard"
2024-08-15 15:03:31 -06:00
* Improve: Refactored some date parsing code
2024-06-18 19:00:41 +02:00
## 3.2.2
2024-06-07 06:47:36 +02:00
* Enhancement: add support for auth.type=denyall (will be default for security reasons in upcoming releases)
2024-06-07 08:37:04 +02:00
* Enhancement: display warning in case only default config is active
* Enhancement: display warning in case no user authentication is active
2024-06-18 17:45:38 +02:00
* Enhancement: add option to skip broken item to avoid triggering exception (default: enabled)
2024-06-11 22:47:59 +02:00
* Enhancement: add support for predefined collections for new users
2024-06-18 17:45:38 +02:00
* Enhancement: add options to enable several parts in debug log like backtrace, request_header, request_content, response_content (default: disabled)
2024-06-11 22:47:59 +02:00
* Enhancement: rights/from_file: display resulting permission of a match in debug log
2024-06-18 17:57:55 +02:00
* Enhancement: add Apache config file example (see contrib directory)
* Fix: "verify-collection" skips non-collection directories, logging improved
2024-06-02 12:12:32 +02:00
2024-06-02 11:35:41 +02:00
## 3.2.1
* Enhancement: add option for logging bad PUT request content
* Enhancement: extend logging with step where bad PUT request failed
* Fix: support for recurrence "full day"
* Fix: list of web_files related to HTML pages
* Test: update/adjustments for workflows (pytest>=7, typeguard< 4.3 )
2024-05-03 20:12:57 +02:00
2024-05-03 20:11:25 +02:00
## 3.2.0
2024-03-18 21:01:34 +01:00
* Enhancement: add hook support for event changes+deletion hooks (initial support: "rabbitmq")
* Dependency: pika >= 1.1.0
* Enhancement: add support for webcal subscriptions
* Enhancement: major update of WebUI (design+features)
2024-03-22 07:24:12 +01:00
* Adjust: change default loglevel to "info"
2024-04-06 07:13:04 +02:00
* Enhancement: support "expand-property" on REPORT request
2024-05-03 20:11:10 +02:00
* Drop: support for Python 3.7 (EOSL, can't be tested anymore)
2024-04-27 21:17:56 +02:00
* Fix: allow quoted-printable encoding for vObjects
2024-03-22 07:24:12 +01:00
2024-03-18 05:54:41 +01:00
## 3.1.9
2020-04-26 16:33:01 +02:00
2024-03-06 07:43:01 +01:00
* Add: support for Python 3.11 + 3.12
* Drop: support for Python 3.6
* Fix: MOVE in case listen on non-standard ports or behind reverse proxy
* Fix: stricter requirements of Python 3.11
* Fix: HTML pages
* Fix: Main Component is missing when only recurrence id exists
2024-03-06 22:57:04 +01:00
* Fix: passlib don't support bcrypt>=4.1
2024-03-09 07:34:15 +01:00
* Fix: web login now proper encodes passwords containing %XX (hexdigits)
2024-03-06 07:43:01 +01:00
* Enhancement: user-selectable log formats
* Enhancement: autodetect logging to systemd journal
* Enhancement: test code
2024-03-09 07:34:15 +01:00
* Enhancement: option for global permit to delete collection
2024-03-12 06:13:54 +01:00
* Enhancement: auth type 'htpasswd' supports now 'htpasswd_encryption' sha256/sha512 and "autodetect" for smooth transition
2024-03-06 07:43:01 +01:00
* Improve: Dockerfiles
2024-03-15 07:36:00 +01:00
* Improve: server socket listen code + address format in log
2024-03-06 07:43:01 +01:00
* Update: documentations + examples
* Dependency: limit typegard version < 3
2024-03-18 05:54:41 +01:00
* General: code cosmetics
2024-03-06 07:43:01 +01:00
2022-07-14 22:06:48 +02:00
## 3.1.8
* Fix setuptools requirement if installing wheel
* Tests: Switch from `python setup.py test` to `tox`
* Small changes to build system configuration and tests
2022-04-20 17:54:54 +02:00
## 3.1.7
* Fix random href fallback
2022-04-18 23:00:04 +02:00
## 3.1.6
* Ignore `Not a directory` error for optional config paths
* Fix upload of whole address book/calendar with UIDs that collide on
case-insensitive filesystem
* Remove runtime dependency on setuptools for Python>=3.9
* Windows: Block ADS paths
2022-02-08 16:46:49 +01:00
## 3.1.5
2022-02-07 14:42:50 +01:00
* Ignore configuration file if access is denied
* Use F_FULLFSYNC with PyPy on MacOS
* Fallback if F_FULLFSYNC is not supported by the filesystem
2022-02-01 19:58:01 +01:00
## 3.1.4
2022-02-07 14:42:34 +01:00
* Fallback if RENAME_EXCHANGE is not supported by the filesystem
2022-02-01 19:35:02 +01:00
* Assume POSIX compatibility if `sys.platform` is not `win32`
2022-01-26 21:53:15 +01:00
## 3.1.3
* Redirect '…/.well-known/caldav' and '…/.well-known/carddav' to base prefix
* Warning instead of error when base prefix ends with '/'
2022-01-22 00:09:34 +01:00
## 3.1.2
2022-01-22 00:34:38 +01:00
* Verify that base prefix starts with '/' but doesn't end with '/'
2022-01-22 00:09:34 +01:00
* Improve base prefix log message
* Never send body for HEAD requests (again)
2022-01-19 00:27:56 +01:00
## 3.1.1
2022-01-15 23:58:58 +01:00
* Workaround for contact photo bug in InfCloud
2022-01-18 18:24:18 +01:00
* Redirect GET and HEAD requests under `/.web` to sanitized path
2022-01-15 23:58:58 +01:00
* Set `Content-Length` header for HEAD requests
* Never send body for HEAD requests
* Improve error messages for `from_file` rights backend
* Don't sanitize WSGI script name
2021-12-26 12:16:42 +01:00
## 3.1.0
2021-12-14 00:25:34 +01:00
* Single `<D:propstat>` element in PROPPATCH response
* Allow multiple `<D:set>` and `<D:remove>` elements
* Improve log messages
* Fix date filter
* Improve sanitization of collection properties
* Cancel mkcalendar request on error
* Use **renameat2** on Linux for atomic overwriting of collections
* Command Line Parser
* Disallow abbreviated arguments
* Support backend specific options and HTTP headers
* Optional argument for boolean options
2021-12-24 18:13:18 +01:00
* Load no config file for `--config` without argument
2021-12-14 00:25:34 +01:00
* Allow float for server->timeout setting
* Fix **is-not-defined** filter in **addressbook-query** report
* Add python type hints
* Add **multifilesystem_nolock** storage
* Add support for Python 3.9 and 3.10
* Drop support for Python 3.5
2021-12-20 19:35:22 +01:00
* Fix compatibility with Evolution (Exceptions from recurrence rules)
2021-12-14 00:25:34 +01:00
2020-09-14 21:35:24 +02:00
## 3.0.6
2021-12-14 00:25:31 +01:00
* Allow web plugins to handle POST requests
2020-09-14 21:35:24 +02:00
2020-08-31 13:54:50 +02:00
## 3.0.5
2021-12-14 00:25:31 +01:00
* Start storage hook in own process group
* Kill storage hook on error or exit
* Try to kill child processes of storage hook
* Internal Server: Exit immediately when signal is received
(do not wait for clients or storage hook to finish)
2020-08-31 13:54:50 +02:00
2020-08-18 22:57:17 +02:00
## 3.0.4
2021-12-14 00:25:31 +01:00
* Fix internal server on FreeBSD
2020-08-18 22:57:17 +02:00
2020-06-06 21:07:27 +02:00
## 3.0.3
2021-12-14 00:25:31 +01:00
* Fix internal server on OpenBSD
2020-06-06 21:07:27 +02:00
2020-05-24 13:47:42 +02:00
## 3.0.2
2021-12-14 00:25:31 +01:00
* Use 403 response for supported-report and valid-sync-token errors
* Internal server: Handle missing IPv6 support
2020-05-24 13:47:42 +02:00
2020-05-22 16:37:27 +02:00
## 3.0.1
2021-12-14 00:25:31 +01:00
* Fix XML error messages
2020-05-22 16:37:27 +02:00
2020-05-19 05:21:17 +02:00
## 3.0.0
2020-04-27 12:29:29 +02:00
This release is incompatible with previous releases.
See the upgrade checklist below.
2020-04-26 16:33:01 +02:00
2021-12-14 00:25:31 +01:00
* Parallel write requests
* Support PyPy
* Protect against XML denial-of-service attacks
* Check for duplicated UIDs in calendars/address books
* Only add missing UIDs for uploaded whole calendars/address books
* Switch from md5 to sha256 for UIDs and tokens
* Code cleanup:
* All plugin interfaces were simplified and are incompatible with
old plugins
* Major refactor
* Never sanitize paths multiple times (check if they are sanitized)
* Config
* Multiple configuration files separated by `:` (resp. `;`
on Windows)
* Optional configuration files by prepending file path with `?`
* Check validity of every configuration file and command line
arguments separately
* Report the source of invalid configuration parameters in
error messages
2020-04-27 12:29:29 +02:00
* Code cleanup:
2021-12-14 00:25:31 +01:00
* Store configuration as parsed values
* Use Schema that describes configuration and allow plugins to apply
their own schemas
* Mark internal settings with `_`
* Internal server
* Bind to IPv4 and IPv6 address, when both are available for hostname
* Set default address to `localhost:5232`
* Remove settings for SSL ciphers and protocol versions (enforce safe
defaults instead)
* Remove settings for file locking because they are of little use
* Remove daemonization (should be handled by service managers)
* Logging
* Replace complex Python logger configuration with simple
`logging.level` setting
* Write PID and `threadName` instead of cryptic id's in log messages
* Use `wsgi.errors` for logging (as required by the WSGI spec)
* Code cleanup:
* Don't pass logger object around (use `logging.getLogger()`
instead)
* Auth
* Use `md5` as default for `htpasswd_encryption` setting
* Move setting `realm` from section `server` to `auth`
* Rights
* Use permissions `RW` for non-leaf collections and `rw` for
address books/calendars
* New permission `i` that only allows access with HTTP method GET
(CalDAV/CardDAV is susceptible to expensive search requests)
* Web
* Add upload dialog for calendars/address books from file
* Show startup loading message
* Show warning if JavaScript is disabled
* Pass HTML Validator
* Storage
* Check for missing UIDs in items
* Check for child collections in address books and calendars
* Code cleanup:
* Split BaseCollection in BaseStorage and BaseCollection
2020-04-26 16:33:01 +02:00
## Upgrade checklist
2021-12-14 00:25:31 +01:00
* Config
* Some settings were removed
* The default of `auth.htpasswd_encryption` changed to `md5`
* The setting `server.realm` moved to `auth.realm`
* The setting `logging.debug` was replaced by `logging.level`
* The format of the `rights.file` configuration file changed:
* Permission `r` replaced by `Rr`
* Permission `w` replaced by `Ww`
* New permission `i` added as subset of `r`
* Replaced variable `%(login)s` by `{user}`
* Removed variable `%(path)s`
* `{` must be escaped as `{{` and `}` as `}}` in regexes
* File system storage
* The storage format is compatible with Radicale 2.x.x
* Run `radicale --verify-storage` to check for errors
* Custom plugins:
* `auth` and `web` plugins require minor adjustments
* `rights` plugins must be adapted to the new permission model
* `storage` plugins require major changes
2020-04-26 16:33:01 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.10 - Wild Radish
2018-08-14 19:35:25 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Update required versions for dependencies
* Get `RADICALE_CONFIG` from WSGI environ
* Improve HTTP status codes
* Fix race condition in storage lock creation
* Raise default limits for content length and timeout
* Log output from hook
2018-08-14 19:35:25 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.9 - Wild Radish
2018-04-20 22:53:42 +02:00
2018-04-21 10:45:01 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Specify versions for dependencies
* Move WSGI initialization into module
* Check if `REPORT` method is actually supported
* Include `rights` file in source distribution
* Specify `md5` and `bcrypt` as extras
* Improve logging messages
* Windows: Fix crash when item path is a directory
2018-04-20 22:53:42 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.8 - Wild Radish
2017-09-24 02:01:14 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Flush files before fsync'ing
2017-09-24 02:01:14 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.7 - Wild Radish
2017-09-17 14:04:04 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Don't print warning when cache format changes
* Add documentation for `BaseAuth`
* Add `is_authenticated2(login, user, password)` to `BaseAuth`
* Fix names of custom properties in PROPFIND requests with
`D:propname` or `D:allprop`
* Return all properties in PROPFIND requests with `D:propname` or
`D:allprop`
* Allow `D:displayname` property on all collections
* Answer with `D:unauthenticated` for `D:current-user-principal` property
when not logged in
* Remove non-existing `ICAL:calendar-color` and `C:calendar-timezone`
properties from PROPFIND requests with `D:propname` or `D:allprop`
* Add `D:owner` property to calendar and address book objects
* Remove `D:getetag` and `D:getlastmodified` properties from regular
collections
2020-04-26 16:31:52 +02:00
## 2.1.6 - Wild Radish
2017-09-11 19:32:34 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Fix content-type of VLIST
* Specify correct COMPONENT in content-type of VCALENDAR
* Cache COMPONENT of calendar objects (improves speed with some clients)
* Stricter parsing of filters
* Improve support for CardDAV filter
* Fix some smaller bugs in CalDAV filter
* Add X-WR-CALNAME and X-WR-CALDESC to calendars downloaded via HTTP/WebDAV
* Use X-WR-CALNAME and X-WR-CALDESC from calendars published via WebDAV
2017-09-11 19:32:34 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.5 - Wild Radish
2017-08-25 19:13:11 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Add `--verify-storage` command-line argument
* Allow comments in the htpasswd file
* Don't strip whitespaces from user names and passwords in the htpasswd file
* Remove cookies from logging output
* Allow uploads of whole collections with many components
* Show warning message if server.timeout is used with Python < 3.5.2
2017-08-25 19:13:11 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.4 - Wild Radish
2017-08-04 14:59:03 +02:00
2017-08-25 19:13:11 +02:00
This release is compatible with version 2.0.0.
2017-08-04 14:59:03 +02:00
2021-12-14 00:25:31 +01:00
* Fix incorrect time range matching and calculation for some edge-cases with
rescheduled recurrences
* Fix owner property
2017-08-04 14:59:03 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.3 - Wild Radish
2017-08-01 17:18:13 +02:00
2017-08-25 19:13:11 +02:00
This release is compatible with version 2.0.0.
2017-08-01 17:18:13 +02:00
2021-12-14 00:25:31 +01:00
* Enable timeout for SSL handshakes and move them out of the main thread
* Create cache entries during upload of items
* Stop built-in server on Windows when Ctrl+C is pressed
* Prevent slow down when multiple requests hit a collection during cache warm-up
2017-08-01 17:18:13 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.2 - Wild Radish
2017-07-24 04:22:57 +02:00
2017-08-25 19:13:11 +02:00
This release is compatible with version 2.0.0.
2017-07-24 04:22:57 +02:00
2021-12-14 00:25:31 +01:00
* Remove workarounds for bugs in VObject < 0.9.5
* Error checking of collection tags and associated components
* Improve error checking of uploaded collections and components
* Don't delete empty collection properties implicitly
* Improve logging of VObject serialization
2017-07-24 04:22:57 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.1 - Wild Radish Again
2017-07-01 00:12:04 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Add missing UIDs instead of failing
* Improve error checking of calendar and address book objects
* Fix upload of whole address books
2017-07-01 00:12:04 +02:00
2020-04-26 16:31:52 +02:00
## 2.1.0 - Wild Radish
2017-06-17 01:45:53 +02:00
This release is compatible with version 2.0.0.
2021-12-14 00:25:31 +01:00
* Built-in web interface for creating and managing address books and calendars
* can be extended with web plugins
* Much faster storage backend
* Significant reduction in memory usage
* Improved logging
* Include paths (of invalid items / requests) in log messages
* Include configuration values causing problems in log messages
* Log warning message for invalid requests by clients
* Log error message for invalid files in the storage backend
* No stack traces unless debugging is enabled
* Time range filter also regards overwritten recurrences
* Items that couldn't be filtered because of bugs in VObject are always
returned (and a warning message is logged)
* Basic error checking of configuration files
* File system locking isn't disabled implicitly anymore, instead a new
configuration option gets introduced
* The permissions of the lock file are not changed anymore
* Support for sync-token
* Support for client-side SSL certificates
* Rights plugins can decide if access to an item is granted explicitly
* Respond with 403 instead of 404 for principal collections of non-existing
users when `owner_only` plugin is used (information leakage)
* Authentication plugins can provide the login and password from the
environment
* new `remote_user` plugin, that gets the login from the `REMOTE_USER`
environment variable (for WSGI server)
* new `http_x_remote_user` plugin, that gets the login from the
`X-Remote-User` HTTP header (for reverse proxies)
2020-04-26 16:31:52 +02:00
## 2.0.0 - Little Big Radish
2017-04-15 15:51:05 +02:00
2020-03-28 09:36:06 +01:00
This feature is not compatible with the 1.x.x versions. Follow our
2021-12-14 00:25:31 +01:00
[migration guide ](https://radicale.org/2.1.html#documentation/migration-from-1xx-to-2xx )
if you want to switch from 1.x.x to 2.0.0.
* Support Python 3.3+ only, Python 2 is not supported anymore
* Keep only one simple filesystem-based storage system
* Remove built-in Git support
* Remove built-in authentication modules
* Keep the WSGI interface, use Python HTTP server by default
* Use a real iCal parser, rely on the "vobject" external module
* Add a solid calendar discovery
* Respect the difference between "files" and "folders", don't rely on slashes
* Remove the calendar creation with GET requests
* Be stateless
* Use a file locker
* Add threading
* Get atomic writes
* Support new filters
* Support read-only permissions
* Allow External plugins for authentication, rights management, storage and
version control
2017-04-15 15:51:05 +02:00
2020-04-26 16:31:52 +02:00
## 1.1.4 - Fifth Law of Nature
2017-06-25 09:55:41 +02:00
2021-12-14 00:25:31 +01:00
* Use `shutil.move` for `--export-storage`
2017-06-25 09:55:41 +02:00
2020-04-26 16:31:52 +02:00
## 1.1.3 - Fourth Law of Nature
2017-05-27 11:15:57 +02:00
2021-12-14 00:25:31 +01:00
* Add a `--export-storage=FOLDER` command-line argument (by Unrud, see #606 )
2017-05-27 11:15:57 +02:00
2020-04-26 16:31:52 +02:00
## 1.1.2 - Third Law of Nature
2017-04-19 14:04:09 +02:00
2021-12-14 00:25:31 +01:00
* **Security fix**: Add a random timer to avoid timing oracles and simple
bruteforce attacks when using the htpasswd authentication method.
* Various minor fixes.
2017-04-19 14:04:09 +02:00
2020-04-26 16:31:52 +02:00
## 1.1.1 - Second Law of Nature
2016-01-07 23:31:19 +01:00
2021-12-14 00:25:31 +01:00
* Fix the owner_write rights rule
2016-01-07 23:31:19 +01:00
2020-04-26 16:31:52 +02:00
## 1.1 - Law of Nature
2015-12-31 12:51:23 +01:00
One feature in this release is **not backward compatible** :
2021-12-14 00:25:31 +01:00
* Use the first matching section for rights (inspired from daald)
2015-12-31 12:51:23 +01:00
Now, the first section matching the path and current user in your custom rights
file is used. In the previous versions, the most permissive rights of all the
matching sections were applied. This new behaviour gives a simple way to make
specific rules at the top of the file independant from the generic ones.
Many **improvements in this release are related to security** , you should
upgrade Radicale as soon as possible:
2021-12-14 00:25:31 +01:00
* Improve the regex used for well-known URIs (by Unrud)
* Prevent regex injection in rights management (by Unrud)
* Prevent crafted HTTP request from calling arbitrary functions (by Unrud)
* Improve URI sanitation and conversion to filesystem path (by Unrud)
* Decouple the daemon from its parent environment (by Unrud)
2015-12-31 12:51:23 +01:00
Some bugs have been fixed and little enhancements have been added:
2021-12-14 00:25:31 +01:00
* Assign new items to corret key (by Unrud)
* Avoid race condition in PID file creation (by Unrud)
* Improve the docker version (by cdpb)
* Encode message and commiter for git commits
* Test with Python 3.5
2015-12-31 12:51:23 +01:00
2020-04-26 16:31:52 +02:00
## 1.0.1 - Sunflower Again
2015-09-21 12:14:51 +02:00
2021-12-14 00:25:31 +01:00
* Update the version because of a **stupid** "feature"™ of PyPI
2015-09-21 12:14:51 +02:00
2020-04-26 16:31:52 +02:00
## 1.0 - Sunflower
2015-02-07 14:39:00 +01:00
2021-12-14 00:25:31 +01:00
* Enhanced performances (by Mathieu Dupuy)
* Add MD5-APR1 and BCRYPT for htpasswd-based authentication (by Jan-Philip Gehrcke)
* Use PAM service (by Stephen Paul Weber)
* Don't discard PROPPATCH on empty collections (by Markus Unterwaditzer)
* Write the path of the collection in the git message (by Matthew Monaco)
* Tests launched on Travis
2015-02-07 14:39:00 +01:00
2020-04-26 16:31:52 +02:00
## 0.10 - Lovely Endless Grass
2014-11-01 15:52:55 +01:00
2021-12-14 00:25:31 +01:00
* Support well-known URLs (by Mathieu Dupuy)
* Fix collection discovery (by Markus Unterwaditzer)
* Reload logger config on SIGHUP (by Élie Bouttier)
* Remove props files when deleting a collection (by Vincent Untz)
* Support salted SHA1 passwords (by Marc Kleine-Budde)
* Don't spam the logs about non-SSL IMAP connections to localhost (by Giel van Schijndel)
2014-11-01 15:52:55 +01:00
2020-04-26 16:31:52 +02:00
## 0.9 - Rivers
2013-08-23 15:58:13 +02:00
2021-12-14 00:25:31 +01:00
* Custom handlers for auth, storage and rights (by Sergey Fursov)
* 1-file-per-event storage (by Jean-Marc Martins)
* Git support for filesystem storages (by Jean-Marc Martins)
* DB storage working with PostgreSQL, MariaDB and SQLite (by Jean-Marc Martins)
* Clean rights manager based on regular expressions (by Sweil)
* Support of contacts for Apple's clients
* Support colors (by Jochen Sprickerhof)
* Decode URLs in XML (by Jean-Marc Martins)
* Fix PAM authentication (by Stepan Henek)
* Use consistent etags (by 9m66p93w)
* Use consistent sorting order (by Daniel Danner)
* Return 401 on unauthorized DELETE requests (by Eduard Braun)
* Move pid file creation in child process (by Mathieu Dupuy)
* Allow requests without base_prefix (by jheidemann)
2013-08-23 15:58:13 +02:00
2020-04-26 16:31:52 +02:00
## 0.8 - Rainbow
2013-07-09 13:08:15 +02:00
2021-12-14 00:25:31 +01:00
* New authentication and rights management modules (by Matthias Jordan)
* Experimental database storage
* Command-line option for custom configuration file (by Mark Adams)
* Root URL not at the root of a domain (by Clint Adams, Fabrice Bellet, Vincent Untz)
* Improved support for iCal, CalDAVSync, CardDAVSync, CalDavZAP and CardDavMATE
* Empty PROPFIND requests handled (by Christoph Polcin)
* Colon allowed in passwords
* Configurable realm message
2013-07-09 13:08:15 +02:00
2020-04-26 16:31:52 +02:00
## 0.7.1 - Waterfalls
2012-08-03 14:37:02 +02:00
2021-12-14 00:25:31 +01:00
* Many address books fixes
* New IMAP ACL (by Daniel Aleksandersen)
* PAM ACL fixed (by Daniel Aleksandersen)
* Courier ACL fixed (by Benjamin Frank)
* Always set display name to collections (by Oskari Timperi)
* Various DELETE responses fixed
2012-08-03 14:37:02 +02:00
2020-04-26 16:31:52 +02:00
## 0.7 - Eternal Sunshine
2011-11-04 01:06:50 +01:00
2021-12-14 00:25:31 +01:00
* Repeating events
* Collection deletion
* Courier and PAM authentication methods
* CardDAV support
* Custom LDAP filters supported
2012-01-05 12:26:35 +01:00
2020-04-26 16:31:52 +02:00
## 0.6.4 - Tulips
2012-01-05 12:26:35 +01:00
2021-12-14 00:25:31 +01:00
* Fix the installation with Python 3.1
2011-11-04 01:06:50 +01:00
2020-04-26 16:31:52 +02:00
## 0.6.3 - Red Roses
2011-10-24 18:05:07 +02:00
2021-12-14 00:25:31 +01:00
* MOVE requests fixed
* Faster REPORT answers
* Executable script moved into the package
2011-10-24 18:05:07 +02:00
2020-04-26 16:31:52 +02:00
## 0.6.2 - Seeds
2011-09-27 07:54:26 +02:00
2021-12-14 00:25:31 +01:00
* iPhone and iPad support fixed
* Backslashes replaced by slashes in PROPFIND answers on Windows
* PyPI archive set as default download URL
2011-09-27 07:54:26 +02:00
2020-04-26 16:31:52 +02:00
## 0.6.1 - Growing Up
2011-08-27 13:29:38 +02:00
2021-12-14 00:25:31 +01:00
* Example files included in the tarball
* htpasswd support fixed
* Redirection loop bug fixed
* Testing message on GET requests
2011-08-27 13:29:38 +02:00
2020-04-26 16:31:52 +02:00
## 0.6 - Sapling
2011-04-02 22:34:04 +02:00
2021-12-14 00:25:31 +01:00
* WSGI support
* IPv6 support
* Smart, verbose and configurable logs
* Apple iCal 4 and iPhone support (by Łukasz Langa)
* KDE KOrganizer support
* LDAP auth backend (by Corentin Le Bail)
* Public and private calendars (by René Neumann)
* PID file
* MOVE requests management
* Journal entries support
* Drop Python 2.5 support
2011-04-02 22:34:04 +02:00
2020-04-26 16:31:52 +02:00
## 0.5 - Historical Artifacts
2010-12-29 18:58:54 +01:00
2021-12-14 00:25:31 +01:00
* Calendar depth
* MacOS and Windows support
* HEAD requests management
* htpasswd user from calendar path
2010-12-29 18:58:54 +01:00
2020-04-26 16:31:52 +02:00
## 0.4 - Hot Days Back
2010-06-14 19:59:52 +02:00
2021-12-14 00:25:31 +01:00
* Personal calendars
* Last-Modified HTTP header
* `no-ssl` and `foreground` options
* Default configuration file
2010-06-14 19:59:52 +02:00
2020-04-26 16:31:52 +02:00
## 0.3 - Dancing Flowers
2010-04-19 16:07:32 +02:00
2021-12-14 00:25:31 +01:00
* Evolution support
* Version management
2010-04-19 16:09:50 +02:00
2020-04-26 16:31:52 +02:00
## 0.2 - Snowflakes
2010-01-22 21:22:38 +01:00
2021-12-14 00:25:31 +01:00
* Sunbird pre-1.0 support
* SSL connection
* Htpasswd authentication
* Daemon mode
* User configuration
* Twisted dependency removed
* Python 3 support
* Real URLs for PUT and DELETE
* Concurrent modification reported to users
* Many bugs fixed (by Roger Wenham)
2010-01-22 21:22:38 +01:00
2020-04-26 16:31:52 +02:00
## 0.1 - Crazy Vegetables
2009-09-01 15:59:18 +02:00
2021-12-14 00:25:31 +01:00
* First release
* Lightning/Sunbird 0.9 compatibility
* Easy installer