Constantin Graf
f921452419
Add marker for auditable models without owner
...
Models implementing AuditableWithoutOwner intentionally have no audit
owner, either because they belong to neither an organization nor a user,
or because they and their audits have to be kept when the owner is
deleted (for example billing records). Adds helpers and a scope on the
audit model to find audits that are missing an owner although they
should have one.
2026-10-07 18:43:16 +02:00
Constantin Graf
135984f9ef
Add owner organization and owner user to audits
...
- Rename the audit actor columns user_type/user_id to actor_type/actor_id
- Add owner_organization_id and owner_user_id to the audits table as
foreign keys with cascade on delete, so that the audits of an
organization or user are deleted together with it. The indexes and
foreign keys are created without blocking writes on the large table.
- Fill the owner columns for new audits via CustomAuditable. Organizations
and users no longer record their own deletion audit, since it would
reference the already deleted owner.
2026-10-07 18:43:16 +02:00
Gregor Vostrak
bb5a7fb9f9
improve API docs
2026-10-05 17:27:04 +02:00
Constantin Graf
a9d016d773
Added deletion of refresh tokens in DeletionService
2026-09-24 13:31:26 +02:00
Constantin Graf
e801c4311c
Add new extension auditing
2026-09-24 11:31:38 +02:00
Constantin Graf
2dadf1ef02
Updated Laravel to v13
2026-09-24 10:45:18 +02:00
Constantin Graf
12cc3f27f8
Add check for premium to telemetry and update lookup
2026-09-24 10:45:18 +02:00
Constantin Graf
08f9edbc96
Add additional tests for filament
2026-09-24 10:45:18 +02:00
Constantin Graf
37579b1e5c
Updated compose dependencies
2026-09-24 10:45:18 +02:00
Constantin Graf
b33cf00788
Remove Group from ClockifyTimeEntriesImporter
2026-09-22 18:08:49 +02:00
Constantin Graf
01b60c0f6a
Add validation for task name length
2026-09-22 12:01:48 +02:00
Constantin Graf
927da7dce9
Fixed type check
2026-09-22 12:01:48 +02:00
Constantin Graf
c89fa87b0f
Fix clockfiy importer, allow project imports without Billability
2026-09-22 12:01:48 +02:00
Gregor Vostrak
95ddbf9ead
fix placeholder users being resolved by authentication flows
2026-09-16 15:25:08 +02:00
Constantin Graf
70646a0dd4
Add additional validation for import, Enhanced ZIP extraction in importer
2026-09-16 15:02:54 +02:00
Constantin Graf
23f512d4a4
Add permissions and types for invoice recipients
2026-08-31 16:03:26 +02:00
Constantin Graf
637475e669
Add invite-only registration mode
2026-08-31 13:36:25 +02:00
Constantin Graf
3ec2abb309
Add invite-only registration mode
...
Support configurable on, invite-only, and off registration modes, including case-insensitive invitation checks and test coverage.
2026-08-31 13:36:25 +02:00
Constantin Graf
602a8daa1f
Suppress expected OAuth access denial reports
2026-08-31 12:42:00 +02:00
Constantin Graf
38b448a729
Suppress reporting for expected API exceptions
2026-08-31 12:42:00 +02:00
Constantin Graf
593372bae5
Add still-running email preference
2026-08-31 12:26:02 +02:00
Andrew Herron
453d5ed066
Set content-disposition 'attachment' for both local and S3 downloads. Added a bunch of tests. Fixes #1148 .
2026-08-28 17:30:27 +02:00
Gregor Vostrak
3af69830ee
move api rate limit to app config, add fallback for empty env key
2026-08-20 17:40:33 +02:00
Darwin Correa
a050153bcd
feat: make API rate limits configurable via env vars ( #1204 )
...
* feat: make API rate limits configurable via env vars
2026-08-20 17:22:24 +02:00
Gregor Vostrak
9d9731c7ce
add formatting support for months grouping
2026-08-20 17:11:35 +02:00
Andrew Herron
dfe3206614
Add "Week" grouping option to reporting
2026-08-20 17:11:35 +02:00
Andrew Herron
97fd882878
Format date group labels in all aggregate exports
2026-08-20 17:11:35 +02:00
Constantin Graf
de13c07855
Fixed return type in TrustHosts
2026-08-06 17:49:52 +02:00
Constantin Graf
29a2e994cd
Fixed phpstan error in TrustHosts middleware
2026-08-06 17:06:34 +02:00
Constantin Graf
f6d886b218
Refactored TrustHostsTest; Added return types to TrustHosts
2026-08-06 17:01:46 +02:00
Gregor Vostrak
80d98b30a1
add custom error handling for host mismatch; ensure TrustHosts runs
...
before TrustProxies
2026-08-06 17:01:46 +02:00
Gregor Vostrak
32f2f1431b
add TrustHosts middleware with exemption for healthchecks
2026-08-06 17:01:46 +02:00
Gregor Vostrak
f3c6a0b8ae
fix invitations not being respected during signup when email case differs
2026-07-28 17:07:53 +02:00
Gregor Vostrak
c0c8fee6be
default time entry type filter to work for legacy reports
2026-07-28 16:52:36 +02:00
Gregor Vostrak
cbcd1e51f6
add break time entries and simplified time tracker ui
2026-07-28 16:52:36 +02:00
Constantin Graf
114a32536d
Fixed update of member_id in time_entries.update and time_entries.updateMultiple
...
Removed usage of legacy user_id in TimeEntryController
2026-07-23 12:02:46 +02:00
Constantin Graf
f0de89b0e8
Prevent failed jobs for no longer existing projects and tasks
2026-07-11 16:00:34 +02:00
Constantin Graf
024283273a
Updated email validation to stricter config
2026-07-11 16:00:34 +02:00
Gregor Vostrak
4fb18f343f
allow missing client columns in clockify importer, fixes #1149
2026-07-09 16:16:25 +02:00
Gregor Vostrak
53ecc58509
add validationa for project names in toggl importer
2026-07-09 13:01:23 +02:00
Gregor Vostrak
a97c02542b
add unique id tiebreaker to paginated index endpoints to make pagination
...
stable (#1138 )
2026-07-09 13:01:23 +02:00
Gregor Vostrak
23ea1500b0
Use an enum for tag match type
2026-06-26 14:53:37 +02:00
Gregor Vostrak
4bbde04e28
Rename tag_filter parameter to tag_match_type
2026-06-26 14:53:37 +02:00
Gregor Vostrak
caa36d2875
Fix not-contains tag filter dropping entries where tags is null
2026-06-26 14:53:37 +02:00
Beda Schmid
58d7b33366
Add filter to include/exclude tags
...
[Added]
- Introduced a tag filter feature allowing users to specify whether tags should be included or excluded in time entry filters. This supports 'contains' and 'not_contains' modes.
2026-06-26 14:53:37 +02:00
Gregor Vostrak
50f57f6997
add support for activity columns in clockify exports
2026-06-25 12:10:44 +02:00
Gregor Vostrak
ab9f6e6afb
adapt clockify importer to support task -> tasks column rename
2026-06-25 00:20:29 +02:00
Gregor Vostrak
2a40bb7edb
add support for archived projects in the clockify importer
2026-06-25 00:08:42 +02:00
Constantin Graf
37a8f43b23
Allow Clockify import without Billable column
2026-06-24 13:44:48 +02:00
Constantin Graf
6a197f7f34
Add password check to users.destroy and organizations.destroy
2026-06-18 13:27:43 +02:00