Commit Graph
43 Commits
Author SHA1 Message Date
f69a6ed4f3 chore: rehaul DevX (#10571)
# Which Problems Are Solved

Replaces Turbo by Nx and lays the foundation for the next CI
improvements. It enables using Nx Cloud to speed the up the pipelines
that affect any node package.
It streamlines the dev experience for frontend and backend developers by
providing the following commands:

| Task | Command | Notes |
|------|---------|--------|
| **Production** | `nx run PROJECT:prod` | Production server |
| **Develop** | `nx run PROJECT:dev` | Hot reloading development server
|
| **Test** | `nx run PROJECT:test` | Run all tests |
| **Lint** | `nx run PROJECT:lint` | Check code style |
| **Lint Fix** | `nx run PROJECT:lint-fix` | Auto-fix style issues |

The following values can be used for PROJECT:

- @zitadel/zitadel (root commands)
- @zitadel/api,
- @zitadel/login,
- @zitadel/console,
- @zitadel/docs,
- @zitadel/client
- @zitadel/proto

The project names and folders are streamlined:

| Old Folder | New Folder |
| --- | --- |
| ./e2e | ./tests/functional-ui |
| ./load-test | ./benchmark |
| ./build/zitadel | ./apps/api |
| ./console | ./apps/console (postponed so the PR is reviewable) |  

Also, all references to the TypeScript repo are removed so we can
archive it.

# How the Problems Are Solved

- Ran `npx nx@latest init`
- Replaced all turbo.json by project.json and fixed the target configs
- Removed Turbo dependency
- All JavaScript related code affected by a PRs changes is
quality-checked using the `nx affected` command
- We move PR checks that are runnable using Nx into the `check`
workflow. For workflows where we don't use Nx, yet, we restore
previously built dependency artifacts from Nx.
- We only use a single and easy to understand dev container
- The CONTRIBUTING.md is streamlined
- The setup with a generated client pat is orchestrated with Nx
- Everything related to the TypeScript repo is updated or removed. A
**Deploy with Vercel** button is added to the docs and the
CONTRIBUTING.md.

# Additional Changes

- NPM package names have a consistent pattern.
- Docker bake is removed. The login container is built and released like
the core container.
- The integration tests build the login container before running, so
they don't rely on the login container action anymore. This fixes
consistently failing checks on PRs from forks.
- The docs build in GitHub actions is removed, as we already build on
Vercel.

# Additional Context

- Internal discussion:
https://zitadel.slack.com/archives/C087ADF8LRX/p1756277884928169
- Workflow dispatch test:
https://github.com/zitadel/zitadel/actions/runs/17760122959

---------

Co-authored-by: Florian Forster <[email protected]>
Co-authored-by: Tim Möhlmann <[email protected]>
Co-authored-by: Copilot <[email protected]>
2025-10-08 10:27:02 +02:00
77b433367e fix(login): Copy to clipboard button in MFA login step now compatible in non-chrome browser (#9880)
related to issue [#9379](https://github.com/zitadel/zitadel/issues/9379)

# Which Problems Are Solved

Copy to clipboard button was not compatible with Webkit/ Firefox
browsers.

# How the Problems Are Solved

The previous function used addEventListener without a callback function
as a second argument. I simply added the callback function and left
existing code intact to fix the bug.

# Additional Changes

Added `type=button` to prevent submitting the form when clicking the
button.

# Additional Context

none

---------

Co-authored-by: Livio Spring <[email protected]>
2025-05-28 06:06:27 +00:00
257bef974a fix: text buttons overflow in login page (#9637)
# Which Problems Are Solved

The text of some of the buttons in the login page overflows in some
languages


![image](https://github.com/user-attachments/assets/ef3d3bfe-8966-4be5-8d3b-3b0b72ce5e49)

# How the Problems Are Solved

Updated the css to set the overflow to hidden and text-overflow to
ellipsis, this is the simplest fix I could come up with, if you have a
better alternative feel free to tell me what you would prefer 🙏


![image](https://github.com/user-attachments/assets/cdfa1f7b-535a-419d-ba9d-a57ec332d976)


# Additional Changes

None

# Additional Context

I couldn't test the following case locally since I had trouble setting
up a SMTP provider locally, but the class affected by my change should
also target this case, if someone could test it before merging it
:pray::


![315957139-6a630056-82b9-42cd-85a6-8819f2e1873b](https://github.com/user-attachments/assets/f6860db3-d6a0-4e4d-b9e6-0b1968145047)

- Closes #7619

Co-authored-by: Stefan Benz <[email protected]>
2025-04-24 09:56:52 +00:00
Max PeintnerandGitHub 27b319bd98 fix(login): passkey setup when pressing "Enter" key on login form (#9485)
# Which Problems Are Solved

When registering passkeys or u2f methods as second factor, some users
pressed the "Enter" key, rather than clicking the submit button. This
method has bypassed the execution of the device registration and
encoding scripts, resulting in the form being submitted without the
necessary encoded values.

# How the Problems Are Solved

This PR ensures that device registration is always executed and the
required information are submitted in the form regardless of pressing
"Enter" or clicking the button.

# Additional Changes

None

# Additional Context

- closes #6592
- closes #2910
2025-03-07 09:51:39 +00:00
Max PeintnerandGitHub a82f5805b6 fix(login): improve webauthn error handling (#9474)
This PR improves error handling around webauthn functions in the login.
2025-03-05 14:47:48 +00:00
Livio SpringandGitHub 40082745f4 fix(login): allow fallback to local auth in case of IdP errors (#9178)
# Which Problems Are Solved

The current login will always prefer external authentication (through an
IdP) over local authentication. So as soon as either the user had
connected to an IdP or even when the login policy was just set up to
have an IdP allowed, users would be redirected to that IdP for
(re)authentication.
This could lead to problems, where the IdP was not available or any
other error occurred in the process (such as secret expired for
EntraID).
Even when local authentication (passkeys or password) was allowed for
the corresponding user, they would always be redirected to the IdP
again, preventing any authentication. If admins were affected, they
might not even be able to update the client secret of the IdP.

# How the Problems Are Solved

Errors during the external IdP flow are handled in an
`externalAuthFailed` function, which will check if the organisation
allows local authentication and if the user has set up such.
If either password or passkeys is set up, the corresponding login page
will be presented to the user. As already with local auth passkeys is
preferred over password authentication.
The user is informed that the external login failed and fail back to
local auth as an error on the corresponding page in a focused mode. Any
interaction or after 5 second the focus mode is disabled.

# Additional Changes

None.

# Additional Context

closes #6466
2025-01-15 10:39:28 +00:00
Livio SpringandGitHub 3b59b5cb1a fix(login): correctly render logo based on theme mode (#8355)
# Which Problems Are Solved

The initial load of the login UI with dark mode preference
(prefers-color-scheme: dark) first rendered the logo configured for
light mode. Also switching from dark to light or vice versa would result
in the same behavior.
This was due to a mixed logic of server (based on cookie) and client
(prefers-color-scheme and cookie) deciding which mode to render.

# How the Problems Are Solved

- Since the main logic of which mode to use (`prefers-color-scheme`) can
only be achieve client side, both logos will be served in the HTML and
either will be rendered based on CSS.

# Additional Changes

None

# Additional Context

- closes #2085
2024-07-25 07:38:36 +00:00
cfa3d013a4 feat: show max password length in complexity components (#7810)
# Which Problems Are Solved

There is confusing ambiguity in the error messages for setting too long
passwords in different places.

# How the Problems Are Solved

A check for maximum password length is added so it's clear that
passwords can't exceed a maximum length of 70 or 72 bytes.
Password validation now provides a live updating check mark or cross
mark to indicate if the maximum length requirement is met.

# Additional Changes

Clarified requirement descriptions on the registration page with
complete sentences.

# Additional Context

Closes #6301

---------

Co-authored-by: Elio Bischof <[email protected]>
2024-05-23 08:07:36 +00:00
dcb1c7fa75 fix: Incorrect button positioning on email verification (#7579)
change mail verification page styling

Co-authored-by: Max Peintner <[email protected]>
2024-03-28 09:52:29 +00:00
89169b64ff fix: detect autofill in chrome to enable login buttons (#7056)
* fix: detect autofill in chrome to enable login buttons

* fix: add -webkit-autofill to input scss

---------

Co-authored-by: Max Peintner <[email protected]>
2024-01-22 10:24:36 +01:00
cb7b50b513 feat: add attribute to only enable specific themes (#6798)
* feat: enable only specific themes in label policy

* feat: enable only specific themes in label policy

* feat: enable only specific themes in label policy

* feat: enable only specific themes in label policy

* add management in console

* pass enabledTheme

* render login ui based on enabled theme

* add in branding / settings service and name consistently

* update console to latest proto state

* fix console linting

* fix linting

* cleanup

* add translations

---------

Co-authored-by: Livio Spring <[email protected]>
Co-authored-by: Tim Möhlmann <[email protected]>
2023-10-26 05:54:09 +00:00
Max PeintnerandGitHub e9148e96c7 fix(login): firefox MFA radio mouse target (#6632)
fix: mfa radio for firefox
2023-09-28 08:15:01 +02:00
ebb8f92e85 fix: Increase suffix wrapper to 200px wide (#6590)
Increase suffix wrapper to 200px wide

Co-authored-by: Fabi <[email protected]>
Co-authored-by: Max Peintner <[email protected]>
2023-09-19 12:37:11 +00:00
e17b49e4ca feat: add apple as idp (#6442)
* feat: manage apple idp

* handle apple idp callback

* add tests for provider

* basic console implementation

* implement flow for login UI and add logos / styling

* tests

* cleanup

* add upload button

* begin i18n

* apple logo positioning, file upload component

* fix add apple instance idp

* add missing apple logos for login

* update to go 1.21

* fix slice compare

* revert permission changes

* concrete error messages

* translate login apple logo -y-2px

* change form parsing

* sign in button

* fix tests

* lint console

---------

Co-authored-by: peintnermax <[email protected]>
2023-08-31 08:39:16 +02:00
d83681a928 fix(login): mfa prompt styles (#6366)
* feat: login with otp

* fix(i18n): japanese translation

* add missing files

* fix provider change

* add event types translations to en

* add tests

* resourceOwner

* remove unused handler

* fix: secret generators and add comments

* add setup step

* rename

* linting

* fix setup

* improve otp handling

* fix autocomplete

* translations for login and notifications

* translations for event types

* fix: mfa prompt styles

* fix merge

* fix merge

* fix html

* rm unused files

---------

Co-authored-by: Livio Spring <[email protected]>
2023-08-15 14:05:00 +00:00
Livio SpringandGitHub 7c494fd219 feat(login): add OTP (email and sms) (#6353)
* feat: login with otp

* fix(i18n): japanese translation

* add missing files

* fix provider change

* add event types translations to en

* add tests

* resourceOwner

* remove unused handler

* fix: secret generators and add comments

* add setup step

* rename

* linting

* fix setup

* improve otp handling

* fix autocomplete

* translations for login and notifications

* translations for event types

* changes from review

* check selected mfa type
2023-08-15 12:47:05 +00:00
Miguel CabrerizoandGitHub dfd469c66f fix: go back to user selection from other user (#6255)
* fix: go back to user selection from other user

* fix: replace button with left arrow
2023-08-10 17:35:52 +00:00
SilvanandGitHub 1c354ca977 ci: improve performance (#5953)
* pipeline runs on ubuntu instead of docker
* added Makefile to build zitadel core (backend) and console (frontend)
* pipeline runs in parallel where possible
* pipeline is split into multiple jobs
* removed goreleaser
* added command to check if zitadel instance is running
2023-07-17 10:08:20 +02:00
Max PeintnerandGitHub 699fc86d1b fix(login): improve and streamline identity provider styles (#5456)
* fix: login idp styles

* rem dead code
2023-07-07 11:17:08 +00:00
58cfb94e1d fix(login): url safe encoding base64 (#5983)
* url safe encoding base64

* js rm export

* fix: publish docker image

* rm releaserc

---------

Co-authored-by: Elio Bischof <[email protected]>
Co-authored-by: Silvan <[email protected]>
2023-06-08 09:27:03 +02:00
Livio SpringandGitHub 8bf36301ed feat: allow skip of success page for native apps (#5627)
add possibility to return to callback directly after login without rendering the successful login page
2023-04-11 15:07:32 +00:00
c0843e6b4c feat: add gitlab provider templates (#5405)
* feat(api): add google provider template

* refactor reduce functions

* handle removed event

* linting

* fix projection

* feat(api): add generic oauth provider template

* feat(api): add github provider templates

* feat(api): add github provider templates

* fixes

* proto comment

* fix filtering

* requested changes

* feat(api): add generic oauth provider template

* remove wrongly committed message

* increase budget for angular build

* fix linting

* fixes

* fix merge

* fix merge

* fix projection

* fix merge

* updates from previous PRs

* enable github providers in login

* fix merge

* fix test and add github styling in login

* cleanup

* feat(api): add gitlab provider templates

* fix: merge

* fix display of providers in login

* implement gitlab in login and make prompt `select_account` optional since gitlab can't handle it

* fix merge

* fix merge and add tests for command side

* requested changes

* requested changes

* Update internal/query/idp_template.go

Co-authored-by: Silvan <[email protected]>

* fix merge

* requested changes

---------

Co-authored-by: Silvan <[email protected]>
2023-03-13 17:34:29 +01:00
Livio SpringandGitHub 3042d7ef5c feat: add github provider template (#5334)
Adds possibility to manage and use GitHub (incl. Enterprise Server) template based providers
2023-03-08 10:17:28 +00:00
Max PeintnerandGitHub e7a97b1f3b fix(login): add text-decoration: underline on the sub-formfield links (#5012)
* fix: login underline

* a styles
2023-01-12 14:04:04 +00:00
2a8dfab192 fix(login): mfa prompt UI improvements, fix register field validation, email validation (#4672)
* fix: mfa prompt styling

* register password field validation

* loginname overflow, mfa hover effect

* cleanup

* Update internal/api/ui/login/static/resources/scripts/password_policy_check.js

Co-authored-by: Silvan <[email protected]>

* prettier if check

* cleanup

* Update internal/api/ui/login/static/resources/scripts/password_policy_check.js

Co-authored-by: Livio Spring <[email protected]>

* fix confirmation validation, cleanup

* rm log

* email type validation

* add email validation

* change pattern

* pattern

* comment RFC 2822

* dont wrapp org name

* rm email validation

Co-authored-by: Silvan <[email protected]>
Co-authored-by: Livio Spring <[email protected]>
2022-11-17 13:25:09 +01:00
7db87f4646 fix(console): improve project counters, dark primary color change, smaller UI improvements (#4620)
* dark primary color change, project counter, link color improvements

* update fallback colors

* fallback colors

Co-authored-by: Livio Spring <[email protected]>
2022-11-17 07:43:53 +00:00
Max PeintnerandGitHub 531c30a031 fix(login): organization suffix overflow (#4374)
fix: org name overflow
2022-10-03 18:01:35 +02:00
Max PeintnerandGitHub f517077be3 fix(login): improve multifactor prompt (#4474)
* login mfa improvements

* mfa toggles

* styles

* mfa styles

* go rel

* better translations for mfa u2f

* revert goreleaser format
2022-10-03 13:48:24 +02:00
f40931e81e fix: change descriptions and password rule placement (#4425)
* fix: change descriptions and password rule placement

* fix: passwordless descriptions, remove language and gender from register

* fix: less technical texts on login

* fix: texts

* fix: texts

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

* update e2e test

* fix radio

* fix: chinese text corrections

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

* Update internal/api/ui/login/static/i18n/it.yaml

Co-authored-by: Max Peintner <[email protected]>

Co-authored-by: Max Peintner <[email protected]>
Co-authored-by: Livio Spring <[email protected]>
2022-09-28 15:08:45 +02:00
190a454140 feat(console): deactivate, reactivate org, fix signedout route (#3834)
* org detail

* feat: org deactivate, reactivate

* statehandler includes instead of startsWith

* fix signout route

* Update console/src/assets/i18n/de.json

Co-authored-by: Livio Spring <[email protected]>

* french

Co-authored-by: Livio Spring <[email protected]>
2022-07-08 06:58:23 +00:00
38be00971b fix(login): text color for idp, footer (#3830)
Co-authored-by: Fabi <[email protected]>
2022-06-15 16:33:36 +00:00
Max PeintnerandGitHub 1da305f2de fix(login): idp, link font color (#3814)
fix: idp, a font color
2022-06-13 09:36:42 +02:00
6bd5799770 fix: idp styling (#3797)
* fix: idp styling

* escape idp a color

* elevation on hover

* css gen

Co-authored-by: Max Peintner <[email protected]>
2022-06-10 13:17:33 +00:00
Max PeintnerandGitHub d6cb36db31 fix(console, login): label policy and privacy policy from authservice, login - remove double footer element, mobile (#3795)
fix: cnsl auth policy, lgn footer mobile
2022-06-10 14:46:59 +02:00
Livio SpringandGitHub 03a77b381e fix: password check policy correctly (#3787)
* fix: password check policy correctly

* fix: password check policy correctly
2022-06-09 13:48:57 +00:00
Max PeintnerandGitHub 233d80502d fix(console, login): console - ensure permission is available, login - i18n fixes, input borders, lgn-touched script to add class on blur (#3760)
* permission restriction, member, login i18n input borders, secondary text

* add touched js
2022-06-07 09:25:56 +00:00
ebb73186b6 fix(console, login): Idp detail and create layout optimization, login - sub formfield link spacing (#3755)
* idp detail, create layout

* fat finger fix

Co-authored-by: Livio Amstutz <[email protected]>
2022-06-03 07:20:56 +00:00
e3e0207318 fix: login checkbox contrast, login policy factors, asset urls (#3742)
* checkbox contrast

* idp create before remove, add, asset service

* login policy events

Co-authored-by: Fabi <[email protected]>
2022-05-31 13:51:21 +00:00
Max PeintnerandGitHub ac65d9d331 fix(login): checkbox, label, container styles (#3732)
fix: checkbox, label styles
2022-05-31 07:20:39 +00:00
e79aab3671 fix: login ui for v2 (#3712)
* fix: login ui for v2

* a color

* footer

Co-authored-by: Livio Amstutz <[email protected]>
2022-05-30 09:03:40 +00:00
Max PeintnerandGitHub 00e042ea44 fix(login): fix avatar.js (#3614) 2022-05-11 08:52:17 +02:00
Max PeintnerandGitHub d431ccb965 feat(console, login): v2 notification settings, login avatar (#3606)
* instance routing

* instance naming

* org list

* rm isonsystem

* breadcrumb  type

* routing

* instance members

* fragment refresh org

* settings pages

* settings list, sidenav grouping, i18n

* org-settings, policy changes

* lint

* grid

* rename grid

* fallback to general

* cleanup

* general settings, remove cards

* sidenav for settings, label policy

* i18n

* header, nav backbuild

* general, project nav rehaul

* login text background adapt

* org nav anim

* org, instance settings, fix policy layout, roles

* i18n, active route for project

* lint

* notification-settings

* idp create redirect, sms provider create, i18n

* oidc configuration

* settings list

* new avatar colors for login

* cleaner js

* avatar theme login

* remove avatar elevation
2022-05-11 08:01:40 +02:00
389eb4a27a feat: run on a single port (#3163)
* start v2

* start

* run

* some cleanup

* remove v2 pkg again

* simplify

* webauthn

* remove unused config

* fix login path in Dockerfile

* fix asset_generator.go

* health handler

* fix grpc web

* refactor

* merge

* build new main.go

* run new main.go

* update logging pkg

* fix error msg

* update logging

* cleanup

* cleanup

* go mod tidy

* change localDevMode

* fix customEndpoints

* update logging

* comments

* change local flag to external configs

* fix location generated go code

* fix

Co-authored-by: fforootd <[email protected]>
2022-02-14 17:22:30 +01:00