mikebridge opened a new pull request, #45173:
URL: https://github.com/apache/superset/pull/45173

   ### SUMMARY
   
   Improve provider-defined semantic-layer connection forms:
   
   - Render nullable passwords as one optional password input, preserving 
null/omitted/empty values and the real authentication-method choice.
   - Support a provider's private-key PEM hint with a multiline editor, 
BEGIN/END placeholder and inline boundary guidance.
   - Show field help below aligned, full-width inputs. Loading suggestions do 
not disable manual entry.
   - For the Snowflake extension, wait for complete-looking credentials and the 
existing 500 ms debounce before discovery. Preserve masked secrets on Save 
without sending those masks to discovery.
   - Use fixed safe messages at configuration refresh, edit-load and save 
boundaries; keep non-connection operation errors neutral.
   
   The small Snowflake-specific refresh predicate is deliberate: generic 
dependency presence is insufficient, while schema-level PEM validation would 
reject saved-secret masks. It is not cryptographic validation and does not 
change provider validation, save semantics or API types. A general 
provider-readiness framework is outside this fix.
   
   Companion provider schema/help branch (draft PR follows): 
https://github.com/preset-io/superset-shell/tree/sc-125738-snowflake-form-ux
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Before: optional key passwords show `anyOf-0`/`anyOf-1`, the key is a 
single-line password field, and discovery can start on partial credentials.
   
   After: one optional password input, multiline private key with visible 
shape/help, vertical labels and aligned controls; incomplete credentials do not 
start discovery.
   
   RTL evidence covers the actual JSON Forms renderers, masked Save, 
debounce/cancellation, incomplete/encrypted PEM, ordinary default display and 
typing while loading. Desktop (1440 px) and narrow (480 px) before/after 
component screenshots are saved in the implementation handoff; they are offline 
Chromium renders of the actual component DOM/CSS, not a live Snowflake session.
   
   ### TESTING INSTRUCTIONS
   
   1. With a Snowflake semantic-layer extension installed, open a new 
connection form. Check that account/username help is visible and the 
private-key password is a single optional input.
   2. Paste an incomplete key; confirm matching BEGIN/END guidance and no 
discovery request. Complete account, username and key; after a pause, confirm 
discovery runs. An encrypted key also needs its passphrase.
   3. Leave the suggestion request pending or fail it; confirm manual fields 
stay typeable. Errors must not display provider exception text or supplied 
secrets.
   4. Edit a saved connection without replacing its masked key and save; the 
existing secret must be preserved. Check dependent selections after changing 
credentials.
   
   Local: all four semantic-layer frontend suites pass (73 tests); staged 
pre-commit passes, including frontend type checking; translation template 
matches extraction. Companion provider suite: 398 tests pass. Independent 
Claude final-tree review completed before publication. No live Snowflake was 
used.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [x] Required feature flags: existing `SEMANTIC_LAYERS`
   - [x] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   Draft for human review; no migration or deployment-order requirement. Hosts 
without the optional PEM hint support continue to use their existing control. 
AI-assisted implementation and independent review; checks executed locally as 
described above.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to