There are three ways we determine if use of private key is enabled:
-Cluster config: this setting won't render the login form,
it will just direct user to login with other supported methods
- 'privateKeyPolicyEnabled' flag: only returned with a 200 for resets
and invites. This flag was required so that we can additionally render
recovery codes if any (only for Teleport Cloud)
- Checking if the error returned contains the backend hard coded
keywords ('hardware_key' or 'hardware_key_touch'). Role configs
will require an attempt (either logging in or assuming an access request)
before the backend checks if this user requires use of private keys.
* add import order lint rule.
* auto fix import order and spacing.
* prettier fix.
* manual fix of import order.
* update failing snapshots.
* bump e submodule for import order fixes.
* Show error when auth settings return `u2f` second factor option
- Handles `u2f` cfg returned from v9
- Push users to use webauthn
* Conditionally render adding passwordless device based on if pwdless is enabled
* Fix brief flash rendering of buttons before attempt success state
* Add soft warning for firefox users for passwordless login or register
- Display primary and secondary logins on different cards
- Use sliding transitions
- Allow to add passwordless device through dashboard
- Update e-ref
* adding desktopPOC player
* updates to proper playback test websocket endpoint
* Changes EventQuery to take an EventCode in order to facilitate more comprehensible typing for AuditService.fetchEvents. Updates RecordingsService to use the general events search endpoint in order to easily add DESKTOP_SESSION_ENDED events to the response alongside regular [ssh] SESSION_END events.
* Adds logic for distinguishing between session types and displaying appropriate icon
* Deleting DesktopPlayerPOC which should not have been on this branch
* Breaks the handling of the two types of end events passed into makeRecording into two separate functions. Also types RecordingDescription
* touchups
* yarn tsc fixes
* updates storybook
* updating snapshot
* removing unused import
* adds skeleton for distinguishing between ssh and desktop recordings
* Testing connection of the playerClient
* Puts TdpClientCanvas into the DesktopPlayer
* adds toggle to PlayerClient
* small fixes
* adds an onerror to proxyServer so that websocket closures don't shut down the webpack-dev-server
* updates to match backend
* shifting preventDefaults out of TdpClientCanvas since that isn't always desired (for example with the desktop player)
* Adds a ProgressBarDesktop component and makes it respond to the new PlayerClientEvent.TOGGLE_PLAY_PAUSE event emitted by the PlayerClient
* Adds support for decoding client screen spec and using it to determine canvas size during playback. requires some code cleanup
* Some significant refactoring, DesktopSession and DesktopPlayer now both up to par in terms of function. Requires further refactoring for storybook.
* fixes storybook
* fixes codec test
* fixing build warnings
* reverts audit log changes
* removes unused type Region
* decodes the jsons that are now sent over websocket
* replace fqdm with fqdn
* Stops re-adding TOGGLE_PLAY_PAUSE listener each rerender and adds cleanup for that listener
* Make naming more precise
* removing unnecessary logging and fixing a type
* adding todo
* makes recordingType the more appropriate query param
* change let to const
* tiny fixes
* reverting
* The progress bar now moves with the recording timing
* Makes the rest of TdpClientCanvas props optional and wraps relevant logic in relevant if statements where necessary. Gets rid of ugly doNothing
* fixes event listener cleanup
* removes unnecessary prop
* Adds standard error handling display and a storybook for it
* moving detailed TODO to an issue
* changing toHuman to remove brittle reliance on iso string
* removes base64-arraybuffer, refactors base64url.ts into the more general base64.ts and uses it for base64 to array buffer translation
* fixes Storybook
* fixes validDurationMs
* Copies in base64url-arraybuffer library and modifies it for our purposes
* putting import statements in their proper place
* Moves Base64urlString type to where its needed
* removes DS_Store
* addresses code review
* simplifies and fixes durationMs logic
* final touches
* invite/reset forms defaults to OTP when 2fa type is set to "on" or "optional"
* create a dropdown menu of 2fa selections so users can pick the right method
Co-authored-by: Lisa Kim <lisa@goteleport.com>