Commit Graph

1035 Commits

Author SHA1 Message Date
kolaente bcd414b5e7
feat(filters): make new filter syntax work with Typesense 2024-03-05 09:58:04 +01:00
kolaente 7c47930f8e
fix(filters): lint 2024-03-05 09:58:00 +01:00
kolaente fc7c873dd6
chore(filters): cleanup old variables 2024-03-05 09:58:00 +01:00
kolaente 8d34f9b260
fix(tests): make filter tests work again 2024-03-05 09:57:59 +01:00
kolaente ffcfc85b00
fix(filter): correctly filter for buckets 2024-03-05 09:57:59 +01:00
kolaente 52c8ed9738
feat(filter): add in keyword 2024-03-05 09:57:59 +01:00
kolaente cc78411866
feat(filter): add better error message when passing an invalid filter expression 2024-03-05 09:57:59 +01:00
kolaente b5e781fedb
chore(filter): cleanup 2024-03-05 09:57:59 +01:00
kolaente 5fe9fc73a9
feat(filter): migrate existing saved filters 2024-03-05 09:57:59 +01:00
kolaente d30615d527
feat(filter): nesting 2024-03-05 09:57:59 +01:00
kolaente 605a2131ba
feat(filter): more tests 2024-03-05 09:57:59 +01:00
kolaente 9cd88e97e4
fix(filter): translate all tests 2024-03-05 09:57:59 +01:00
kolaente afb425f0c2
fix(filter): allow filtering for "project" 2024-03-05 09:57:59 +01:00
kolaente 16f206b3cc
fix(filter): allow filtering on "in" condition 2024-03-05 09:57:59 +01:00
kolaente d9cb2d1755
fix(filter): don't crash on empty filter 2024-03-05 09:57:59 +01:00
kolaente 54a9ea84d5
fix(filter): make sure single filter condition works 2024-03-05 09:57:59 +01:00
kolaente f470c0c297
feat(filters): basic text filter works now 2024-03-05 09:57:58 +01:00
kolaente 8d2f6c8567
feat(filters): very basic filter parsing 2024-03-05 09:57:58 +01:00
waza-ari a3154e805c fix(auth): use (issuer, name) to check for uniqueness of oidc teams (#2152)
continuous-integration/drone/push Build is passing Details
The change introduced in #2150 introduces a bug where a Team would be re-created every time a user logs in, as the check if a team already exists was based on both the unique `oidcID` and the `name`. This PR proposes to only base the check on the ID, as this should be unique.

Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: #2152
Reviewed-by: konrad <k@knt.li>
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-03-04 20:26:45 +00:00
kolaente ac8751e1be
fix(task): move done tasks to the done bucket when they are moved between projects and the new project has a done bucket
continuous-integration/drone/push Build is passing Details
2024-03-03 18:13:47 +01:00
kolaente f5b90517c4
fix(sentry): send unwrapped error to sentry instead of http error
continuous-integration/drone/push Build is passing Details
2024-03-03 17:36:57 +01:00
kolaente fe27dd59ad
feat(subscription): use a recursive cte to fetch subscriptions of parent projects
continuous-integration/drone/push Build is passing Details
Testing this locally resulted in improved response times from ~50ms to ~20ms when creating a project. It looks like even though the code running these sql queries uses different go routines, they affect each other (caused by IO or context switching?)
2024-03-03 15:34:18 +01:00
kolaente 22933dac4a
fix(project): typo in table name
continuous-integration/drone/push Build is passing Details
2024-03-03 12:47:00 +01:00
kolaente fe02f4da2c
fix(project): check for project nesting cycles with a single recursive cte instead of a loop
continuous-integration/drone/push Build is failing Details
2024-03-03 11:40:43 +01:00
Frederick [Bot] 4bb09b69be [skip ci] Updated swagger docs 2024-03-02 14:50:56 +00:00
kolaente 379b0b24b3
fix(auth): test assertion
continuous-integration/drone/push Build is passing Details
2024-03-02 15:38:01 +01:00
kolaente a4a0ea973a
feat(auth): update team name in Vikunja when it was changed in the openid provider
continuous-integration/drone/push Build is failing Details
2024-03-02 15:27:15 +01:00
kolaente fc4303a778
chore(auth): add oidc suffix to openid team name in db
Related to #2150
2024-03-02 15:23:19 +01:00
kolaente 4f1f96f1e9
chore(auth): refactor openid team creation 2024-03-02 15:22:37 +01:00
kolaente 10ff864e0c
fix(projects): load projects only one when fetching subscriptions for a bunch of projects at once
continuous-integration/drone/push Build is passing Details
This change ensures already loaded projects are passed down when fetching their subscription  instead of re-loading each project with a single sql statement. When loading all projects, this meant all projects were loaded twice, which was highly inefficient. This roughly added 25ms to each request, assuming the per page limit was maxed out at 50 projects.

Empirical testing shows this change reduces load times by ~20ms. Because the request is already pretty fast, this is ~30% of the overall request time, making the loading of projects now even faster
2024-03-02 14:27:11 +01:00
kolaente a3932a0a19
fix(projects): return correct project pagination count 2024-03-02 13:30:34 +01:00
viehlieb ed4da96ab1 feat: assign users to teams via OIDC claims (#1393)
continuous-integration/drone/push Build is passing Details
This change adds the ability to sync teams via a custom openid claim. Vikunja will automatically create and delete teams as necessary, it will also add and remove users when they log in. These teams are fully managed by Vikunja and cannot be updated by a user.

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: #1393
Resolves #1279
Resolves https://github.com/go-vikunja/vikunja/issues/42
Resolves #950
Co-authored-by: viehlieb <pf@pragma-shift.net>
Co-committed-by: viehlieb <pf@pragma-shift.net>
2024-03-02 08:47:10 +00:00
kolaente 5b70609ba7
fix: usage of limit and order by usage in recursive cte
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-28 14:35:09 +01:00
kolaente 6b1e67485b
feat: fetch all projects with a recursive cte instead of recursive query
continuous-integration/drone/push Build is failing Details
This change modifies the fetching of all projects to use a recursive common table expression instead of recursively calling the method.
2024-02-28 13:42:45 +01:00
kolaente e40a0043d4
fix(migration): do not halt the whole migration when copying a background file failed
continuous-integration/drone/push Build is passing Details
2024-02-19 19:21:06 +01:00
kolaente 2dab2ccedd
feat: allow using sqlite in memory database
continuous-integration/drone/push Build is failing Details
This allows running vikunja for testing purposes. You almost never want to run this in production.
2024-02-15 10:48:48 +01:00
kolaente 415c6380a5
feat(api tokens): add task attachment to api scopes
continuous-integration/drone/push Build is failing Details
This explicitly adds download and upload of task attachments. Because these are not handled with the usual CRUDables, they were not picked up automatically.

Resolves https://github.com/go-vikunja/vikunja/issues/112
2024-02-14 15:00:16 +01:00
kolaente 162741e940
fix: lint
continuous-integration/drone/push Build is passing Details
2024-02-13 22:24:46 +01:00
kolaente 205f330f8a
fix(migration): make sure to correctly check if a migration was already running
continuous-integration/drone/push Build was killed Details
This change fixes a bug where Vikunja would not correctly check if a migration was already running. That meant it was not possible for users who had never before migrated anything to start a migration, because Vikunja assumed they already had a migration running for them.
This state was neither properly reflected in the frontend, which is now fixed as well.
2024-02-13 22:21:59 +01:00
kolaente a12c169ce8
fix: do not send etag when serving the frontend index file
continuous-integration/drone/push Build is failing Details
Without this change, the browser may serve an outdated index.html file which usually does not work, showing the user only a blank page.
2024-02-13 21:32:41 +01:00
kolaente 2facbae0d7
fix(dump): only allow imports from the same version they were dumped on
continuous-integration/drone/push Build is failing Details
Previously, Vikunja would allow imports from any version which then caused problems since the table structure might have changed between releases. This change now checks if the current version is the same as the one the dump was created on.
2024-02-13 21:25:31 +01:00
kolaente 77a779acea
fix(dump): do not export files which do not exist in storage 2024-02-13 21:14:31 +01:00
kolaente 641fec1215
fix: never return frontend on routes starting with /api
continuous-integration/drone/push Build is passing Details
This fixes a problem where Vikunja would sometimes return the html for the frontend when accessing an api route for a nonexistent ressource, because the static handler was the next best.

Resolves #2110
2024-02-13 10:05:15 +01:00
kolaente 1ab6fef70a
fix(metrics): typo 2024-02-12 14:23:16 +01:00
kolaente d4a389279c
chore: don't send http errors with a status < 500 to sentry
continuous-integration/drone/push Build is passing Details
2024-02-11 15:29:27 +01:00
kolaente 8752ae2a0b
fix(webhook): fetch all event details before sending the webhook
continuous-integration/drone/push Build is passing Details
Resolves https://community.vikunja.io/t/webhook-comment-data-issues/1952
2024-02-10 14:15:32 +01:00
kolaente 7edb53ca12
fix(export): don't crash when an exported file does not exist
continuous-integration/drone/push Build is passing Details
Related to https://github.com/go-vikunja/vikunja/issues/110
2024-02-10 13:45:12 +01:00
kolaente 5ab9fb89bb
fix(tasks): check for cycles during creation of task relations and prevent them 2024-02-10 13:30:41 +01:00
kolaente d36b1608cf
fix: lint
continuous-integration/drone/pr Build is passing Details
2024-02-09 15:32:12 +01:00
kolaente ca68b52991
feat: replace api url with public url 2024-02-09 14:44:41 +01:00