Skip to content

enterprise/lifecycle: use datetime instead of date to track review cycles#20283

Merged
gergosimonyi merged 7 commits intogoauthentik:mainfrom
atereshkin:lifecycle-date-type-fix
Feb 23, 2026
Merged

enterprise/lifecycle: use datetime instead of date to track review cycles#20283
gergosimonyi merged 7 commits intogoauthentik:mainfrom
atereshkin:lifecycle-date-type-fix

Conversation

@atereshkin
Copy link
Contributor

Details

This fixes the incorrect review Opened date display for new reviews described in #20265
The root cause of the problem was the use of a DateField for storing review opening date which made it ambiguous across time zones (which combined with some questionable behavior of openapi-generator led to incorrect to incorrect dates in the UI). The fix is to switch to a DateTimeField. Extra precaution had to be taken because the task that applies lifecycle rules runs once a day and direct comparison of datetimes could lead to 24h delays in opening new reviews and reviews going overdue because of millisecond fluctuation in the task execution time.


Checklist

  • Local tests pass (ak test authentik/)
  • The code has been formatted (make lint-fix)
  • The API schema has been updated (make gen-build)

@atereshkin atereshkin requested review from a team as code owners February 13, 2026 13:15
@netlify
Copy link

netlify bot commented Feb 13, 2026

Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 7860de8
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/699c49720167d100087d259d
😎 Deploy Preview https://deploy-preview-20283--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov
Copy link

codecov bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.25%. Comparing base (6e04a42) to head (7860de8).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #20283      +/-   ##
==========================================
- Coverage   93.28%   93.25%   -0.04%     
==========================================
  Files         981      981              
  Lines       55186    55272      +86     
==========================================
+ Hits        51479    51542      +63     
- Misses       3707     3730      +23     
Flag Coverage Δ
conformance 37.38% <10.30%> (-0.06%) ⬇️
e2e 43.18% <10.30%> (-0.07%) ⬇️
integration 22.35% <5.15%> (-0.08%) ⬇️
unit 91.51% <100.00%> (+0.01%) ⬆️
unit-migrate 91.54% <100.00%> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Co-authored-by: Jens L. <jens@beryju.org>
Signed-off-by: Alexander Tereshkin <96586+atereshkin@users.noreply.github.com>
@netlify
Copy link

netlify bot commented Feb 19, 2026

Deploy Preview for authentik-integrations ready!

Name Link
🔨 Latest commit 7860de8
🔍 Latest deploy log https://app.netlify.com/projects/authentik-integrations/deploys/699c4972d1df45000869e1b1
😎 Deploy Preview https://deploy-preview-20283--authentik-integrations.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Feb 19, 2026

Deploy Preview for authentik-storybook ready!

Name Link
🔨 Latest commit 7860de8
🔍 Latest deploy log https://app.netlify.com/projects/authentik-storybook/deploys/699c49720337bb0008aeaeb4
😎 Deploy Preview https://deploy-preview-20283--authentik-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@gergosimonyi gergosimonyi added the backport/version-2026.2 Add this label to PRs to backport changes to version-2026.2 label Feb 23, 2026
@gergosimonyi gergosimonyi merged commit 9ba7b37 into goauthentik:main Feb 23, 2026
101 checks passed
authentik-automation bot pushed a commit that referenced this pull request Feb 23, 2026
…cles (#20283)

* enterprise/lifecycle: use datetime instead of date to track review cycles (fix for #20265)

* Update authentik/enterprise/lifecycle/api/iterations.py

Co-authored-by: Jens L. <jens@beryju.org>
Signed-off-by: Alexander Tereshkin <96586+atereshkin@users.noreply.github.com>

* enterprise/lifecycle: replace extend_schema_field with type annotations

---------

Signed-off-by: Alexander Tereshkin <96586+atereshkin@users.noreply.github.com>
Co-authored-by: Simonyi Gergő <28359278+gergosimonyi@users.noreply.github.com>
Co-authored-by: Jens L. <jens@beryju.org>
@authentik-automation
Copy link
Contributor

🍒 Cherry-pick to version-2026.2 created: #20473

gergosimonyi added a commit that referenced this pull request Feb 23, 2026
…cles (cherry-pick #20283 to version-2026.2) (#20473)

enterprise/lifecycle: use datetime instead of date to track review cycles (#20283)

* enterprise/lifecycle: use datetime instead of date to track review cycles (fix for #20265)

* Update authentik/enterprise/lifecycle/api/iterations.py




* enterprise/lifecycle: replace extend_schema_field with type annotations

---------

Signed-off-by: Alexander Tereshkin <96586+atereshkin@users.noreply.github.com>
Co-authored-by: Alexander Tereshkin <96586+atereshkin@users.noreply.github.com>
Co-authored-by: Simonyi Gergő <28359278+gergosimonyi@users.noreply.github.com>
Co-authored-by: Jens L. <jens@beryju.org>
kensternberg-authentik added a commit that referenced this pull request Feb 23, 2026
* main:
  enterprise: monkey patch pyjwt to accept mismatching key (#20402)
  enterprise/lifecycle: use datetime instead of date to track review cycles (#20283)
  root: run `npm i` with `npm@11.10.1` in all subdirectories (#20471)
  providers/oauth2: device code flow client id via auth header (#20457)
  core: bump goauthentik/fips-debian from `4419749` to `d6def0a` in /lifecycle/container (#20467)
  core: bump goauthentik/fips-python from `d973c46` to `bccefee` in /lifecycle/container (#20466)
  core, web: bump ajv from 6.12.6 to 6.14.0 in /packages/prettier-config (#20462)
  ci: bump and fix daily (#20461)
  website/integrations: fix Vaultwarden SSO_SCOPES syntax (#20459)
  stages/user_login: log correct user when session binding is broken (#20094)
kensternberg-authentik added a commit that referenced this pull request Feb 23, 2026
* main: (167 commits)
  enterprise: monkey patch pyjwt to accept mismatching key (#20402)
  enterprise/lifecycle: use datetime instead of date to track review cycles (#20283)
  root: run `npm i` with `npm@11.10.1` in all subdirectories (#20471)
  providers/oauth2: device code flow client id via auth header (#20457)
  core: bump goauthentik/fips-debian from `4419749` to `d6def0a` in /lifecycle/container (#20467)
  core: bump goauthentik/fips-python from `d973c46` to `bccefee` in /lifecycle/container (#20466)
  core, web: bump ajv from 6.12.6 to 6.14.0 in /packages/prettier-config (#20462)
  ci: bump and fix daily (#20461)
  website/integrations: fix Vaultwarden SSO_SCOPES syntax (#20459)
  stages/user_login: log correct user when session binding is broken (#20094)
  web/flow: generate a single API object for network transactions and use it for the lifetime of the FlowExecutor (#20030)
  web/flow: refactor flow executor so component selection is in an easy-to-maintain table (#19999)
  website/integrations: gatus: fix config block  (#20446)
  core: bump msgraph-sdk from 1.54.0 to 1.55.0 (#20432)
  core: bump aws-cdk-lib from 2.238.0 to 2.239.0 (#20434)
  core: bump constructs from 10.5.0 to 10.5.1 (#20433)
  core: bump goauthentik/fips-python from `c272691` to `d973c46` in /lifecycle/container (#20437)
  core: bump goauthentik/fips-debian from `b0917af` to `4419749` in /lifecycle/container (#20438)
  web/admin/bugfix: Edit Stage not working. Invoking IdentificationStageForm not working (#20429)
  core: bump ruff from 0.15.1 to 0.15.2 (#20435)
  ...
kensternberg-authentik added a commit that referenced this pull request Feb 24, 2026
* main: (104 commits)
  sources/saml: improve exception handling for saml response parsing (#20125)
  web/flow: separate flow inspector lifecycle from flow executor lifecycle (#20063)
  web/maintenance: no unknown attributes part 2 (#19014)
  website/docs: add info about make install and recovery key (#20447)
  web: bump ajv from 6.12.6 to 6.14.0 in /web (#20479)
  providers/proxy: preserve URL-encoded path characters in redirect (#20476)
  policies: measure policy process from manager (#20477)
  enterprise: monkey patch pyjwt to accept mismatching key (#20402)
  enterprise/lifecycle: use datetime instead of date to track review cycles (#20283)
  root: run `npm i` with `npm@11.10.1` in all subdirectories (#20471)
  providers/oauth2: device code flow client id via auth header (#20457)
  core: bump goauthentik/fips-debian from `4419749` to `d6def0a` in /lifecycle/container (#20467)
  core: bump goauthentik/fips-python from `d973c46` to `bccefee` in /lifecycle/container (#20466)
  core, web: bump ajv from 6.12.6 to 6.14.0 in /packages/prettier-config (#20462)
  ci: bump and fix daily (#20461)
  website/integrations: fix Vaultwarden SSO_SCOPES syntax (#20459)
  stages/user_login: log correct user when session binding is broken (#20094)
  web/flow: generate a single API object for network transactions and use it for the lifetime of the FlowExecutor (#20030)
  web/flow: refactor flow executor so component selection is in an easy-to-maintain table (#19999)
  website/integrations: gatus: fix config block  (#20446)
  ...
kensternberg-authentik added a commit that referenced this pull request Feb 25, 2026
…/soc-captchas-and-webauthn

* web/flow/20261-tidy-identification-stage: (107 commits)
  Added some visibility keys, as per @GirlBossRush
  sources/saml: improve exception handling for saml response parsing (#20125)
  web/flow: separate flow inspector lifecycle from flow executor lifecycle (#20063)
  web/maintenance: no unknown attributes part 2 (#19014)
  website/docs: add info about make install and recovery key (#20447)
  web: bump ajv from 6.12.6 to 6.14.0 in /web (#20479)
  providers/proxy: preserve URL-encoded path characters in redirect (#20476)
  Weird merge bug: same function appeared twice.
  policies: measure policy process from manager (#20477)
  enterprise: monkey patch pyjwt to accept mismatching key (#20402)
  enterprise/lifecycle: use datetime instead of date to track review cycles (#20283)
  root: run `npm i` with `npm@11.10.1` in all subdirectories (#20471)
  providers/oauth2: device code flow client id via auth header (#20457)
  core: bump goauthentik/fips-debian from `4419749` to `d6def0a` in /lifecycle/container (#20467)
  core: bump goauthentik/fips-python from `d973c46` to `bccefee` in /lifecycle/container (#20466)
  core, web: bump ajv from 6.12.6 to 6.14.0 in /packages/prettier-config (#20462)
  ci: bump and fix daily (#20461)
  website/integrations: fix Vaultwarden SSO_SCOPES syntax (#20459)
  stages/user_login: log correct user when session binding is broken (#20094)
  web/flow: generate a single API object for network transactions and use it for the lifetime of the FlowExecutor (#20030)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/version-2026.2 Add this label to PRs to backport changes to version-2026.2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants