kolaente
62200f6e0f
feat!: remove echo log options - unify with general http logging
2025-07-21 18:15:39 +02:00
kolaente
ca83ad1f98
feat: move to slog for logging
2025-07-21 18:15:39 +02:00
kolaente
7985a6500a
fix: use assertions which are more specific
2025-07-18 23:18:04 +02:00
kolaente
07d83e67d7
feat(projects): add support for ParadeDB when searching for project
2025-07-18 23:18:04 +02:00
kolaente
1e3a68210a
chore(db): simplify MultiFieldSearch
2025-07-18 23:18:04 +02:00
kolaente
22579dffae
chore: cleanup unused helper
2025-07-18 23:18:04 +02:00
kolaente
a571d42f46
chore: refactor searching for link shares
2025-07-18 23:18:04 +02:00
kolaente
3db1ddcee4
feat(tasks): add support for ParadeDB when searching tasks
2025-07-18 23:18:04 +02:00
kolaente
e7f5142e3d
fix: adjust benchmark so that it only checks the task fetching
2025-07-18 23:18:04 +02:00
kolaente
a5591c1603
fix: correctly cache unsplash background
...
Resolves
https://vikunja.sentry.io/issues/6753151793/events/3d8773d79b9c4da0bf65140e4b7617b4/
2025-07-18 18:38:12 +02:00
kolaente
c3fd659851
fix: correctly return cached intitals avatar
...
Resolves https://vikunja.sentry.io/issues/6752872121/events/92ff6a64c4b64aa3aecc6973611bd449/
2025-07-18 18:38:12 +02:00
kolaente
566657c54a
fix: correctly return cached provider
2025-07-18 18:38:12 +02:00
kolaente
45e7f6e316
fix: upload avatar caching
2025-07-18 18:38:12 +02:00
kolaente
fcdcdcf46a
feat: use keyvalue.Remember where it makes sense
2025-07-17 16:19:13 +02:00
kolaente
c7a98386c2
feat: add keyvalue.Remember function
2025-07-17 16:19:13 +02:00
Quiwy
5ee3077f5d
docs: fix typo ( #1122 )
2025-07-16 11:01:49 +00:00
kolaente
42534cdd79
fix: don't panic when using api token when not correctly put into context ( #1119 )
2025-07-15 21:26:28 +00:00
Tobias
ecc95e9139
fix: panic on restoring with numeric position fields ( #1089 )
...
Co-authored-by: kolaente <k@knt.li>
2025-07-15 15:44:21 +00:00
kolaente
4da4bf69ca
fix(background): validate unsupported formats and show error message ( #1123 )
2025-07-15 13:21:48 +02:00
Vlad Yarotsky
d4347f00f6
fix(caldav): make CalDAV REPORT request properly respond with VTODO objects ( #1116 )
2025-07-14 21:57:55 +00:00
Dominik Pschenitschni
efff6955c5
fix: remove fmt output in token check
2025-07-03 17:09:41 +02:00
Dominik Pschenitschni
20bd961c20
fix(config): log fatal when timezone parse fails ( #1077 )
2025-07-03 17:06:54 +02:00
Dominik Pschenitschni
9efdde8f1a
docs: delete caldav token uses DELETE instead of GET
2025-07-03 17:06:20 +02:00
kolaente
510b1f246a
refactor: move test
2025-07-02 23:16:05 +02:00
kolaente
9b579d282c
fix(tasks): do not return subtasks multiple times when they are related
...
to multiple tasks
Resolves https://community.vikunja.io/t/tasks-with-parent-tasks-appear-duplicated-in-list-views/3676
2025-07-02 23:16:05 +02:00
kolaente
4d36771362
feat: introduce shared health check logic ( #1073 )
2025-07-02 21:01:41 +00:00
Dominik Pschenitschni
ef80fa77b4
docs: fix comments in web package
2025-07-02 17:46:21 +02:00
Dominik Pschenitschni
d48d88d442
fix: comment typo and misspellings
2025-07-02 17:46:21 +02:00
Dominik Pschenitschni
342bbd6192
fix: correct comments
2025-07-02 17:46:21 +02:00
kolaente
3b05f7859f
fix(users): refresh initials avatar refresh after name change ( #1047 )
2025-06-30 16:20:54 +00:00
kolaente
59130766e8
fix(avatar): fallback to username when no name is set
2025-06-27 14:30:33 +02:00
kolaente
99bc065272
feat(user): use name for initals avatar, not username
...
For external auth providers, the username might be randomly generated,
which results in a random initial - this is unexpected and confusing for
users.
2025-06-27 14:13:49 +02:00
kolaente
4f8a2b0d38
chore(user): refactor invalidating upload avatar cache
2025-06-27 14:07:22 +02:00
kolaente
0ecbd9e1a3
feat(user): add avatar cache flushing ( #1041 )
2025-06-27 14:01:43 +02:00
kolaente
ae92822ee0
feat: add prefix key support to keyvalue store ( #1038 )
...
feat: add prefix key operations to keyvalue store
2025-06-27 11:05:37 +00:00
kolaente
a8025a9e36
fix: guard invalid user lookups ( #1034 )
2025-06-26 21:58:47 +00:00
kolaente
c6c18d1ca1
fix(task): ambiguous description search ( #1032 )
...
test: relocate search regression
2025-06-26 20:05:04 +00:00
kolaente
17b8d20e7b
fix(migration): reset buckets before creating related tasks so that they are actually created ( #1015 )
2025-06-25 14:03:44 +02:00
kolaente
53264d350e
fix(kanban): make bucket query fixed per-view ( #1007 )
2025-06-25 11:38:24 +00:00
kolaente
159961b5e0
fix: add migration for non-unique task buckets
2025-06-25 11:12:24 +02:00
kolaente
f9b31ab4bf
fix: ambiguous title column in task search ( #1012 )
2025-06-24 20:38:35 +00:00
kolaente
4f99bdb50c
fix(tasks): ambiguous done column in task sorting ( #1011 )
...
fix: prefix task fields in sorting
2025-06-24 20:37:25 +00:00
Frederick [Bot]
1621d25392
[skip ci] Updated swagger docs
2025-06-24 11:01:56 +00:00
kolaente
842a71019d
fix(view): add unique index for task buckets ( #1005 )
2025-06-24 10:45:17 +00:00
kolaente
57dfdc5168
chore: adjust comment about bucketless tasks ( #1004 )
...
docs: clarify bucketless task behavior
2025-06-24 09:56:58 +00:00
kolaente
49963d88a6
fix(task): add tasks table prefix for sort order ( #1003 )
...
fix: qualify task index for mysql order
2025-06-24 09:55:00 +00:00
kolaente
048e09ee12
fix(tasks): subtasks missing in list view ( #1000 )
2025-06-24 11:08:01 +02:00
Frederick [Bot]
adc1ecaef1
chore(i18n): update translations via Crowdin
2025-06-23 01:01:09 +00:00
Frederick [Bot]
6bdb990de5
chore(i18n): update translations via Crowdin
2025-06-18 00:57:29 +00:00
kolaente
34a5196a05
feat: add email filter to user list command ( #973 )
2025-06-17 12:38:04 +00:00
Frederick [Bot]
7f8006e3f1
[skip ci] Updated swagger docs
2025-06-17 09:38:12 +00:00
Dominik Pschenitschni
5b9d4fcc72
chore: add missing eof newlines ( #969 )
2025-06-17 09:11:32 +00:00
kolaente
663339a294
feat(test): add benchmark for task search ( #963 )
2025-06-16 21:41:14 +02:00
Frederick [Bot]
719cb11d44
[skip ci] Updated swagger docs
2025-06-16 14:10:07 +00:00
Weijie Zhao
a214d68a44
feat(auth): sync avatar from OpenID providers ( #821 )
2025-06-16 15:59:31 +02:00
kolaente
916c0212b5
feat(link share): add feature test for link share avatar access ( #944 )
2025-06-14 18:22:45 +02:00
kolaente
59a0b9c40d
feat(auth): require auth to fetch avatars ( #930 )
2025-06-14 13:12:41 +00:00
kolaente
6671ce38a8
chore: rename API test suites ( #938 )
2025-06-13 08:23:17 +00:00
kolaente
da95463bb2
fix(migration): detect header lines in csv file when importing from TickTick ( #937 )
2025-06-13 07:45:54 +00:00
kolaente
0145a8ba50
feat!(config): store sqlite file relative to rootpath ( #934 )
...
Moderately breaking change since in most cases the root path was already set next to the binary.
2025-06-13 09:16:25 +02:00
Frederick [Bot]
15a1919d22
chore(i18n): update translations via Crowdin
2025-06-12 00:56:35 +00:00
kolaente
842e7f524b
fix: always add public url to allowed cors origins
...
This fixes a bug where it was not possible to do anything because the public url was not allowed by default for CORS requests.
Regression from 433b8b9115
Resolves https://github.com/go-vikunja/vikunja/issues/916
2025-06-11 14:29:38 +02:00
kolaente
433b8b9115
feat: enable cors by default for desktop app ( #904 )
2025-06-10 20:43:13 +02:00
Frederick [Bot]
191125e122
[skip ci] Updated swagger docs
2025-06-10 11:21:02 +00:00
kolaente
f070268c30
feat: check configured default timezone on startup ( #903 )
2025-06-10 11:03:58 +00:00
Dominik Pschenitschni
296577a875
fix: correct license header references ( #882 )
...
See originals:
- https://www.gnu.org/licenses/agpl-3.0.txt
- https://www.gnu.org/licenses/gpl-3.0.txt
2025-06-10 12:18:38 +02:00
Dominik Pschenitschni
62f048767c
fix: correct unknown subscription entity typo ( #883 )
2025-06-10 12:18:07 +02:00
Dominik Pschenitschni
488b15c128
docs(web): fix typos
2025-06-10 12:10:42 +02:00
Dominik Pschenitschni
4146e91616
docs: mention AGPL-3.0-or-later in CLI help ( #893 )
2025-06-10 12:07:52 +02:00
Dominik Pschenitschni
508cdf027c
fix: param type ( #895 )
2025-06-10 12:06:41 +02:00
Dominik Pschenitschni
8632bd2063
fix: TOTP account lock notification typo ( #858 )
2025-06-05 16:24:41 +02:00
kolaente
44b3e46325
fix: return correct mimetype for openapi docs.json
...
Resolves https://github.com/go-vikunja/vikunja/issues/864
2025-06-04 16:12:46 +02:00
kolaente
5c17d5b90c
fix(config): set value when env variable contains string value
2025-05-23 12:47:56 +02:00
renovate[bot]
bbf7679dd4
fix(deps): update module github.com/olekukonko/tablewriter to v1 ( #750 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-05-23 10:00:58 +00:00
Frederick [Bot]
76bba1fb92
chore(i18n): update translations via Crowdin
2025-05-23 00:55:39 +00:00
kolaente
d7d277f9b6
fix(config): do not attempt to parse config values from env when they contain an invalid data type
...
Related https://github.com/go-vikunja/vikunja/issues/719
2025-05-22 17:06:20 +02:00
Frederick [Bot]
b96a1701d8
chore(i18n): update translations via Crowdin
2025-05-22 00:55:50 +00:00
kolaente
ca98b7da73
feat: add /token/test route
...
This new route returns 200 if a valid bearer token was presented. It does not return any information about the user.
2025-05-21 22:27:34 +02:00
kolaente
c4566fdb53
chore(i18n): improve overdue task emails translation
2025-05-21 10:28:50 +02:00
Frederick [Bot]
1648b71634
[skip ci] Updated swagger docs
2025-05-20 08:12:41 +00:00
Weijie Zhao
00c4148f05
feat(auth): add ForceUserInfo option to OpenID provider ( #797 )
...
Problem:
When using Casdoor as an OpenID provider, there's an inconsistency between the user information in the JWT token and the UserInfo endpoint. The token contains the user's unique ID in the `name` field, while the UserInfo endpoint correctly returns the user's display name.
Solution:
This PR adds a new `ForceUserInfo` option to the OpenID provider configuration. When enabled, it forces the use of the UserInfo endpoint to retrieve user information instead of relying on claims from the ID token.
Impact:
- Default behavior remains unchanged (backward compatible)
- New option allows administrators to force using UserInfo endpoint data
- Particularly useful for providers like Casdoor that don't fully comply with OIDC standards
Related:
I've opened an issue in the Casdoor repository (https://github.com/casdoor/casdoor/issues/3806 ) to discuss the root cause. However, changing Casdoor's token structure might cause significant compatibility issues for existing integrations, so it's unclear if this can be fixed at the provider level. This PR provides a workaround in Vikunja that doesn't affect existing functionality.
2025-05-20 08:06:34 +00:00
Frederick [Bot]
adf54f97ab
chore(i18n): update translations via Crowdin
2025-05-20 00:56:51 +00:00
kolaente
5acca8144b
fix(projects): do not try to fetch project permissions when no projects exist
...
Resolves https://vikunja.sentry.io/issues/6572520737/events/2a747d0e53e7431fafca89429c552eae/
2025-05-19 18:21:05 +02:00
Frederick [Bot]
5df5030c68
chore(i18n): update translations via Crowdin
2025-05-18 00:59:45 +00:00
Frederick [Bot]
fad3e05ba8
chore(i18n): update translations via Crowdin
2025-05-17 00:54:35 +00:00
kolaente
d16d13d730
feat(i18n): use plural translations in humanize duration
2025-05-16 21:57:07 +02:00
kolaente
96369f3b1c
feat(i18n): add params replacement to translation functions
2025-05-16 21:57:07 +02:00
kolaente
43f9fb61a7
feat(i18n): add pluralization function for translation strings
2025-05-16 21:57:07 +02:00
Frederick [Bot]
53f201bdfc
chore(i18n): update translations via Crowdin
2025-05-16 00:55:58 +00:00
kolaente
9f30a099ee
fix(projects): (un-)archive child projects when archiving parent ( #775 )
2025-05-15 14:31:56 +00:00
kolaente
3e46457c03
fix: remove unused import
2025-05-15 09:54:15 +02:00
kolaente
13dfe78121
fix(project): correctly handle invalid project id error
2025-05-15 09:50:33 +02:00
kolaente
cb0e68f625
fix(i18n): make notification settings link translatable
2025-05-15 09:18:27 +02:00
Frederick [Bot]
ee0c68b1a2
chore(i18n): update translations via Crowdin
2025-05-15 00:54:18 +00:00
Frederick [Bot]
c19a8cfcc4
[skip ci] Updated swagger docs
2025-05-13 11:27:04 +00:00
kolaente
4d8c17f577
feat(i18n): make overdue reminder translations more explicit ( #761 )
2025-05-13 11:12:56 +00:00
Piotr Sarna
1d38306e7d
fix(docs): improve swagger output by setting swaggertype and enums ( #705 )
...
Co-authored-by: Piotr Sarna <piotr@piksar.eu>
2025-05-13 11:02:12 +00:00
kolaente
f7229ba647
fix(i18n): translate all parts of reminder notifications
2025-05-12 16:24:20 +02:00
Frederick [Bot]
aaf6de11a5
[skip ci] Updated swagger docs
2025-05-12 10:24:22 +00:00
Vladimir
c3fffefcf4
fix(db): refactor filtering with subqueries ( #701 )
...
Resolves #285
2025-05-12 10:52:48 +02:00
Frederick [Bot]
3e02604317
chore(i18n): update translations via Crowdin
2025-05-12 00:57:57 +00:00
Frederick [Bot]
48814867b4
chore(i18n): update translations via Crowdin
2025-05-11 00:58:59 +00:00
Frederick [Bot]
7b693f055f
chore(i18n): update translations via Crowdin
2025-04-28 00:56:09 +00:00
Frederick [Bot]
ad8a17571c
chore(i18n): update translations via Crowdin
2025-04-12 00:52:09 +00:00
Frederick [Bot]
8e6b059634
chore(i18n): update translations via Crowdin
2025-04-11 00:52:53 +00:00
Frederick [Bot]
9fe2caa251
chore(i18n): update translations via Crowdin
2025-04-10 00:52:35 +00:00
renovate[bot]
4a75f7d4da
chore(deps): update golangci/golangci-lint-action action to v7 ( #462 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-04-02 09:28:56 +02:00
Frederick [Bot]
c381e47720
chore(i18n): update translations via Crowdin
2025-03-31 00:55:09 +00:00
kolaente
7803fe8aef
fix(avatar): use keyvalue store to cache gravatar instead of map
...
Resolves https://community.vikunja.io/t/docker-crash-concurrent-map-writes-google-login/3454
2025-03-30 16:24:34 +02:00
kolaente
6847f44058
chore(openid): add more debug logging when retrieving token
2025-03-29 19:24:07 +01:00
kolaente
4ea3c01b5f
chore: add more debug logging when returning error
2025-03-29 18:21:34 +01:00
kolaente
303dbec78a
feat(i18n): add Hebrew translation for selection
2025-03-27 11:58:23 +01:00
kolaente
cfc7f17352
feat(i18n): add Finnish translation for selection
2025-03-27 11:54:17 +01:00
Frederick [Bot]
03ca85aaf1
chore(i18n): update translations via Crowdin
2025-03-26 00:21:22 +00:00
kolaente
25f3c5d9d7
fix(migration): cast to text
2025-03-25 21:47:52 +01:00
kolaente
26eeb07829
fix(i18n): adjust task strings
2025-03-25 09:18:13 +01:00
Frederick [Bot]
04a7cabbcb
chore(i18n): update translations via Crowdin
2025-03-25 00:23:17 +00:00
kolaente
2e11c55e9e
fix(test): use correct assertion
...
Resolves a regression introduced in 1bdb01712e
2025-03-24 17:41:39 +01:00
kolaente
1bdb01712e
fix(filter): correctly use user time zone when filtering for date fields
...
Resolves https://community.vikunja.io/t/upcoming-list-doesnt-display-repeating-tasks/3539
2025-03-24 17:22:33 +01:00
kolaente
3509f1beb3
chore!: remove deprecated config settings
2025-03-24 16:52:46 +01:00
kolaente
13d4e0e00d
chore(utils): remove deprecated MakeRandomString function
2025-03-24 16:52:46 +01:00
Frederick [Bot]
f188762b86
chore(i18n): update translations via Crowdin
2025-03-24 00:22:33 +00:00
kolaente
62b2c6771a
fix(project): correctly migrate old project view filters
...
This fixes a bug where old filters where not converted to the new json format correctly, leading to issues when trying to decode the raw filter string as json.
It is unclear whether that old migration had a bug or was not executed at all.
This change adds a new migration to fix all filters in views still stuck in the old filter string format.
Resolves https://github.com/go-vikunja/vikunja/issues/420
2025-03-23 21:34:49 +01:00
kolaente
063753a543
fix(filter): do not try to set timezone when doer does not exist
...
Resolves https://vikunja.sentry.io/issues/6025547266/events/e0d0a5fdf01c46a2ac9101d94ab4f304/
2025-03-23 19:08:11 +01:00
kolaente
8489cf57f6
fix(typesense): use upsert instead of emplace when updating tasks in typesense
...
Resolves https://github.com/go-vikunja/vikunja/issues/376
2025-03-23 18:46:49 +01:00
kolaente
bbd9d0d0b3
fix(comment): add validation check for the max comment length
...
Resolves https://vikunja.sentry.io/issues/6441922105/events/245b8f1de3e64951a108e2f6cb654c58/
2025-03-23 18:03:29 +01:00
kolaente
4e504c288e
fix(auth): hide two factor authentication when using non-local user
...
Resolves https://github.com/go-vikunja/vikunja/issues/431
2025-03-23 17:43:36 +01:00
Frederick [Bot]
2e2f82bc44
chore(i18n): update translations via Crowdin
2025-03-22 00:21:30 +00:00
kolaente
4d41a1bd9b
feat(kanban): create To-Do, Doing, Done buckets when creating a new kanban view
2025-03-21 19:16:52 +01:00
kolaente
d522d40773
fix(migration): do not fail when an attachment is too large
...
Resolves https://vikunja.sentry.io/issues/6389417364/events/d79bdea146b54a9dace8c81e3f787975/
2025-03-21 18:03:27 +01:00
kolaente
23d2814b94
fix(migration): check if the provided file is a valid csv before importing
2025-03-21 17:53:05 +01:00
kolaente
d19a93dece
fix(migration): check if uploaded csv is empty
2025-03-21 17:48:08 +01:00
kolaente
0585045260
fix(kanban): Mark tasks done when creating them in the done bucket
...
Resolves https://community.vikunja.io/t/bugs-around-project-duplication-with-kanban-buckets/3433/6
2025-03-21 17:32:50 +01:00
kolaente
096de3382f
fix(kanban): load full task when moving task between buckets
2025-03-21 16:59:20 +01:00
Frederick [Bot]
c4ef566a42
chore(i18n): update translations via Crowdin
2025-03-21 00:21:23 +00:00
kolaente
e3f006c527
fix(i18n): add missing translations
2025-03-20 17:41:45 +01:00
kolaente
5a93379d81
fix(ldap): update user name and email during login
2025-03-20 17:24:00 +01:00
kolaente
d585de77a4
fix(ldap): crop avatar when syncing
2025-03-20 17:19:58 +01:00
kolaente
e287364b78
fix(team): do not allow leaving exernal teams
2025-03-20 17:13:51 +01:00
kolaente
b010e3851c
fix(project): add position in test fixtures
2025-03-20 14:00:18 +01:00
kolaente
6e9886c6b8
fix(project): make order stable in duplicate test
2025-03-20 13:46:32 +01:00
Frederick [Bot]
8e475e77be
chore(i18n): update translations via Crowdin
2025-03-20 00:21:23 +00:00
kolaente
164f2eab9d
feat(ldap): also look for username only when checking group membership
2025-03-19 22:16:12 +01:00
kolaente
f4b9a9cccd
feat(ldap): make member id attribute configurable
2025-03-19 22:15:50 +01:00
kolaente
84cbd25e67
chore(project): do not use fmt.Sprintf directly
2025-03-19 19:47:38 +01:00
kolaente
7e1aba7606
fix(kanban): correctly set default bucket id when duplicating project
...
Partially resolves https://community.vikunja.io/t/bugs-around-project-duplication-with-kanban-buckets/3433
2025-03-19 17:28:59 +01:00
kolaente
4887f7fe60
fix(webhook): do not fail to send webhook when loading the project fails
...
https://community.vikunja.io/t/webhook-project-error/3305/7
2025-03-19 16:27:04 +01:00
Frederick [Bot]
4998926f55
[skip ci] Updated swagger docs
2025-03-19 15:21:25 +00:00
kolaente
617070f9f7
fix(kanban): use full updated kanban bucket when moving task
2025-03-19 16:06:20 +01:00
kolaente
134c2a1a80
fix(kanban): do not allow creating tasks in full bucket
2025-03-19 15:18:55 +01:00