Conversation
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Resolve conflicts in SecretPropertyDiffs.tsx and SecretRow.tsx: - Keep secret type display and sealed value handling from feature branch - Incorporate UI density/sizing changes from main
- Hide type badge by default, only show TypeSelector on hover - Fix Tab key in secret key input skipping to value field - Fix z-index for sticky toolbar and GenericDialog - Remove Config/Sealed from new secret dropdown menus
cdc6883 to
eea2352
Compare
- Change default secret type from Secret to Config - Reorder TypeSelector: Config, Secret, Sealed - Change sealed value placeholder from "Sealed" to "Sealed secret"
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
fix: secret type UX and z-index improvements
Signed-off-by: rohan <rohan.chaturvedi@protonmail.com>
nimish-ks
approved these changes
Mar 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
typefield to secrets with three options: Secret (default), Sealed, and ConfigTypeSelectortoggle, type badges, and creation viaSplitButtondropdownChanges
Backend
0118_secret_type_field.py): AddstypeCharField with choicessecret,sealed,config(default:secret)models.py):SecretTypeChoicesenum andtypefield onSecretviews/secrets.py):resolve_valuereturns empty string for sealed secrets so ciphertext is never sent to the clienttypes.py,mutations/environment.py): ExposestypeonSecretType, acceptstypeinSecretInputfor create/update mutationsFrontend
TypeSelector.tsx): New animated segmented toggle component with sliding indicator that transitions between Secret/Sealed/Config statespage.tsx,SecretRow.tsx): Type selector in key action menu, type badges, sealed enforcement (locked value, blocked reveal, disabled editing), config auto-reveal, type included in save mutation and unsaved changes detectionAppSecrets.tsx,AppSecretRow.tsx): Type selector propagates changes to all environment values, type badges, sealed/config behavior per-env,SplitButtonfor creating Config and Sealed secrets, "Add value" inherits type from sibling env secretsenvironments.ts): SkipsdecryptAsymmetricfor sealed secrets (server returns empty string, not valid ciphertext)getSecrets.gql,getAppSecrets.gql): AddedtypefieldareAppSecretRowEqual,areEnvSecretEqualto includetypeso React re-renders on type changesKey design decisions
isSealedAndSavedchecks the server type (not client type), so users can freely toggle types before saving — the seal only locks once persistedresolve_valuestrips the ciphertext, so even if the client is compromised, sealed values cannot be exfiltratedPreview
Screencast.From.2026-03-11.13-18-45.mp4
Test plan